diff --git a/.bekindrewind.yml b/.bekindrewind.yml deleted file mode 100644 index 45d0be2e9..000000000 --- a/.bekindrewind.yml +++ /dev/null @@ -1,2 +0,0 @@ -# relative to root of directory -fixture_path: Tests/iOS\ Tests/Fixtures/ diff --git a/.gitignore b/.gitignore index aa5ad5b2c..b9b854e32 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,10 @@ #reports reports/ +# Tests +################## +tests-configuration.json + ## Build generated build/ DerivedData @@ -19,14 +23,17 @@ Framework/Products !default.mode2v3 *.perspectivev3 !default.perspectivev3 -xcuserdata +xcuserdata/ ## Other -*.xccheckout -*.moved-aside +*.xcscmblueprint *.xcuserstate +*.moved-aside +*.xccheckout ## Obj-C/Swift specific +*.dSYM.zip +*.dSYM *.hmap *.ipa @@ -44,15 +51,15 @@ Podfile.lock # Add this line if you want to avoid checking in source code from Carthage dependencies. # Carthage/Checkouts -Carthage/Build +Carthage # Fastlane ########## -fastlane/README.md -fastlane/report.xml -fastlane/Preview.html -fastlane/screenshots -fastlane/test*output/* +.fastlane/README.md +.fastlane/report.xml +.fastlane/Preview.html +.fastlane/screenshots +.fastlane/test_output # OS generated files # @@ -66,3 +73,6 @@ Icon? ehthumbs.db Thumbs.db .idea/ + +deployment_keys +deployment_keys.pub diff --git a/.pubnub.yml b/.pubnub.yml index 5c61577b4..cc65c4d1e 100644 --- a/.pubnub.yml +++ b/.pubnub.yml @@ -1,9 +1,40 @@ --- name: objective-c scm: github.com/pubnub/objective-c -version: "4.12.0" +version: "4.13.0" schema: 1 changelog: + - + changes: + - + text: "Add additional functionality which allow to filter out received Objects (memberships, members, spaces or users) by specified criteria." + type: feature + - + text: "Add new parameters which allow specify criteria (list of field names with sort direction `:asc` / `:desc` for each) order in which objects appear in response." + type: feature + - + text: "Add scripts which is responsible for SDK release roll out from tag in private repository." + type: feature + - + text: "Presence state should set / fetch fail w/o actual request to server when list of channels / groups and uuid is missing." + type: improvement + - + text: "Fix issue because of which `connected` interface didn't called completion block when `managePresenceListManually` is set to `NO`." + type: bug + - + text: "Fix issue because of which `includeMetadata` and `includeMessageActions` flags has been swapped." + type: bug + - + text: "Fix issue because of which actual retry never happened in case if subscription failed because PAM reported that client with current `authKey` doesn't have access rights to channels / groups." + type: bug + - + text: "Fix issue which didn't reset subscribe time-token when `keepTimeTokenOnListChange` is set to `NO` and `tryCatchUpOnSubscriptionRestore` is set to `YES`." + type: bug + - + text: "Remove 'macOS' from supported platforms in iOS Framework targets and rely on command-line specified flags to build Framework with Catalyst support." + type: bug + date: Feb, 9 20 + version: v4.13.0 - changes: - @@ -601,7 +632,8 @@ changelog: text: "mobile push payload removed from received message." type: improvement - - text: "'pn_other' key has been removed and original object will be returned in delegate callback (this field used with message encryption and/or mobile push payload).\n" + text: "'pn_other' key has been removed and original object will be returned in delegate callback (this field used with message encryption and/or mobile push payload). +" type: improvement date: May 12, 16 version: v4.3.1 @@ -996,6 +1028,8 @@ features: - OBJECTS-MANAGE-MEMBERSHIPS - OBJECTS-GET-MEMBERS - OBJECTS-MANAGE-MEMBERS + - OBJECTS-FILTERING + - OBJECTS-SORTING message-actions: - MESSAGE-ACTIONS-GET - MESSAGE-ACTIONS-ADD diff --git a/.travis.yml b/.travis.yml index 0ff4c48cf..9967b722a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,40 +1,34 @@ +podfile: Tests/Podfile language: objective-c -osx_image: xcode10.2 +osx_image: xcode11.3 os: osx -sudo: true -cache: - - bundler - - cocoapods -rvm: - - 2.5.3 -env: - global: - - LC_CTYPE=en_US.UTF-8 - - LANG=en_US.UTF-8 -matrix: - include: - - env: NAME='[ObjC] iOS' SCHEME='iOS Tests (ObjC)' DESTINATION='platform=iOS Simulator,name=iPhone 7 Plus,OS=12.1' - - env: NAME='[ObjC] macOS' SCHEME='OSX Tests (ObjC)' DESTINATION='platform=macOS' +cache: + cocoapods: true -before_install: - - sudo gem install xcpretty-travis-formatter - - sudo gem install cocoapods - - brew ls --versions node && brew upgrade node || brew install node - - npm config set strict-ssl false +env: + global: + - LC_CTYPE=en_US.UTF-8 + - LANG=en_US.UTF-8 before_script: - - pushd Tests/Resources/ && npm init --yes && npm install glob && node .create-keysset.js && popd - - pushd Tests/ && pod install && popd + - sudo gem install xcpretty + - ./.travis/repo-scripts/create-configuration.sh -script: - - set -o pipefail - - xcodebuild -workspace "Tests/PubNub Tests.xcworkspace" -scheme "${SCHEME}" -destination "${DESTINATION}" clean build test | xcpretty -f `xcpretty-travis-formatter` +stages: + - name: test -after_success: - - bash <(curl -s https://codecov.io/bash) +jobs: + include: + - stage: "test" + name: "[iOS] Mocked Integration test" + script: ./.travis/repo-scripts/tests-runner.sh ios + - name: "[macOS] Mocked Integration test" + script: ./.travis/repo-scripts/tests-runner.sh macos + - name: "[tvOS] Mocked Integration test" + script: ./.travis/repo-scripts/tests-runner.sh tvos after_failure: - cat -n ~/Library/Logs/scan/* - cat -n $TMPDIR/com.apple.dt.XCTest-status/Session*.log - - cat -n ~/Library/Logs/DiagnosticReports/xctest*.crash + - cat -n ~/Library/Logs/DiagnosticReports/xctest*.crash \ No newline at end of file diff --git a/CHANGELOG b/CHANGELOG deleted file mode 100644 index 81040b222..000000000 --- a/CHANGELOG +++ /dev/null @@ -1,749 +0,0 @@ -05-12-2019 - 527edf0 - 4.12.0 -. added new interfaces (builder-based API also has been modified) which allow pass device push token / identifier (not only NSData) using specific push service type. -. added class which simplify basic notifications composition for multiple platforms / providers at once. -. exposed utility class which allow to manage data in Keychain (iOS). -. fix non-JSON response handling from History v2 endpoints when storage add-on not enabled for used keys. - -25-11-2019 - 9baf80c - 4.11.1 -. changed headers visibility in frameworks project from 'project' to 'public'. -. changed build scripts which now produce XCFrameworks with separate slices for device and simulator instead of 'fat' binaries created with 'lipo'. -. added proper Catalyst framework support with separate build target 'XCFramework (Catalyst)' which is bundled with binaries which allow it to be used for: device / simulator and macOS. - -08-10-2019 - baef53b - 4.11.0 -. add Message Actions API support which allow to: add, remove and fetch previously added actions. -. add new method to simple interface and argument to builder pattern interface which allow to fetch previously added actions and message metadata. -. modify 'PNObjectEventListener' with new callback which can be used to track message actions addition / removal events. -. add new argument to history builder pattern to fetch message metadata. -. enhance publish sequence manager performance by making save only if any change has been done. - -30-08-2019 - 3a15d7f - 4.10.1 -. add missing import of Objects API interface to frameworks umbrella header. - -27-08-2019 - de75494 - 4.10.0 -. add support for Space Objects API. -. add support for User Objects API. -. add support for Membership / Member Objects API. -. add new callback to 'PNObjectEventListener', so existing listeners may start receiving 'space' events by adding new callback implementation. -. add new callback to 'PNObjectEventListener', so existing listeners may start receiving 'user' events by adding new callback implementation. -. add new callback to 'PNObjectEventListener', so existing listeners may start receiving 'membership' events by adding new callback implementation. - -08-08-2019 - c2d7714 - 4.9.0 -. add support for signal API. -. add new callback to 'PNObjectEventListener', so existing listeners may start receiving 'signal' objects by adding new callback implementation. -. disable pipelining for requests. -. remove deprecated 'stripMobilePayload' configuration option from SDK along with code, which used it. -. fixed crash which is caused by attempt to de-duplicate message which PubNub client wasn't able to decrypt with configured 'cipherKey'. - -15-07-2019 - 92928ca - 4.8.11 -. add macOS support for iOS frameworks. - -27-06-2019 - f566218 - 4.8.10 -. fix subscribe request timeout missing 'reconnect' event. -. fix empty heartbeat value set to minimum on configuration copy. -. update outdated configuration object inline help documentation. - -17-06-2019 - 8c3d797 - 4.8.9 -. fix system version parsing when OS language set to Japanese. -. add ability to specify FCM token for APNS API. - -16-05-2019 - af57b0f - 4.8.8 -. add value wrapping around heartbeat 'value'. -. fix universal Frameworks build script. -. separate tests project from main workspace. - -28-03-2019 - 4966f7d - 4.8.7 -. resolved project warnings, which caused issues with Carthage framework build. - -26-03-2019 - 010655a - 4.8.6 -. changed builder API interface visibility for frameworks from project to public. - -16-03-2019 - 12eda1b - 4.8.5 -. changed message count result object header file visibility for frameworks from project to public. -. moved Keychain records update calls to secondary queue (sometime Keychain take too much time to update and block main queue). - -11-03-2019 - 0731f99 - 4.8.4 -. added ability to retrieve number of messages in specified channels using timetoken as reference date. -. removed channel names sorting from utility class (because of which new API wasn't able to work properly). - -13-11-2018 - 524e722 - 4.8.3 -. added ability to get / set presence state for multiple channel / groups (at once). - -07-11-2018 - cc3e18c - 4.8.2 -. added ability to set arbitrary query parameters during API call. - -21-06-2018 - 9215030 - 4.8.1 -. changed client's data storage on macOS from Keychain to file-based. - -19-06-2018 - 6f93055 - 4.8.0 -. changed presence API flow and added client configuration option to enable manual presence list management. -. fixed implicit 'self' retain in block warnings. - -07-05-2017 - 545935b - 4.7.8 -. added listeners collection access serialization on queue to prevent access to property during non-atomic store. -. silenced implicit self usage in blocks. - -14-02-2018 - 0e9968f - 4.7.7 -. fixed issue because of which channel(s) and/or group(s) wasn't able to maintain user's presence with heartbeat. -. fixed log file attributes to prevent their backup locally or to iCloud. - -01-02-2018 - f2e6792 - 4.7.6 -. fixed issue because of which new 'connected' presence API wasn't able to 'disconnect' user. -. fixed behavior during unsubscribe - connect event won't fire after user 'disconnectec', because there is no new channels about which listeners should be notified. - -16-12-2017 - 4ad8a12 - 4.7.5 -. added ability to change client's presence without actual subscription to channels/groups (based on heartbeat and presence leave API). -. fixed Xcode warnings about partly API availability. -. fixed race of conditions for logger. -. fixed pre-compile macro usage to send metrics when code is running on device with pre-iOS 10 version. - -15-11-2017 - 114804a - 4.7.4 -. added ability to completely disable PubNub's client logger with 'PUBNUB_DISABLE_LOGGER' build configuration macro. - -31-10-2017 - 364c1ac - 4.7.3 -. added 'suppressLeaveEvents' parameter to PNConfiguration which allow to suppress presence leave API call on unsubscription. -. fixed issue because of which there was a chance to create second subscribe request while subscription loop has been restarted with new timetoken. - -16-10-2017 - 17ad5ac - 4.7.2 -. added new method to unsubscribe from all channels and groups with completion block. -. fixed issue because of which unsubscribe requests didn't terminated previous long-poll subscribe request. -. removed 'receiver-is-weak' clang warning suppression since it was deprecated. - -15-09-2017 - 5811cce - 4.7.1 -. fixed telemetry shared data access issues. - -28-08-2017 - 6638b35 - 4.7.0 -. added 'delete message' functionality. -. fixed issue with wildcard subscription and presence events which treated as messages. -. fixed issue with copyWithConfiguration method which removed client itself from state change observers. -. fixed de-duplication messages cache size issue. -. fixed issue because of which requests metrics gathered only if 'metrics' log level has been enabled. -. removed deprecated flag from 'stripMobilePayload' so it will only print out deprecation warning in console w/o actual warning in Xcode. -. adjusted telemetry cache clean up interval. - -21-08-2017 - 718ffe6 - 4.6.3 -. fixed bug with channel group subscription from previous release. - -19-07-2017 - 424bf71 - 4.6.2 -. added ability to gather service performance information. -. fixed issue with macOS Keychain access in multi-user environment when none authorized. -. removed unsubscribe request cancellation by sequential call to subscribe API. -. added new error category PNRequestURITooLongCategory to properly handle and report issues to callbacks and completion blocks. -. reorganized code which is responsible for subscribe requests cancellation. -. fixed inline documentation. - -26-04-2017 - 9087df2 - 4.6.1 -. fixed dependency analysis warnings for Fabric integration via CocoaPods. - -31-03-2017 - 10a7af7 - 4.6.0 -. add support for presence deltas. - -15-03-2017 - 0ca22f9 - 4.5.15 -. added 'pn-' prefix for client-provided unique user identifiers. -. changed pre-compile macro for URLSession metrics gathering delegate usage. -. persistent UUID storage and tests deprecated API silenced. -. added OSSpinLock and os_unfair_lock switch. - -08-03-2017 - 1d8e2ac - 4.5.14 -. fixed uuid and auth keys encoding in query string. - -03-02-2017 - 3c5c14c - 4.5.13 -. added TCP metrics output to PubNub logs (added corresponding logger level). -. deprecated 'stripMobilePayload' property -. added information about 'stripMobilePayload' deprecation to Xcode console with guide what can be done next. - -05-01-2017 - 96449f1 - 4.5.12 -. changed default origin. - -16-12-2016 - d0e711e - 4.5.11 -. default origin reverted back to pubsub.pubnub.com - -16-12-2016 - 464f67b - 4.5.10 -. changed object which is stored in cache which is used for de-duplication. -. changed default origin. - -26-11-2016 - 7808174 - 4.5.9 -. fixed cached messages identifier list clean up. - -25-11-2016 - b71546b - 4.5.8 -. added new configuration property 'maximumMessagesCacheSize' which allow to enable (when non-zero value passed) messages de-duplication logic. - -20-11-2016 - 2bc6d69 - 4.5.7 -. removed PNClass and added manual service response parsers registration (in attempt to solve third-party classes initialization at run-time). -. added additional service response check and wrap (in case if still somehow non-dictionary reached data objects). -. fixed issue because of which "reverse" flag had same value as "include timetokens". -. added APPLICATION_EXTENSION_API_ONLY flag to PubNub.podspec and Framework targets. - -16-11-2016 - 21726f3 - 4.5.6 -. added multi-channel history request API to API call builder interface. -. added ability to subscribe / unsubscribe to/from channels and/or groups with single API call. -. added ability to receive message sender identifier. -. deprecated 'restoreSubscription' property. -. added verbose logs around subscription loop timetoken usage. - -02-11-2016 - fddb1f1 - 4.5.4 -. added ability to specify for how long published message should be stored in channel's storage (added into API call builder interface) -. fixed 'instanceID' which is placed inside of PNConfiguration - if it requesed to setup new client it will have same 'instanceID'. Now 'instanceID' is set per PubNub client instance. - -27-10-2016 - 935ae96 - 4.5.4 -. added application extension environment support (applicationExtensionSharedGroupIdentifier PNConfiguration property). -. added builder pattern for API calls. -. added 'fire' and 'replicate' options to publish API call builder. -. added messages count threshold configuration property (requestMessageCountThreshold) which allow to specify how many messages client can receive without PNRequestMessageCountExceededCategory status object sending (to -client:didReceiveStatus: observer callback). -. added 'instanceid' query property to simplify multi client debug. -. added 'requestid' query property for each request to force proxy servers to not cache responses and debug purposes. -. updated fastlane configuration to speed test stage up. -. fixed issue with shared auto-updating user calendar which is used with logger (calendar instance created every time when timestamp information is required). - -26-09-2016 - 3cc8b7b - 4.5.3 -. added NS_SWIFT_NAME with Swift equivalent specified in it to all public API. This allow to prevent Swift function signature generator from changing it between Swift releases. - -13-09-2016 - 2c8d262 - 4.5.2 -. added published message sequence number to publish API call (this information arrive as message envelope and used for issues debugging). -. added logger method which will allow to use it from Swift. -. added automatic heartbeat interval using formula and heartbeat value for calculated value. -. added 'channel' and 'subscription' properties to represent channel from which event arrived and actual data strean name which is used by PubNub client for subscription. -. deprecated 'actualChannel' and 'subscribedChannel' in favor of 'channel' and 'subscription' (properties still available, but will be eventually will be completelly removed). - -02-09-2016 - ea0d9c7 - 4.5.1 -. changed default logs directory which should be used for tvOS client. - -31-08-2016 - d05b11d - 4.5.0 -. added ability to complete issued API calls before application will be suspended (happens by default for iOS). -. added PNConfiguration property called 'completeRequestsBeforeSuspension' which allow to change default behavior (for iOS). -. removed dependency against CocoaLumberjack and replaced with own logger. -. added Carthage support. -. Framework targets build bundle with bitcode enabled by default -. added ability to disable message stripping (removing data which has been added by client during publish with mobile payload) which is enabled by default - -08-07-2016 - 91a5176 - 4.4.1 -. fixed timeout issue which caused by recently added shared NSURLSessionConfiguration configuration -. added tests to cover fixed issue - -08-07-2016 - 0fbbf53 - 4.4.0 -. added ability provide limited customization of NSURLSessionConfiguration -. added bitcode support for frameworks - -17-05-2016 - 2123b8a - 4.3.3 -. fixed podspec dependency version format compatibiliyty with CocoaPods 0.39 - -13-05-2016 - 06b92a1 - 4.3.2 -. fixed issue for case when client doesn't use encryption and message has been received w/o mobile payload to clean up. -. original message (in case of decryption error) will be passed into associatedObject of PNStatus error instance. - -12-05-2016 - 9d23825 - 4.3.1 -. fixed issue with PNNumber on 32bit system, when passed NSNumber instance created from unix-timestamp multiplied on 10000000 -. fixed message content descryption in case if it has been sent along with mobile push payload -. mobile push payload removed from received message -. 'pn_other' key has been removed and original object will be returned in delegate callback (this field used with message encryption and/or mobile push payload). - -03-05-2016 - ce8b146 - 4.3.0 -. added Pub/Sub V2 API support -. added message filtering basing on published message metadata -. added ability to publish message with additional metadata for filtering purposes -. added generics to collection properties and arguments -. added nulability annotations -. updated tests -. updated inline documentation formatting -. fixed occupancy value storage for state-change (it will be set if available) -. fixed issue with presence here now request where 'nil' passed as channel / group -. fixed script responsible for module map update in built frameworks -. fixed 'Universal Startic Frameork (iOS)' to use correct platform -. added missing files to Mac Framework - -02-09-2016 - ad5d8a3 - 4.2.7 -. changed way how heartbeat state notification is set. Now it can be specified in heartbeatNotificationOptions bitfield property using PNHeartbeatNotificationOptions options. - -02-09-2016 - 161f2e8 - 4.2.6 -. added new property to PNConfiguration class called notifyAboutFailedHeartbeatsOnly which allow to configure client to notify not only about failed heartbeat statuses but for success as well. - -01-27-2016 - a5dd54a - 4.2.5 -. added private persistent storage which allow to keep crucial data safe on device. -. added new target to build dynamic framework for tvOS -. fixed issue with time token precision verification in case if non-PubNub's time token value has been passe. - -01-12-2016 - 8cfef05 - 4.2.4 -. fixed issue because of which client may not restore subscription on list of channels which has been left after previous unsubscription request - -12-20-2015 - 4210650 - 4.2.3 -. fixed unsubscription issue because of which time token didn't get reset if there is no more channels on which client may continue subscription -. fixed issue with -unsubscribeFromAll which may issue unwanted subscribe requests in case if method call followed by subscribe method call - -12-14-2015 - defff35 - 4.2.2 -. added ability to build static library based frameworks (universal as well) -. added Fabric support - -12-10-2015 - 0e6027c - 4.2.1 -. fixed cient state cache issue because of which channel group state itself get updated even if state has been changed for one of channels from this group. - -12-02-2015 - f77cd7d - 4.2.0 -. extended subscribe API with ability to specify arbitrarily time token to catch up from -. added ability to specify time tokens not only as 17 digit, but time interval from NSDate acceptable too -. added stringified representation for category and operation fields. -. removed client initialisation code which affected PNLogger configuration -. fixed Mac OSX target and scripts for dynamic framework creation - -11-24-2015 - 5d86110 - 4.1.4 -. added watchOS deployment information to PubNub.podspec file - -11-20-2015 - 17b4417 - 4.1.3 -. adjusted Base64 decoding settings which will allow to decode encrypted messages from some clients which changed base64 encoding algorithms - -11-16-2015 - 151de6e - 4.1.2 -. fixed listener 'disconnect' status handling after client stumbled on network issues and reported 'unexpected disconnect' -. fixed issue because of which string has been stored inside of serviceData for PNErrorStatus created from NSError -. logger will print out current verbosity level information every time when it will be changed -. all components (except core components) will add information about component to log output in format -. changed 'build configuration' from Debug to Release for framework building targets. -. updated demo projects to correctly handle disconnection event (which happen for unsubscribe operation not for subscribe) - -10-22-2015 - 0fbec04 - 4.1.1 -. fixed memory issues with PNNetwork instance -. removed reprecated string encoding methods - -10-15-2015 - 75dd61c - 4.1.0 -. version bump because of backward compatible changes in public interface -. added ability to build dynamic frameworks for iOS 8.0+ - -10-14-2015 - 3fbb92d - 4.0.8 -. exposed heartbeat error to -client:didReceiveStatus: -. fixed ping triggering logic after corner case with network issues - -10.03-2015 - b7a8ff3 - 4.0.7 -. fixed issue which prevented proper -retry execution. - -10-01-2015 - ca7cc55 - 4.0.6 -. updated logger macro usage -. updated Podspec file organization -. downgraded deployment target in Podspec file from 8.0 to 7.0 - -09-20-2015 - 1587492 - 4.0.5 -. suppressed designated initializer warnings -. added client information class -. added conditional device ID specification in request constructor -. added ObjC/Swift test for crypto issue -. fixed issue with messages decryption in history and real-time messaging API - -09-02-2015 - 82b22f5 - 4.0.4 -. fixed issue with missing presence event handling -. fixed subscriber parser issue because of which channel group name and actual channel changed their places in -status object for presence event. -. fixed non-multiplexing subscription issue -. added additional presence events tests - -07-24-2015 - 661d857 - 4.0.3 -. fixed and changed data types for few data objects (which caused crash in swift environment) -. added custom 'User-Agent' header field -. fixed size tests to handle updated packet size during tests -. Fixed Podfile -. removed CocoaPods post-install script from Podfile -. changed test environment check - -07-13-2015 - a9c8c46 - 4.0.2 -. replaced AFNetworking with native NSURLSession wrapper -. fixed podspec to suppress warnings which appeared because private headers has been exposed to public -. fixed code which had warnings from clang -. fixed issues with composed message publish (with mobile push payloads) -. fixed demo application which provided wrong logger configuration for log file size -. fixed issue with number publishing -. if empty array of channels passed to enable push notifications SDK will report error -. added 'associatedObject' field to PNErrorStatus (for now only for decryption error on live feed) -. in case of decryption error only status object will arrive to lisetner (-client:didReceiveMessage: won't be called) -. fixed logger levels manipulation -. fixed inability to publish mobile gateway payloads only - -06-30-2015 - bb6a001 - 4.0.1 -. updated documentation hosted by CocoaPods - -06-30-2015 - 8a76beb - 4.0 -. The new, refactored PN 4.0 for iOS is Here! - -06-09-2015 - c76f36e - 3.7.11 - -. allow nested client states -. handle reachability callbacks in separate queue - -04-29-2015 - 50ee54b - 3.7.10.8 - -. parser adjustment - -04-29-2015 - 3f319f53 - 3.7.10.7 - -. added check to ensure what CFRelease at least will receive non-NULL object (even in same frame) -. fixed condition collision when server respond with non keep alive connection header and malformed data at once -. documentation clean up according to clang warnings -. switch from dispatch_data_t to NSMutableData as read buffer - -04-16-2015 - d171ec50 - 3.7.10.6 - -. unschedule streams from run-loop and let streamClose function only release resources -. additinal memory protection -. created additional reference on dispatch_data_t object from inside of PNResponseDeserialize -parseBufferContent:withBlock: method with attempt to prevent ARC from releasing last reference on passed buffer from outside of the method - -04-14-2015 - 37efc2dc - 3.7.10.5 - -. fixed access rights population from upper layers to channel groups -. adjusted +connectingClientWithConfiguration: constructor methods to synchronise delegate assignment -. removed race of conditions with look up timer in PNReachability -. streams configuration done through local variables to make sure what till full configuration complete class properties will be intact -. returned back to target action behaviour in notification handling. -. fixed potential memory issues -. optimised memory allocation for read amount of data (will be reduced in size if required) - -04-11-2015 - cd5870bb - 3.7.10.4 - -. fixed memory issues -. added new subscriptionMaximumIdleTime PNConfiguration property which allow to alter time after which subscription stream should re-initialise -. updated PNReachability to re-launch SCNetworkReachability in case if it reported 'not reachable' and at the same time interface has assigned address and time API completed successfully -. fix participants method related to pull request -. allocation on stack for some resources -. added spin lock to protect PNChannel cache from changes on different threads -. fixed wake up time crash inside of PNConnection -. storing copy of identifier passed to async operation -. moved copy outside of asynchronous block -. changed message publish API method signature to request compliance with NSCopying protocol -. PNMessage instance will copy passed object (which should be posted) - -03-26-2015 - d0367a49 - 3.7.10.3 - -. adjusted read buffer behavior -. changed destruction queue for read buffer internals - -03-25-2015 - 5549d1e4 - 3.7.10.2 - -. fixed crash caused by incomplete network layer configuration (only for deployment target lower then 6.x) - - -03-22-2015 - 56584a01 - 3.7.10.1 - -. removed debug PN_APP_EXTENSION macro from code - - -03-20-2015 - 189923b7 - 3.7.10 - -. added additional debug informatino for timeout log entry -. fixed subscription on new channel during subscription time token update process -. adjusted de-serializer -. updated soe tests which used old API -. migrated read buffer to GCD data objects and changed raw bytes parsing mechanism -. added PN_APP_EXTENSION macro to exclude from client's code on compile time code which is not compatible with extensions - - -03-12-2015 - c379c6d4 - 3.7.9.3 - -. fixed heartbeat timer. - - -03-12-2015 - cee45ef7 - 3.7.9.2 - -. adjustment in context objects used in CoreFoundation API to make sure that they will keep reference on object and nullify reference on it on release. -. fix typo in method signature thanks to Sai Shenoy. - - -03-04-2015 - 67a3042e - 3.7.9.1 - -. fixed general notification sending and crash on workspace sleep event on Mac OS - -03-04-2015 - 47b7b6c3b - 3.7.9 - -. fixed un-subscription from channel groups with enabled presence observation -. fixed new callback mechanism for channel object state request error -. fixed callbacks call logic which is passed along with API method - -02-23-2015 - 0359486 - 3.7.8.3 - -. fixed issue cause by inappropriate place where private queue has been released for PubNub client - - -02-14-2015 - 6518b765 - 3.7.8.2 - -. changed removeChannelFromCache method behaviour - -02-13-2015 - 232506d - 3.7.8.1 - -. moved DNS cache clearing control to PNConfiguration and exposed to the user - -02-07-2015 - f9d96dc - 3.7.8 - -. fixed issue when among of flushed postponed method calls is the one of the same type of operation which currently processed by the client -. reachability change block removed on PubNub client deallocation -. added clean up on events observation during client deallocation -. fixed heartbeat timer -. tweaked PubNub instance clean up - -12-29-2015 - f9d96dc - 3.7.7 - -. fixed singleton code because of which reference on delegate has been used out of sequence outisde of private queue on which it has been sent -. fixed subscription update logic and queue clean up on reschedule during leave cycle -. fixed issue with state flag which prevented client from check whether subscription should be restored using last time token or not -. protected reuquests queue during reschedule process to emilinate posibility send any of them till process completion - -12-18-2015 - 81269a6 - 3.7.6 - -. adjusted way how presence event detected from subscribe stream -. fix request object configuration completion process -. fixed race of conditions with private queue code - -12-16-2015 - 458edbf - 3.7.5 - -. fixed race of conditions during sbuscription cycle update and - -12–16-2015 - 49d44f7 - 3.7.4 -. changed PNMessage object representation -. fixed callbacks for subscription on channels on which client already subscribed -. PNConnection read sream callback tweaked to forward reference on stream right to method which read out data on event -. tweaked request 'time out' timer cancelation -. changed log layout for few objects -. tweaked compound HTTP packet parsing -. created a new method that accepts an option to connect upon instantiation -. compile PubNub as a static library: Pubnub.a -. subscribing to channels with presence, or adding channel presence after subscribed now send presence events -. fixed double encoding of \n \r -. added description as for new client configuration method int README.md -. separated PubNub Objective-C client into separate project which is suitable for usage as static library (as standalone or dependency) or framework (standalone) -. fixed demo application channel information view -. updated APNS demo application -. adjusted client PNCannelGroup initialization code -. adjusted percent-encoding options -. extracted client code into separate project -. updated README.md with information about client usage as static library -. added missing delegate methods description in README.md -. Update source code in UnitTests, remove legacy PNLog usage -. Add test for PNResponseDeserializer - -12-01-2014 - 0fe765c - 3.7.3 -. hardened multithread protection code concerning issues with PNConnection and PNReachability -. strongified some weak pointers to prevent dying before block execution -. demo app improvements / fixes -. if the client receives some unexpected response, it will now be logged -. improvements to PNJSONSerialization class -. Provide ability for shorthand channel groups notation -. improvements made to reachability class -. fixed crash when wrong object was returned inside of associated error object -. fixed bug where message could be double-encrypted when resending of already encrypted message -. internal callbacks now pass queue on which block should be called -. added new connectingClientWithConfiguration method -. improved connection retry logic when connection channel reschedules incomplete requests - -10-30-2014 - 57844d8 - 3.7.2 -. Fixed decryption of history message bug - -10-25-2014 - 594691c - 3.7.1 -. Fixed bug in cryptohelper which fixes encryption - -10-22-2014 - 240fab - 3.7.0 -. Instance-based support -. Background thread support -. Thread safety support -. Channel Groups support - -10-17-2014 - 4a945 - 3.6.8 -. Enabled TLS auto-negotiation - -9-10-2014 - f066f - 3.6.7 -. Explicitly clean NSURLCache (optimization) -. Compressed logger on filesystem -. prefixed with pn_ category methods - -8-22-2014 - 61c63 - 3.6.6 -. Support for socket reconnect during during subscription restore process -. Fixed a crash bug in logger - -8-11-2014 - 4c1c1 - 3.6.5 -. added more verbosity to comments for clarity -. refactored out some redundant conditional expressions -. removed legacy comments about blocks only triggering on last requested calls -. fixed a crash condition possible when switching between WiFi and Cellular -. helper method support for sending GCM, APNS, and Native PubNub messaging in a single publish message -. sendMessage now has a storeInHistory flag which determines whether or not a message will be stored in history -. fixed a couple issues surrounding potential for hangs around postpones (procedural locks) -. willSuspendWithBlock delegate method added which allows a user to perform actions before suspend on background -. improved performance when full logging is enabled -. fixed potential hang when client is suspended during embryonic connection/reconnection phases -. added debug proxy support, tested using Charles Proxy - - -6-24-2014 - 8491d - 3.6.4 -. Swift compatibility -. Fixed postpone race condition -. Added willSuspendWithBlock delegate - -6-17-2014 - bdfed87 - 3.6.3 -. added PNSDK url param to each request -. fixed crash on PAM grant bug -. leave operation will not block unsubscribe -. fixed indefinite postpone corner case -. added TCP handshake timer in rare cases where device hangs on handshake - - -5-20-2014 - 3.6.2 -. New Demo App -. New presence state change support -. Fixed issue where channel name could be blank during global presence request -. Handling of API throttling response -. Handling of global here now with state -. Fixed issue where there was a subscribe dependency on unsubscribing from presence channels -. Added class based logger which allows dynamic configurable log levels, dump file size and HTTP packets storage at run-time -. Fixed Xcode warnings when PubNub client built for 64bit architecture -. Suppressed Xcode warning by replacement of C functions with utility classes -. Better JSON validation pre-processing -. Added crypto helper reset when empty key is provided -. Fixed issue with "Fetch History" button -. Fixed issue with wrong state in heartbeat after update client state API usage - -3-19-2014 - 3.6.1 -. new presence features -. fixed issue where rapid repeated sub/unsub could hang client -. deprecated and added deprecation warnings for methods that exposed custom presence event behavior - - -02-07-2014 - 3.5.6 -. added ability to send messages compressed -. fix for timetoken race condition on failed leave -. always send apns deviceid in lowercase to PN servers - -01-30-2014 - 3.5.5 -. history can now optionally returned associated timetoken for each message -. didConnectToOrigin is fired when application resumes from background -. fixed an uplink ping bug -. removed unused vars and audited for newlines -. timetoken is now available from didSendMessage delegate in PNMessage reference via date property - - - -01-24-2014 - 3.5.4 -. fixes issues regarding sending/receiving data when going from foreground/background/foreground - -12-23-2013 - 3.5.3 -. added PAM Grant/Revoke functionality -. added PAM features to demo app -. fixed bug where kPNClientUnsubscriptionDidCompleteNotification may be called more than once -. added a UI to the APNS Demo App -. fixed a bug where history request could hang client -. improve reachability state detection time -. fixed bug where requestParticipantsListForChannel completion block may not be called -. make delegate methods report that subscription is restored upon suspend resume -. make encryption methods public in order to encrypt/decrypt external (eg APNS) messages -. fork JSONKit to support XCode 5 without warnings -. fixed bug when sending non-default (LMS) sized messages -. removed pncl artifacts from git repo - -11-18-2013 - 3.5.2 -. obscure keys in log files -. fixed an issue when switching from WiFi to Cellular in background with background app configuration -. fixed an issue when enabling presence via the PNChannel constructor -. optimize reconnect-delay performance -. fixed issue when history handle block was not always called on result -. JSONKit support no longer means JSONKit dependence (removed JSONKit requirement by default) -. Expose encryption methods publically -. Better handling of Presence abbreviated response -. Catchup is optional when changing UUID mid-subscribe cycle -. Verify push token is valid before using for APNS methods - -10-08-2013 - 3.5.1 -. unsubscribe on resume race condition removed -. setClientID and setConfiguration to be run mid-subscribe -. socket connections will wait maximum 10s before timeout/retry -. monitor each connection separately during connect/reconnect for connection errors -. changing channels while in background fix -. added an uplink check, which performs a PubNub time ping to verify connectivity in addition to Apple API detection -. added log rotation -- default 20mb max size, via PNMacro.h.40 - kPNLogMaximumLogFileSize -. fixed error handling block for history and unsubscribe when app is running in background -. fixed typos in error messages -. added newlines to source files -. fixed issue because of which in certain situation sub/unsub/presence requests failed -. fixed issue because of which client was able to postpone requests while workspace is sleeping (Mac OS) -. added error code in case if developer will try to issue requests while workspace is sleeping -. running enablePresenceObservation before subscribeOnChannel hangs app -. never reset the UUID unless setClientIdentifier is run -. fixed issue where quick succession of enable/disable presence would hang the subsequent subscribe on the same channel -. fixed bug where when running disablePresenceObservationForChannel: it would not allow subscribe to channel afterwards - -09-16-2013 - 3.5.0 -improvements all around concerning: -. iOS 7 tests complete and passing - -. handling of radio transitions (WiFia -> WiFib -> 3G -> Edge -> No Service -> 3G -> WiFib -> ...) -. wake detection handling on iOS -. support for Mac OS maintenance wakes / sleeps -. catchup (resume) after wake -. JSON parsing -. Error handling from 3rd-party mobile network proxies -. PubNub AES compatibility -. handling of idle network connections -. Logging engine -. Reachability engine -. ARC detection reminders for misconfigurated applications - -07-17-2013 -. fixed bug of publish resume on reconnect -. misc networking reconnect issues under various network switching scenarios - -06-25-2013 -. fixed connection issue on race condition when switching between networks -. added paging history demo to demo iPad app - -06-20-2013 -. nil deviceToken handling on APNS methods -. added iOS 3.3 encryption handling support - -06-18-2013 -. added ULS methods -. fix for subscribe bug on sleep resume after lock/sleep -. added totally customizable history request -. added setter for cipherKey for dynamic key change support - -06-07-2013 -. 3.4.2 Release -. implements producedural method calls for quick start usage of PubNub -. fixes race conditions when connecting/disconnecting quickly - -05-31-2013 -. adding APNSVideoDemo -. adding APNSVideo cert concatenizer - -05-13-2013 -. make channel presence idempotent -. connection and reliability improvements -. force a disconnect after 5 minutes if connection zombies -. fixed bug in PNReachability -. added better handling of server-side SSL messages -. iOS and MacOS code bases are now unified - -04-23-2013 -. revved HOWTO lib files - -04-04-2013 -. special char support - -04-03-2013 -. reset state after disconnecting without reconnect enabled - -04-02-2013 -. fixing connection loss bug on sleep - -04-01-2013 -. support for flux-capacitor and hydroelectric-powered Apple devices -. fixed issue relating to reconnecting with presence enabled -. fixing some XCode warnings - -03-29-2013 -. fixed issue when encountered issues during repeated sub/unsub/sub, with and without presence - -03-26-2013 -. fix for NSRangeException integer overflow bug - -03-20-2013 -. aes encryption support added via new constructor -. when encryption is enabled and non-encrypted data is received, "DECRYPTION_ERROR" is displayed instead. - -03-08-2013 -. fixed resume on unlock bug - -02-28-2013 -. better handling of gzip responses -. better handling of corner-case malformed json -. removed xcode warnings - -02-22-2013 -. first production release of new 3.4 client! this is a COMPLETE, professional rewrite of the iOS client. -. please see the README and the example iPad app for usage instructions. more docs on the way! diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 000000000..ddc8cddc0 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,804 @@ +## [v4.13.0](https://github.com/pubnub/objective-c/releases/tag/v4.13.0) +February 9 2020 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.12.0...v4.13.0) + +#### Added +- Add additional functionality which allow to filter out received Objects (memberships, members, spaces or users) by specified criteria. +- Add new parameters which allow specify criteria (list of field names with sort direction `:asc` / `:desc` for each) order in which objects appear in response. +- Add scripts which is responsible for SDK release roll out from tag in private repository. + +#### Modified +- Presence state should set / fetch fail w/o actual request to server when list of channels / groups and uuid is missing. +- Increase covered up to 85% with integration tests on all functionality (75%) and unit tests on builder-pattern / request interface. + +#### Fixed +- Fix issue because of which `connected` interface didn't called completion block when `managePresenceListManually` is set to `NO`. +- Fix issue because of which `includeMetadata` and `includeMessageActions` flags has been swapped. +- Fix issue because of which actual retry never happened in case if subscription failed because PAM reported that client with current `authKey` doesn't have access rights to channels / groups. +- Fix issue which didn't reset subscribe time-token when `keepTimeTokenOnListChange` is set to `NO` and `tryCatchUpOnSubscriptionRestore` is set to `YES`. +- Remove 'macOS' from supported platforms in iOS Framework targets and rely on command-line specified flags to build Framework with Catalyst support. + +## [v4.12.0](https://github.com/pubnub/objective-c/releases/tag/v4.12.0) +December 5 2019 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.11.1...v4.12.0) + +#### Added +- Add new interfaces (builder-based API also has been modified) which allow pass device push token / identifier (not only NSData) using specific push service type. +- Add class which simplify basic notifications composition for multiple platforms / providers at once. +#### Modified +- Expose utility class which allow to manage data in `Keychain` (iOS). +#### Fixed +- Fix non-JSON response handling from `History` v2 endpoints when storage add-on not enabled for used keys. + +## [v4.11.1](https://github.com/pubnub/objective-c/releases/tag/v4.11.1) +November 25 2019 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.11.0...v4.11.1) + +#### Added +- Add proper Catalyst framework support with separate build target `XCFramework (Catalyst)` which is bundled with binaries which allow it to be used for: device / simulator and macOS. +#### Modified +- Change build scripts which now produce `XCFrameworks` with separate slices for device and simulator instead of `fat` binaries created with `lipo`. +#### Fixed +- Fix headers visibility in frameworks project. + +## [v4.11.0](https://github.com/pubnub/objective-c/releases/tag/v4.11.0) +October 8 2019 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.10.1...v4.11.0) + +#### Added +- Add Message Actions API support which allow to: add, remove and fetch previously added actions. +- Add new method to simple interface and argument to builder pattern interface which allow to fetch previously added actions and message metadata. +- Add new argument to history builder pattern to fetch message metadata. +- Add new callback to `PNObjectEventListener` to track `message actions` events. +#### Modified +- Enhance publish sequence manager performance by making save only if any change has been done. + +## [v4.10.1](https://github.com/pubnub/objective-c/releases/tag/v4.10.1) +August 30 2019 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.10.0...v4.10.1) + +#### Fixed +- Add missing import of Objects API interface to frameworks umbrella header. + +## [v4.10.0](https://github.com/pubnub/objective-c/releases/tag/v4.10.0) +August 27 2019 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.9.0...v4.10.0) + +#### Added +- Add support for Space Objects API. +- Add support for User Objects API. +- Add support for Membership / Member Objects API. +- Add new callback to `PNObjectEventListener` to track `space` events. +- Add new callback to `PNObjectEventListener` to track `user` events. +- Add new callback to `PNObjectEventListener` to track `membership` events. + +## [v4.9.0](https://github.com/pubnub/objective-c/releases/tag/v4.9.0) +August 8 2019 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.8.11...v4.9.0) + +#### Added +- Add support for Signal API. +- Add new callback to `PNObjectEventListener` to track `signal` events. +#### Modified +- Remove deprecated `stripMobilePayload` configuration option from SDK along with code, which used it. +- Disable pipelining for requests. +#### Fixed +- Fix crash which is caused by attempt to de-duplicate message which PubNub client wasn't able to decrypt with configured `cipherKey`. + +## [v4.8.11](https://github.com/pubnub/objective-c/releases/tag/v4.8.11) +July 15 2019 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.8.10...v4.8.11) + +#### Added +- Add macOS support for iOS frameworks. + +## [v4.8.10](https://github.com/pubnub/objective-c/releases/tag/v4.8.10) +June 27 2019 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.8.9...v4.8.10) + +#### Modified +- Update outdated configuration object inline help documentation. +#### Fixed +- Fix subscribe request timeout missing `reconnect` event. +- Fix empty heartbeat value set to minimum on configuration copy. + +## [v4.8.9](https://github.com/pubnub/objective-c/releases/tag/v4.8.9) +June 17 2019 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.8.8...v4.8.9) + +#### Added +- Add ability to specify FCM token for APNS API. +#### Fixed +- Fix system version parsing when OS language set to Japanese. + +## [v4.8.8](https://github.com/pubnub/objective-c/releases/tag/v4.8.8) +May 16 2019 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.8.7...v4.8.8) + +#### Modified +- Add value wrapping around heartbeat 'value'. +- Separate tests project from main workspace. +#### Fixed +- Fix universal Frameworks build script. + +## [v4.8.7](https://github.com/pubnub/objective-c/releases/tag/v4.8.7) +March 28 2019 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.8.6...v4.8.7) + +#### Modified +- Resolve project warnings, which caused issues with Carthage framework build. + +## [v4.8.6](https://github.com/pubnub/objective-c/releases/tag/v4.8.6) +March 26 2019 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.8.5...v4.8.6) + +#### Fixed +- Fix builder API interface visibility for frameworks. + +## [v4.8.5](https://github.com/pubnub/objective-c/releases/tag/v4.8.5) +March 16 2019 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.8.4...v4.8.5) + +#### Modified +- Move `Keychain` records update calls to secondary queue (sometime `Keychain` take too much time to update and block main queue). +#### Fixed +- Fix message count result object header file visibility for frameworks. + +## [v4.8.4](https://github.com/pubnub/objective-c/releases/tag/v4.8.4) +March 11 2019 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.8.3...v4.8.4) + +#### Added +- Add ability to retrieve number of messages in specified channels using timetoken as reference date. +#### Modified +- Remove channel names sorting from utility class (because of which new API wasn't able to work properly). + +## [v4.8.3](https://github.com/pubnub/objective-c/releases/tag/v4.8.3) +November 13 2018 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.8.2...v4.8.3) + +#### Added +- Add ability to get / set presence state for multiple channel / groups (at once). + +## [v4.8.2](https://github.com/pubnub/objective-c/releases/tag/v4.8.2) +November 7 2018 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.8.1...v4.8.2) + +#### Added +- Add ability to set arbitrary query parameters during API call. + +## [v4.8.1](https://github.com/pubnub/objective-c/releases/tag/v4.8.1) +June 21 2018 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.8.0...v4.8.1) + +#### Modified +- Change client's data storage on macOS from `Keychain` to file-based. + +## [v4.8.0](https://github.com/pubnub/objective-c/releases/tag/v4.8.0) +June 19 2018 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.7.8...v4.8.0) + +#### Added +- Add methods which allow to manually manage presence. +- Add client configuration option to enable manual presence list management. +#### Fixed +- Fix implicit `self` retain in block warnings. + +## [v4.7.8](https://github.com/pubnub/objective-c/releases/tag/v4.7.8) +May 7 2018 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.7.7...v4.7.8) + +#### Modified +- Silence implicit `self` usage in blocks. +- Move listeners collection access serialization on queue to prevent access to property during non-atomic store. + +## [v4.7.7](https://github.com/pubnub/objective-c/releases/tag/v4.7.7) +February 14 2018 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.7.6...v4.7.7) + +#### Fixed +- Fix issue because of which channel(s) and/or group(s) wasn't able to maintain user's presence with heartbeat. +- Fix log file attributes to prevent their backup locally or to iCloud. + +## [v4.7.6](https://github.com/pubnub/objective-c/releases/tag/v4.7.6) +February 1 2018 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.7.5...v4.7.6) + +#### Fixed +- Fix issue because of which new `connected` presence API wasn't able to `disconnect` user. +- Fix behavior during unsubscribe - connect event won't fire after user `disconnect`, because there is no new channels about which listeners should be notified. + +## [v4.7.5](https://github.com/pubnub/objective-c/releases/tag/v4.7.5) +December 16 2017 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.7.4...v4.7.5) + +#### Added +- Add ability to change client's presence without actual subscription to channels/groups (based on heartbeat and presence leave API). +#### Fixed +- Fix Xcode warnings about partly API availability. +- Fix race of conditions for logger. +- Fix pre-compile macro usage to send metrics when code is running on device with pre-iOS 10 version. + +## [v4.7.4](https://github.com/pubnub/objective-c/releases/tag/v4.7.4) +November 15 2017 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.7.3...v4.7.4) + +#### Added +- Add ability to completely disable PubNub's client logger with `PUBNUB_DISABLE_LOGGER` build configuration macro. + +## [v4.7.3](https://github.com/pubnub/objective-c/releases/tag/v4.7.3) +October 31 2017 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.7.2...v4.7.3) + +#### Added +- Add `suppressLeaveEvents` parameter to `PNConfiguration` which allow to suppress presence leave API call on unsubscription. +#### Fixed +- Fix issue because of which there was a chance to create second subscribe request while subscription loop has been restarted with new timetoken. + +## [v4.7.2](https://github.com/pubnub/objective-c/releases/tag/v4.7.2) +October 16 2017 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.7.1...v4.7.2) + +#### Added +- Add new method to unsubscribe from all channels and groups with completion block. +#### Modified +- Remove `receiver-is-weak` clang warning suppression since it has been deprecated. +#### Fixed +- Fix issue because of which unsubscribe requests didn't terminated previous long-poll subscribe request. + +## [v4.7.1](https://github.com/pubnub/objective-c/releases/tag/v4.7.1) +September 15 2017 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.7.0...v4.7.1) + +#### Fixed +- Fix telemetry shared data access issues. + +## [v4.7.0](https://github.com/pubnub/objective-c/releases/tag/v4.7.0) +August 28 2017 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.6.3...v4.7.0) + +#### Added +- Add `delete message` functionality. +#### Modified +- Remove deprecated flag from `stripMobilePayload` so it will only print out deprecation warning in console w/o actual warning in Xcode. +- Adjust telemetry cache clean up interval. +#### Fixed +- Fix issue with wildcard subscription and presence events which treated as messages. +- Fix issue with `copyWithConfiguration` method which removed client itself from state change observers. +- Fix de-duplication messages cache size issue. +- Fix issue because of which requests metrics gathered only if `metrics` log level has been enabled. + +## [v4.6.3](https://github.com/pubnub/objective-c/releases/tag/v4.6.3) +August 21 2017 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.6.2...v4.6.3) + +#### Fixed +- Fix bug with channel group subscription from previous release. + +## [v4.6.2](https://github.com/pubnub/objective-c/releases/tag/v4.6.2) +July 19 2017 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.6.1...v4.6.2) + +#### Added +- Add ability to gather service performance information. +- Add new error category `PNRequestURITooLongCategory` to properly handle and report issues to callbacks and completion blocks. +#### Modified +- Remove unsubscribe request cancellation by sequential call to subscribe API. +- Reorganize code which is responsible for subscribe requests cancellation. +#### Fixed +- Fix issue with macOS Keychain access in multi-user environment when none authorized. +- Fix inline documentation. + +## [v4.6.1](https://github.com/pubnub/objective-c/releases/tag/v4.6.1) +April 26 2017 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.6.0...v4.6.1) + +#### Fixed +- Fix dependency analysis warnings for Fabric integration via CocoaPods. + +## [v4.6.0](https://github.com/pubnub/objective-c/releases/tag/v4.6.0) +March 31 2017 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.5.15...v4.6.0) + +#### Added +- Add support for presence deltas. + +## [v4.5.15](https://github.com/pubnub/objective-c/releases/tag/v4.5.15) +March 15 2017 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.5.14...v4.5.15) + +#### Added +- Add `pn-` prefix for client-provided unique user identifiers. +- Add `OSSpinLock` and `os_unfair_lock` switch. +#### Modified +- Change pre-compile macro for URLSession metrics gathering delegate usage. +- Persistent UUID storage and tests deprecated API silenced. + +## [v4.5.14](https://github.com/pubnub/objective-c/releases/tag/v4.5.14) +March 8 2017 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.5.13...v4.5.14) + +#### Fixed +- Fix uuid and auth keys encoding in query string. + +## [v4.5.13](https://github.com/pubnub/objective-c/releases/tag/v4.5.13) +March 3 2017 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.5.12...v4.5.13) + +#### Added +- Add TCP metrics output to PubNub logs (added corresponding logger level). +- Add information about `stripMobilePayload` deprecation to Xcode console with guide what can be done next. +#### Modified +- Deprecate `stripMobilePayload` property. + +## [v4.5.12](https://github.com/pubnub/objective-c/releases/tag/v4.5.12) +January 5 2017 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.5.11...v4.5.12) + +#### Modified +- Change default origin. + +## [v4.5.11](https://github.com/pubnub/objective-c/releases/tag/v4.5.11) +December 16 2016 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.5.10...v4.5.11) + +#### Modified +- Revert default origin reverted back to `pubsub.pubnub.com` + +## [v4.5.10](https://github.com/pubnub/objective-c/releases/tag/v4.5.10) +December 16 2016 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.5.9...v4.5.10) + +#### Modified +- Change object which is stored in cache which is used for de-duplication. +- Change default origin. + +## [v4.5.9](https://github.com/pubnub/objective-c/releases/tag/v4.5.9) +November 26 2016 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.5.8...v4.5.9) + +#### Fixed +- Fix cached messages identifier list clean up. + +## [v4.5.8](https://github.com/pubnub/objective-c/releases/tag/v4.5.8) +November 25 2016 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.5.7...v4.5.8) + +#### Added +- Add new configuration property `maximumMessagesCacheSize` which allow to enable (when non-zero value passed) messages de-duplication logic. + +## [v4.5.7](https://github.com/pubnub/objective-c/releases/tag/v4.5.7) +November 20 2016 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.5.6...v4.5.7) + +#### Added +- Add additional service response check and wrap (in case if still somehow non-dictionary reached data objects). +- Add `APPLICATION_EXTENSION_API_ONLY` flag to `PubNub.podspec` and Framework targets. +#### Modified +- Remove `PNClass` and added manual service response parsers registration (in attempt to solve third-party classes initialization at run-time). +#### Fixed +- Fix issue because of which `reverse` flag had same value as `include timetokens`. + +## [v4.5.6](https://github.com/pubnub/objective-c/releases/tag/v4.5.6) +November 16 2016 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.5.5...v4.5.6) + +#### Added +- Add multi-channel history request API to API call builder interface. +- Add ability to subscribe / unsubscribe to/from channels and/or groups with single API call. +- Add ability to receive message sender identifier. +- Add verbose logs around subscription loop timetoken usage. +#### Modified +- Deprecate `restoreSubscription` property. + +## [v4.5.5](https://github.com/pubnub/objective-c/releases/tag/v4.5.5) +November 2 2016 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.5.4...v4.5.5) + +#### Added +- Add ability to specify for how long published message should be stored in channel's storage (added into API call builder interface) +#### Fixed +- Fix `instanceID` which is placed inside of `PNConfiguration` - if it require to setup new client it will have same `instanceID`. Now `instanceID` is set per PubNub client instance. + +## [v4.5.4](https://github.com/pubnub/objective-c/releases/tag/v4.5.4) +October 27 2016 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.5.3...v4.5.4) + +#### Added +- Add application extension environment support (`applicationExtensionSharedGroupIdentifier` PNConfiguration property). +- Add `fire` and `replicate` options to publish API call builder. +- Add messages count threshold configuration property (`requestMessageCountThreshold`) which allow to specify how many messages client can receive without `PNRequestMessageCountExceededCategory` status object sending (to `-client:didReceiveStatus:` observer callback). +- Add `instanceid` query property to simplify multi client debug. +- Add `requestid` query property for each request to force proxy servers to not cache responses and debug purposes. +- Add builder pattern for API calls. +#### Modified +- Updated Fastlane configuration to speed test stage up. +#### Fixed +- Fix issue with shared auto-updating user calendar which is used with logger (calendar instance created every time when timestamp information is required). + +## [v4.5.3](https://github.com/pubnub/objective-c/releases/tag/v4.5.3) +September 26 2016 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.5.2...v4.5.3) + +#### Added +- Add `NS_SWIFT_NAME` with Swift equivalent specified in it to all public API. This allow to prevent Swift function signature generator from changing it between Swift releases. + +## [v4.5.2](https://github.com/pubnub/objective-c/releases/tag/v4.5.2) +September 13 2016 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.5.1...v4.5.2) + +#### Added +- Add published message sequence number to publish API call (this information arrive as message envelope and used for issues debugging). +- Add logger method which will allow to use it from Swift. +- Add automatic heartbeat interval using formula and heartbeat value for calculated value. +- Add `channel` and `subscription` properties to represent channel from which event arrived and actual data stream name which is used by PubNub client for subscription. +#### Modified +- Deprecate `actualChannel` and `subscribedChannel` in favor of `channel` and `subscription` (properties still available, but will be eventually will be completely removed). + +## [v4.5.1](https://github.com/pubnub/objective-c/releases/tag/v4.5.1) +September 2 2016 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.5.0...v4.5.1) + +#### Modified +- Change default logs directory which should be used for tvOS client. + +## [v4.5.0](https://github.com/pubnub/objective-c/releases/tag/v4.5.0) +August 31 2016 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.4.1...v4.5.0) + +#### Added +- Add ability to complete issued API calls before application will be suspended (happens by default for iOS). +- Add PNConfiguration property called `completeRequestsBeforeSuspension` which allow to change default behavior (for iOS). +- Add ability to disable message stripping (removing data which has been added by client during publish with mobile payload) which is enabled by default +- Add Carthage support. +#### Modified +- Framework targets build bundle with bitcode enabled by default. +- Remove dependency against `CocoaLumberjack` and replaced with own logger. + +## [v4.4.1](https://github.com/pubnub/objective-c/releases/tag/v4.4.1) +July 8 2016 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.4.0...v4.4.1) + +#### Added +- Add tests to cover fixed issue. +#### Fixed +- Fix timeout issue which caused by recently added shared `NSURLSessionConfiguration` configuration. + +## [v4.4.0](https://github.com/pubnub/objective-c/releases/tag/v4.4.0) +July 8 2016 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.3.3...v4.4.0) + +#### Added +- Add ability provide limited customization of `NSURLSessionConfiguration`. +- Add bitcode support for frameworks. + +## [v4.3.3](https://github.com/pubnub/objective-c/releases/tag/v4.3.3) +May 17 2016 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.3.2...v4.3.3) + +#### Fixed +- Fix podspec dependency version format compatibiliyty with CocoaPods 0.39. + +## [v4.3.2](https://github.com/pubnub/objective-c/releases/tag/v4.3.2) +May 13 2016 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.3.1...v4.3.2) + +#### Added +- Add original message (in case of decryption error) will be passed into `associatedObject` of `PNStatus` error instance. +#### Fixed +- Fix issue for case when client doesn't use encryption and message has been received w/o mobile payload to clean up. + +## [v4.3.1](https://github.com/pubnub/objective-c/releases/tag/v4.3.1) +May 12 2016 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.3.0...v4.3.1) + +#### Modified +- `pn_other` key has been removed and original object will be returned in delegate callback (this field used with message encryption and/or mobile push payload). +- Mobile push payload removed from received message. +#### Fixed +- Fix issue with PNNumber on 32bit system, when passed NSNumber instance created from unix-timestamp multiplied on 10000000. +- Fix message content descryption in case if it has been sent along with mobile push payload. + +## [v4.3.0](https://github.com/pubnub/objective-c/releases/tag/v4.3.0) +May 3 2016 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.2.7...v4.3.0) + +#### Added +- Add Pub/Sub V2 API support. +- Add message filtering basing on published message metadata. +- Add ability to publish message with additional metadata for filtering purposes. +- Add generics to collection properties and arguments. +- Add nulability annotations. +#### Modified +- Update inline documentation formatting. +- Update tests. +#### Fixed +- Fix occupancy value storage for state-change (it will be set if available). +- Fix issue with presence here now request where 'nil' passed as channel / group. +- Fix script responsible for module map update in built frameworks. +- Fix `Universal Startic Frameork (iOS)` to use correct platform. +- Add missing files to Mac Framework. + +## [v4.2.7](https://github.com/pubnub/objective-c/releases/tag/v4.2.7) +September 2 2016 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.2.6...v4.2.7) + +#### Added +- Add `heartbeatNotificationOptions` bitfield to PNConfiguration which can set how heartbeat state reported to listeners (using `PNHeartbeatNotificationOptions`). +#### Modified +- Remove `notifyAboutFailedHeartbeatsOnly` PNConfiguration property in favor of `heartbeatNotificationOptions` bitfield. + +## [v4.2.6](https://github.com/pubnub/objective-c/releases/tag/v4.2.6) +September 2 2016 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.2.5...v4.2.6) + +#### Added +- Add new property to PNConfiguration class called `notifyAboutFailedHeartbeatsOnly` which allow to configure client to notify not only about failed heartbeat statuses but for success as well. + +## [v4.2.5](https://github.com/pubnub/objective-c/releases/tag/v4.2.5) +January 27 2016 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.2.4...v4.2.5) + +#### Added +- Add private persistent storage which allow to keep crucial data safe on device. +- Add new target to build dynamic framework for tvOS. +#### Fixed +- Fix issue with time token precision verification in case if non-PubNub's time token value has been passe. + +## [v4.2.4](https://github.com/pubnub/objective-c/releases/tag/v4.2.4) +January 12 2016 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.2.3...v4.2.4) + +#### Fixed +- Fix issue because of which client may not restore subscription on list of channels which has been left after previous unsubscription request. + +## [v4.2.3](https://github.com/pubnub/objective-c/releases/tag/v4.2.3) +December 20 2015 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.2.2...v4.2.3) + +#### Fixed +- Fix unsubscription issue because of which time token didn't get reset if there is no more channels on which client may continue subscription. +- Fix issue with `-unsubscribeFromAll` which may issue unwanted subscribe requests in case if method call followed by subscribe method call. + +## [v4.2.2](https://github.com/pubnub/objective-c/releases/tag/v4.2.2) +December 14 2015 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.2.1...v4.2.2) + +#### Added +- Add ability to build static library based frameworks (universal as well). +- Add Fabric support. + +## [v4.2.1](https://github.com/pubnub/objective-c/releases/tag/v4.2.1) +December 10 2015 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.2.0...v4.2.1) + +#### Fixed +- Fix client state cache issue because of which channel group state itself get updated even if state has been changed for one of channels from this group. + +## [v4.2.0](https://github.com/pubnub/objective-c/releases/tag/v4.2.0) +December 2 2015 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.1.4...v4.2.0) + +#### Added +- Add ability to set arbitrarily time token to catch up from into Subscribe API. +- Add ability to specify time tokens not only as 17 digit, but time interval from NSDate acceptable too. +- Add stringified representation for category and operation fields. +#### Modified +- Remove client initialisation code which affected PNLogger configuration. +#### Fixed +- Fix Mac OSX target and scripts for dynamic framework creation. + +## [v4.1.4](https://github.com/pubnub/objective-c/releases/tag/v4.1.4) +November 24 2015 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.1.3...v4.1.4) + +#### Added +- Add watchOS deployment information to PubNub.podspec file. + +## [v4.1.3](https://github.com/pubnub/objective-c/releases/tag/v4.1.3) +November 20 2015 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.1.2...v4.1.3) + +#### Modified +- Update Base64 decoding settings which will allow to decode encrypted messages from some clients which changed base64 encoding algorithms. + +## [v4.1.2](https://github.com/pubnub/objective-c/releases/tag/v4.1.2) +November 16 2015 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.1.1...v4.1.2) + +#### Modified +- Change `build configuration` from Debug to Release for framework building targets. +- Updated demo projects to correctly handle disconnection event (which happen for unsubscribe operation not for subscribe). +- Logger will print out current verbosity level information every time when it will be changed. +- All components (except core components) will add information about component to log output in format ``. +#### Fixed +- Fix listener `disconnect` status handling after client stumbled on network issues and reported `unexpected disconnect`. +- Fix issue because of which string has been stored inside of serviceData for PNErrorStatus created from NSError. + +## [v4.1.1](https://github.com/pubnub/objective-c/releases/tag/v4.1.1) +October 22 2015 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.1.0...v4.1.1) + +#### Modified +- Remove deprecated string encoding methods. +#### Fixed +- Fix memory issues with PNNetwork instance. + +## [v4.1.0](https://github.com/pubnub/objective-c/releases/tag/v4.1.0) +October 15 2015 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.0.8...v4.1.0) + +#### Added +- Add ability to build dynamic frameworks for iOS 8.0+. + +## [v4.0.8](https://github.com/pubnub/objective-c/releases/tag/v4.0.8) +October 14 2015 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.0.7...v4.0.8) + +#### Added +- Exposed heartbeat error to `-client:didReceiveStatus:`. +#### Fixed +- FIx ping triggering logic after corner case with network issues. + +## [v4.0.7](https://github.com/pubnub/objective-c/releases/tag/v4.0.7) +October 3 2015 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.0.6...v4.0.7) + +#### Fixed +- Fix issue which prevented proper `-retry` execution. + +## [v4.0.6](https://github.com/pubnub/objective-c/releases/tag/v4.0.6) +October 1 2015 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.0.5...v4.0.6) + +#### Modified +- Downgrade deployment target in Podspec file from 8.0 to 7.0. +- Update Podspec file organization. +- Update logger macro usage. + +## [v4.0.5](https://github.com/pubnub/objective-c/releases/tag/v4.0.5) +September 20 2015 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.0.4...v4.0.5) + +#### Added +- Add conditional device ID specification in request constructor. +- Add client information class. +- Add ObjC/Swift test for crypto issue. +#### Modified +- Suppress designated initializer warnings. +#### Fixed +- Fix issue with messages decryption in history and real-time messaging API. + +## [v4.0.4](https://github.com/pubnub/objective-c/releases/tag/v4.0.4) +September 2 2015 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.0.3...v4.0.4) + +#### Added +- Add additional presence events tests. +#### Fixed +- Fix subscriber parser issue because of which channel group name and actual channel changed their places in status object for presence event. +- Fix non-multiplexing subscription issue. +- Fix issue with missing presence event handling. + +## [v4.0.3](https://github.com/pubnub/objective-c/releases/tag/v4.0.3) +July 24 2015 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.0.2...v4.0.3) + +#### Added +- Add custom `User-Agent` header field. +#### Modified +- Remove CocoaPods post-install script from Podfile. +- Change test environment check. +#### Fixed +- Fix and change data types for few data objects (which caused crash in swift environment). +- Fix size tests to handle updated packet size during tests. +- Fix Podfile. + +## [v4.0.2](https://github.com/pubnub/objective-c/releases/tag/v4.0.2) +July 13 2015 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.0.1...v4.0.2) + +#### Added +- Add `associatedObject` field to PNErrorStatus (for now only for decryption error on live feed). +#### Modified +- Report real-time messages decryption error to `-client:didReceiveMessage:`. +- Report error if empty array of channels passed to enable push notifications. +- Replace AFNetworking with native NSURLSession wrapper. +#### Fixed +- Fix issues with composed message publish (with mobile push payloads). +- Fix inability to publish mobile gateway payloads only. +- Fix issue with number publishing. +- Fix code which had warnings from clang. +- Fix logger levels manipulation. +- Fix demo application which provided wrong logger configuration for log file size. +- Fix podspec to suppress warnings which appeared because private headers has been exposed to public. + +## [v4.0.1](https://github.com/pubnub/objective-c/releases/tag/v4.0.1) +June 30 2015 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v4.0...v4.0.1) + +#### Modified +- Update documentation hosted by CocoaPods. + +## [v4.0.0](https://github.com/pubnub/objective-c/releases/tag/v4.0) +June 30 2015 + +[Full Changelog](https://github.com/pubnub/objective-c/compare/v3.7.11...v4.0) + +#### Added +- The new, refactored PN 4.0 for iOS is Here! diff --git a/Example/PubNub Example.xcodeproj/project.pbxproj b/Example/PubNub Example.xcodeproj/project.pbxproj index bccf1e7e9..5cd2378dd 100644 --- a/Example/PubNub Example.xcodeproj/project.pbxproj +++ b/Example/PubNub Example.xcodeproj/project.pbxproj @@ -20,18 +20,13 @@ 6003F59E195388D20070C39A /* PNAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 6003F59D195388D20070C39A /* PNAppDelegate.m */; }; 6003F5A7195388D20070C39A /* PNViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 6003F5A6195388D20070C39A /* PNViewController.m */; }; 6003F5A9195388D20070C39A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 6003F5A8195388D20070C39A /* Images.xcassets */; }; - 696CA908E70CD7D4382006DD /* Pods_PubNub_Mac_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 421FF43F8DEE6C0CAE9CAC59 /* Pods_PubNub_Mac_Example.framework */; }; - 793D26AD1B44048900509447 /* CHANGELOG in Resources */ = {isa = PBXBuildFile; fileRef = 793D26AC1B44048900509447 /* CHANGELOG */; }; 793D26AF1B44049400509447 /* VERSION in Resources */ = {isa = PBXBuildFile; fileRef = 793D26AE1B44049400509447 /* VERSION */; }; 873B8AEB1B1F5CCA007FD442 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 873B8AEA1B1F5CCA007FD442 /* Main.storyboard */; }; - 97FB4DB91B36266800CA7C91 /* Rakefile in Resources */ = {isa = PBXBuildFile; fileRef = 97FB4DB81B36266800CA7C91 /* Rakefile */; }; - FBE8B8356E33C148490E0120 /* Pods_PubNub_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 40B6349A40D41EFCD96DD5EC /* Pods_PubNub_Example.framework */; }; + A530F8C524085644001B2B08 /* CHANGELOG.md in Resources */ = {isa = PBXBuildFile; fileRef = A530F8C424085644001B2B08 /* CHANGELOG.md */; }; + A530F8C624085644001B2B08 /* CHANGELOG.md in Resources */ = {isa = PBXBuildFile; fileRef = A530F8C424085644001B2B08 /* CHANGELOG.md */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ - 2B834A6F7528E04F56C702DC /* Pods-PubNub Mac Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PubNub Mac Example.debug.xcconfig"; path = "Target Support Files/Pods-PubNub Mac Example/Pods-PubNub Mac Example.debug.xcconfig"; sourceTree = ""; }; - 40B6349A40D41EFCD96DD5EC /* Pods_PubNub_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_PubNub_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 421FF43F8DEE6C0CAE9CAC59 /* Pods_PubNub_Mac_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_PubNub_Mac_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 511725D41BE92F7B008F069E /* PubNub Mac Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "PubNub Mac Example.app"; sourceTree = BUILT_PRODUCTS_DIR; }; 511725D61BE92F7B008F069E /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 511725D71BE92F7B008F069E /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; @@ -41,8 +36,6 @@ 511725DF1BE92F7B008F069E /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 511725E21BE92F7B008F069E /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 511725E41BE92F7B008F069E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 5B792A6CDA08CE49C9CBF9EE /* Pods-PubNub Mac Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PubNub Mac Example.release.xcconfig"; path = "Target Support Files/Pods-PubNub Mac Example/Pods-PubNub Mac Example.release.xcconfig"; sourceTree = ""; }; - 5D9F7980916EA1C3B8165832 /* Pods-PubNub_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PubNub_Example.debug.xcconfig"; path = "Target Support Files/Pods-PubNub_Example/Pods-PubNub_Example.debug.xcconfig"; sourceTree = ""; }; 6003F58A195388D20070C39A /* PubNub_Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PubNub_Example.app; sourceTree = BUILT_PRODUCTS_DIR; }; 6003F58D195388D20070C39A /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; 6003F58F195388D20070C39A /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; @@ -57,12 +50,11 @@ 6003F5A6195388D20070C39A /* PNViewController.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNViewController.m; sourceTree = ""; }; 6003F5A8195388D20070C39A /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; }; 78D5FDD94AEDFE48ED24E6A4 /* PubNub.podspec */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = PubNub.podspec; path = ../PubNub.podspec; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; - 793D26AC1B44048900509447 /* CHANGELOG */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = CHANGELOG; path = ../CHANGELOG; sourceTree = ""; }; 793D26AE1B44049400509447 /* VERSION */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = VERSION; path = ../VERSION; sourceTree = ""; }; 7A9945019D33BCC2C3B3B7C1 /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; name = README.md; path = ../README.md; sourceTree = ""; }; 873B8AEA1B1F5CCA007FD442 /* Main.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = Main.storyboard; sourceTree = ""; }; 97FB4DB81B36266800CA7C91 /* Rakefile */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = Rakefile; path = ../Rakefile; sourceTree = ""; }; - 981EB3DBA28055CFF7D652B5 /* Pods-PubNub_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-PubNub_Example.release.xcconfig"; path = "Target Support Files/Pods-PubNub_Example/Pods-PubNub_Example.release.xcconfig"; sourceTree = ""; }; + A530F8C424085644001B2B08 /* CHANGELOG.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; name = CHANGELOG.md; path = ../CHANGELOG.md; sourceTree = ""; }; C4C1ED79724D56B45766CFFA /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; name = LICENSE; path = ../LICENSE; sourceTree = ""; }; /* End PBXFileReference section */ @@ -71,7 +63,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 696CA908E70CD7D4382006DD /* Pods_PubNub_Mac_Example.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -82,7 +73,6 @@ 6003F590195388D20070C39A /* CoreGraphics.framework in Frameworks */, 6003F592195388D20070C39A /* UIKit.framework in Frameworks */, 6003F58E195388D20070C39A /* Foundation.framework in Frameworks */, - FBE8B8356E33C148490E0120 /* Pods_PubNub_Example.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -120,7 +110,6 @@ 511725D51BE92F7B008F069E /* PubNub Mac Example */, 6003F58C195388D20070C39A /* Frameworks */, 6003F58B195388D20070C39A /* Products */, - 78DAB3D093ADF35F7576A9BB /* Pods */, ); sourceTree = ""; }; @@ -139,8 +128,6 @@ 6003F58D195388D20070C39A /* Foundation.framework */, 6003F58F195388D20070C39A /* CoreGraphics.framework */, 6003F591195388D20070C39A /* UIKit.framework */, - 421FF43F8DEE6C0CAE9CAC59 /* Pods_PubNub_Mac_Example.framework */, - 40B6349A40D41EFCD96DD5EC /* Pods_PubNub_Example.framework */, ); name = Frameworks; sourceTree = ""; @@ -175,7 +162,7 @@ isa = PBXGroup; children = ( 78D5FDD94AEDFE48ED24E6A4 /* PubNub.podspec */, - 793D26AC1B44048900509447 /* CHANGELOG */, + A530F8C424085644001B2B08 /* CHANGELOG.md */, 7A9945019D33BCC2C3B3B7C1 /* README.md */, C4C1ED79724D56B45766CFFA /* LICENSE */, 793D26AE1B44049400509447 /* VERSION */, @@ -184,18 +171,6 @@ name = "Podspec Metadata"; sourceTree = ""; }; - 78DAB3D093ADF35F7576A9BB /* Pods */ = { - isa = PBXGroup; - children = ( - 2B834A6F7528E04F56C702DC /* Pods-PubNub Mac Example.debug.xcconfig */, - 5B792A6CDA08CE49C9CBF9EE /* Pods-PubNub Mac Example.release.xcconfig */, - 5D9F7980916EA1C3B8165832 /* Pods-PubNub_Example.debug.xcconfig */, - 981EB3DBA28055CFF7D652B5 /* Pods-PubNub_Example.release.xcconfig */, - ); - name = Pods; - path = ../Pods; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -203,12 +178,10 @@ isa = PBXNativeTarget; buildConfigurationList = 511725F41BE92F7B008F069E /* Build configuration list for PBXNativeTarget "PubNub Mac Example" */; buildPhases = ( - 8CC639D6EC4C169E4470B941 /* [CP] Check Pods Manifest.lock */, 511725D01BE92F7B008F069E /* Sources */, 511725D11BE92F7B008F069E /* Frameworks */, 511725D21BE92F7B008F069E /* Resources */, 79258BFB218645C4009C5FBE /* Cleanup CocoaPods scripts */, - 4087BD3BBC7F447965874F57 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -223,12 +196,10 @@ isa = PBXNativeTarget; buildConfigurationList = 6003F5BF195388D20070C39A /* Build configuration list for PBXNativeTarget "PubNub_Example" */; buildPhases = ( - BEC2F235AA250DE7F2DDADD2 /* [CP] Check Pods Manifest.lock */, 6003F586195388D20070C39A /* Sources */, 6003F587195388D20070C39A /* Frameworks */, 6003F588195388D20070C39A /* Resources */, 79258BF9218645A0009C5FBE /* Cleanup CocoaPods scripts */, - 4D52D556BC95AF837AD9BB98 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -282,6 +253,7 @@ buildActionMask = 2147483647; files = ( 511725E01BE92F7B008F069E /* Assets.xcassets in Resources */, + A530F8C624085644001B2B08 /* CHANGELOG.md in Resources */, 511725E31BE92F7B008F069E /* Main.storyboard in Resources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -291,53 +263,16 @@ buildActionMask = 2147483647; files = ( 873B8AEB1B1F5CCA007FD442 /* Main.storyboard in Resources */, + A530F8C524085644001B2B08 /* CHANGELOG.md in Resources */, 6003F5A9195388D20070C39A /* Images.xcassets in Resources */, 6003F598195388D20070C39A /* InfoPlist.strings in Resources */, 793D26AF1B44049400509447 /* VERSION in Resources */, - 97FB4DB91B36266800CA7C91 /* Rakefile in Resources */, - 793D26AD1B44048900509447 /* CHANGELOG in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 4087BD3BBC7F447965874F57 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-PubNub Mac Example/Pods-PubNub Mac Example-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/PubNub-macOS/PubNub.framework", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/PubNub.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-PubNub Mac Example/Pods-PubNub Mac Example-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 4D52D556BC95AF837AD9BB98 /* [CP] Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-PubNub_Example/Pods-PubNub_Example-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/PubNub-iOS/PubNub.framework", - ); - name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/PubNub.framework", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-PubNub_Example/Pods-PubNub_Example-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; 79258BF9218645A0009C5FBE /* Cleanup CocoaPods scripts */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -366,50 +301,6 @@ shellPath = /bin/sh; shellScript = "find \"${TARGET_TEMP_DIR}\" -name 'Script-*.sh' -exec rm -rf {} \\;\n"; }; - 8CC639D6EC4C169E4470B941 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-PubNub Mac Example-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; - BEC2F235AA250DE7F2DDADD2 /* [CP] Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; - outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-PubNub_Example-checkManifestLockResult.txt", - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; - showEnvVarsInLog = 0; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -457,7 +348,6 @@ /* Begin XCBuildConfiguration section */ 511725F01BE92F7B008F069E /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 2B834A6F7528E04F56C702DC /* Pods-PubNub Mac Example.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; @@ -480,7 +370,6 @@ }; 511725F11BE92F7B008F069E /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 5B792A6CDA08CE49C9CBF9EE /* Pods-PubNub Mac Example.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; @@ -638,7 +527,6 @@ }; 6003F5C0195388D20070C39A /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 5D9F7980916EA1C3B8165832 /* Pods-PubNub_Example.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; @@ -672,7 +560,6 @@ }; 6003F5C1195388D20070C39A /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 981EB3DBA28055CFF7D652B5 /* Pods-PubNub_Example.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; diff --git a/Framework/PubNub Framework.xcodeproj/project.pbxproj b/Framework/PubNub Framework.xcodeproj/project.pbxproj index fc32c3cdb..ab86e73fe 100644 --- a/Framework/PubNub Framework.xcodeproj/project.pbxproj +++ b/Framework/PubNub Framework.xcodeproj/project.pbxproj @@ -13,7 +13,6 @@ buildPhases = ( 791582011BD705130084FC70 /* Build Universal Binary */, 798842151C18B26D003E8948 /* Update module map */, - 79258C052186461C009C5FBE /* Cleanup CocoaPods scripts */, ); dependencies = ( ); @@ -26,7 +25,6 @@ buildPhases = ( 798842F01C190DF5003E8948 /* Build Universal Binary */, 798842F11C190DF5003E8948 /* Update module map */, - 79258C0721864627009C5FBE /* Cleanup CocoaPods scripts */, ); dependencies = ( ); @@ -39,32 +37,17 @@ buildPhases = ( 79A8BDB81C58FC2E00015BDE /* Build Universal Binary */, 79A8BDB91C58FC2E00015BDE /* Update module map */, - 79258C0421864617009C5FBE /* Cleanup CocoaPods scripts */, ); dependencies = ( ); name = "XCFramework (tvOS)"; productName = "Universal Framework"; }; - 79ACC4911C11BC620056523A /* XCFramework (Fabric) */ = { - isa = PBXAggregateTarget; - buildConfigurationList = 79ACC4931C11BC620056523A /* Build configuration list for PBXAggregateTarget "XCFramework (Fabric)" */; - buildPhases = ( - 79ACC4921C11BC620056523A /* Build Universal Binary */, - 798842161C18B272003E8948 /* Update module map */, - 79258C0621864621009C5FBE /* Cleanup CocoaPods scripts */, - ); - dependencies = ( - ); - name = "XCFramework (Fabric)"; - productName = "Universal Framework"; - }; 79CBB1D31BD042FB001FC34D /* XCFramework (iOS) */ = { isa = PBXAggregateTarget; buildConfigurationList = 79CBB1D41BD042FB001FC34D /* Build configuration list for PBXAggregateTarget "XCFramework (iOS)" */; buildPhases = ( 79CBB1D71BD04308001FC34D /* Build Universal Binary */, - 79258C0321864610009C5FBE /* Cleanup CocoaPods scripts */, ); dependencies = ( ); @@ -76,7 +59,6 @@ buildConfigurationList = A57A3056238D61E600DE8C68 /* Build configuration list for PBXAggregateTarget "XCFramework (Catalyst)" */; buildPhases = ( A57A2FF4238A04F500DE8C68 /* Build Universal Binary */, - A57A2FF5238A04F500DE8C68 /* Cleanup CocoaPods scripts */, ); dependencies = ( ); @@ -378,114 +360,83 @@ 7925DB881D3FFCAC00857C0D /* PNLLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 7925DB821D3FFCAC00857C0D /* PNLLogger.h */; settings = {ATTRIBUTES = (Public, ); }; }; 7925DB891D3FFCAC00857C0D /* PNLLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 7925DB821D3FFCAC00857C0D /* PNLLogger.h */; settings = {ATTRIBUTES = (Public, ); }; }; 7925DB8A1D3FFCAC00857C0D /* PNLLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 7925DB821D3FFCAC00857C0D /* PNLLogger.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7925DB8B1D3FFCAC00857C0D /* PNLLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 7925DB821D3FFCAC00857C0D /* PNLLogger.h */; settings = {ATTRIBUTES = (Public, ); }; }; 7925DB8C1D3FFCAC00857C0D /* PNLLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 7925DB821D3FFCAC00857C0D /* PNLLogger.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7925DB8D1D3FFCAC00857C0D /* PNLLogger.h in Headers */ = {isa = PBXBuildFile; fileRef = 7925DB821D3FFCAC00857C0D /* PNLLogger.h */; settings = {ATTRIBUTES = (Public, ); }; }; 7925DB8E1D3FFCAC00857C0D /* PNLLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 7925DB831D3FFCAC00857C0D /* PNLLogger.m */; }; 7925DB8F1D3FFCAC00857C0D /* PNLLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 7925DB831D3FFCAC00857C0D /* PNLLogger.m */; }; 7925DB901D3FFCAC00857C0D /* PNLLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 7925DB831D3FFCAC00857C0D /* PNLLogger.m */; }; 7925DB911D3FFCAC00857C0D /* PNLLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 7925DB831D3FFCAC00857C0D /* PNLLogger.m */; }; - 7925DB921D3FFCAC00857C0D /* PNLLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 7925DB831D3FFCAC00857C0D /* PNLLogger.m */; }; 7925DB931D3FFCAC00857C0D /* PNLLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 7925DB831D3FFCAC00857C0D /* PNLLogger.m */; }; - 7925DB941D3FFCAC00857C0D /* PNLLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 7925DB831D3FFCAC00857C0D /* PNLLogger.m */; }; 7925DB951D3FFCAC00857C0D /* PNLLogFileInformation.h in Headers */ = {isa = PBXBuildFile; fileRef = 7925DB851D3FFCAC00857C0D /* PNLLogFileInformation.h */; }; 7925DB961D3FFCAC00857C0D /* PNLLogFileInformation.h in Headers */ = {isa = PBXBuildFile; fileRef = 7925DB851D3FFCAC00857C0D /* PNLLogFileInformation.h */; }; 7925DB971D3FFCAC00857C0D /* PNLLogFileInformation.h in Headers */ = {isa = PBXBuildFile; fileRef = 7925DB851D3FFCAC00857C0D /* PNLLogFileInformation.h */; }; 7925DB981D3FFCAC00857C0D /* PNLLogFileInformation.h in Headers */ = {isa = PBXBuildFile; fileRef = 7925DB851D3FFCAC00857C0D /* PNLLogFileInformation.h */; }; - 7925DB991D3FFCAC00857C0D /* PNLLogFileInformation.h in Headers */ = {isa = PBXBuildFile; fileRef = 7925DB851D3FFCAC00857C0D /* PNLLogFileInformation.h */; }; 7925DB9A1D3FFCAC00857C0D /* PNLLogFileInformation.h in Headers */ = {isa = PBXBuildFile; fileRef = 7925DB851D3FFCAC00857C0D /* PNLLogFileInformation.h */; }; - 7925DB9B1D3FFCAC00857C0D /* PNLLogFileInformation.h in Headers */ = {isa = PBXBuildFile; fileRef = 7925DB851D3FFCAC00857C0D /* PNLLogFileInformation.h */; }; 7925DB9C1D3FFCAC00857C0D /* PNLLogFileInformation.m in Sources */ = {isa = PBXBuildFile; fileRef = 7925DB861D3FFCAC00857C0D /* PNLLogFileInformation.m */; }; 7925DB9D1D3FFCAC00857C0D /* PNLLogFileInformation.m in Sources */ = {isa = PBXBuildFile; fileRef = 7925DB861D3FFCAC00857C0D /* PNLLogFileInformation.m */; }; 7925DB9E1D3FFCAC00857C0D /* PNLLogFileInformation.m in Sources */ = {isa = PBXBuildFile; fileRef = 7925DB861D3FFCAC00857C0D /* PNLLogFileInformation.m */; }; 7925DB9F1D3FFCAC00857C0D /* PNLLogFileInformation.m in Sources */ = {isa = PBXBuildFile; fileRef = 7925DB861D3FFCAC00857C0D /* PNLLogFileInformation.m */; }; - 7925DBA01D3FFCAC00857C0D /* PNLLogFileInformation.m in Sources */ = {isa = PBXBuildFile; fileRef = 7925DB861D3FFCAC00857C0D /* PNLLogFileInformation.m */; }; 7925DBA11D3FFCAC00857C0D /* PNLLogFileInformation.m in Sources */ = {isa = PBXBuildFile; fileRef = 7925DB861D3FFCAC00857C0D /* PNLLogFileInformation.m */; }; - 7925DBA21D3FFCAC00857C0D /* PNLLogFileInformation.m in Sources */ = {isa = PBXBuildFile; fileRef = 7925DB861D3FFCAC00857C0D /* PNLLogFileInformation.m */; }; 7932485E1D874D9F00FBDF36 /* PNPublishSequence.h in Headers */ = {isa = PBXBuildFile; fileRef = 7932485C1D874D9F00FBDF36 /* PNPublishSequence.h */; }; 7932485F1D874D9F00FBDF36 /* PNPublishSequence.h in Headers */ = {isa = PBXBuildFile; fileRef = 7932485C1D874D9F00FBDF36 /* PNPublishSequence.h */; }; 793248601D874D9F00FBDF36 /* PNPublishSequence.h in Headers */ = {isa = PBXBuildFile; fileRef = 7932485C1D874D9F00FBDF36 /* PNPublishSequence.h */; }; 793248611D874D9F00FBDF36 /* PNPublishSequence.h in Headers */ = {isa = PBXBuildFile; fileRef = 7932485C1D874D9F00FBDF36 /* PNPublishSequence.h */; }; - 793248621D874D9F00FBDF36 /* PNPublishSequence.h in Headers */ = {isa = PBXBuildFile; fileRef = 7932485C1D874D9F00FBDF36 /* PNPublishSequence.h */; }; 793248631D874D9F00FBDF36 /* PNPublishSequence.h in Headers */ = {isa = PBXBuildFile; fileRef = 7932485C1D874D9F00FBDF36 /* PNPublishSequence.h */; }; - 793248641D874D9F00FBDF36 /* PNPublishSequence.h in Headers */ = {isa = PBXBuildFile; fileRef = 7932485C1D874D9F00FBDF36 /* PNPublishSequence.h */; }; 793248651D874D9F00FBDF36 /* PNPublishSequence.m in Sources */ = {isa = PBXBuildFile; fileRef = 7932485D1D874D9F00FBDF36 /* PNPublishSequence.m */; }; 793248661D874D9F00FBDF36 /* PNPublishSequence.m in Sources */ = {isa = PBXBuildFile; fileRef = 7932485D1D874D9F00FBDF36 /* PNPublishSequence.m */; }; 793248671D874D9F00FBDF36 /* PNPublishSequence.m in Sources */ = {isa = PBXBuildFile; fileRef = 7932485D1D874D9F00FBDF36 /* PNPublishSequence.m */; }; 793248681D874D9F00FBDF36 /* PNPublishSequence.m in Sources */ = {isa = PBXBuildFile; fileRef = 7932485D1D874D9F00FBDF36 /* PNPublishSequence.m */; }; - 793248691D874D9F00FBDF36 /* PNPublishSequence.m in Sources */ = {isa = PBXBuildFile; fileRef = 7932485D1D874D9F00FBDF36 /* PNPublishSequence.m */; }; 7932486A1D874D9F00FBDF36 /* PNPublishSequence.m in Sources */ = {isa = PBXBuildFile; fileRef = 7932485D1D874D9F00FBDF36 /* PNPublishSequence.m */; }; - 7932486B1D874D9F00FBDF36 /* PNPublishSequence.m in Sources */ = {isa = PBXBuildFile; fileRef = 7932485D1D874D9F00FBDF36 /* PNPublishSequence.m */; }; 793887041BEAD49100DCC662 /* PNNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 793887021BEAD49100DCC662 /* PNNumber.h */; }; 793887051BEAD49100DCC662 /* PNNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = 793887031BEAD49100DCC662 /* PNNumber.m */; }; 793887061BEAD4A700DCC662 /* PNNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 793887021BEAD49100DCC662 /* PNNumber.h */; }; 793887071BEAD4A800DCC662 /* PNNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 793887021BEAD49100DCC662 /* PNNumber.h */; }; 793887081BEAD4DE00DCC662 /* PNNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = 793887031BEAD49100DCC662 /* PNNumber.m */; }; 793887091BEAD4E100DCC662 /* PNNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = 793887031BEAD49100DCC662 /* PNNumber.m */; }; - 795158621C11EA5500A9D3AE /* PubNub.h in Headers */ = {isa = PBXBuildFile; fileRef = 795158611C11EA5500A9D3AE /* PubNub.h */; settings = {ATTRIBUTES = (Public, ); }; }; 7960B6631F6811D700FFAEBB /* PNDeleteMessageAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 7960B6611F6811D700FFAEBB /* PNDeleteMessageAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 7960B6641F6811D700FFAEBB /* PNDeleteMessageAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 7960B6621F6811D700FFAEBB /* PNDeleteMessageAPICallBuilder.m */; }; 7960B6651F68122000FFAEBB /* PNDeleteMessageAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 7960B6611F6811D700FFAEBB /* PNDeleteMessageAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 7960B6661F68122100FFAEBB /* PNDeleteMessageAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 7960B6611F6811D700FFAEBB /* PNDeleteMessageAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 7960B6671F68122100FFAEBB /* PNDeleteMessageAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 7960B6611F6811D700FFAEBB /* PNDeleteMessageAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7960B6681F68122100FFAEBB /* PNDeleteMessageAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 7960B6611F6811D700FFAEBB /* PNDeleteMessageAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 7960B6691F68122200FFAEBB /* PNDeleteMessageAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 7960B6611F6811D700FFAEBB /* PNDeleteMessageAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7960B66A1F68122200FFAEBB /* PNDeleteMessageAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 7960B6611F6811D700FFAEBB /* PNDeleteMessageAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 7960B66B1F68123300FFAEBB /* PNDeleteMessageAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 7960B6621F6811D700FFAEBB /* PNDeleteMessageAPICallBuilder.m */; }; 7960B66C1F68123300FFAEBB /* PNDeleteMessageAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 7960B6621F6811D700FFAEBB /* PNDeleteMessageAPICallBuilder.m */; }; 7960B66D1F68123300FFAEBB /* PNDeleteMessageAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 7960B6621F6811D700FFAEBB /* PNDeleteMessageAPICallBuilder.m */; }; - 7960B66E1F68123400FFAEBB /* PNDeleteMessageAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 7960B6621F6811D700FFAEBB /* PNDeleteMessageAPICallBuilder.m */; }; 7960B66F1F68123400FFAEBB /* PNDeleteMessageAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 7960B6621F6811D700FFAEBB /* PNDeleteMessageAPICallBuilder.m */; }; - 7960B6701F68123500FFAEBB /* PNDeleteMessageAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 7960B6621F6811D700FFAEBB /* PNDeleteMessageAPICallBuilder.m */; }; 79650C2C1E775E8300006F66 /* PNDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 79650C291E775E8300006F66 /* PNDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79650C2D1E775E8300006F66 /* PNLockSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 79650C2A1E775E8300006F66 /* PNLockSupport.h */; }; 79650C2E1E775E8300006F66 /* PNLockSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 79650C2B1E775E8300006F66 /* PNLockSupport.m */; }; 79650C2F1E775E8C00006F66 /* PNDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 79650C291E775E8300006F66 /* PNDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79650C301E775E8C00006F66 /* PNDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 79650C291E775E8300006F66 /* PNDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79650C311E775E8D00006F66 /* PNDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 79650C291E775E8300006F66 /* PNDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79650C321E775E8E00006F66 /* PNDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 79650C291E775E8300006F66 /* PNDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79650C331E775E9300006F66 /* PNDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 79650C291E775E8300006F66 /* PNDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79650C341E775E9400006F66 /* PNDefines.h in Headers */ = {isa = PBXBuildFile; fileRef = 79650C291E775E8300006F66 /* PNDefines.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79650C351E775E9700006F66 /* PNLockSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 79650C2A1E775E8300006F66 /* PNLockSupport.h */; }; 79650C361E775E9700006F66 /* PNLockSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 79650C2A1E775E8300006F66 /* PNLockSupport.h */; }; 79650C371E775E9700006F66 /* PNLockSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 79650C2A1E775E8300006F66 /* PNLockSupport.h */; }; - 79650C381E775E9800006F66 /* PNLockSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 79650C2A1E775E8300006F66 /* PNLockSupport.h */; }; 79650C391E775E9800006F66 /* PNLockSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 79650C2A1E775E8300006F66 /* PNLockSupport.h */; }; - 79650C3A1E775E9800006F66 /* PNLockSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = 79650C2A1E775E8300006F66 /* PNLockSupport.h */; }; 79650C3B1E775EA000006F66 /* PNLockSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 79650C2B1E775E8300006F66 /* PNLockSupport.m */; }; 79650C3C1E775EA000006F66 /* PNLockSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 79650C2B1E775E8300006F66 /* PNLockSupport.m */; }; 79650C3D1E775EA100006F66 /* PNLockSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 79650C2B1E775E8300006F66 /* PNLockSupport.m */; }; - 79650C3E1E775EA100006F66 /* PNLockSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 79650C2B1E775E8300006F66 /* PNLockSupport.m */; }; 79650C3F1E775EA100006F66 /* PNLockSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 79650C2B1E775E8300006F66 /* PNLockSupport.m */; }; - 79650C401E775EA200006F66 /* PNLockSupport.m in Sources */ = {isa = PBXBuildFile; fileRef = 79650C2B1E775E8300006F66 /* PNLockSupport.m */; }; 797D605A22D2E41100E64C94 /* PNSignalAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 797D605822D2E41000E64C94 /* PNSignalAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 797D605B22D2E41100E64C94 /* PNSignalAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 797D605822D2E41000E64C94 /* PNSignalAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 797D605C22D2E41100E64C94 /* PNSignalAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 797D605822D2E41000E64C94 /* PNSignalAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 797D605D22D2E41100E64C94 /* PNSignalAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 797D605822D2E41000E64C94 /* PNSignalAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 797D605E22D2E41100E64C94 /* PNSignalAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 797D605822D2E41000E64C94 /* PNSignalAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 797D605F22D2E41100E64C94 /* PNSignalAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 797D605822D2E41000E64C94 /* PNSignalAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 797D606022D2E41100E64C94 /* PNSignalAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 797D605822D2E41000E64C94 /* PNSignalAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 797D606122D2E41100E64C94 /* PNSignalAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 797D605922D2E41000E64C94 /* PNSignalAPICallBuilder.m */; }; 797D606222D2E41100E64C94 /* PNSignalAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 797D605922D2E41000E64C94 /* PNSignalAPICallBuilder.m */; }; 797D606322D2E41100E64C94 /* PNSignalAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 797D605922D2E41000E64C94 /* PNSignalAPICallBuilder.m */; }; 797D606422D2E41100E64C94 /* PNSignalAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 797D605922D2E41000E64C94 /* PNSignalAPICallBuilder.m */; }; - 797D606522D2E41100E64C94 /* PNSignalAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 797D605922D2E41000E64C94 /* PNSignalAPICallBuilder.m */; }; 797D606622D2E41100E64C94 /* PNSignalAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 797D605922D2E41000E64C94 /* PNSignalAPICallBuilder.m */; }; - 797D606722D2E41100E64C94 /* PNSignalAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 797D605922D2E41000E64C94 /* PNSignalAPICallBuilder.m */; }; 797D606A22D2E44000E64C94 /* PNSignalStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 797D606822D2E43F00E64C94 /* PNSignalStatus.m */; }; 797D606B22D2E44000E64C94 /* PNSignalStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 797D606822D2E43F00E64C94 /* PNSignalStatus.m */; }; 797D606C22D2E44000E64C94 /* PNSignalStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 797D606822D2E43F00E64C94 /* PNSignalStatus.m */; }; 797D606D22D2E44000E64C94 /* PNSignalStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 797D606822D2E43F00E64C94 /* PNSignalStatus.m */; }; - 797D606E22D2E44000E64C94 /* PNSignalStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 797D606822D2E43F00E64C94 /* PNSignalStatus.m */; }; 797D606F22D2E44000E64C94 /* PNSignalStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 797D606822D2E43F00E64C94 /* PNSignalStatus.m */; }; - 797D607022D2E44000E64C94 /* PNSignalStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 797D606822D2E43F00E64C94 /* PNSignalStatus.m */; }; 797D607122D2E44000E64C94 /* PNSignalStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 797D606922D2E44000E64C94 /* PNSignalStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; 797D607222D2E44000E64C94 /* PNSignalStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 797D606922D2E44000E64C94 /* PNSignalStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; 797D607322D2E44000E64C94 /* PNSignalStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 797D606922D2E44000E64C94 /* PNSignalStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; 797D607422D2E44000E64C94 /* PNSignalStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 797D606922D2E44000E64C94 /* PNSignalStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 797D607522D2E44000E64C94 /* PNSignalStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 797D606922D2E44000E64C94 /* PNSignalStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; 797D607622D2E44000E64C94 /* PNSignalStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 797D606922D2E44000E64C94 /* PNSignalStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 797D607722D2E44000E64C94 /* PNSignalStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 797D606922D2E44000E64C94 /* PNSignalStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; 798842281C18F02F003E8948 /* PubNub+APNS.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0561BD03DE4001FC34D /* PubNub+APNS.h */; settings = {ATTRIBUTES = (Public, ); }; }; 798842291C18F071003E8948 /* PubNub+PresencePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0611BD03DE4001FC34D /* PubNub+PresencePrivate.h */; }; 7988422A1C18F07B003E8948 /* PubNub+SubscribePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0681BD03DE4001FC34D /* PubNub+SubscribePrivate.h */; }; @@ -630,152 +581,6 @@ 798842C11C18F2EB003E8948 /* PNSubscribeParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0EB1BD03DE4001FC34D /* PNSubscribeParser.m */; }; 798842C21C18F2EB003E8948 /* PNTimeParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0ED1BD03DE4001FC34D /* PNTimeParser.m */; }; 798842EC1C18FC54003E8948 /* PubNub-iOS-Info.plist in CopyFiles */ = {isa = PBXBuildFile; fileRef = 7915839D1BD7119E0084FC70 /* PubNub-iOS-Info.plist */; }; - 798842FC1C191579003E8948 /* PubNub+Presence.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0601BD03DE4001FC34D /* PubNub+Presence.m */; }; - 798842FD1C191579003E8948 /* PNPresenceGlobalHereNowResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0951BD03DE4001FC34D /* PNPresenceGlobalHereNowResult.m */; }; - 798843001C191579003E8948 /* PubNub+Publish.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0631BD03DE4001FC34D /* PubNub+Publish.m */; }; - 798843011C191579003E8948 /* PNSubscribeStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0A61BD03DE4001FC34D /* PNSubscribeStatus.m */; }; - 798843021C191579003E8948 /* PNConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB07B1BD03DE4001FC34D /* PNConfiguration.m */; }; - 798843031C191579003E8948 /* PNDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0B51BD03DE4001FC34D /* PNDictionary.m */; }; - 798843041C191579003E8948 /* PNPresenceWhereNowResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0971BD03DE4001FC34D /* PNPresenceWhereNowResult.m */; }; - 798843051C191579003E8948 /* PubNub+State.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0651BD03DE4001FC34D /* PubNub+State.m */; }; - 798843071C191579003E8948 /* PNChannelGroupsResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0881BD03DE4001FC34D /* PNChannelGroupsResult.m */; }; - 798843081C191579003E8948 /* PubNub+Time.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB06A1BD03DE4001FC34D /* PubNub+Time.m */; }; - 798843091C191579003E8948 /* PNErrorStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB08D1BD03DE4001FC34D /* PNErrorStatus.m */; }; - 7988430A1C191579003E8948 /* PubNub+History.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB05E1BD03DE4001FC34D /* PubNub+History.m */; }; - 7988430B1C191579003E8948 /* PNStateListener.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0721BD03DE4001FC34D /* PNStateListener.m */; }; - 7988430C1C191579003E8948 /* PNHeartbeat.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0701BD03DE4001FC34D /* PNHeartbeat.m */; }; - 7988430D1C191579003E8948 /* PNNetwork.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0EF1BD03DE4001FC34D /* PNNetwork.m */; }; - 7988430E1C191579003E8948 /* PNAcknowledgmentStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB07E1BD03DE4001FC34D /* PNAcknowledgmentStatus.m */; }; - 7988430F1C191579003E8948 /* PubNub+APNS.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0571BD03DE4001FC34D /* PubNub+APNS.m */; }; - 798843101C191579003E8948 /* PNNetworkResponseSerializer.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0F11BD03DE4001FC34D /* PNNetworkResponseSerializer.m */; }; - 798843111C191579003E8948 /* PNHistoryResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB08F1BD03DE4001FC34D /* PNHistoryResult.m */; }; - 798843121C191579003E8948 /* PNChannelClientStateResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0821BD03DE4001FC34D /* PNChannelClientStateResult.m */; }; - 798843131C191579003E8948 /* PNSubscriberResults.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0A41BD03DE4001FC34D /* PNSubscriberResults.m */; }; - 798843141C191579003E8948 /* PNClientInformation.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0781BD03DE4001FC34D /* PNClientInformation.m */; }; - 798843151C191579003E8948 /* PNArray.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0AD1BD03DE4001FC34D /* PNArray.m */; }; - 798843161C191579003E8948 /* PNClientStateParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0D51BD03DE4001FC34D /* PNClientStateParser.m */; }; - 798843171C191579003E8948 /* PNGZIP.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0B71BD03DE4001FC34D /* PNGZIP.m */; }; - 798843181C191579003E8948 /* PNChannelGroupChannelsResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0841BD03DE4001FC34D /* PNChannelGroupChannelsResult.m */; }; - 798843191C191579003E8948 /* PNData.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0B31BD03DE4001FC34D /* PNData.m */; }; - 7988431A1C191579003E8948 /* PNPushNotificationsStateModificationParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0E71BD03DE4001FC34D /* PNPushNotificationsStateModificationParser.m */; }; - 7988431B1C191579003E8948 /* PNClientState.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB06E1BD03DE4001FC34D /* PNClientState.m */; }; - 7988431C1C191579003E8948 /* PNHeartbeatParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0D91BD03DE4001FC34D /* PNHeartbeatParser.m */; }; - 7988431D1C191579003E8948 /* PNTimeResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0A81BD03DE4001FC34D /* PNTimeResult.m */; }; - 7988431E1C191579003E8948 /* PNServiceData.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB09F1BD03DE4001FC34D /* PNServiceData.m */; }; - 7988431F1C191579003E8948 /* PNSubscribeParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0EB1BD03DE4001FC34D /* PNSubscribeParser.m */; }; - 798843211C191579003E8948 /* PNTimeParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0ED1BD03DE4001FC34D /* PNTimeParser.m */; }; - 798843221C191579003E8948 /* PNLeaveParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0DD1BD03DE4001FC34D /* PNLeaveParser.m */; }; - 798843231C191579003E8948 /* PNClientStateUpdateStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB08A1BD03DE4001FC34D /* PNClientStateUpdateStatus.m */; }; - 798843241C191579003E8948 /* PNPresenceWhereNowParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0E31BD03DE4001FC34D /* PNPresenceWhereNowParser.m */; }; - 798843251C191579003E8948 /* PNAES.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0761BD03DE4001FC34D /* PNAES.m */; }; - 798843261C191579003E8948 /* PNErrorParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0D71BD03DE4001FC34D /* PNErrorParser.m */; }; - 798843271C191579003E8948 /* PNMessagePublishParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0DF1BD03DE4001FC34D /* PNMessagePublishParser.m */; }; - 798843281C191579003E8948 /* PNNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = 793887031BEAD49100DCC662 /* PNNumber.m */; }; - 798843291C191579003E8948 /* PNChannel.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0AF1BD03DE4001FC34D /* PNChannel.m */; }; - 7988432A1C191579003E8948 /* PNChannelGroupModificationParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0D31BD03DE4001FC34D /* PNChannelGroupModificationParser.m */; }; - 7988432B1C191579003E8948 /* PNPublishStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0991BD03DE4001FC34D /* PNPublishStatus.m */; }; - 7988432C1C191579003E8948 /* PubNub+ChannelGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0591BD03DE4001FC34D /* PubNub+ChannelGroup.m */; }; - 7988432D1C191579003E8948 /* PNPresenceHereNowParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0E11BD03DE4001FC34D /* PNPresenceHereNowParser.m */; }; - 7988432E1C191579003E8948 /* PNReachability.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0F31BD03DE4001FC34D /* PNReachability.m */; }; - 7988432F1C191579003E8948 /* PNSubscriber.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0741BD03DE4001FC34D /* PNSubscriber.m */; }; - 798843301C191579003E8948 /* PNChannelGroupClientStateResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0861BD03DE4001FC34D /* PNChannelGroupClientStateResult.m */; }; - 798843311C191579003E8948 /* PNHistoryParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0DB1BD03DE4001FC34D /* PNHistoryParser.m */; }; - 798843331C191579003E8948 /* PNString.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0BC1BD03DE4001FC34D /* PNString.m */; }; - 798843341C191579003E8948 /* PNPresenceChannelGroupHereNowResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0911BD03DE4001FC34D /* PNPresenceChannelGroupHereNowResult.m */; }; - 798843351C191579003E8948 /* PNStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0A21BD03DE4001FC34D /* PNStatus.m */; }; - 798843361C191579003E8948 /* PubNub+Subscribe.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0671BD03DE4001FC34D /* PubNub+Subscribe.m */; }; - 798843371C191579003E8948 /* PNAPNSEnabledChannelsResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0801BD03DE4001FC34D /* PNAPNSEnabledChannelsResult.m */; }; - 798843381C191579003E8948 /* PNPushNotificationsAuditParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0E51BD03DE4001FC34D /* PNPushNotificationsAuditParser.m */; }; - 798843391C191579003E8948 /* PNURLRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0BE1BD03DE4001FC34D /* PNURLRequest.m */; }; - 7988433A1C191579003E8948 /* PNChannelGroupAuditionParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0D11BD03DE4001FC34D /* PNChannelGroupAuditionParser.m */; }; - 7988433B1C191579003E8948 /* PNResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB09C1BD03DE4001FC34D /* PNResult.m */; }; - 7988433C1C191579003E8948 /* PNURLBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0F71BD03DE4001FC34D /* PNURLBuilder.m */; }; - 7988433D1C191579003E8948 /* PNPresenceChannelHereNowResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0931BD03DE4001FC34D /* PNPresenceChannelHereNowResult.m */; }; - 7988433E1C191579003E8948 /* PubNub+Core.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB05B1BD03DE4001FC34D /* PubNub+Core.m */; }; - 7988433F1C191579003E8948 /* PNRequestParameters.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0F51BD03DE4001FC34D /* PNRequestParameters.m */; }; - 798843401C191579003E8948 /* PNJSON.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0BA1BD03DE4001FC34D /* PNJSON.m */; }; - 798843431C191579003E8948 /* PNResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB09B1BD03DE4001FC34D /* PNResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 798843441C191579003E8948 /* PNString.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0BB1BD03DE4001FC34D /* PNString.h */; }; - 798843451C191579003E8948 /* PNSubscribeStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0A51BD03DE4001FC34D /* PNSubscribeStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 798843461C191579003E8948 /* PNGZIP.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0B61BD03DE4001FC34D /* PNGZIP.h */; }; - 798843471C191579003E8948 /* PubNub+Subscribe.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0661BD03DE4001FC34D /* PubNub+Subscribe.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 798843481C191579003E8948 /* PNURLBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0F61BD03DE4001FC34D /* PNURLBuilder.h */; }; - 7988434B1C191579003E8948 /* PNHeartbeatParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0D81BD03DE4001FC34D /* PNHeartbeatParser.h */; }; - 7988434C1C191579003E8948 /* PNMessagePublishParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0DE1BD03DE4001FC34D /* PNMessagePublishParser.h */; }; - 7988434D1C191579003E8948 /* PNPublishStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0981BD03DE4001FC34D /* PNPublishStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7988434E1C191579003E8948 /* PNChannelGroupClientStateResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0851BD03DE4001FC34D /* PNChannelGroupClientStateResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7988434F1C191579003E8948 /* PNHistoryResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB08E1BD03DE4001FC34D /* PNHistoryResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 798843501C191579003E8948 /* PNServiceData.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB09E1BD03DE4001FC34D /* PNServiceData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 798843511C191579003E8948 /* PNLeaveParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0DC1BD03DE4001FC34D /* PNLeaveParser.h */; }; - 798843521C191579003E8948 /* PNErrorCodes.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0C81BD03DE4001FC34D /* PNErrorCodes.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 798843541C191579003E8948 /* PNAES.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0751BD03DE4001FC34D /* PNAES.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 798843551C191579003E8948 /* PNSubscriber.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0731BD03DE4001FC34D /* PNSubscriber.h */; }; - 798843561C191579003E8948 /* PNStatus+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0A01BD03DE4001FC34D /* PNStatus+Private.h */; }; - 798843571C191579003E8948 /* PNChannelGroupModificationParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0D21BD03DE4001FC34D /* PNChannelGroupModificationParser.h */; }; - 798843581C191579003E8948 /* PubNub+CorePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB05C1BD03DE4001FC34D /* PubNub+CorePrivate.h */; }; - 798843591C191579003E8948 /* PNChannelGroupAuditionParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0D01BD03DE4001FC34D /* PNChannelGroupAuditionParser.h */; }; - 7988435A1C191579003E8948 /* PNJSON.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0B91BD03DE4001FC34D /* PNJSON.h */; }; - 7988435B1C191579003E8948 /* PNHistoryParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0DA1BD03DE4001FC34D /* PNHistoryParser.h */; }; - 7988435C1C191579003E8948 /* PNErrorStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB08C1BD03DE4001FC34D /* PNErrorStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7988435D1C191579003E8948 /* PNPresenceWhereNowResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0961BD03DE4001FC34D /* PNPresenceWhereNowResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7988435E1C191579003E8948 /* PubNub+Core.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB05A1BD03DE4001FC34D /* PubNub+Core.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7988435F1C191579003E8948 /* PNStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0A11BD03DE4001FC34D /* PNStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 798843601C191579003E8948 /* PNClientInformation.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0771BD03DE4001FC34D /* PNClientInformation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 798843611C191579003E8948 /* PNTimeParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0EC1BD03DE4001FC34D /* PNTimeParser.h */; }; - 798843621C191579003E8948 /* PNErrorStatus+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB08B1BD03DE4001FC34D /* PNErrorStatus+Private.h */; }; - 798843631C191579003E8948 /* PNNetworkResponseSerializer.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0F01BD03DE4001FC34D /* PNNetworkResponseSerializer.h */; }; - 798843651C191579003E8948 /* PNSubscriberResults.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0A31BD03DE4001FC34D /* PNSubscriberResults.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 798843661C191579003E8948 /* PubNub+ChannelGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0581BD03DE4001FC34D /* PubNub+ChannelGroup.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 798843671C191579003E8948 /* PubNub+APNS.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0561BD03DE4001FC34D /* PubNub+APNS.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 798843681C191579003E8948 /* PubNub+PresencePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0611BD03DE4001FC34D /* PubNub+PresencePrivate.h */; }; - 798843691C191579003E8948 /* PNChannel.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0AE1BD03DE4001FC34D /* PNChannel.h */; }; - 7988436A1C191579003E8948 /* PNStructures.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0CA1BD03DE4001FC34D /* PNStructures.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7988436B1C191579003E8948 /* PNPrivateStructures.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0C91BD03DE4001FC34D /* PNPrivateStructures.h */; }; - 7988436C1C191579003E8948 /* PNObjectEventListener.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0CC1BD03DE4001FC34D /* PNObjectEventListener.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7988436D1C191579003E8948 /* PNErrorParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0D61BD03DE4001FC34D /* PNErrorParser.h */; }; - 7988436E1C191579003E8948 /* PNDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0B41BD03DE4001FC34D /* PNDictionary.h */; }; - 7988436F1C191579003E8948 /* PNStateListener.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0711BD03DE4001FC34D /* PNStateListener.h */; }; - 798843701C191579003E8948 /* PNRequestParameters.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0F41BD03DE4001FC34D /* PNRequestParameters.h */; }; - 798843711C191579003E8948 /* PNChannelGroupChannelsResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0831BD03DE4001FC34D /* PNChannelGroupChannelsResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 798843731C191579003E8948 /* PNClientStateUpdateStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0891BD03DE4001FC34D /* PNClientStateUpdateStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 798843741C191579003E8948 /* PubNub+SubscribePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0681BD03DE4001FC34D /* PubNub+SubscribePrivate.h */; }; - 798843751C191579003E8948 /* PNHelpers.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0B81BD03DE4001FC34D /* PNHelpers.h */; }; - 798843761C191579003E8948 /* PNPresenceChannelHereNowResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0921BD03DE4001FC34D /* PNPresenceChannelHereNowResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 798843771C191579003E8948 /* PNParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0CD1BD03DE4001FC34D /* PNParser.h */; }; - 798843781C191579003E8948 /* PNConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0C71BD03DE4001FC34D /* PNConstants.h */; }; - 798843791C191579003E8948 /* PubNub+History.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB05D1BD03DE4001FC34D /* PubNub+History.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7988437A1C191579003E8948 /* PNReachability.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0F21BD03DE4001FC34D /* PNReachability.h */; }; - 7988437B1C191579003E8948 /* PNArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0AC1BD03DE4001FC34D /* PNArray.h */; }; - 7988437C1C191579003E8948 /* PNPresenceChannelGroupHereNowResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0901BD03DE4001FC34D /* PNPresenceChannelGroupHereNowResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7988437D1C191579003E8948 /* PNClientState.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB06D1BD03DE4001FC34D /* PNClientState.h */; }; - 7988437F1C191579003E8948 /* PNLogMacro.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0C61BD03DE4001FC34D /* PNLogMacro.h */; }; - 798843801C191579003E8948 /* PNPushNotificationsStateModificationParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0E61BD03DE4001FC34D /* PNPushNotificationsStateModificationParser.h */; }; - 798843811C191579003E8948 /* PubNub+Publish.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0621BD03DE4001FC34D /* PubNub+Publish.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 798843821C191579003E8948 /* PNTimeResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0A71BD03DE4001FC34D /* PNTimeResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 798843831C191579003E8948 /* PNAcknowledgmentStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB07D1BD03DE4001FC34D /* PNAcknowledgmentStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 798843841C191579003E8948 /* PubNub+Time.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0691BD03DE4001FC34D /* PubNub+Time.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 798843851C191579003E8948 /* PNChannelClientStateResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0811BD03DE4001FC34D /* PNChannelClientStateResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 798843861C191579003E8948 /* PNConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB07A1BD03DE4001FC34D /* PNConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 798843871C191579003E8948 /* PNNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 793887021BEAD49100DCC662 /* PNNumber.h */; }; - 798843881C191579003E8948 /* PNPresenceGlobalHereNowResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0941BD03DE4001FC34D /* PNPresenceGlobalHereNowResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 798843891C191579003E8948 /* PubNub+Presence.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB05F1BD03DE4001FC34D /* PubNub+Presence.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 7988438A1C191579003E8948 /* PNServiceData+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB09D1BD03DE4001FC34D /* PNServiceData+Private.h */; }; - 7988438B1C191579003E8948 /* PNResult+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB09A1BD03DE4001FC34D /* PNResult+Private.h */; }; - 7988438C1C191579003E8948 /* PNPresenceWhereNowParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0E21BD03DE4001FC34D /* PNPresenceWhereNowParser.h */; }; - 7988438D1C191579003E8948 /* PNPushNotificationsAuditParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0E41BD03DE4001FC34D /* PNPushNotificationsAuditParser.h */; }; - 7988438F1C191579003E8948 /* PNSubscribeParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0EA1BD03DE4001FC34D /* PNSubscribeParser.h */; }; - 798843901C191579003E8948 /* PNPresenceHereNowParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0E01BD03DE4001FC34D /* PNPresenceHereNowParser.h */; }; - 798843911C191579003E8948 /* PNClientStateParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0D41BD03DE4001FC34D /* PNClientStateParser.h */; }; - 798843921C191579003E8948 /* PNAPNSEnabledChannelsResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB07F1BD03DE4001FC34D /* PNAPNSEnabledChannelsResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 798843931C191579003E8948 /* PNNetwork.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0EE1BD03DE4001FC34D /* PNNetwork.h */; }; - 798843941C191579003E8948 /* PubNub+State.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0641BD03DE4001FC34D /* PubNub+State.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 798843951C191579003E8948 /* PNHeartbeat.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB06F1BD03DE4001FC34D /* PNHeartbeat.h */; }; - 798843961C191579003E8948 /* PNData.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0B21BD03DE4001FC34D /* PNData.h */; }; - 798843971C191579003E8948 /* PNURLRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0BD1BD03DE4001FC34D /* PNURLRequest.h */; }; - 798843981C191579003E8948 /* PNChannelGroupsResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0871BD03DE4001FC34D /* PNChannelGroupsResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 798843AA1C191692003E8948 /* PubNub.h in Headers */ = {isa = PBXBuildFile; fileRef = 795158611C11EA5500A9D3AE /* PubNub.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 798843AB1C1916A6003E8948 /* PubNub+FAB.h in Headers */ = {isa = PBXBuildFile; fileRef = 79ACC3D91C11BB420056523A /* PubNub+FAB.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 798843AC1C1916AC003E8948 /* PubNub+FAB.m in Sources */ = {isa = PBXBuildFile; fileRef = 79ACC3DA1C11BB420056523A /* PubNub+FAB.m */; }; 79A0D8421DC22C950039A264 /* PNAPNSAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D80C1DC22C950039A264 /* PNAPNSAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8431DC22C950039A264 /* PNAPNSAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D80D1DC22C950039A264 /* PNAPNSAPICallBuilder.m */; }; 79A0D8441DC22C950039A264 /* PNAPNSAuditAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D80E1DC22C950039A264 /* PNAPNSAuditAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -826,348 +631,236 @@ 79A0D8711DC22F070039A264 /* PNAPICallBuilder+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D83F1DC22C950039A264 /* PNAPICallBuilder+Private.h */; }; 79A0D8721DC22F080039A264 /* PNAPICallBuilder+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D83F1DC22C950039A264 /* PNAPICallBuilder+Private.h */; }; 79A0D8731DC22F090039A264 /* PNAPICallBuilder+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D83F1DC22C950039A264 /* PNAPICallBuilder+Private.h */; }; - 79A0D8741DC22F090039A264 /* PNAPICallBuilder+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D83F1DC22C950039A264 /* PNAPICallBuilder+Private.h */; }; 79A0D8751DC22F0A0039A264 /* PNAPICallBuilder+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D83F1DC22C950039A264 /* PNAPICallBuilder+Private.h */; }; - 79A0D8761DC22F0A0039A264 /* PNAPICallBuilder+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D83F1DC22C950039A264 /* PNAPICallBuilder+Private.h */; }; 79A0D8771DC22F220039A264 /* PNAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8401DC22C950039A264 /* PNAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8781DC22F220039A264 /* PNAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8401DC22C950039A264 /* PNAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8791DC22F220039A264 /* PNAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8401DC22C950039A264 /* PNAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D87A1DC22F230039A264 /* PNAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8401DC22C950039A264 /* PNAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D87B1DC22F230039A264 /* PNAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8401DC22C950039A264 /* PNAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D87C1DC22F240039A264 /* PNAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8401DC22C950039A264 /* PNAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D87D1DC22F460039A264 /* PNAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8411DC22C950039A264 /* PNAPICallBuilder.m */; }; 79A0D87E1DC22F460039A264 /* PNAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8411DC22C950039A264 /* PNAPICallBuilder.m */; }; 79A0D87F1DC22F470039A264 /* PNAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8411DC22C950039A264 /* PNAPICallBuilder.m */; }; - 79A0D8801DC22F470039A264 /* PNAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8411DC22C950039A264 /* PNAPICallBuilder.m */; }; 79A0D8811DC22F480039A264 /* PNAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8411DC22C950039A264 /* PNAPICallBuilder.m */; }; - 79A0D8821DC22F480039A264 /* PNAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8411DC22C950039A264 /* PNAPICallBuilder.m */; }; 79A0D8831DC22F500039A264 /* PNAPNSAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D80C1DC22C950039A264 /* PNAPNSAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8841DC22F510039A264 /* PNAPNSAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D80C1DC22C950039A264 /* PNAPNSAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8851DC22F510039A264 /* PNAPNSAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D80C1DC22C950039A264 /* PNAPNSAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D8861DC22F520039A264 /* PNAPNSAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D80C1DC22C950039A264 /* PNAPNSAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8871DC22F520039A264 /* PNAPNSAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D80C1DC22C950039A264 /* PNAPNSAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D8881DC22F520039A264 /* PNAPNSAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D80C1DC22C950039A264 /* PNAPNSAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8891DC22F610039A264 /* PNAPNSAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D80D1DC22C950039A264 /* PNAPNSAPICallBuilder.m */; }; 79A0D88A1DC22F620039A264 /* PNAPNSAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D80D1DC22C950039A264 /* PNAPNSAPICallBuilder.m */; }; 79A0D88B1DC22F620039A264 /* PNAPNSAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D80D1DC22C950039A264 /* PNAPNSAPICallBuilder.m */; }; - 79A0D88C1DC22F620039A264 /* PNAPNSAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D80D1DC22C950039A264 /* PNAPNSAPICallBuilder.m */; }; 79A0D88D1DC22F630039A264 /* PNAPNSAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D80D1DC22C950039A264 /* PNAPNSAPICallBuilder.m */; }; - 79A0D88E1DC22F630039A264 /* PNAPNSAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D80D1DC22C950039A264 /* PNAPNSAPICallBuilder.m */; }; 79A0D88F1DC22F690039A264 /* PNAPNSAuditAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D80E1DC22C950039A264 /* PNAPNSAuditAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8901DC22F690039A264 /* PNAPNSAuditAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D80E1DC22C950039A264 /* PNAPNSAuditAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8911DC22F690039A264 /* PNAPNSAuditAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D80E1DC22C950039A264 /* PNAPNSAuditAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D8921DC22F6A0039A264 /* PNAPNSAuditAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D80E1DC22C950039A264 /* PNAPNSAuditAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8931DC22F6A0039A264 /* PNAPNSAuditAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D80E1DC22C950039A264 /* PNAPNSAuditAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D8941DC22F6A0039A264 /* PNAPNSAuditAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D80E1DC22C950039A264 /* PNAPNSAuditAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8951DC22F7E0039A264 /* PNAPNSAuditAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D80F1DC22C950039A264 /* PNAPNSAuditAPICallBuilder.m */; }; 79A0D8961DC22F7E0039A264 /* PNAPNSAuditAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D80F1DC22C950039A264 /* PNAPNSAuditAPICallBuilder.m */; }; 79A0D8971DC22F7E0039A264 /* PNAPNSAuditAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D80F1DC22C950039A264 /* PNAPNSAuditAPICallBuilder.m */; }; - 79A0D8981DC22F7F0039A264 /* PNAPNSAuditAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D80F1DC22C950039A264 /* PNAPNSAuditAPICallBuilder.m */; }; 79A0D8991DC22F7F0039A264 /* PNAPNSAuditAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D80F1DC22C950039A264 /* PNAPNSAuditAPICallBuilder.m */; }; - 79A0D89A1DC22F800039A264 /* PNAPNSAuditAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D80F1DC22C950039A264 /* PNAPNSAuditAPICallBuilder.m */; }; 79A0D89B1DC22F830039A264 /* PNAPNSModificationAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8101DC22C950039A264 /* PNAPNSModificationAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D89C1DC22F830039A264 /* PNAPNSModificationAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8101DC22C950039A264 /* PNAPNSModificationAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D89D1DC22F840039A264 /* PNAPNSModificationAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8101DC22C950039A264 /* PNAPNSModificationAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D89E1DC22F840039A264 /* PNAPNSModificationAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8101DC22C950039A264 /* PNAPNSModificationAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D89F1DC22F850039A264 /* PNAPNSModificationAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8101DC22C950039A264 /* PNAPNSModificationAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D8A01DC22F850039A264 /* PNAPNSModificationAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8101DC22C950039A264 /* PNAPNSModificationAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8A11DC22F920039A264 /* PNAPNSModificationAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8111DC22C950039A264 /* PNAPNSModificationAPICallBuilder.m */; }; 79A0D8A21DC22F930039A264 /* PNAPNSModificationAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8111DC22C950039A264 /* PNAPNSModificationAPICallBuilder.m */; }; 79A0D8A31DC22F930039A264 /* PNAPNSModificationAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8111DC22C950039A264 /* PNAPNSModificationAPICallBuilder.m */; }; - 79A0D8A41DC22F930039A264 /* PNAPNSModificationAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8111DC22C950039A264 /* PNAPNSModificationAPICallBuilder.m */; }; 79A0D8A51DC22F940039A264 /* PNAPNSModificationAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8111DC22C950039A264 /* PNAPNSModificationAPICallBuilder.m */; }; - 79A0D8A61DC22F940039A264 /* PNAPNSModificationAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8111DC22C950039A264 /* PNAPNSModificationAPICallBuilder.m */; }; 79A0D8A71DC22FA60039A264 /* PNHistoryAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8131DC22C950039A264 /* PNHistoryAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8A81DC22FA60039A264 /* PNHistoryAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8131DC22C950039A264 /* PNHistoryAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8A91DC22FA60039A264 /* PNHistoryAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8131DC22C950039A264 /* PNHistoryAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D8AA1DC22FA70039A264 /* PNHistoryAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8131DC22C950039A264 /* PNHistoryAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8AB1DC22FA70039A264 /* PNHistoryAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8131DC22C950039A264 /* PNHistoryAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D8AC1DC22FA70039A264 /* PNHistoryAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8131DC22C950039A264 /* PNHistoryAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8AD1DC22FB40039A264 /* PNHistoryAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8141DC22C950039A264 /* PNHistoryAPICallBuilder.m */; }; 79A0D8AE1DC22FB40039A264 /* PNHistoryAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8141DC22C950039A264 /* PNHistoryAPICallBuilder.m */; }; 79A0D8AF1DC22FB50039A264 /* PNHistoryAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8141DC22C950039A264 /* PNHistoryAPICallBuilder.m */; }; - 79A0D8B01DC22FB50039A264 /* PNHistoryAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8141DC22C950039A264 /* PNHistoryAPICallBuilder.m */; }; 79A0D8B11DC22FB60039A264 /* PNHistoryAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8141DC22C950039A264 /* PNHistoryAPICallBuilder.m */; }; - 79A0D8B21DC22FB60039A264 /* PNHistoryAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8141DC22C950039A264 /* PNHistoryAPICallBuilder.m */; }; 79A0D8B31DC22FBB0039A264 /* PNPresenceAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8161DC22C950039A264 /* PNPresenceAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8B41DC22FBB0039A264 /* PNPresenceAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8161DC22C950039A264 /* PNPresenceAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8B51DC22FBB0039A264 /* PNPresenceAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8161DC22C950039A264 /* PNPresenceAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D8B61DC22FBC0039A264 /* PNPresenceAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8161DC22C950039A264 /* PNPresenceAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8B71DC22FBC0039A264 /* PNPresenceAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8161DC22C950039A264 /* PNPresenceAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D8B81DC22FBD0039A264 /* PNPresenceAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8161DC22C950039A264 /* PNPresenceAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8B91DC22FC80039A264 /* PNPresenceChannelGroupHereNowAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8181DC22C950039A264 /* PNPresenceChannelGroupHereNowAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8BA1DC22FC90039A264 /* PNPresenceChannelGroupHereNowAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8181DC22C950039A264 /* PNPresenceChannelGroupHereNowAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8BB1DC22FC90039A264 /* PNPresenceChannelGroupHereNowAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8181DC22C950039A264 /* PNPresenceChannelGroupHereNowAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D8BC1DC22FC90039A264 /* PNPresenceChannelGroupHereNowAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8181DC22C950039A264 /* PNPresenceChannelGroupHereNowAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8BD1DC22FCA0039A264 /* PNPresenceChannelGroupHereNowAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8181DC22C950039A264 /* PNPresenceChannelGroupHereNowAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D8BE1DC22FCA0039A264 /* PNPresenceChannelGroupHereNowAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8181DC22C950039A264 /* PNPresenceChannelGroupHereNowAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8BF1DC22FD60039A264 /* PNPresenceChannelHereNowAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D81A1DC22C950039A264 /* PNPresenceChannelHereNowAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8C01DC22FD60039A264 /* PNPresenceChannelHereNowAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D81A1DC22C950039A264 /* PNPresenceChannelHereNowAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8C11DC22FD60039A264 /* PNPresenceChannelHereNowAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D81A1DC22C950039A264 /* PNPresenceChannelHereNowAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D8C21DC22FD70039A264 /* PNPresenceChannelHereNowAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D81A1DC22C950039A264 /* PNPresenceChannelHereNowAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8C31DC22FD70039A264 /* PNPresenceChannelHereNowAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D81A1DC22C950039A264 /* PNPresenceChannelHereNowAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D8C41DC22FD80039A264 /* PNPresenceChannelHereNowAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D81A1DC22C950039A264 /* PNPresenceChannelHereNowAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8C51DC22FEA0039A264 /* PNPresenceHereNowAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D81C1DC22C950039A264 /* PNPresenceHereNowAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8C61DC22FEA0039A264 /* PNPresenceHereNowAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D81C1DC22C950039A264 /* PNPresenceHereNowAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8C71DC22FEA0039A264 /* PNPresenceHereNowAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D81C1DC22C950039A264 /* PNPresenceHereNowAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D8C81DC22FEB0039A264 /* PNPresenceHereNowAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D81C1DC22C950039A264 /* PNPresenceHereNowAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8C91DC22FEB0039A264 /* PNPresenceHereNowAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D81C1DC22C950039A264 /* PNPresenceHereNowAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D8CA1DC22FEB0039A264 /* PNPresenceHereNowAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D81C1DC22C950039A264 /* PNPresenceHereNowAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8CB1DC22FF90039A264 /* PNPresenceWhereNowAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D81E1DC22C950039A264 /* PNPresenceWhereNowAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8CC1DC22FFA0039A264 /* PNPresenceWhereNowAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D81E1DC22C950039A264 /* PNPresenceWhereNowAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8CD1DC22FFA0039A264 /* PNPresenceWhereNowAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D81E1DC22C950039A264 /* PNPresenceWhereNowAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D8CE1DC22FFB0039A264 /* PNPresenceWhereNowAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D81E1DC22C950039A264 /* PNPresenceWhereNowAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D8CF1DC22FFC0039A264 /* PNPresenceWhereNowAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D81E1DC22C950039A264 /* PNPresenceWhereNowAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8D01DC22FFC0039A264 /* PNPresenceWhereNowAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D81E1DC22C950039A264 /* PNPresenceWhereNowAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8D11DC2300F0039A264 /* PNPresenceAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8171DC22C950039A264 /* PNPresenceAPICallBuilder.m */; }; 79A0D8D21DC2300F0039A264 /* PNPresenceAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8171DC22C950039A264 /* PNPresenceAPICallBuilder.m */; }; 79A0D8D31DC2300F0039A264 /* PNPresenceAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8171DC22C950039A264 /* PNPresenceAPICallBuilder.m */; }; - 79A0D8D41DC230100039A264 /* PNPresenceAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8171DC22C950039A264 /* PNPresenceAPICallBuilder.m */; }; 79A0D8D51DC230100039A264 /* PNPresenceAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8171DC22C950039A264 /* PNPresenceAPICallBuilder.m */; }; - 79A0D8D61DC230110039A264 /* PNPresenceAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8171DC22C950039A264 /* PNPresenceAPICallBuilder.m */; }; 79A0D8D71DC230130039A264 /* PNPresenceChannelGroupHereNowAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8191DC22C950039A264 /* PNPresenceChannelGroupHereNowAPICallBuilder.m */; }; 79A0D8D81DC230130039A264 /* PNPresenceChannelGroupHereNowAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8191DC22C950039A264 /* PNPresenceChannelGroupHereNowAPICallBuilder.m */; }; 79A0D8D91DC230140039A264 /* PNPresenceChannelGroupHereNowAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8191DC22C950039A264 /* PNPresenceChannelGroupHereNowAPICallBuilder.m */; }; - 79A0D8DA1DC230140039A264 /* PNPresenceChannelGroupHereNowAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8191DC22C950039A264 /* PNPresenceChannelGroupHereNowAPICallBuilder.m */; }; 79A0D8DB1DC230150039A264 /* PNPresenceChannelGroupHereNowAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8191DC22C950039A264 /* PNPresenceChannelGroupHereNowAPICallBuilder.m */; }; - 79A0D8DC1DC230150039A264 /* PNPresenceChannelGroupHereNowAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8191DC22C950039A264 /* PNPresenceChannelGroupHereNowAPICallBuilder.m */; }; 79A0D8DD1DC230180039A264 /* PNPresenceChannelHereNowAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D81B1DC22C950039A264 /* PNPresenceChannelHereNowAPICallBuilder.m */; }; 79A0D8DE1DC230180039A264 /* PNPresenceChannelHereNowAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D81B1DC22C950039A264 /* PNPresenceChannelHereNowAPICallBuilder.m */; }; 79A0D8DF1DC230180039A264 /* PNPresenceChannelHereNowAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D81B1DC22C950039A264 /* PNPresenceChannelHereNowAPICallBuilder.m */; }; - 79A0D8E01DC230190039A264 /* PNPresenceChannelHereNowAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D81B1DC22C950039A264 /* PNPresenceChannelHereNowAPICallBuilder.m */; }; 79A0D8E11DC230190039A264 /* PNPresenceChannelHereNowAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D81B1DC22C950039A264 /* PNPresenceChannelHereNowAPICallBuilder.m */; }; - 79A0D8E21DC2301A0039A264 /* PNPresenceChannelHereNowAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D81B1DC22C950039A264 /* PNPresenceChannelHereNowAPICallBuilder.m */; }; 79A0D8E31DC2301D0039A264 /* PNPresenceHereNowAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D81D1DC22C950039A264 /* PNPresenceHereNowAPICallBuilder.m */; }; 79A0D8E41DC2301D0039A264 /* PNPresenceHereNowAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D81D1DC22C950039A264 /* PNPresenceHereNowAPICallBuilder.m */; }; 79A0D8E51DC2301E0039A264 /* PNPresenceHereNowAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D81D1DC22C950039A264 /* PNPresenceHereNowAPICallBuilder.m */; }; - 79A0D8E61DC2301E0039A264 /* PNPresenceHereNowAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D81D1DC22C950039A264 /* PNPresenceHereNowAPICallBuilder.m */; }; 79A0D8E71DC2301F0039A264 /* PNPresenceHereNowAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D81D1DC22C950039A264 /* PNPresenceHereNowAPICallBuilder.m */; }; - 79A0D8E81DC2301F0039A264 /* PNPresenceHereNowAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D81D1DC22C950039A264 /* PNPresenceHereNowAPICallBuilder.m */; }; 79A0D8E91DC230220039A264 /* PNPresenceWhereNowAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D81F1DC22C950039A264 /* PNPresenceWhereNowAPICallBuilder.m */; }; 79A0D8EA1DC230230039A264 /* PNPresenceWhereNowAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D81F1DC22C950039A264 /* PNPresenceWhereNowAPICallBuilder.m */; }; 79A0D8EB1DC230230039A264 /* PNPresenceWhereNowAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D81F1DC22C950039A264 /* PNPresenceWhereNowAPICallBuilder.m */; }; - 79A0D8EC1DC230240039A264 /* PNPresenceWhereNowAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D81F1DC22C950039A264 /* PNPresenceWhereNowAPICallBuilder.m */; }; 79A0D8ED1DC230240039A264 /* PNPresenceWhereNowAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D81F1DC22C950039A264 /* PNPresenceWhereNowAPICallBuilder.m */; }; - 79A0D8EE1DC230240039A264 /* PNPresenceWhereNowAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D81F1DC22C950039A264 /* PNPresenceWhereNowAPICallBuilder.m */; }; 79A0D8EF1DC230340039A264 /* PNPublishAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8211DC22C950039A264 /* PNPublishAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8F01DC230350039A264 /* PNPublishAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8211DC22C950039A264 /* PNPublishAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8F11DC230350039A264 /* PNPublishAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8211DC22C950039A264 /* PNPublishAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D8F21DC230360039A264 /* PNPublishAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8211DC22C950039A264 /* PNPublishAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8F31DC230360039A264 /* PNPublishAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8211DC22C950039A264 /* PNPublishAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D8F41DC230360039A264 /* PNPublishAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8211DC22C950039A264 /* PNPublishAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8F51DC230450039A264 /* PNPublishSizeAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8231DC22C950039A264 /* PNPublishSizeAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8F61DC230460039A264 /* PNPublishSizeAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8231DC22C950039A264 /* PNPublishSizeAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8F71DC230460039A264 /* PNPublishSizeAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8231DC22C950039A264 /* PNPublishSizeAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D8F81DC230460039A264 /* PNPublishSizeAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8231DC22C950039A264 /* PNPublishSizeAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8F91DC230470039A264 /* PNPublishSizeAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8231DC22C950039A264 /* PNPublishSizeAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D8FA1DC230470039A264 /* PNPublishSizeAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8231DC22C950039A264 /* PNPublishSizeAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D8FB1DC230540039A264 /* PNPublishAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8221DC22C950039A264 /* PNPublishAPICallBuilder.m */; }; 79A0D8FC1DC230540039A264 /* PNPublishAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8221DC22C950039A264 /* PNPublishAPICallBuilder.m */; }; 79A0D8FD1DC230550039A264 /* PNPublishAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8221DC22C950039A264 /* PNPublishAPICallBuilder.m */; }; 79A0D8FE1DC230550039A264 /* PNPublishAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8221DC22C950039A264 /* PNPublishAPICallBuilder.m */; }; - 79A0D8FF1DC230560039A264 /* PNPublishAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8221DC22C950039A264 /* PNPublishAPICallBuilder.m */; }; - 79A0D9001DC230560039A264 /* PNPublishAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8221DC22C950039A264 /* PNPublishAPICallBuilder.m */; }; 79A0D9011DC230590039A264 /* PNPublishSizeAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8241DC22C950039A264 /* PNPublishSizeAPICallBuilder.m */; }; 79A0D9021DC230590039A264 /* PNPublishSizeAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8241DC22C950039A264 /* PNPublishSizeAPICallBuilder.m */; }; 79A0D9031DC2305A0039A264 /* PNPublishSizeAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8241DC22C950039A264 /* PNPublishSizeAPICallBuilder.m */; }; - 79A0D9041DC2305B0039A264 /* PNPublishSizeAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8241DC22C950039A264 /* PNPublishSizeAPICallBuilder.m */; }; 79A0D9051DC2305B0039A264 /* PNPublishSizeAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8241DC22C950039A264 /* PNPublishSizeAPICallBuilder.m */; }; - 79A0D9061DC2305C0039A264 /* PNPublishSizeAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8241DC22C950039A264 /* PNPublishSizeAPICallBuilder.m */; }; 79A0D9071DC230670039A264 /* PNStateAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8261DC22C950039A264 /* PNStateAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D9081DC230670039A264 /* PNStateAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8261DC22C950039A264 /* PNStateAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D9091DC230670039A264 /* PNStateAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8261DC22C950039A264 /* PNStateAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D90A1DC230680039A264 /* PNStateAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8261DC22C950039A264 /* PNStateAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D90B1DC230680039A264 /* PNStateAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8261DC22C950039A264 /* PNStateAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D90C1DC230680039A264 /* PNStateAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8261DC22C950039A264 /* PNStateAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D90D1DC230760039A264 /* PNStateAuditAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8281DC22C950039A264 /* PNStateAuditAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D90E1DC230760039A264 /* PNStateAuditAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8281DC22C950039A264 /* PNStateAuditAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D90F1DC230760039A264 /* PNStateAuditAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8281DC22C950039A264 /* PNStateAuditAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D9101DC230770039A264 /* PNStateAuditAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8281DC22C950039A264 /* PNStateAuditAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D9111DC230770039A264 /* PNStateAuditAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8281DC22C950039A264 /* PNStateAuditAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D9121DC230780039A264 /* PNStateAuditAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8281DC22C950039A264 /* PNStateAuditAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D9131DC230880039A264 /* PNStateModificationAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D82A1DC22C950039A264 /* PNStateModificationAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D9141DC230880039A264 /* PNStateModificationAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D82A1DC22C950039A264 /* PNStateModificationAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D9151DC230890039A264 /* PNStateModificationAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D82A1DC22C950039A264 /* PNStateModificationAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D9161DC230890039A264 /* PNStateModificationAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D82A1DC22C950039A264 /* PNStateModificationAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D9171DC2308A0039A264 /* PNStateModificationAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D82A1DC22C950039A264 /* PNStateModificationAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D9181DC2308A0039A264 /* PNStateModificationAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D82A1DC22C950039A264 /* PNStateModificationAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D9191DC2309A0039A264 /* PNStateAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8271DC22C950039A264 /* PNStateAPICallBuilder.m */; }; 79A0D91A1DC2309B0039A264 /* PNStateAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8271DC22C950039A264 /* PNStateAPICallBuilder.m */; }; 79A0D91B1DC2309B0039A264 /* PNStateAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8271DC22C950039A264 /* PNStateAPICallBuilder.m */; }; - 79A0D91C1DC2309B0039A264 /* PNStateAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8271DC22C950039A264 /* PNStateAPICallBuilder.m */; }; 79A0D91D1DC2309C0039A264 /* PNStateAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8271DC22C950039A264 /* PNStateAPICallBuilder.m */; }; - 79A0D91E1DC2309C0039A264 /* PNStateAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8271DC22C950039A264 /* PNStateAPICallBuilder.m */; }; 79A0D91F1DC2309F0039A264 /* PNStateAuditAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8291DC22C950039A264 /* PNStateAuditAPICallBuilder.m */; }; 79A0D9201DC2309F0039A264 /* PNStateAuditAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8291DC22C950039A264 /* PNStateAuditAPICallBuilder.m */; }; 79A0D9211DC2309F0039A264 /* PNStateAuditAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8291DC22C950039A264 /* PNStateAuditAPICallBuilder.m */; }; - 79A0D9221DC230A00039A264 /* PNStateAuditAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8291DC22C950039A264 /* PNStateAuditAPICallBuilder.m */; }; 79A0D9231DC230A00039A264 /* PNStateAuditAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8291DC22C950039A264 /* PNStateAuditAPICallBuilder.m */; }; - 79A0D9241DC230A00039A264 /* PNStateAuditAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8291DC22C950039A264 /* PNStateAuditAPICallBuilder.m */; }; 79A0D9251DC230A30039A264 /* PNStateModificationAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D82B1DC22C950039A264 /* PNStateModificationAPICallBuilder.m */; }; 79A0D9261DC230A30039A264 /* PNStateModificationAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D82B1DC22C950039A264 /* PNStateModificationAPICallBuilder.m */; }; 79A0D9271DC230A30039A264 /* PNStateModificationAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D82B1DC22C950039A264 /* PNStateModificationAPICallBuilder.m */; }; 79A0D9281DC230A40039A264 /* PNStateModificationAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D82B1DC22C950039A264 /* PNStateModificationAPICallBuilder.m */; }; - 79A0D9291DC230A40039A264 /* PNStateModificationAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D82B1DC22C950039A264 /* PNStateModificationAPICallBuilder.m */; }; - 79A0D92A1DC230A50039A264 /* PNStateModificationAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D82B1DC22C950039A264 /* PNStateModificationAPICallBuilder.m */; }; 79A0D92B1DC230AB0039A264 /* PNStreamAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D82D1DC22C950039A264 /* PNStreamAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D92C1DC230AB0039A264 /* PNStreamAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D82D1DC22C950039A264 /* PNStreamAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D92D1DC230AC0039A264 /* PNStreamAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D82D1DC22C950039A264 /* PNStreamAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D92E1DC230AC0039A264 /* PNStreamAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D82D1DC22C950039A264 /* PNStreamAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D92F1DC230AC0039A264 /* PNStreamAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D82D1DC22C950039A264 /* PNStreamAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D9301DC230AD0039A264 /* PNStreamAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D82D1DC22C950039A264 /* PNStreamAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D9311DC230BB0039A264 /* PNStreamAuditAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D82F1DC22C950039A264 /* PNStreamAuditAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D9321DC230BB0039A264 /* PNStreamAuditAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D82F1DC22C950039A264 /* PNStreamAuditAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D9331DC230BC0039A264 /* PNStreamAuditAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D82F1DC22C950039A264 /* PNStreamAuditAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D9341DC230BD0039A264 /* PNStreamAuditAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D82F1DC22C950039A264 /* PNStreamAuditAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D9351DC230BD0039A264 /* PNStreamAuditAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D82F1DC22C950039A264 /* PNStreamAuditAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D9361DC230BD0039A264 /* PNStreamAuditAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D82F1DC22C950039A264 /* PNStreamAuditAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D9371DC230CB0039A264 /* PNStreamModificationAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8311DC22C950039A264 /* PNStreamModificationAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D9381DC230CC0039A264 /* PNStreamModificationAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8311DC22C950039A264 /* PNStreamModificationAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D9391DC230CC0039A264 /* PNStreamModificationAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8311DC22C950039A264 /* PNStreamModificationAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D93A1DC230CD0039A264 /* PNStreamModificationAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8311DC22C950039A264 /* PNStreamModificationAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D93B1DC230CD0039A264 /* PNStreamModificationAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8311DC22C950039A264 /* PNStreamModificationAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D93C1DC230CE0039A264 /* PNStreamModificationAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8311DC22C950039A264 /* PNStreamModificationAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D93D1DC230DD0039A264 /* PNStreamAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D82E1DC22C950039A264 /* PNStreamAPICallBuilder.m */; }; 79A0D93E1DC230DE0039A264 /* PNStreamAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D82E1DC22C950039A264 /* PNStreamAPICallBuilder.m */; }; 79A0D93F1DC230DE0039A264 /* PNStreamAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D82E1DC22C950039A264 /* PNStreamAPICallBuilder.m */; }; - 79A0D9401DC230DF0039A264 /* PNStreamAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D82E1DC22C950039A264 /* PNStreamAPICallBuilder.m */; }; 79A0D9411DC230DF0039A264 /* PNStreamAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D82E1DC22C950039A264 /* PNStreamAPICallBuilder.m */; }; - 79A0D9421DC230DF0039A264 /* PNStreamAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D82E1DC22C950039A264 /* PNStreamAPICallBuilder.m */; }; 79A0D9431DC230E20039A264 /* PNStreamAuditAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8301DC22C950039A264 /* PNStreamAuditAPICallBuilder.m */; }; 79A0D9441DC230E30039A264 /* PNStreamAuditAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8301DC22C950039A264 /* PNStreamAuditAPICallBuilder.m */; }; 79A0D9451DC230E30039A264 /* PNStreamAuditAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8301DC22C950039A264 /* PNStreamAuditAPICallBuilder.m */; }; - 79A0D9461DC230E40039A264 /* PNStreamAuditAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8301DC22C950039A264 /* PNStreamAuditAPICallBuilder.m */; }; 79A0D9471DC230E50039A264 /* PNStreamAuditAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8301DC22C950039A264 /* PNStreamAuditAPICallBuilder.m */; }; - 79A0D9481DC230E50039A264 /* PNStreamAuditAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8301DC22C950039A264 /* PNStreamAuditAPICallBuilder.m */; }; 79A0D9491DC230E80039A264 /* PNStreamModificationAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8321DC22C950039A264 /* PNStreamModificationAPICallBuilder.m */; }; 79A0D94A1DC230E80039A264 /* PNStreamModificationAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8321DC22C950039A264 /* PNStreamModificationAPICallBuilder.m */; }; 79A0D94B1DC230E90039A264 /* PNStreamModificationAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8321DC22C950039A264 /* PNStreamModificationAPICallBuilder.m */; }; - 79A0D94C1DC230EA0039A264 /* PNStreamModificationAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8321DC22C950039A264 /* PNStreamModificationAPICallBuilder.m */; }; 79A0D94D1DC230EA0039A264 /* PNStreamModificationAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8321DC22C950039A264 /* PNStreamModificationAPICallBuilder.m */; }; - 79A0D94E1DC230EA0039A264 /* PNStreamModificationAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8321DC22C950039A264 /* PNStreamModificationAPICallBuilder.m */; }; 79A0D94F1DC230F50039A264 /* PNSubscribeAPIBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8341DC22C950039A264 /* PNSubscribeAPIBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D9501DC230F50039A264 /* PNSubscribeAPIBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8341DC22C950039A264 /* PNSubscribeAPIBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D9511DC230F50039A264 /* PNSubscribeAPIBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8341DC22C950039A264 /* PNSubscribeAPIBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D9521DC230F60039A264 /* PNSubscribeAPIBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8341DC22C950039A264 /* PNSubscribeAPIBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D9531DC230F60039A264 /* PNSubscribeAPIBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8341DC22C950039A264 /* PNSubscribeAPIBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D9541DC230F60039A264 /* PNSubscribeAPIBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8341DC22C950039A264 /* PNSubscribeAPIBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D9551DC230F90039A264 /* PNSubscribeChannelsOrGroupsAPIBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8361DC22C950039A264 /* PNSubscribeChannelsOrGroupsAPIBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D9561DC230F90039A264 /* PNSubscribeChannelsOrGroupsAPIBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8361DC22C950039A264 /* PNSubscribeChannelsOrGroupsAPIBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D9571DC230FA0039A264 /* PNSubscribeChannelsOrGroupsAPIBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8361DC22C950039A264 /* PNSubscribeChannelsOrGroupsAPIBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D9581DC230FA0039A264 /* PNSubscribeChannelsOrGroupsAPIBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8361DC22C950039A264 /* PNSubscribeChannelsOrGroupsAPIBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D9591DC230FA0039A264 /* PNSubscribeChannelsOrGroupsAPIBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8361DC22C950039A264 /* PNSubscribeChannelsOrGroupsAPIBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D95A1DC230FB0039A264 /* PNSubscribeChannelsOrGroupsAPIBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8361DC22C950039A264 /* PNSubscribeChannelsOrGroupsAPIBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D95B1DC230FE0039A264 /* PNUnsubscribeAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8381DC22C950039A264 /* PNUnsubscribeAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D95C1DC230FE0039A264 /* PNUnsubscribeAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8381DC22C950039A264 /* PNUnsubscribeAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D95D1DC230FF0039A264 /* PNUnsubscribeAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8381DC22C950039A264 /* PNUnsubscribeAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D95E1DC230FF0039A264 /* PNUnsubscribeAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8381DC22C950039A264 /* PNUnsubscribeAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D95F1DC230FF0039A264 /* PNUnsubscribeAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8381DC22C950039A264 /* PNUnsubscribeAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D9601DC231000039A264 /* PNUnsubscribeAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D8381DC22C950039A264 /* PNUnsubscribeAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D9611DC231030039A264 /* PNUnsubscribeChannelsOrGroupsAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D83A1DC22C950039A264 /* PNUnsubscribeChannelsOrGroupsAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D9621DC231040039A264 /* PNUnsubscribeChannelsOrGroupsAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D83A1DC22C950039A264 /* PNUnsubscribeChannelsOrGroupsAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D9631DC231040039A264 /* PNUnsubscribeChannelsOrGroupsAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D83A1DC22C950039A264 /* PNUnsubscribeChannelsOrGroupsAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D9641DC231040039A264 /* PNUnsubscribeChannelsOrGroupsAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D83A1DC22C950039A264 /* PNUnsubscribeChannelsOrGroupsAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D9651DC231050039A264 /* PNUnsubscribeChannelsOrGroupsAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D83A1DC22C950039A264 /* PNUnsubscribeChannelsOrGroupsAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D9661DC231050039A264 /* PNUnsubscribeChannelsOrGroupsAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D83A1DC22C950039A264 /* PNUnsubscribeChannelsOrGroupsAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D9671DC231350039A264 /* PNSubscribeAPIBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8351DC22C950039A264 /* PNSubscribeAPIBuilder.m */; }; 79A0D9681DC231350039A264 /* PNSubscribeAPIBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8351DC22C950039A264 /* PNSubscribeAPIBuilder.m */; }; 79A0D9691DC231360039A264 /* PNSubscribeAPIBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8351DC22C950039A264 /* PNSubscribeAPIBuilder.m */; }; - 79A0D96A1DC231360039A264 /* PNSubscribeAPIBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8351DC22C950039A264 /* PNSubscribeAPIBuilder.m */; }; 79A0D96B1DC231370039A264 /* PNSubscribeAPIBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8351DC22C950039A264 /* PNSubscribeAPIBuilder.m */; }; - 79A0D96C1DC231370039A264 /* PNSubscribeAPIBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8351DC22C950039A264 /* PNSubscribeAPIBuilder.m */; }; 79A0D96D1DC2313A0039A264 /* PNSubscribeChannelsOrGroupsAPIBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8371DC22C950039A264 /* PNSubscribeChannelsOrGroupsAPIBuilder.m */; }; 79A0D96E1DC2313A0039A264 /* PNSubscribeChannelsOrGroupsAPIBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8371DC22C950039A264 /* PNSubscribeChannelsOrGroupsAPIBuilder.m */; }; 79A0D96F1DC2313B0039A264 /* PNSubscribeChannelsOrGroupsAPIBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8371DC22C950039A264 /* PNSubscribeChannelsOrGroupsAPIBuilder.m */; }; - 79A0D9701DC2313B0039A264 /* PNSubscribeChannelsOrGroupsAPIBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8371DC22C950039A264 /* PNSubscribeChannelsOrGroupsAPIBuilder.m */; }; 79A0D9711DC2313C0039A264 /* PNSubscribeChannelsOrGroupsAPIBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8371DC22C950039A264 /* PNSubscribeChannelsOrGroupsAPIBuilder.m */; }; - 79A0D9721DC2313C0039A264 /* PNSubscribeChannelsOrGroupsAPIBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8371DC22C950039A264 /* PNSubscribeChannelsOrGroupsAPIBuilder.m */; }; 79A0D9731DC2313F0039A264 /* PNUnsubscribeAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8391DC22C950039A264 /* PNUnsubscribeAPICallBuilder.m */; }; 79A0D9741DC2313F0039A264 /* PNUnsubscribeAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8391DC22C950039A264 /* PNUnsubscribeAPICallBuilder.m */; }; 79A0D9751DC231400039A264 /* PNUnsubscribeAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8391DC22C950039A264 /* PNUnsubscribeAPICallBuilder.m */; }; - 79A0D9761DC231400039A264 /* PNUnsubscribeAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8391DC22C950039A264 /* PNUnsubscribeAPICallBuilder.m */; }; 79A0D9771DC231410039A264 /* PNUnsubscribeAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8391DC22C950039A264 /* PNUnsubscribeAPICallBuilder.m */; }; - 79A0D9781DC231410039A264 /* PNUnsubscribeAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D8391DC22C950039A264 /* PNUnsubscribeAPICallBuilder.m */; }; 79A0D9791DC231440039A264 /* PNUnsubscribeChannelsOrGroupsAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D83B1DC22C950039A264 /* PNUnsubscribeChannelsOrGroupsAPICallBuilder.m */; }; 79A0D97A1DC231440039A264 /* PNUnsubscribeChannelsOrGroupsAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D83B1DC22C950039A264 /* PNUnsubscribeChannelsOrGroupsAPICallBuilder.m */; }; 79A0D97B1DC231450039A264 /* PNUnsubscribeChannelsOrGroupsAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D83B1DC22C950039A264 /* PNUnsubscribeChannelsOrGroupsAPICallBuilder.m */; }; - 79A0D97D1DC231460039A264 /* PNUnsubscribeChannelsOrGroupsAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D83B1DC22C950039A264 /* PNUnsubscribeChannelsOrGroupsAPICallBuilder.m */; }; 79A0D97E1DC231470039A264 /* PNUnsubscribeChannelsOrGroupsAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D83B1DC22C950039A264 /* PNUnsubscribeChannelsOrGroupsAPICallBuilder.m */; }; - 79A0D97F1DC231470039A264 /* PNUnsubscribeChannelsOrGroupsAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D83B1DC22C950039A264 /* PNUnsubscribeChannelsOrGroupsAPICallBuilder.m */; }; 79A0D9801DC2314B0039A264 /* PNTimeAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D83D1DC22C950039A264 /* PNTimeAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D9811DC2314C0039A264 /* PNTimeAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D83D1DC22C950039A264 /* PNTimeAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D9821DC2314C0039A264 /* PNTimeAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D83D1DC22C950039A264 /* PNTimeAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D9831DC2314D0039A264 /* PNTimeAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D83D1DC22C950039A264 /* PNTimeAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D9841DC2314D0039A264 /* PNTimeAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D83D1DC22C950039A264 /* PNTimeAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A0D9851DC2314D0039A264 /* PNTimeAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A0D83D1DC22C950039A264 /* PNTimeAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A0D9861DC2315D0039A264 /* PNTimeAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D83E1DC22C950039A264 /* PNTimeAPICallBuilder.m */; }; 79A0D9871DC2315D0039A264 /* PNTimeAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D83E1DC22C950039A264 /* PNTimeAPICallBuilder.m */; }; 79A0D9881DC2315E0039A264 /* PNTimeAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D83E1DC22C950039A264 /* PNTimeAPICallBuilder.m */; }; - 79A0D9891DC2315E0039A264 /* PNTimeAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D83E1DC22C950039A264 /* PNTimeAPICallBuilder.m */; }; - 79A0D98A1DC2315F0039A264 /* PNTimeAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D83E1DC22C950039A264 /* PNTimeAPICallBuilder.m */; }; 79A0D98B1DC2315F0039A264 /* PNTimeAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A0D83E1DC22C950039A264 /* PNTimeAPICallBuilder.m */; }; 79A238D01D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A238CD1D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A238D11D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A238CD1D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A238D21D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A238CD1D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A238D31D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A238CD1D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A238D41D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A238CD1D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A238D51D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A238CD1D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A238D61D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A238CD1D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A238D71D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A238CE1D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfiguration.m */; }; 79A238D81D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A238CE1D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfiguration.m */; }; 79A238D91D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A238CE1D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfiguration.m */; }; 79A238DA1D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A238CE1D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfiguration.m */; }; - 79A238DB1D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A238CE1D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfiguration.m */; }; 79A238DC1D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A238CE1D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfiguration.m */; }; - 79A238DD1D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A238CE1D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfiguration.m */; }; 79A238DE1D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfigurationPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A238CF1D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfigurationPrivate.h */; }; 79A238DF1D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfigurationPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A238CF1D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfigurationPrivate.h */; }; 79A238E01D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfigurationPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A238CF1D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfigurationPrivate.h */; }; 79A238E11D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfigurationPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A238CF1D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfigurationPrivate.h */; }; - 79A238E21D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfigurationPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A238CF1D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfigurationPrivate.h */; }; 79A238E31D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfigurationPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A238CF1D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfigurationPrivate.h */; }; - 79A238E41D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfigurationPrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A238CF1D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfigurationPrivate.h */; }; 79A3E4082215699900F2ADB9 /* PNMessageCountAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A3E4062215699900F2ADB9 /* PNMessageCountAPICallBuilder.m */; }; 79A3E4092215699900F2ADB9 /* PNMessageCountAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A3E4062215699900F2ADB9 /* PNMessageCountAPICallBuilder.m */; }; 79A3E40A2215699900F2ADB9 /* PNMessageCountAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A3E4062215699900F2ADB9 /* PNMessageCountAPICallBuilder.m */; }; 79A3E40B2215699900F2ADB9 /* PNMessageCountAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A3E4062215699900F2ADB9 /* PNMessageCountAPICallBuilder.m */; }; - 79A3E40C2215699900F2ADB9 /* PNMessageCountAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A3E4062215699900F2ADB9 /* PNMessageCountAPICallBuilder.m */; }; 79A3E40D2215699900F2ADB9 /* PNMessageCountAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A3E4062215699900F2ADB9 /* PNMessageCountAPICallBuilder.m */; }; - 79A3E40E2215699900F2ADB9 /* PNMessageCountAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A3E4062215699900F2ADB9 /* PNMessageCountAPICallBuilder.m */; }; 79A3E40F2215699900F2ADB9 /* PNMessageCountAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A3E4072215699900F2ADB9 /* PNMessageCountAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A3E4102215699900F2ADB9 /* PNMessageCountAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A3E4072215699900F2ADB9 /* PNMessageCountAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A3E4112215699900F2ADB9 /* PNMessageCountAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A3E4072215699900F2ADB9 /* PNMessageCountAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A3E4122215699900F2ADB9 /* PNMessageCountAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A3E4072215699900F2ADB9 /* PNMessageCountAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A3E4132215699900F2ADB9 /* PNMessageCountAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A3E4072215699900F2ADB9 /* PNMessageCountAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A3E4142215699900F2ADB9 /* PNMessageCountAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A3E4072215699900F2ADB9 /* PNMessageCountAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A3E4152215699900F2ADB9 /* PNMessageCountAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A3E4072215699900F2ADB9 /* PNMessageCountAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A3E418221569BA00F2ADB9 /* PNMessageCountResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A3E416221569BA00F2ADB9 /* PNMessageCountResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A3E419221569BA00F2ADB9 /* PNMessageCountResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A3E416221569BA00F2ADB9 /* PNMessageCountResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A3E41A221569BA00F2ADB9 /* PNMessageCountResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A3E416221569BA00F2ADB9 /* PNMessageCountResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A3E41B221569BA00F2ADB9 /* PNMessageCountResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A3E416221569BA00F2ADB9 /* PNMessageCountResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A3E41C221569BA00F2ADB9 /* PNMessageCountResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A3E416221569BA00F2ADB9 /* PNMessageCountResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A3E41D221569BA00F2ADB9 /* PNMessageCountResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A3E416221569BA00F2ADB9 /* PNMessageCountResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79A3E41E221569BA00F2ADB9 /* PNMessageCountResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A3E416221569BA00F2ADB9 /* PNMessageCountResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79A3E41F221569BA00F2ADB9 /* PNMessageCountResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A3E417221569BA00F2ADB9 /* PNMessageCountResult.m */; }; 79A3E420221569BA00F2ADB9 /* PNMessageCountResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A3E417221569BA00F2ADB9 /* PNMessageCountResult.m */; }; 79A3E421221569BA00F2ADB9 /* PNMessageCountResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A3E417221569BA00F2ADB9 /* PNMessageCountResult.m */; }; 79A3E422221569BA00F2ADB9 /* PNMessageCountResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A3E417221569BA00F2ADB9 /* PNMessageCountResult.m */; }; - 79A3E423221569BA00F2ADB9 /* PNMessageCountResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A3E417221569BA00F2ADB9 /* PNMessageCountResult.m */; }; 79A3E424221569BA00F2ADB9 /* PNMessageCountResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A3E417221569BA00F2ADB9 /* PNMessageCountResult.m */; }; - 79A3E425221569BA00F2ADB9 /* PNMessageCountResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A3E417221569BA00F2ADB9 /* PNMessageCountResult.m */; }; 79A3E428221569DA00F2ADB9 /* PNMessageCountParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A3E426221569DA00F2ADB9 /* PNMessageCountParser.h */; }; 79A3E429221569DA00F2ADB9 /* PNMessageCountParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A3E426221569DA00F2ADB9 /* PNMessageCountParser.h */; }; 79A3E42A221569DA00F2ADB9 /* PNMessageCountParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A3E426221569DA00F2ADB9 /* PNMessageCountParser.h */; }; 79A3E42B221569DA00F2ADB9 /* PNMessageCountParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A3E426221569DA00F2ADB9 /* PNMessageCountParser.h */; }; - 79A3E42C221569DA00F2ADB9 /* PNMessageCountParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A3E426221569DA00F2ADB9 /* PNMessageCountParser.h */; }; 79A3E42D221569DA00F2ADB9 /* PNMessageCountParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A3E426221569DA00F2ADB9 /* PNMessageCountParser.h */; }; - 79A3E42E221569DA00F2ADB9 /* PNMessageCountParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 79A3E426221569DA00F2ADB9 /* PNMessageCountParser.h */; }; 79A3E42F221569DA00F2ADB9 /* PNMessageCountParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A3E427221569DA00F2ADB9 /* PNMessageCountParser.m */; }; 79A3E430221569DA00F2ADB9 /* PNMessageCountParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A3E427221569DA00F2ADB9 /* PNMessageCountParser.m */; }; 79A3E431221569DA00F2ADB9 /* PNMessageCountParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A3E427221569DA00F2ADB9 /* PNMessageCountParser.m */; }; 79A3E432221569DA00F2ADB9 /* PNMessageCountParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A3E427221569DA00F2ADB9 /* PNMessageCountParser.m */; }; - 79A3E433221569DA00F2ADB9 /* PNMessageCountParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A3E427221569DA00F2ADB9 /* PNMessageCountParser.m */; }; 79A3E434221569DA00F2ADB9 /* PNMessageCountParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A3E427221569DA00F2ADB9 /* PNMessageCountParser.m */; }; - 79A3E435221569DA00F2ADB9 /* PNMessageCountParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A3E427221569DA00F2ADB9 /* PNMessageCountParser.m */; }; 79A8BC1E1C58F93900015BDE /* PubNub+History.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB05E1BD03DE4001FC34D /* PubNub+History.m */; }; 79A8BC1F1C58F93900015BDE /* PNPresenceGlobalHereNowResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0951BD03DE4001FC34D /* PNPresenceGlobalHereNowResult.m */; }; 79A8BC201C58F93900015BDE /* PNString.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0BC1BD03DE4001FC34D /* PNString.m */; }; @@ -1316,168 +1009,16 @@ 79A8BCBA1C58F93900015BDE /* PNChannelGroupModificationParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0D21BD03DE4001FC34D /* PNChannelGroupModificationParser.h */; }; 79A8BCBB1C58F93900015BDE /* PNPresenceHereNowParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0E01BD03DE4001FC34D /* PNPresenceHereNowParser.h */; }; 79A8BCBD1C58F93900015BDE /* PNErrorStatus+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB08B1BD03DE4001FC34D /* PNErrorStatus+Private.h */; }; - 79A8BDB31C58FB7800015BDE /* PubNub-Fabric-Info.plist in CopyFiles */ = {isa = PBXBuildFile; fileRef = 79ACC4961C11BD720056523A /* PubNub-Fabric-Info.plist */; }; - 79AAC15B1C11BE71008D94A8 /* PubNub+FAB.h in Headers */ = {isa = PBXBuildFile; fileRef = 79ACC3D91C11BB420056523A /* PubNub+FAB.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79AAC15C1C11BE77008D94A8 /* PubNub+FAB.m in Sources */ = {isa = PBXBuildFile; fileRef = 79ACC3DA1C11BB420056523A /* PubNub+FAB.m */; }; 79ABD8911F01636B007634E0 /* PNTelemetry.h in Headers */ = {isa = PBXBuildFile; fileRef = 79ABD88F1F01636B007634E0 /* PNTelemetry.h */; }; 79ABD8921F01636B007634E0 /* PNTelemetry.h in Headers */ = {isa = PBXBuildFile; fileRef = 79ABD88F1F01636B007634E0 /* PNTelemetry.h */; }; 79ABD8931F01636B007634E0 /* PNTelemetry.h in Headers */ = {isa = PBXBuildFile; fileRef = 79ABD88F1F01636B007634E0 /* PNTelemetry.h */; }; 79ABD8941F01636B007634E0 /* PNTelemetry.h in Headers */ = {isa = PBXBuildFile; fileRef = 79ABD88F1F01636B007634E0 /* PNTelemetry.h */; }; - 79ABD8951F01636B007634E0 /* PNTelemetry.h in Headers */ = {isa = PBXBuildFile; fileRef = 79ABD88F1F01636B007634E0 /* PNTelemetry.h */; }; 79ABD8961F01636B007634E0 /* PNTelemetry.h in Headers */ = {isa = PBXBuildFile; fileRef = 79ABD88F1F01636B007634E0 /* PNTelemetry.h */; }; - 79ABD8971F01636B007634E0 /* PNTelemetry.h in Headers */ = {isa = PBXBuildFile; fileRef = 79ABD88F1F01636B007634E0 /* PNTelemetry.h */; }; 79ABD8981F01636B007634E0 /* PNTelemetry.m in Sources */ = {isa = PBXBuildFile; fileRef = 79ABD8901F01636B007634E0 /* PNTelemetry.m */; }; 79ABD8991F01636B007634E0 /* PNTelemetry.m in Sources */ = {isa = PBXBuildFile; fileRef = 79ABD8901F01636B007634E0 /* PNTelemetry.m */; }; 79ABD89A1F01636B007634E0 /* PNTelemetry.m in Sources */ = {isa = PBXBuildFile; fileRef = 79ABD8901F01636B007634E0 /* PNTelemetry.m */; }; 79ABD89B1F01636B007634E0 /* PNTelemetry.m in Sources */ = {isa = PBXBuildFile; fileRef = 79ABD8901F01636B007634E0 /* PNTelemetry.m */; }; - 79ABD89C1F01636B007634E0 /* PNTelemetry.m in Sources */ = {isa = PBXBuildFile; fileRef = 79ABD8901F01636B007634E0 /* PNTelemetry.m */; }; 79ABD89D1F01636B007634E0 /* PNTelemetry.m in Sources */ = {isa = PBXBuildFile; fileRef = 79ABD8901F01636B007634E0 /* PNTelemetry.m */; }; - 79ABD89E1F01636B007634E0 /* PNTelemetry.m in Sources */ = {isa = PBXBuildFile; fileRef = 79ABD8901F01636B007634E0 /* PNTelemetry.m */; }; - 79ACC3EA1C11BC4D0056523A /* PubNub+History.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB05E1BD03DE4001FC34D /* PubNub+History.m */; }; - 79ACC3EB1C11BC4D0056523A /* PNPresenceGlobalHereNowResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0951BD03DE4001FC34D /* PNPresenceGlobalHereNowResult.m */; }; - 79ACC3EC1C11BC4D0056523A /* PNString.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0BC1BD03DE4001FC34D /* PNString.m */; }; - 79ACC3ED1C11BC4D0056523A /* PubNub+Core.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB05B1BD03DE4001FC34D /* PubNub+Core.m */; }; - 79ACC3EE1C11BC4D0056523A /* PNReachability.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0F31BD03DE4001FC34D /* PNReachability.m */; }; - 79ACC3EF1C11BC4D0056523A /* PNData.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0B31BD03DE4001FC34D /* PNData.m */; }; - 79ACC3F11C11BC4D0056523A /* PNDictionary.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0B51BD03DE4001FC34D /* PNDictionary.m */; }; - 79ACC3F21C11BC4D0056523A /* PNSubscribeStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0A61BD03DE4001FC34D /* PNSubscribeStatus.m */; }; - 79ACC3F31C11BC4D0056523A /* PNConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB07B1BD03DE4001FC34D /* PNConfiguration.m */; }; - 79ACC3F41C11BC4D0056523A /* PNHistoryParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0DB1BD03DE4001FC34D /* PNHistoryParser.m */; }; - 79ACC3F51C11BC4D0056523A /* PNGZIP.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0B71BD03DE4001FC34D /* PNGZIP.m */; }; - 79ACC3F61C11BC4D0056523A /* PNPushNotificationsStateModificationParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0E71BD03DE4001FC34D /* PNPushNotificationsStateModificationParser.m */; }; - 79ACC3F71C11BC4D0056523A /* PNJSON.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0BA1BD03DE4001FC34D /* PNJSON.m */; }; - 79ACC3F81C11BC4D0056523A /* PNPresenceWhereNowResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0971BD03DE4001FC34D /* PNPresenceWhereNowResult.m */; }; - 79ACC3F91C11BC4D0056523A /* PubNub+APNS.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0571BD03DE4001FC34D /* PubNub+APNS.m */; }; - 79ACC3FA1C11BC4D0056523A /* PNChannelGroupAuditionParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0D11BD03DE4001FC34D /* PNChannelGroupAuditionParser.m */; }; - 79ACC3FB1C11BC4D0056523A /* PNChannelGroupsResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0881BD03DE4001FC34D /* PNChannelGroupsResult.m */; }; - 79ACC3FC1C11BC4D0056523A /* PubNub+Time.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB06A1BD03DE4001FC34D /* PubNub+Time.m */; }; - 79ACC3FD1C11BC4D0056523A /* PNErrorStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB08D1BD03DE4001FC34D /* PNErrorStatus.m */; }; - 79ACC3FE1C11BC4D0056523A /* PubNub+State.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0651BD03DE4001FC34D /* PubNub+State.m */; }; - 79ACC3FF1C11BC4D0056523A /* PNPushNotificationsAuditParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0E51BD03DE4001FC34D /* PNPushNotificationsAuditParser.m */; }; - 79ACC4001C11BC4D0056523A /* PNStateListener.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0721BD03DE4001FC34D /* PNStateListener.m */; }; - 79ACC4011C11BC4D0056523A /* PNHeartbeat.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0701BD03DE4001FC34D /* PNHeartbeat.m */; }; - 79ACC4021C11BC4D0056523A /* PNAcknowledgmentStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB07E1BD03DE4001FC34D /* PNAcknowledgmentStatus.m */; }; - 79ACC4031C11BC4D0056523A /* PubNub+ChannelGroup.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0591BD03DE4001FC34D /* PubNub+ChannelGroup.m */; }; - 79ACC4041C11BC4D0056523A /* PNRequestParameters.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0F51BD03DE4001FC34D /* PNRequestParameters.m */; }; - 79ACC4051C11BC4D0056523A /* PNHistoryResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB08F1BD03DE4001FC34D /* PNHistoryResult.m */; }; - 79ACC4061C11BC4D0056523A /* PNErrorParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0D71BD03DE4001FC34D /* PNErrorParser.m */; }; - 79ACC4071C11BC4D0056523A /* PNChannelClientStateResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0821BD03DE4001FC34D /* PNChannelClientStateResult.m */; }; - 79ACC4081C11BC4D0056523A /* PNPresenceWhereNowParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0E31BD03DE4001FC34D /* PNPresenceWhereNowParser.m */; }; - 79ACC4091C11BC4D0056523A /* PNChannel.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0AF1BD03DE4001FC34D /* PNChannel.m */; }; - 79ACC40A1C11BC4D0056523A /* PNSubscriberResults.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0A41BD03DE4001FC34D /* PNSubscriberResults.m */; }; - 79ACC40B1C11BC4D0056523A /* PNChannelGroupModificationParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0D31BD03DE4001FC34D /* PNChannelGroupModificationParser.m */; }; - 79ACC40D1C11BC4D0056523A /* PNClientInformation.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0781BD03DE4001FC34D /* PNClientInformation.m */; }; - 79ACC40E1C11BC4D0056523A /* PNChannelGroupChannelsResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0841BD03DE4001FC34D /* PNChannelGroupChannelsResult.m */; }; - 79ACC40F1C11BC4D0056523A /* PNLeaveParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0DD1BD03DE4001FC34D /* PNLeaveParser.m */; }; - 79ACC4101C11BC4D0056523A /* PNClientState.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB06E1BD03DE4001FC34D /* PNClientState.m */; }; - 79ACC4111C11BC4D0056523A /* PNSubscribeParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0EB1BD03DE4001FC34D /* PNSubscribeParser.m */; }; - 79ACC4121C11BC4D0056523A /* PNMessagePublishParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0DF1BD03DE4001FC34D /* PNMessagePublishParser.m */; }; - 79ACC4131C11BC4D0056523A /* PNURLRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0BE1BD03DE4001FC34D /* PNURLRequest.m */; }; - 79ACC4141C11BC4D0056523A /* PNTimeParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0ED1BD03DE4001FC34D /* PNTimeParser.m */; }; - 79ACC4151C11BC4D0056523A /* PNTimeResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0A81BD03DE4001FC34D /* PNTimeResult.m */; }; - 79ACC4171C11BC4D0056523A /* PNServiceData.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB09F1BD03DE4001FC34D /* PNServiceData.m */; }; - 79ACC4181C11BC4D0056523A /* PNClientStateUpdateStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB08A1BD03DE4001FC34D /* PNClientStateUpdateStatus.m */; }; - 79ACC4191C11BC4D0056523A /* PNAES.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0761BD03DE4001FC34D /* PNAES.m */; }; - 79ACC41A1C11BC4D0056523A /* PNNetwork.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0EF1BD03DE4001FC34D /* PNNetwork.m */; }; - 79ACC41C1C11BC4D0056523A /* PNPublishStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0991BD03DE4001FC34D /* PNPublishStatus.m */; }; - 79ACC41D1C11BC4D0056523A /* PNNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = 793887031BEAD49100DCC662 /* PNNumber.m */; }; - 79ACC41E1C11BC4D0056523A /* PubNub+Presence.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0601BD03DE4001FC34D /* PubNub+Presence.m */; }; - 79ACC41F1C11BC4D0056523A /* PNSubscriber.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0741BD03DE4001FC34D /* PNSubscriber.m */; }; - 79ACC4201C11BC4D0056523A /* PNURLBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0F71BD03DE4001FC34D /* PNURLBuilder.m */; }; - 79ACC4211C11BC4D0056523A /* PNChannelGroupClientStateResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0861BD03DE4001FC34D /* PNChannelGroupClientStateResult.m */; }; - 79ACC4231C11BC4D0056523A /* PNPresenceChannelGroupHereNowResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0911BD03DE4001FC34D /* PNPresenceChannelGroupHereNowResult.m */; }; - 79ACC4241C11BC4D0056523A /* PNHeartbeatParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0D91BD03DE4001FC34D /* PNHeartbeatParser.m */; }; - 79ACC4251C11BC4D0056523A /* PNStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0A21BD03DE4001FC34D /* PNStatus.m */; }; - 79ACC4261C11BC4D0056523A /* PNArray.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0AD1BD03DE4001FC34D /* PNArray.m */; }; - 79ACC4271C11BC4D0056523A /* PNNetworkResponseSerializer.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0F11BD03DE4001FC34D /* PNNetworkResponseSerializer.m */; }; - 79ACC4281C11BC4D0056523A /* PubNub+Subscribe.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0671BD03DE4001FC34D /* PubNub+Subscribe.m */; }; - 79ACC4291C11BC4D0056523A /* PNAPNSEnabledChannelsResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0801BD03DE4001FC34D /* PNAPNSEnabledChannelsResult.m */; }; - 79ACC42A1C11BC4D0056523A /* PNResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB09C1BD03DE4001FC34D /* PNResult.m */; }; - 79ACC42B1C11BC4D0056523A /* PNPresenceChannelHereNowResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0931BD03DE4001FC34D /* PNPresenceChannelHereNowResult.m */; }; - 79ACC42C1C11BC4D0056523A /* PNClientStateParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0D51BD03DE4001FC34D /* PNClientStateParser.m */; }; - 79ACC42D1C11BC4D0056523A /* PubNub+Publish.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0631BD03DE4001FC34D /* PubNub+Publish.m */; }; - 79ACC42E1C11BC4D0056523A /* PNPresenceHereNowParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0E11BD03DE4001FC34D /* PNPresenceHereNowParser.m */; }; - 79ACC4311C11BC4D0056523A /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 79CBB19E1BD03EE4001FC34D /* UIKit.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; - 79ACC4321C11BC4D0056523A /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 79CBB1A01BD03EEA001FC34D /* libz.tbd */; }; - 79ACC4341C11BC4D0056523A /* PNPresenceChannelGroupHereNowResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0901BD03DE4001FC34D /* PNPresenceChannelGroupHereNowResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79ACC4351C11BC4D0056523A /* PNPresenceChannelHereNowResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0921BD03DE4001FC34D /* PNPresenceChannelHereNowResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79ACC4361C11BC4D0056523A /* PNChannelGroupClientStateResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0851BD03DE4001FC34D /* PNChannelGroupClientStateResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79ACC4371C11BC4D0056523A /* PNPresenceGlobalHereNowResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0941BD03DE4001FC34D /* PNPresenceGlobalHereNowResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79ACC4381C11BC4D0056523A /* PNChannelGroupChannelsResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0831BD03DE4001FC34D /* PNChannelGroupChannelsResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79ACC4391C11BC4D0056523A /* PNAPNSEnabledChannelsResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB07F1BD03DE4001FC34D /* PNAPNSEnabledChannelsResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79ACC43A1C11BC4D0056523A /* PNPresenceWhereNowResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0961BD03DE4001FC34D /* PNPresenceWhereNowResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79ACC43B1C11BC4D0056523A /* PNChannelClientStateResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0811BD03DE4001FC34D /* PNChannelClientStateResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79ACC43C1C11BC4D0056523A /* PNClientStateUpdateStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0891BD03DE4001FC34D /* PNClientStateUpdateStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79ACC43D1C11BC4D0056523A /* PNAcknowledgmentStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB07D1BD03DE4001FC34D /* PNAcknowledgmentStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79ACC43E1C11BC4D0056523A /* PNChannelGroupsResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0871BD03DE4001FC34D /* PNChannelGroupsResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79ACC43F1C11BC4D0056523A /* PubNub+ChannelGroup.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0581BD03DE4001FC34D /* PubNub+ChannelGroup.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79ACC4401C11BC4D0056523A /* PNObjectEventListener.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0CC1BD03DE4001FC34D /* PNObjectEventListener.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79ACC4411C11BC4D0056523A /* PNSubscriberResults.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0A31BD03DE4001FC34D /* PNSubscriberResults.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79ACC4421C11BC4D0056523A /* PNClientInformation.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0771BD03DE4001FC34D /* PNClientInformation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79ACC4431C11BC4D0056523A /* PNPushNotificationsAuditParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0E41BD03DE4001FC34D /* PNPushNotificationsAuditParser.h */; }; - 79ACC4441C11BC4D0056523A /* PubNub+Subscribe.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0661BD03DE4001FC34D /* PubNub+Subscribe.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79ACC4451C11BC4D0056523A /* PNSubscribeStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0A51BD03DE4001FC34D /* PNSubscribeStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79ACC4461C11BC4D0056523A /* PubNub+Presence.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB05F1BD03DE4001FC34D /* PubNub+Presence.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79ACC4471C11BC4D0056523A /* PubNub+Publish.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0621BD03DE4001FC34D /* PubNub+Publish.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79ACC4481C11BC4D0056523A /* PNPublishStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0981BD03DE4001FC34D /* PNPublishStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79ACC4491C11BC4D0056523A /* PNConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB07A1BD03DE4001FC34D /* PNConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79ACC44A1C11BC4D0056523A /* PNHistoryResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB08E1BD03DE4001FC34D /* PNHistoryResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79ACC44B1C11BC4D0056523A /* PubNub+History.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB05D1BD03DE4001FC34D /* PubNub+History.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79ACC44C1C11BC4D0056523A /* PNServiceData.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB09E1BD03DE4001FC34D /* PNServiceData.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79ACC44D1C11BC4D0056523A /* PubNub+APNS.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0561BD03DE4001FC34D /* PubNub+APNS.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79ACC44E1C11BC4D0056523A /* PubNub+State.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0641BD03DE4001FC34D /* PubNub+State.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79ACC44F1C11BC4D0056523A /* PNErrorCodes.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0C81BD03DE4001FC34D /* PNErrorCodes.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79ACC4501C11BC4D0056523A /* PubNub+Time.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0691BD03DE4001FC34D /* PubNub+Time.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79ACC4511C11BC4D0056523A /* PubNub+Core.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB05A1BD03DE4001FC34D /* PubNub+Core.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79ACC4521C11BC4D0056523A /* PNTimeResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0A71BD03DE4001FC34D /* PNTimeResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79ACC4531C11BC4D0056523A /* PNErrorStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB08C1BD03DE4001FC34D /* PNErrorStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79ACC4541C11BC4D0056523A /* PNStructures.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0CA1BD03DE4001FC34D /* PNStructures.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79ACC4551C11BC4D0056523A /* PNStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0A11BD03DE4001FC34D /* PNStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79ACC4561C11BC4D0056523A /* PNResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB09B1BD03DE4001FC34D /* PNResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79ACC4581C11BC4D0056523A /* PNAES.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0751BD03DE4001FC34D /* PNAES.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79ACC4591C11BC4D0056523A /* PNPushNotificationsStateModificationParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0E61BD03DE4001FC34D /* PNPushNotificationsStateModificationParser.h */; }; - 79ACC45A1C11BC4D0056523A /* PNHeartbeat.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB06F1BD03DE4001FC34D /* PNHeartbeat.h */; }; - 79ACC45B1C11BC4D0056523A /* PNErrorParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0D61BD03DE4001FC34D /* PNErrorParser.h */; }; - 79ACC45C1C11BC4D0056523A /* PNPrivateStructures.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0C91BD03DE4001FC34D /* PNPrivateStructures.h */; }; - 79ACC45D1C11BC4D0056523A /* PNJSON.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0B91BD03DE4001FC34D /* PNJSON.h */; }; - 79ACC45E1C11BC4D0056523A /* PNTimeParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0EC1BD03DE4001FC34D /* PNTimeParser.h */; }; - 79ACC45F1C11BC4D0056523A /* PNGZIP.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0B61BD03DE4001FC34D /* PNGZIP.h */; }; - 79ACC4601C11BC4D0056523A /* PNURLBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0F61BD03DE4001FC34D /* PNURLBuilder.h */; }; - 79ACC4611C11BC4D0056523A /* PNHelpers.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0B81BD03DE4001FC34D /* PNHelpers.h */; }; - 79ACC4631C11BC4D0056523A /* PNReachability.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0F21BD03DE4001FC34D /* PNReachability.h */; }; - 79ACC4641C11BC4D0056523A /* PNSubscribeParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0EA1BD03DE4001FC34D /* PNSubscribeParser.h */; }; - 79ACC4651C11BC4D0056523A /* PNURLRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0BD1BD03DE4001FC34D /* PNURLRequest.h */; }; - 79ACC4661C11BC4D0056523A /* PNStatus+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0A01BD03DE4001FC34D /* PNStatus+Private.h */; }; - 79ACC4671C11BC4D0056523A /* PNLogMacro.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0C61BD03DE4001FC34D /* PNLogMacro.h */; }; - 79ACC4681C11BC4D0056523A /* PNHeartbeatParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0D81BD03DE4001FC34D /* PNHeartbeatParser.h */; }; - 79ACC4691C11BC4D0056523A /* PNServiceData+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB09D1BD03DE4001FC34D /* PNServiceData+Private.h */; }; - 79ACC46A1C11BC4D0056523A /* PNNetworkResponseSerializer.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0F01BD03DE4001FC34D /* PNNetworkResponseSerializer.h */; }; - 79ACC46B1C11BC4D0056523A /* PNClientState.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB06D1BD03DE4001FC34D /* PNClientState.h */; }; - 79ACC46D1C11BC4D0056523A /* PNString.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0BB1BD03DE4001FC34D /* PNString.h */; }; - 79ACC46E1C11BC4D0056523A /* PNParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0CD1BD03DE4001FC34D /* PNParser.h */; }; - 79ACC46F1C11BC4D0056523A /* PNLeaveParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0DC1BD03DE4001FC34D /* PNLeaveParser.h */; }; - 79ACC4701C11BC4D0056523A /* PNData.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0B21BD03DE4001FC34D /* PNData.h */; }; - 79ACC4711C11BC4D0056523A /* PNArray.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0AC1BD03DE4001FC34D /* PNArray.h */; }; - 79ACC4721C11BC4D0056523A /* PNRequestParameters.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0F41BD03DE4001FC34D /* PNRequestParameters.h */; }; - 79ACC4731C11BC4D0056523A /* PNHistoryParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0DA1BD03DE4001FC34D /* PNHistoryParser.h */; }; - 79ACC4741C11BC4D0056523A /* PNMessagePublishParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0DE1BD03DE4001FC34D /* PNMessagePublishParser.h */; }; - 79ACC4751C11BC4D0056523A /* PNChannel.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0AE1BD03DE4001FC34D /* PNChannel.h */; }; - 79ACC4761C11BC4D0056523A /* PNSubscriber.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0731BD03DE4001FC34D /* PNSubscriber.h */; }; - 79ACC4771C11BC4D0056523A /* PubNub+PresencePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0611BD03DE4001FC34D /* PubNub+PresencePrivate.h */; }; - 79ACC4781C11BC4D0056523A /* PNPresenceWhereNowParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0E21BD03DE4001FC34D /* PNPresenceWhereNowParser.h */; }; - 79ACC4791C11BC4D0056523A /* PNNumber.h in Headers */ = {isa = PBXBuildFile; fileRef = 793887021BEAD49100DCC662 /* PNNumber.h */; }; - 79ACC47A1C11BC4D0056523A /* PNDictionary.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0B41BD03DE4001FC34D /* PNDictionary.h */; }; - 79ACC47C1C11BC4D0056523A /* PNNetwork.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0EE1BD03DE4001FC34D /* PNNetwork.h */; }; - 79ACC47E1C11BC4D0056523A /* PNClientStateParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0D41BD03DE4001FC34D /* PNClientStateParser.h */; }; - 79ACC47F1C11BC4D0056523A /* PNConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0C71BD03DE4001FC34D /* PNConstants.h */; }; - 79ACC4801C11BC4D0056523A /* PNStateListener.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0711BD03DE4001FC34D /* PNStateListener.h */; }; - 79ACC4811C11BC4D0056523A /* PNResult+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB09A1BD03DE4001FC34D /* PNResult+Private.h */; }; - 79ACC4821C11BC4D0056523A /* PubNub+CorePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB05C1BD03DE4001FC34D /* PubNub+CorePrivate.h */; }; - 79ACC4831C11BC4D0056523A /* PNChannelGroupAuditionParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0D01BD03DE4001FC34D /* PNChannelGroupAuditionParser.h */; }; - 79ACC4841C11BC4D0056523A /* PubNub+SubscribePrivate.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0681BD03DE4001FC34D /* PubNub+SubscribePrivate.h */; }; - 79ACC4851C11BC4D0056523A /* PNChannelGroupModificationParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0D21BD03DE4001FC34D /* PNChannelGroupModificationParser.h */; }; - 79ACC4871C11BC4D0056523A /* PNPresenceHereNowParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0E01BD03DE4001FC34D /* PNPresenceHereNowParser.h */; }; - 79ACC4891C11BC4D0056523A /* PNErrorStatus+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB08B1BD03DE4001FC34D /* PNErrorStatus+Private.h */; }; 79CBB0421BD03D3F001FC34D /* PubNub.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0411BD03D3F001FC34D /* PubNub.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79CBB0F81BD03DE4001FC34D /* PubNub+APNS.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0561BD03DE4001FC34D /* PubNub+APNS.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79CBB0F91BD03DE4001FC34D /* PubNub+APNS.m in Sources */ = {isa = PBXBuildFile; fileRef = 79CBB0571BD03DE4001FC34D /* PubNub+APNS.m */; }; @@ -1624,59 +1165,41 @@ 79E20D171C8AEC43001BC9CC /* PNEnvelopeInformation.h in Headers */ = {isa = PBXBuildFile; fileRef = 79E20D131C8AEC3A001BC9CC /* PNEnvelopeInformation.h */; }; 79E20D181C8AEC43001BC9CC /* PNEnvelopeInformation.h in Headers */ = {isa = PBXBuildFile; fileRef = 79E20D131C8AEC3A001BC9CC /* PNEnvelopeInformation.h */; }; 79E20D191C8AEC44001BC9CC /* PNEnvelopeInformation.h in Headers */ = {isa = PBXBuildFile; fileRef = 79E20D131C8AEC3A001BC9CC /* PNEnvelopeInformation.h */; }; - 79E20D1A1C8AEC45001BC9CC /* PNEnvelopeInformation.h in Headers */ = {isa = PBXBuildFile; fileRef = 79E20D131C8AEC3A001BC9CC /* PNEnvelopeInformation.h */; }; 79E20D1B1C8AEC4C001BC9CC /* PNEnvelopeInformation.h in Headers */ = {isa = PBXBuildFile; fileRef = 79E20D131C8AEC3A001BC9CC /* PNEnvelopeInformation.h */; }; - 79E20D1C1C8AEC4C001BC9CC /* PNEnvelopeInformation.h in Headers */ = {isa = PBXBuildFile; fileRef = 79E20D131C8AEC3A001BC9CC /* PNEnvelopeInformation.h */; }; 79E20D1D1C8AEC51001BC9CC /* PNEnvelopeInformation.m in Sources */ = {isa = PBXBuildFile; fileRef = 79E20D141C8AEC3A001BC9CC /* PNEnvelopeInformation.m */; }; 79E20D1E1C8AEC51001BC9CC /* PNEnvelopeInformation.m in Sources */ = {isa = PBXBuildFile; fileRef = 79E20D141C8AEC3A001BC9CC /* PNEnvelopeInformation.m */; }; 79E20D1F1C8AEC52001BC9CC /* PNEnvelopeInformation.m in Sources */ = {isa = PBXBuildFile; fileRef = 79E20D141C8AEC3A001BC9CC /* PNEnvelopeInformation.m */; }; - 79E20D201C8AEC53001BC9CC /* PNEnvelopeInformation.m in Sources */ = {isa = PBXBuildFile; fileRef = 79E20D141C8AEC3A001BC9CC /* PNEnvelopeInformation.m */; }; 79E20D211C8AEC53001BC9CC /* PNEnvelopeInformation.m in Sources */ = {isa = PBXBuildFile; fileRef = 79E20D141C8AEC3A001BC9CC /* PNEnvelopeInformation.m */; }; - 79E20D221C8AEC53001BC9CC /* PNEnvelopeInformation.m in Sources */ = {isa = PBXBuildFile; fileRef = 79E20D141C8AEC3A001BC9CC /* PNEnvelopeInformation.m */; }; 79E20D241C8AEC5B001BC9CC /* PNSubscribeStatus+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 79E20D231C8AEC5B001BC9CC /* PNSubscribeStatus+Private.h */; }; 79E20D251C8AEFF1001BC9CC /* PNSubscribeStatus+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 79E20D231C8AEC5B001BC9CC /* PNSubscribeStatus+Private.h */; }; 79E20D261C8AEFF2001BC9CC /* PNSubscribeStatus+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 79E20D231C8AEC5B001BC9CC /* PNSubscribeStatus+Private.h */; }; 79E20D271C8AEFF2001BC9CC /* PNSubscribeStatus+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 79E20D231C8AEC5B001BC9CC /* PNSubscribeStatus+Private.h */; }; - 79E20D281C8AEFF3001BC9CC /* PNSubscribeStatus+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 79E20D231C8AEC5B001BC9CC /* PNSubscribeStatus+Private.h */; }; 79E20D291C8AEFF4001BC9CC /* PNSubscribeStatus+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 79E20D231C8AEC5B001BC9CC /* PNSubscribeStatus+Private.h */; }; - 79E20D2A1C8AEFF5001BC9CC /* PNSubscribeStatus+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = 79E20D231C8AEC5B001BC9CC /* PNSubscribeStatus+Private.h */; }; 79E20D2B1C8B0A70001BC9CC /* PNPresenceChannelGroupHereNowResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0901BD03DE4001FC34D /* PNPresenceChannelGroupHereNowResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79E20D2C1C8B0AD5001BC9CC /* PNPushNotificationsStateModificationParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 79CBB0E61BD03DE4001FC34D /* PNPushNotificationsStateModificationParser.h */; }; 79E2D0EE1C56434700BAA244 /* PNKeychain.h in Headers */ = {isa = PBXBuildFile; fileRef = 79E2D0EC1C56434700BAA244 /* PNKeychain.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79E2D0EF1C56434700BAA244 /* PNKeychain.h in Headers */ = {isa = PBXBuildFile; fileRef = 79E2D0EC1C56434700BAA244 /* PNKeychain.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79E2D0F01C56434700BAA244 /* PNKeychain.h in Headers */ = {isa = PBXBuildFile; fileRef = 79E2D0EC1C56434700BAA244 /* PNKeychain.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79E2D0F11C56434700BAA244 /* PNKeychain.h in Headers */ = {isa = PBXBuildFile; fileRef = 79E2D0EC1C56434700BAA244 /* PNKeychain.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79E2D0F21C56434700BAA244 /* PNKeychain.h in Headers */ = {isa = PBXBuildFile; fileRef = 79E2D0EC1C56434700BAA244 /* PNKeychain.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79E2D0F31C56434700BAA244 /* PNKeychain.h in Headers */ = {isa = PBXBuildFile; fileRef = 79E2D0EC1C56434700BAA244 /* PNKeychain.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79E2D0F41C56434700BAA244 /* PNKeychain.m in Sources */ = {isa = PBXBuildFile; fileRef = 79E2D0ED1C56434700BAA244 /* PNKeychain.m */; }; 79E2D0F51C56434700BAA244 /* PNKeychain.m in Sources */ = {isa = PBXBuildFile; fileRef = 79E2D0ED1C56434700BAA244 /* PNKeychain.m */; }; 79E2D0F61C56434700BAA244 /* PNKeychain.m in Sources */ = {isa = PBXBuildFile; fileRef = 79E2D0ED1C56434700BAA244 /* PNKeychain.m */; }; - 79E2D0F71C56434700BAA244 /* PNKeychain.m in Sources */ = {isa = PBXBuildFile; fileRef = 79E2D0ED1C56434700BAA244 /* PNKeychain.m */; }; 79E2D0F81C56434700BAA244 /* PNKeychain.m in Sources */ = {isa = PBXBuildFile; fileRef = 79E2D0ED1C56434700BAA244 /* PNKeychain.m */; }; - 79E2D0F91C56434700BAA244 /* PNKeychain.m in Sources */ = {isa = PBXBuildFile; fileRef = 79E2D0ED1C56434700BAA244 /* PNKeychain.m */; }; 79F857FA219640A200BFD0B1 /* PNClientStateGetResult.m in Sources */ = {isa = PBXBuildFile; fileRef = DD71B20066E72A597492173C /* PNClientStateGetResult.m */; }; 79F857FB219640A200BFD0B1 /* PNClientStateGetResult.m in Sources */ = {isa = PBXBuildFile; fileRef = DD71B20066E72A597492173C /* PNClientStateGetResult.m */; }; 79F857FC219640A300BFD0B1 /* PNClientStateGetResult.m in Sources */ = {isa = PBXBuildFile; fileRef = DD71B20066E72A597492173C /* PNClientStateGetResult.m */; }; - 79F857FD219640AA00BFD0B1 /* PNClientStateGetResult.m in Sources */ = {isa = PBXBuildFile; fileRef = DD71B20066E72A597492173C /* PNClientStateGetResult.m */; }; 79F857FE219640AB00BFD0B1 /* PNClientStateGetResult.m in Sources */ = {isa = PBXBuildFile; fileRef = DD71B20066E72A597492173C /* PNClientStateGetResult.m */; }; - 79F857FF219640C200BFD0B1 /* PNClientStateGetResult.m in Sources */ = {isa = PBXBuildFile; fileRef = DD71B20066E72A597492173C /* PNClientStateGetResult.m */; }; 79F85800219640C500BFD0B1 /* PNClientStateGetResult.h in Headers */ = {isa = PBXBuildFile; fileRef = DD71BDF55F5AC37C145971EC /* PNClientStateGetResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79F85801219640C900BFD0B1 /* PNClientStateGetResult.h in Headers */ = {isa = PBXBuildFile; fileRef = DD71BDF55F5AC37C145971EC /* PNClientStateGetResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79F85802219640CA00BFD0B1 /* PNClientStateGetResult.h in Headers */ = {isa = PBXBuildFile; fileRef = DD71BDF55F5AC37C145971EC /* PNClientStateGetResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79F85803219640CA00BFD0B1 /* PNClientStateGetResult.h in Headers */ = {isa = PBXBuildFile; fileRef = DD71BDF55F5AC37C145971EC /* PNClientStateGetResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79F85804219640CA00BFD0B1 /* PNClientStateGetResult.h in Headers */ = {isa = PBXBuildFile; fileRef = DD71BDF55F5AC37C145971EC /* PNClientStateGetResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79F85805219640CB00BFD0B1 /* PNClientStateGetResult.h in Headers */ = {isa = PBXBuildFile; fileRef = DD71BDF55F5AC37C145971EC /* PNClientStateGetResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79F90F191FDEC1BA007132A3 /* PNPresenceHeartbeatAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79F90F171FDEC1B9007132A3 /* PNPresenceHeartbeatAPICallBuilder.m */; }; 79F90F1A1FDEC1BA007132A3 /* PNPresenceHeartbeatAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79F90F181FDEC1B9007132A3 /* PNPresenceHeartbeatAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79F90F1B1FDEC1C6007132A3 /* PNPresenceHeartbeatAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79F90F181FDEC1B9007132A3 /* PNPresenceHeartbeatAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79F90F1C1FDEC1C7007132A3 /* PNPresenceHeartbeatAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79F90F181FDEC1B9007132A3 /* PNPresenceHeartbeatAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79F90F1D1FDEC1C7007132A3 /* PNPresenceHeartbeatAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79F90F181FDEC1B9007132A3 /* PNPresenceHeartbeatAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79F90F1E1FDEC1C7007132A3 /* PNPresenceHeartbeatAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79F90F181FDEC1B9007132A3 /* PNPresenceHeartbeatAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; 79F90F1F1FDEC1C8007132A3 /* PNPresenceHeartbeatAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79F90F181FDEC1B9007132A3 /* PNPresenceHeartbeatAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79F90F201FDEC1C9007132A3 /* PNPresenceHeartbeatAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = 79F90F181FDEC1B9007132A3 /* PNPresenceHeartbeatAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 79F90F211FDEC1DC007132A3 /* PNPresenceHeartbeatAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79F90F171FDEC1B9007132A3 /* PNPresenceHeartbeatAPICallBuilder.m */; }; 79F90F221FDEC1DD007132A3 /* PNPresenceHeartbeatAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79F90F171FDEC1B9007132A3 /* PNPresenceHeartbeatAPICallBuilder.m */; }; - 79F90F231FDEC1DD007132A3 /* PNPresenceHeartbeatAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79F90F171FDEC1B9007132A3 /* PNPresenceHeartbeatAPICallBuilder.m */; }; 79F90F241FDEC1DE007132A3 /* PNPresenceHeartbeatAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79F90F171FDEC1B9007132A3 /* PNPresenceHeartbeatAPICallBuilder.m */; }; 79F90F251FDEC1DE007132A3 /* PNPresenceHeartbeatAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79F90F171FDEC1B9007132A3 /* PNPresenceHeartbeatAPICallBuilder.m */; }; 79F90F261FDEC1DE007132A3 /* PNPresenceHeartbeatAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = 79F90F171FDEC1B9007132A3 /* PNPresenceHeartbeatAPICallBuilder.m */; }; @@ -1684,1255 +1207,897 @@ A5105B51238F027D00CB693D /* PNDate.h in Headers */ = {isa = PBXBuildFile; fileRef = A5105B4E238F027D00CB693D /* PNDate.h */; }; A5105B52238F027D00CB693D /* PNDate.h in Headers */ = {isa = PBXBuildFile; fileRef = A5105B4E238F027D00CB693D /* PNDate.h */; }; A5105B53238F027D00CB693D /* PNDate.h in Headers */ = {isa = PBXBuildFile; fileRef = A5105B4E238F027D00CB693D /* PNDate.h */; }; - A5105B54238F027D00CB693D /* PNDate.h in Headers */ = {isa = PBXBuildFile; fileRef = A5105B4E238F027D00CB693D /* PNDate.h */; }; A5105B55238F027D00CB693D /* PNDate.h in Headers */ = {isa = PBXBuildFile; fileRef = A5105B4E238F027D00CB693D /* PNDate.h */; }; - A5105B56238F027D00CB693D /* PNDate.h in Headers */ = {isa = PBXBuildFile; fileRef = A5105B4E238F027D00CB693D /* PNDate.h */; }; A5105B57238F027D00CB693D /* PNDate.m in Sources */ = {isa = PBXBuildFile; fileRef = A5105B4F238F027D00CB693D /* PNDate.m */; }; A5105B58238F027D00CB693D /* PNDate.m in Sources */ = {isa = PBXBuildFile; fileRef = A5105B4F238F027D00CB693D /* PNDate.m */; }; A5105B59238F027D00CB693D /* PNDate.m in Sources */ = {isa = PBXBuildFile; fileRef = A5105B4F238F027D00CB693D /* PNDate.m */; }; A5105B5A238F027D00CB693D /* PNDate.m in Sources */ = {isa = PBXBuildFile; fileRef = A5105B4F238F027D00CB693D /* PNDate.m */; }; - A5105B5B238F027D00CB693D /* PNDate.m in Sources */ = {isa = PBXBuildFile; fileRef = A5105B4F238F027D00CB693D /* PNDate.m */; }; A5105B5C238F027D00CB693D /* PNDate.m in Sources */ = {isa = PBXBuildFile; fileRef = A5105B4F238F027D00CB693D /* PNDate.m */; }; - A5105B5D238F027D00CB693D /* PNDate.m in Sources */ = {isa = PBXBuildFile; fileRef = A5105B4F238F027D00CB693D /* PNDate.m */; }; A52DC1E62307E10B001F20B0 /* NSDateFormatter+PNCacheable.h in Headers */ = {isa = PBXBuildFile; fileRef = A52DC1E42307E10B001F20B0 /* NSDateFormatter+PNCacheable.h */; }; A52DC1E72307E10B001F20B0 /* NSDateFormatter+PNCacheable.h in Headers */ = {isa = PBXBuildFile; fileRef = A52DC1E42307E10B001F20B0 /* NSDateFormatter+PNCacheable.h */; }; A52DC1E82307E10B001F20B0 /* NSDateFormatter+PNCacheable.h in Headers */ = {isa = PBXBuildFile; fileRef = A52DC1E42307E10B001F20B0 /* NSDateFormatter+PNCacheable.h */; }; A52DC1E92307E10B001F20B0 /* NSDateFormatter+PNCacheable.h in Headers */ = {isa = PBXBuildFile; fileRef = A52DC1E42307E10B001F20B0 /* NSDateFormatter+PNCacheable.h */; }; - A52DC1EA2307E10B001F20B0 /* NSDateFormatter+PNCacheable.h in Headers */ = {isa = PBXBuildFile; fileRef = A52DC1E42307E10B001F20B0 /* NSDateFormatter+PNCacheable.h */; }; A52DC1EB2307E10B001F20B0 /* NSDateFormatter+PNCacheable.h in Headers */ = {isa = PBXBuildFile; fileRef = A52DC1E42307E10B001F20B0 /* NSDateFormatter+PNCacheable.h */; }; - A52DC1EC2307E10B001F20B0 /* NSDateFormatter+PNCacheable.h in Headers */ = {isa = PBXBuildFile; fileRef = A52DC1E42307E10B001F20B0 /* NSDateFormatter+PNCacheable.h */; }; A52DC1ED2307E10B001F20B0 /* NSDateFormatter+PNCacheable.m in Sources */ = {isa = PBXBuildFile; fileRef = A52DC1E52307E10B001F20B0 /* NSDateFormatter+PNCacheable.m */; }; A52DC1EE2307E10B001F20B0 /* NSDateFormatter+PNCacheable.m in Sources */ = {isa = PBXBuildFile; fileRef = A52DC1E52307E10B001F20B0 /* NSDateFormatter+PNCacheable.m */; }; A52DC1EF2307E10B001F20B0 /* NSDateFormatter+PNCacheable.m in Sources */ = {isa = PBXBuildFile; fileRef = A52DC1E52307E10B001F20B0 /* NSDateFormatter+PNCacheable.m */; }; A52DC1F02307E10B001F20B0 /* NSDateFormatter+PNCacheable.m in Sources */ = {isa = PBXBuildFile; fileRef = A52DC1E52307E10B001F20B0 /* NSDateFormatter+PNCacheable.m */; }; - A52DC1F12307E10B001F20B0 /* NSDateFormatter+PNCacheable.m in Sources */ = {isa = PBXBuildFile; fileRef = A52DC1E52307E10B001F20B0 /* NSDateFormatter+PNCacheable.m */; }; A52DC1F22307E10B001F20B0 /* NSDateFormatter+PNCacheable.m in Sources */ = {isa = PBXBuildFile; fileRef = A52DC1E52307E10B001F20B0 /* NSDateFormatter+PNCacheable.m */; }; - A52DC1F32307E10B001F20B0 /* NSDateFormatter+PNCacheable.m in Sources */ = {isa = PBXBuildFile; fileRef = A52DC1E52307E10B001F20B0 /* NSDateFormatter+PNCacheable.m */; }; A55A85D122FD8078002D0A72 /* PubNub+Objects.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85CF22FD8077002D0A72 /* PubNub+Objects.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A85D222FD8078002D0A72 /* PubNub+Objects.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85CF22FD8077002D0A72 /* PubNub+Objects.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A85D322FD8078002D0A72 /* PubNub+Objects.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85CF22FD8077002D0A72 /* PubNub+Objects.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A85D422FD8078002D0A72 /* PubNub+Objects.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85CF22FD8077002D0A72 /* PubNub+Objects.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A85D522FD8078002D0A72 /* PubNub+Objects.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85CF22FD8077002D0A72 /* PubNub+Objects.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A85D622FD8078002D0A72 /* PubNub+Objects.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85CF22FD8077002D0A72 /* PubNub+Objects.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A85D722FD8078002D0A72 /* PubNub+Objects.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85CF22FD8077002D0A72 /* PubNub+Objects.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A85D822FD8078002D0A72 /* PubNub+Objects.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85D022FD8077002D0A72 /* PubNub+Objects.m */; }; A55A85D922FD8078002D0A72 /* PubNub+Objects.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85D022FD8077002D0A72 /* PubNub+Objects.m */; }; A55A85DA22FD8078002D0A72 /* PubNub+Objects.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85D022FD8077002D0A72 /* PubNub+Objects.m */; }; A55A85DB22FD8078002D0A72 /* PubNub+Objects.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85D022FD8077002D0A72 /* PubNub+Objects.m */; }; - A55A85DC22FD8078002D0A72 /* PubNub+Objects.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85D022FD8077002D0A72 /* PubNub+Objects.m */; }; A55A85DD22FD8078002D0A72 /* PubNub+Objects.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85D022FD8077002D0A72 /* PubNub+Objects.m */; }; - A55A85DE22FD8078002D0A72 /* PubNub+Objects.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85D022FD8077002D0A72 /* PubNub+Objects.m */; }; A55A85FB22FD80B9002D0A72 /* PNCreateUserAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85E122FD80B9002D0A72 /* PNCreateUserAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A85FC22FD80B9002D0A72 /* PNCreateUserAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85E122FD80B9002D0A72 /* PNCreateUserAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A85FD22FD80B9002D0A72 /* PNCreateUserAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85E122FD80B9002D0A72 /* PNCreateUserAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A85FE22FD80B9002D0A72 /* PNCreateUserAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85E122FD80B9002D0A72 /* PNCreateUserAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A85FF22FD80B9002D0A72 /* PNCreateUserAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85E122FD80B9002D0A72 /* PNCreateUserAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A860022FD80B9002D0A72 /* PNCreateUserAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85E122FD80B9002D0A72 /* PNCreateUserAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A860122FD80B9002D0A72 /* PNCreateUserAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85E122FD80B9002D0A72 /* PNCreateUserAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A860922FD80B9002D0A72 /* PNFetchUserAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85E322FD80B9002D0A72 /* PNFetchUserAPICallBuilder.m */; }; A55A860A22FD80B9002D0A72 /* PNFetchUserAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85E322FD80B9002D0A72 /* PNFetchUserAPICallBuilder.m */; }; A55A860B22FD80B9002D0A72 /* PNFetchUserAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85E322FD80B9002D0A72 /* PNFetchUserAPICallBuilder.m */; }; A55A860C22FD80B9002D0A72 /* PNFetchUserAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85E322FD80B9002D0A72 /* PNFetchUserAPICallBuilder.m */; }; - A55A860D22FD80B9002D0A72 /* PNFetchUserAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85E322FD80B9002D0A72 /* PNFetchUserAPICallBuilder.m */; }; A55A860E22FD80B9002D0A72 /* PNFetchUserAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85E322FD80B9002D0A72 /* PNFetchUserAPICallBuilder.m */; }; - A55A860F22FD80B9002D0A72 /* PNFetchUserAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85E322FD80B9002D0A72 /* PNFetchUserAPICallBuilder.m */; }; A55A861022FD80B9002D0A72 /* PNDeleteUserAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85E422FD80B9002D0A72 /* PNDeleteUserAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A861122FD80B9002D0A72 /* PNDeleteUserAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85E422FD80B9002D0A72 /* PNDeleteUserAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A861222FD80B9002D0A72 /* PNDeleteUserAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85E422FD80B9002D0A72 /* PNDeleteUserAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A861322FD80B9002D0A72 /* PNDeleteUserAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85E422FD80B9002D0A72 /* PNDeleteUserAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A861422FD80B9002D0A72 /* PNDeleteUserAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85E422FD80B9002D0A72 /* PNDeleteUserAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A861522FD80B9002D0A72 /* PNDeleteUserAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85E422FD80B9002D0A72 /* PNDeleteUserAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A861622FD80B9002D0A72 /* PNDeleteUserAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85E422FD80B9002D0A72 /* PNDeleteUserAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A861722FD80B9002D0A72 /* PNUpdateUserAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85E522FD80B9002D0A72 /* PNUpdateUserAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A861822FD80B9002D0A72 /* PNUpdateUserAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85E522FD80B9002D0A72 /* PNUpdateUserAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A861922FD80B9002D0A72 /* PNUpdateUserAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85E522FD80B9002D0A72 /* PNUpdateUserAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A861A22FD80B9002D0A72 /* PNUpdateUserAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85E522FD80B9002D0A72 /* PNUpdateUserAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A861B22FD80B9002D0A72 /* PNUpdateUserAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85E522FD80B9002D0A72 /* PNUpdateUserAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A861C22FD80B9002D0A72 /* PNUpdateUserAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85E522FD80B9002D0A72 /* PNUpdateUserAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A861D22FD80B9002D0A72 /* PNUpdateUserAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85E522FD80B9002D0A72 /* PNUpdateUserAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A861E22FD80B9002D0A72 /* PNFetchUsersAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85E622FD80B9002D0A72 /* PNFetchUsersAPICallBuilder.m */; }; A55A861F22FD80B9002D0A72 /* PNFetchUsersAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85E622FD80B9002D0A72 /* PNFetchUsersAPICallBuilder.m */; }; A55A862022FD80B9002D0A72 /* PNFetchUsersAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85E622FD80B9002D0A72 /* PNFetchUsersAPICallBuilder.m */; }; A55A862122FD80B9002D0A72 /* PNFetchUsersAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85E622FD80B9002D0A72 /* PNFetchUsersAPICallBuilder.m */; }; - A55A862222FD80B9002D0A72 /* PNFetchUsersAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85E622FD80B9002D0A72 /* PNFetchUsersAPICallBuilder.m */; }; A55A862322FD80B9002D0A72 /* PNFetchUsersAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85E622FD80B9002D0A72 /* PNFetchUsersAPICallBuilder.m */; }; - A55A862422FD80B9002D0A72 /* PNFetchUsersAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85E622FD80B9002D0A72 /* PNFetchUsersAPICallBuilder.m */; }; A55A862C22FD80B9002D0A72 /* PNCreateUserAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85E822FD80B9002D0A72 /* PNCreateUserAPICallBuilder.m */; }; A55A862D22FD80B9002D0A72 /* PNCreateUserAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85E822FD80B9002D0A72 /* PNCreateUserAPICallBuilder.m */; }; A55A862E22FD80B9002D0A72 /* PNCreateUserAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85E822FD80B9002D0A72 /* PNCreateUserAPICallBuilder.m */; }; A55A862F22FD80B9002D0A72 /* PNCreateUserAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85E822FD80B9002D0A72 /* PNCreateUserAPICallBuilder.m */; }; - A55A863022FD80B9002D0A72 /* PNCreateUserAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85E822FD80B9002D0A72 /* PNCreateUserAPICallBuilder.m */; }; A55A863122FD80B9002D0A72 /* PNCreateUserAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85E822FD80B9002D0A72 /* PNCreateUserAPICallBuilder.m */; }; - A55A863222FD80B9002D0A72 /* PNCreateUserAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85E822FD80B9002D0A72 /* PNCreateUserAPICallBuilder.m */; }; A55A863322FD80B9002D0A72 /* PNDeleteUserAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85E922FD80B9002D0A72 /* PNDeleteUserAPICallBuilder.m */; }; A55A863422FD80B9002D0A72 /* PNDeleteUserAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85E922FD80B9002D0A72 /* PNDeleteUserAPICallBuilder.m */; }; A55A863522FD80B9002D0A72 /* PNDeleteUserAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85E922FD80B9002D0A72 /* PNDeleteUserAPICallBuilder.m */; }; A55A863622FD80B9002D0A72 /* PNDeleteUserAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85E922FD80B9002D0A72 /* PNDeleteUserAPICallBuilder.m */; }; - A55A863722FD80B9002D0A72 /* PNDeleteUserAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85E922FD80B9002D0A72 /* PNDeleteUserAPICallBuilder.m */; }; A55A863822FD80B9002D0A72 /* PNDeleteUserAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85E922FD80B9002D0A72 /* PNDeleteUserAPICallBuilder.m */; }; - A55A863922FD80B9002D0A72 /* PNDeleteUserAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85E922FD80B9002D0A72 /* PNDeleteUserAPICallBuilder.m */; }; A55A863A22FD80B9002D0A72 /* PNFetchUserAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85EA22FD80B9002D0A72 /* PNFetchUserAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A863B22FD80B9002D0A72 /* PNFetchUserAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85EA22FD80B9002D0A72 /* PNFetchUserAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A863C22FD80B9002D0A72 /* PNFetchUserAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85EA22FD80B9002D0A72 /* PNFetchUserAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A863D22FD80B9002D0A72 /* PNFetchUserAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85EA22FD80B9002D0A72 /* PNFetchUserAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A863E22FD80B9002D0A72 /* PNFetchUserAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85EA22FD80B9002D0A72 /* PNFetchUserAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A863F22FD80B9002D0A72 /* PNFetchUserAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85EA22FD80B9002D0A72 /* PNFetchUserAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A864022FD80B9002D0A72 /* PNFetchUserAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85EA22FD80B9002D0A72 /* PNFetchUserAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A864122FD80B9002D0A72 /* PNFetchUsersAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85EB22FD80B9002D0A72 /* PNFetchUsersAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A864222FD80B9002D0A72 /* PNFetchUsersAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85EB22FD80B9002D0A72 /* PNFetchUsersAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A864322FD80B9002D0A72 /* PNFetchUsersAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85EB22FD80B9002D0A72 /* PNFetchUsersAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A864422FD80B9002D0A72 /* PNFetchUsersAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85EB22FD80B9002D0A72 /* PNFetchUsersAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A864522FD80B9002D0A72 /* PNFetchUsersAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85EB22FD80B9002D0A72 /* PNFetchUsersAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A864622FD80B9002D0A72 /* PNFetchUsersAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85EB22FD80B9002D0A72 /* PNFetchUsersAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A864722FD80B9002D0A72 /* PNFetchUsersAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85EB22FD80B9002D0A72 /* PNFetchUsersAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A864822FD80B9002D0A72 /* PNUpdateUserAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85EC22FD80B9002D0A72 /* PNUpdateUserAPICallBuilder.m */; }; A55A864922FD80B9002D0A72 /* PNUpdateUserAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85EC22FD80B9002D0A72 /* PNUpdateUserAPICallBuilder.m */; }; A55A864A22FD80B9002D0A72 /* PNUpdateUserAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85EC22FD80B9002D0A72 /* PNUpdateUserAPICallBuilder.m */; }; A55A864B22FD80B9002D0A72 /* PNUpdateUserAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85EC22FD80B9002D0A72 /* PNUpdateUserAPICallBuilder.m */; }; - A55A864C22FD80B9002D0A72 /* PNUpdateUserAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85EC22FD80B9002D0A72 /* PNUpdateUserAPICallBuilder.m */; }; A55A864D22FD80B9002D0A72 /* PNUpdateUserAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85EC22FD80B9002D0A72 /* PNUpdateUserAPICallBuilder.m */; }; - A55A864E22FD80B9002D0A72 /* PNUpdateUserAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85EC22FD80B9002D0A72 /* PNUpdateUserAPICallBuilder.m */; }; A55A864F22FD80B9002D0A72 /* PNUpdateSpaceAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85EE22FD80B9002D0A72 /* PNUpdateSpaceAPICallBuilder.m */; }; A55A865022FD80B9002D0A72 /* PNUpdateSpaceAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85EE22FD80B9002D0A72 /* PNUpdateSpaceAPICallBuilder.m */; }; A55A865122FD80B9002D0A72 /* PNUpdateSpaceAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85EE22FD80B9002D0A72 /* PNUpdateSpaceAPICallBuilder.m */; }; A55A865222FD80B9002D0A72 /* PNUpdateSpaceAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85EE22FD80B9002D0A72 /* PNUpdateSpaceAPICallBuilder.m */; }; - A55A865322FD80B9002D0A72 /* PNUpdateSpaceAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85EE22FD80B9002D0A72 /* PNUpdateSpaceAPICallBuilder.m */; }; A55A865422FD80B9002D0A72 /* PNUpdateSpaceAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85EE22FD80B9002D0A72 /* PNUpdateSpaceAPICallBuilder.m */; }; - A55A865522FD80B9002D0A72 /* PNUpdateSpaceAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85EE22FD80B9002D0A72 /* PNUpdateSpaceAPICallBuilder.m */; }; A55A865622FD80B9002D0A72 /* PNCreateSpaceAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85EF22FD80B9002D0A72 /* PNCreateSpaceAPICallBuilder.m */; }; A55A865722FD80B9002D0A72 /* PNCreateSpaceAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85EF22FD80B9002D0A72 /* PNCreateSpaceAPICallBuilder.m */; }; A55A865822FD80B9002D0A72 /* PNCreateSpaceAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85EF22FD80B9002D0A72 /* PNCreateSpaceAPICallBuilder.m */; }; A55A865922FD80B9002D0A72 /* PNCreateSpaceAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85EF22FD80B9002D0A72 /* PNCreateSpaceAPICallBuilder.m */; }; - A55A865A22FD80B9002D0A72 /* PNCreateSpaceAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85EF22FD80B9002D0A72 /* PNCreateSpaceAPICallBuilder.m */; }; A55A865B22FD80B9002D0A72 /* PNCreateSpaceAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85EF22FD80B9002D0A72 /* PNCreateSpaceAPICallBuilder.m */; }; - A55A865C22FD80B9002D0A72 /* PNCreateSpaceAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85EF22FD80B9002D0A72 /* PNCreateSpaceAPICallBuilder.m */; }; A55A865D22FD80B9002D0A72 /* PNFetchSpaceAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85F022FD80B9002D0A72 /* PNFetchSpaceAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A865E22FD80B9002D0A72 /* PNFetchSpaceAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85F022FD80B9002D0A72 /* PNFetchSpaceAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A865F22FD80B9002D0A72 /* PNFetchSpaceAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85F022FD80B9002D0A72 /* PNFetchSpaceAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A866022FD80B9002D0A72 /* PNFetchSpaceAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85F022FD80B9002D0A72 /* PNFetchSpaceAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A866122FD80B9002D0A72 /* PNFetchSpaceAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85F022FD80B9002D0A72 /* PNFetchSpaceAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A866222FD80B9002D0A72 /* PNFetchSpaceAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85F022FD80B9002D0A72 /* PNFetchSpaceAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A866322FD80B9002D0A72 /* PNFetchSpaceAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85F022FD80B9002D0A72 /* PNFetchSpaceAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A866B22FD80B9002D0A72 /* PNFetchSpacesAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85F222FD80B9002D0A72 /* PNFetchSpacesAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A866C22FD80B9002D0A72 /* PNFetchSpacesAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85F222FD80B9002D0A72 /* PNFetchSpacesAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A866D22FD80B9002D0A72 /* PNFetchSpacesAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85F222FD80B9002D0A72 /* PNFetchSpacesAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A866E22FD80B9002D0A72 /* PNFetchSpacesAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85F222FD80B9002D0A72 /* PNFetchSpacesAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A866F22FD80B9002D0A72 /* PNFetchSpacesAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85F222FD80B9002D0A72 /* PNFetchSpacesAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A867022FD80B9002D0A72 /* PNFetchSpacesAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85F222FD80B9002D0A72 /* PNFetchSpacesAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A867122FD80B9002D0A72 /* PNFetchSpacesAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85F222FD80B9002D0A72 /* PNFetchSpacesAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A867222FD80B9002D0A72 /* PNDeleteSpaceAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85F322FD80B9002D0A72 /* PNDeleteSpaceAPICallBuilder.m */; }; A55A867322FD80B9002D0A72 /* PNDeleteSpaceAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85F322FD80B9002D0A72 /* PNDeleteSpaceAPICallBuilder.m */; }; A55A867422FD80B9002D0A72 /* PNDeleteSpaceAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85F322FD80B9002D0A72 /* PNDeleteSpaceAPICallBuilder.m */; }; A55A867522FD80B9002D0A72 /* PNDeleteSpaceAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85F322FD80B9002D0A72 /* PNDeleteSpaceAPICallBuilder.m */; }; - A55A867622FD80B9002D0A72 /* PNDeleteSpaceAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85F322FD80B9002D0A72 /* PNDeleteSpaceAPICallBuilder.m */; }; A55A867722FD80B9002D0A72 /* PNDeleteSpaceAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85F322FD80B9002D0A72 /* PNDeleteSpaceAPICallBuilder.m */; }; - A55A867822FD80B9002D0A72 /* PNDeleteSpaceAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85F322FD80B9002D0A72 /* PNDeleteSpaceAPICallBuilder.m */; }; A55A867922FD80B9002D0A72 /* PNCreateSpaceAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85F422FD80B9002D0A72 /* PNCreateSpaceAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A867A22FD80B9002D0A72 /* PNCreateSpaceAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85F422FD80B9002D0A72 /* PNCreateSpaceAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A867B22FD80B9002D0A72 /* PNCreateSpaceAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85F422FD80B9002D0A72 /* PNCreateSpaceAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A867C22FD80B9002D0A72 /* PNCreateSpaceAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85F422FD80B9002D0A72 /* PNCreateSpaceAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A867D22FD80B9002D0A72 /* PNCreateSpaceAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85F422FD80B9002D0A72 /* PNCreateSpaceAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A867E22FD80B9002D0A72 /* PNCreateSpaceAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85F422FD80B9002D0A72 /* PNCreateSpaceAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A867F22FD80B9002D0A72 /* PNCreateSpaceAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85F422FD80B9002D0A72 /* PNCreateSpaceAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A868022FD80B9002D0A72 /* PNUpdateSpaceAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85F522FD80B9002D0A72 /* PNUpdateSpaceAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A868122FD80B9002D0A72 /* PNUpdateSpaceAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85F522FD80B9002D0A72 /* PNUpdateSpaceAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A868222FD80B9002D0A72 /* PNUpdateSpaceAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85F522FD80B9002D0A72 /* PNUpdateSpaceAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A868322FD80B9002D0A72 /* PNUpdateSpaceAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85F522FD80B9002D0A72 /* PNUpdateSpaceAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A868422FD80B9002D0A72 /* PNUpdateSpaceAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85F522FD80B9002D0A72 /* PNUpdateSpaceAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A868522FD80B9002D0A72 /* PNUpdateSpaceAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85F522FD80B9002D0A72 /* PNUpdateSpaceAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A868622FD80B9002D0A72 /* PNUpdateSpaceAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85F522FD80B9002D0A72 /* PNUpdateSpaceAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A868E22FD80B9002D0A72 /* PNFetchSpaceAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85F722FD80B9002D0A72 /* PNFetchSpaceAPICallBuilder.m */; }; A55A868F22FD80B9002D0A72 /* PNFetchSpaceAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85F722FD80B9002D0A72 /* PNFetchSpaceAPICallBuilder.m */; }; A55A869022FD80B9002D0A72 /* PNFetchSpaceAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85F722FD80B9002D0A72 /* PNFetchSpaceAPICallBuilder.m */; }; A55A869122FD80B9002D0A72 /* PNFetchSpaceAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85F722FD80B9002D0A72 /* PNFetchSpaceAPICallBuilder.m */; }; - A55A869222FD80B9002D0A72 /* PNFetchSpaceAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85F722FD80B9002D0A72 /* PNFetchSpaceAPICallBuilder.m */; }; A55A869322FD80B9002D0A72 /* PNFetchSpaceAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85F722FD80B9002D0A72 /* PNFetchSpaceAPICallBuilder.m */; }; - A55A869422FD80B9002D0A72 /* PNFetchSpaceAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85F722FD80B9002D0A72 /* PNFetchSpaceAPICallBuilder.m */; }; A55A869522FD80B9002D0A72 /* PNFetchSpacesAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85F822FD80B9002D0A72 /* PNFetchSpacesAPICallBuilder.m */; }; A55A869622FD80B9002D0A72 /* PNFetchSpacesAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85F822FD80B9002D0A72 /* PNFetchSpacesAPICallBuilder.m */; }; A55A869722FD80B9002D0A72 /* PNFetchSpacesAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85F822FD80B9002D0A72 /* PNFetchSpacesAPICallBuilder.m */; }; A55A869822FD80B9002D0A72 /* PNFetchSpacesAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85F822FD80B9002D0A72 /* PNFetchSpacesAPICallBuilder.m */; }; - A55A869922FD80B9002D0A72 /* PNFetchSpacesAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85F822FD80B9002D0A72 /* PNFetchSpacesAPICallBuilder.m */; }; A55A869A22FD80B9002D0A72 /* PNFetchSpacesAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85F822FD80B9002D0A72 /* PNFetchSpacesAPICallBuilder.m */; }; - A55A869B22FD80B9002D0A72 /* PNFetchSpacesAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A85F822FD80B9002D0A72 /* PNFetchSpacesAPICallBuilder.m */; }; A55A869C22FD80B9002D0A72 /* PNDeleteSpaceAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85F922FD80B9002D0A72 /* PNDeleteSpaceAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A869D22FD80B9002D0A72 /* PNDeleteSpaceAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85F922FD80B9002D0A72 /* PNDeleteSpaceAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A869E22FD80B9002D0A72 /* PNDeleteSpaceAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85F922FD80B9002D0A72 /* PNDeleteSpaceAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A869F22FD80B9002D0A72 /* PNDeleteSpaceAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85F922FD80B9002D0A72 /* PNDeleteSpaceAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A86A022FD80B9002D0A72 /* PNDeleteSpaceAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85F922FD80B9002D0A72 /* PNDeleteSpaceAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A86A122FD80B9002D0A72 /* PNDeleteSpaceAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85F922FD80B9002D0A72 /* PNDeleteSpaceAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A86A222FD80B9002D0A72 /* PNDeleteSpaceAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A85F922FD80B9002D0A72 /* PNDeleteSpaceAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A86AA22FD817E002D0A72 /* PNUser.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86A422FD817E002D0A72 /* PNUser.m */; }; A55A86AB22FD817E002D0A72 /* PNUser.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86A422FD817E002D0A72 /* PNUser.m */; }; A55A86AC22FD817E002D0A72 /* PNUser.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86A422FD817E002D0A72 /* PNUser.m */; }; A55A86AD22FD817E002D0A72 /* PNUser.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86A422FD817E002D0A72 /* PNUser.m */; }; - A55A86AE22FD817E002D0A72 /* PNUser.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86A422FD817E002D0A72 /* PNUser.m */; }; A55A86AF22FD817E002D0A72 /* PNUser.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86A422FD817E002D0A72 /* PNUser.m */; }; - A55A86B022FD817E002D0A72 /* PNUser.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86A422FD817E002D0A72 /* PNUser.m */; }; A55A86B122FD817E002D0A72 /* PNSpace+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86A522FD817E002D0A72 /* PNSpace+Private.h */; }; A55A86B222FD817E002D0A72 /* PNSpace+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86A522FD817E002D0A72 /* PNSpace+Private.h */; }; A55A86B322FD817E002D0A72 /* PNSpace+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86A522FD817E002D0A72 /* PNSpace+Private.h */; }; A55A86B422FD817E002D0A72 /* PNSpace+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86A522FD817E002D0A72 /* PNSpace+Private.h */; }; - A55A86B522FD817E002D0A72 /* PNSpace+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86A522FD817E002D0A72 /* PNSpace+Private.h */; }; A55A86B622FD817E002D0A72 /* PNSpace+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86A522FD817E002D0A72 /* PNSpace+Private.h */; }; - A55A86B722FD817E002D0A72 /* PNSpace+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86A522FD817E002D0A72 /* PNSpace+Private.h */; }; A55A86B822FD817E002D0A72 /* PNSpace.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86A622FD817E002D0A72 /* PNSpace.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A86B922FD817E002D0A72 /* PNSpace.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86A622FD817E002D0A72 /* PNSpace.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A86BA22FD817E002D0A72 /* PNSpace.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86A622FD817E002D0A72 /* PNSpace.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A86BB22FD817E002D0A72 /* PNSpace.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86A622FD817E002D0A72 /* PNSpace.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A86BC22FD817E002D0A72 /* PNSpace.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86A622FD817E002D0A72 /* PNSpace.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A86BD22FD817E002D0A72 /* PNSpace.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86A622FD817E002D0A72 /* PNSpace.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A86BE22FD817E002D0A72 /* PNSpace.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86A622FD817E002D0A72 /* PNSpace.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A86BF22FD817E002D0A72 /* PNUser+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86A722FD817E002D0A72 /* PNUser+Private.h */; }; A55A86C022FD817E002D0A72 /* PNUser+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86A722FD817E002D0A72 /* PNUser+Private.h */; }; A55A86C122FD817E002D0A72 /* PNUser+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86A722FD817E002D0A72 /* PNUser+Private.h */; }; A55A86C222FD817E002D0A72 /* PNUser+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86A722FD817E002D0A72 /* PNUser+Private.h */; }; - A55A86C322FD817E002D0A72 /* PNUser+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86A722FD817E002D0A72 /* PNUser+Private.h */; }; A55A86C422FD817E002D0A72 /* PNUser+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86A722FD817E002D0A72 /* PNUser+Private.h */; }; - A55A86C522FD817E002D0A72 /* PNUser+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86A722FD817E002D0A72 /* PNUser+Private.h */; }; A55A86C622FD817E002D0A72 /* PNUser.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86A822FD817E002D0A72 /* PNUser.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A86C722FD817E002D0A72 /* PNUser.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86A822FD817E002D0A72 /* PNUser.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A86C822FD817E002D0A72 /* PNUser.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86A822FD817E002D0A72 /* PNUser.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A86C922FD817E002D0A72 /* PNUser.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86A822FD817E002D0A72 /* PNUser.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A86CA22FD817E002D0A72 /* PNUser.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86A822FD817E002D0A72 /* PNUser.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A86CB22FD817E002D0A72 /* PNUser.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86A822FD817E002D0A72 /* PNUser.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A86CC22FD817E002D0A72 /* PNUser.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86A822FD817E002D0A72 /* PNUser.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A86CD22FD817E002D0A72 /* PNSpace.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86A922FD817E002D0A72 /* PNSpace.m */; }; A55A86CE22FD817E002D0A72 /* PNSpace.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86A922FD817E002D0A72 /* PNSpace.m */; }; A55A86CF22FD817E002D0A72 /* PNSpace.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86A922FD817E002D0A72 /* PNSpace.m */; }; A55A86D022FD817E002D0A72 /* PNSpace.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86A922FD817E002D0A72 /* PNSpace.m */; }; - A55A86D122FD817E002D0A72 /* PNSpace.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86A922FD817E002D0A72 /* PNSpace.m */; }; A55A86D222FD817E002D0A72 /* PNSpace.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86A922FD817E002D0A72 /* PNSpace.m */; }; - A55A86D322FD817E002D0A72 /* PNSpace.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86A922FD817E002D0A72 /* PNSpace.m */; }; A55A86E022FD81E3002D0A72 /* PNFetchUsersResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86D422FD81E1002D0A72 /* PNFetchUsersResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A86E122FD81E3002D0A72 /* PNFetchUsersResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86D422FD81E1002D0A72 /* PNFetchUsersResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A86E222FD81E3002D0A72 /* PNFetchUsersResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86D422FD81E1002D0A72 /* PNFetchUsersResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A86E322FD81E3002D0A72 /* PNFetchUsersResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86D422FD81E1002D0A72 /* PNFetchUsersResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A86E422FD81E3002D0A72 /* PNFetchUsersResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86D422FD81E1002D0A72 /* PNFetchUsersResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A86E522FD81E3002D0A72 /* PNFetchUsersResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86D422FD81E1002D0A72 /* PNFetchUsersResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A86E622FD81E3002D0A72 /* PNFetchUsersResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86D422FD81E1002D0A72 /* PNFetchUsersResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A86E722FD81E3002D0A72 /* PNFetchUsersResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86D522FD81E2002D0A72 /* PNFetchUsersResult.m */; }; A55A86E822FD81E3002D0A72 /* PNFetchUsersResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86D522FD81E2002D0A72 /* PNFetchUsersResult.m */; }; A55A86E922FD81E3002D0A72 /* PNFetchUsersResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86D522FD81E2002D0A72 /* PNFetchUsersResult.m */; }; A55A86EA22FD81E3002D0A72 /* PNFetchUsersResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86D522FD81E2002D0A72 /* PNFetchUsersResult.m */; }; - A55A86EB22FD81E3002D0A72 /* PNFetchUsersResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86D522FD81E2002D0A72 /* PNFetchUsersResult.m */; }; A55A86EC22FD81E3002D0A72 /* PNFetchUsersResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86D522FD81E2002D0A72 /* PNFetchUsersResult.m */; }; - A55A86ED22FD81E3002D0A72 /* PNFetchUsersResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86D522FD81E2002D0A72 /* PNFetchUsersResult.m */; }; A55A86EE22FD81E3002D0A72 /* PNCreateUserStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86D622FD81E2002D0A72 /* PNCreateUserStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A86EF22FD81E3002D0A72 /* PNCreateUserStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86D622FD81E2002D0A72 /* PNCreateUserStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A86F022FD81E3002D0A72 /* PNCreateUserStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86D622FD81E2002D0A72 /* PNCreateUserStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A86F122FD81E3002D0A72 /* PNCreateUserStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86D622FD81E2002D0A72 /* PNCreateUserStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A86F222FD81E3002D0A72 /* PNCreateUserStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86D622FD81E2002D0A72 /* PNCreateUserStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A86F322FD81E3002D0A72 /* PNCreateUserStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86D622FD81E2002D0A72 /* PNCreateUserStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A86F422FD81E3002D0A72 /* PNCreateUserStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86D622FD81E2002D0A72 /* PNCreateUserStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A86F522FD81E3002D0A72 /* PNFetchSpacesResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86D722FD81E2002D0A72 /* PNFetchSpacesResult.m */; }; A55A86F622FD81E3002D0A72 /* PNFetchSpacesResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86D722FD81E2002D0A72 /* PNFetchSpacesResult.m */; }; A55A86F722FD81E3002D0A72 /* PNFetchSpacesResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86D722FD81E2002D0A72 /* PNFetchSpacesResult.m */; }; A55A86F822FD81E3002D0A72 /* PNFetchSpacesResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86D722FD81E2002D0A72 /* PNFetchSpacesResult.m */; }; - A55A86F922FD81E3002D0A72 /* PNFetchSpacesResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86D722FD81E2002D0A72 /* PNFetchSpacesResult.m */; }; A55A86FA22FD81E3002D0A72 /* PNFetchSpacesResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86D722FD81E2002D0A72 /* PNFetchSpacesResult.m */; }; - A55A86FB22FD81E3002D0A72 /* PNFetchSpacesResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86D722FD81E2002D0A72 /* PNFetchSpacesResult.m */; }; A55A86FC22FD81E3002D0A72 /* PNCreateSpaceStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86D822FD81E2002D0A72 /* PNCreateSpaceStatus.m */; }; A55A86FD22FD81E3002D0A72 /* PNCreateSpaceStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86D822FD81E2002D0A72 /* PNCreateSpaceStatus.m */; }; A55A86FE22FD81E3002D0A72 /* PNCreateSpaceStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86D822FD81E2002D0A72 /* PNCreateSpaceStatus.m */; }; A55A86FF22FD81E3002D0A72 /* PNCreateSpaceStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86D822FD81E2002D0A72 /* PNCreateSpaceStatus.m */; }; - A55A870022FD81E3002D0A72 /* PNCreateSpaceStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86D822FD81E2002D0A72 /* PNCreateSpaceStatus.m */; }; A55A870122FD81E3002D0A72 /* PNCreateSpaceStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86D822FD81E2002D0A72 /* PNCreateSpaceStatus.m */; }; - A55A870222FD81E3002D0A72 /* PNCreateSpaceStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86D822FD81E2002D0A72 /* PNCreateSpaceStatus.m */; }; A55A870322FD81E3002D0A72 /* PNUpdateUserStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86D922FD81E2002D0A72 /* PNUpdateUserStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A870422FD81E3002D0A72 /* PNUpdateUserStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86D922FD81E2002D0A72 /* PNUpdateUserStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A870522FD81E3002D0A72 /* PNUpdateUserStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86D922FD81E2002D0A72 /* PNUpdateUserStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A870622FD81E3002D0A72 /* PNUpdateUserStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86D922FD81E2002D0A72 /* PNUpdateUserStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A870722FD81E3002D0A72 /* PNUpdateUserStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86D922FD81E2002D0A72 /* PNUpdateUserStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A870822FD81E3002D0A72 /* PNUpdateUserStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86D922FD81E2002D0A72 /* PNUpdateUserStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A870922FD81E3002D0A72 /* PNUpdateUserStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86D922FD81E2002D0A72 /* PNUpdateUserStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A870A22FD81E3002D0A72 /* PNUpdateUserStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86DA22FD81E2002D0A72 /* PNUpdateUserStatus.m */; }; A55A870B22FD81E3002D0A72 /* PNUpdateUserStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86DA22FD81E2002D0A72 /* PNUpdateUserStatus.m */; }; A55A870C22FD81E3002D0A72 /* PNUpdateUserStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86DA22FD81E2002D0A72 /* PNUpdateUserStatus.m */; }; A55A870D22FD81E3002D0A72 /* PNUpdateUserStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86DA22FD81E2002D0A72 /* PNUpdateUserStatus.m */; }; - A55A870E22FD81E3002D0A72 /* PNUpdateUserStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86DA22FD81E2002D0A72 /* PNUpdateUserStatus.m */; }; A55A870F22FD81E3002D0A72 /* PNUpdateUserStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86DA22FD81E2002D0A72 /* PNUpdateUserStatus.m */; }; - A55A871022FD81E3002D0A72 /* PNUpdateUserStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86DA22FD81E2002D0A72 /* PNUpdateUserStatus.m */; }; A55A871122FD81E3002D0A72 /* PNCreateUserStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86DB22FD81E2002D0A72 /* PNCreateUserStatus.m */; }; A55A871222FD81E3002D0A72 /* PNCreateUserStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86DB22FD81E2002D0A72 /* PNCreateUserStatus.m */; }; A55A871322FD81E3002D0A72 /* PNCreateUserStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86DB22FD81E2002D0A72 /* PNCreateUserStatus.m */; }; A55A871422FD81E3002D0A72 /* PNCreateUserStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86DB22FD81E2002D0A72 /* PNCreateUserStatus.m */; }; - A55A871522FD81E3002D0A72 /* PNCreateUserStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86DB22FD81E2002D0A72 /* PNCreateUserStatus.m */; }; A55A871622FD81E3002D0A72 /* PNCreateUserStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86DB22FD81E2002D0A72 /* PNCreateUserStatus.m */; }; - A55A871722FD81E3002D0A72 /* PNCreateUserStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86DB22FD81E2002D0A72 /* PNCreateUserStatus.m */; }; A55A871822FD81E3002D0A72 /* PNCreateSpaceStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86DC22FD81E2002D0A72 /* PNCreateSpaceStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A871922FD81E3002D0A72 /* PNCreateSpaceStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86DC22FD81E2002D0A72 /* PNCreateSpaceStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A871A22FD81E3002D0A72 /* PNCreateSpaceStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86DC22FD81E2002D0A72 /* PNCreateSpaceStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A871B22FD81E3002D0A72 /* PNCreateSpaceStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86DC22FD81E2002D0A72 /* PNCreateSpaceStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A871C22FD81E3002D0A72 /* PNCreateSpaceStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86DC22FD81E2002D0A72 /* PNCreateSpaceStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A871D22FD81E3002D0A72 /* PNCreateSpaceStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86DC22FD81E2002D0A72 /* PNCreateSpaceStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A871E22FD81E3002D0A72 /* PNCreateSpaceStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86DC22FD81E2002D0A72 /* PNCreateSpaceStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A871F22FD81E3002D0A72 /* PNUpdateSpaceStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86DD22FD81E2002D0A72 /* PNUpdateSpaceStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A872022FD81E3002D0A72 /* PNUpdateSpaceStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86DD22FD81E2002D0A72 /* PNUpdateSpaceStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A872122FD81E3002D0A72 /* PNUpdateSpaceStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86DD22FD81E2002D0A72 /* PNUpdateSpaceStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A872222FD81E3002D0A72 /* PNUpdateSpaceStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86DD22FD81E2002D0A72 /* PNUpdateSpaceStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A872322FD81E3002D0A72 /* PNUpdateSpaceStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86DD22FD81E2002D0A72 /* PNUpdateSpaceStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A872422FD81E3002D0A72 /* PNUpdateSpaceStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86DD22FD81E2002D0A72 /* PNUpdateSpaceStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A872522FD81E3002D0A72 /* PNUpdateSpaceStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86DD22FD81E2002D0A72 /* PNUpdateSpaceStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A872622FD81E3002D0A72 /* PNFetchSpacesResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86DE22FD81E2002D0A72 /* PNFetchSpacesResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A872722FD81E3002D0A72 /* PNFetchSpacesResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86DE22FD81E2002D0A72 /* PNFetchSpacesResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A872822FD81E3002D0A72 /* PNFetchSpacesResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86DE22FD81E2002D0A72 /* PNFetchSpacesResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A872922FD81E3002D0A72 /* PNFetchSpacesResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86DE22FD81E2002D0A72 /* PNFetchSpacesResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A872A22FD81E3002D0A72 /* PNFetchSpacesResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86DE22FD81E2002D0A72 /* PNFetchSpacesResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A872B22FD81E3002D0A72 /* PNFetchSpacesResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86DE22FD81E2002D0A72 /* PNFetchSpacesResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A872C22FD81E3002D0A72 /* PNFetchSpacesResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A86DE22FD81E2002D0A72 /* PNFetchSpacesResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A872D22FD81E3002D0A72 /* PNUpdateSpaceStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86DF22FD81E3002D0A72 /* PNUpdateSpaceStatus.m */; }; A55A872E22FD81E3002D0A72 /* PNUpdateSpaceStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86DF22FD81E3002D0A72 /* PNUpdateSpaceStatus.m */; }; A55A872F22FD81E3002D0A72 /* PNUpdateSpaceStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86DF22FD81E3002D0A72 /* PNUpdateSpaceStatus.m */; }; A55A873022FD81E3002D0A72 /* PNUpdateSpaceStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86DF22FD81E3002D0A72 /* PNUpdateSpaceStatus.m */; }; - A55A873122FD81E3002D0A72 /* PNUpdateSpaceStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86DF22FD81E3002D0A72 /* PNUpdateSpaceStatus.m */; }; A55A873222FD81E3002D0A72 /* PNUpdateSpaceStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86DF22FD81E3002D0A72 /* PNUpdateSpaceStatus.m */; }; - A55A873322FD81E3002D0A72 /* PNUpdateSpaceStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A86DF22FD81E3002D0A72 /* PNUpdateSpaceStatus.m */; }; A55A873722FD825A002D0A72 /* PNUserDataChangeParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A873522FD825A002D0A72 /* PNUserDataChangeParser.m */; }; A55A873822FD825A002D0A72 /* PNUserDataChangeParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A873522FD825A002D0A72 /* PNUserDataChangeParser.m */; }; A55A873922FD825A002D0A72 /* PNUserDataChangeParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A873522FD825A002D0A72 /* PNUserDataChangeParser.m */; }; A55A873A22FD825A002D0A72 /* PNUserDataChangeParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A873522FD825A002D0A72 /* PNUserDataChangeParser.m */; }; - A55A873B22FD825A002D0A72 /* PNUserDataChangeParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A873522FD825A002D0A72 /* PNUserDataChangeParser.m */; }; A55A873C22FD825A002D0A72 /* PNUserDataChangeParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A873522FD825A002D0A72 /* PNUserDataChangeParser.m */; }; - A55A873D22FD825A002D0A72 /* PNUserDataChangeParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A873522FD825A002D0A72 /* PNUserDataChangeParser.m */; }; A55A873E22FD825A002D0A72 /* PNUserDataChangeParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A873622FD825A002D0A72 /* PNUserDataChangeParser.h */; }; A55A873F22FD825A002D0A72 /* PNUserDataChangeParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A873622FD825A002D0A72 /* PNUserDataChangeParser.h */; }; A55A874022FD825A002D0A72 /* PNUserDataChangeParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A873622FD825A002D0A72 /* PNUserDataChangeParser.h */; }; A55A874122FD825A002D0A72 /* PNUserDataChangeParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A873622FD825A002D0A72 /* PNUserDataChangeParser.h */; }; - A55A874222FD825A002D0A72 /* PNUserDataChangeParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A873622FD825A002D0A72 /* PNUserDataChangeParser.h */; }; A55A874322FD825A002D0A72 /* PNUserDataChangeParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A873622FD825A002D0A72 /* PNUserDataChangeParser.h */; }; - A55A874422FD825A002D0A72 /* PNUserDataChangeParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A873622FD825A002D0A72 /* PNUserDataChangeParser.h */; }; A55A877322FD8272002D0A72 /* PNRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A874622FD8272002D0A72 /* PNRequest.m */; }; A55A877422FD8272002D0A72 /* PNRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A874622FD8272002D0A72 /* PNRequest.m */; }; A55A877522FD8272002D0A72 /* PNRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A874622FD8272002D0A72 /* PNRequest.m */; }; A55A877622FD8272002D0A72 /* PNRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A874622FD8272002D0A72 /* PNRequest.m */; }; - A55A877722FD8272002D0A72 /* PNRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A874622FD8272002D0A72 /* PNRequest.m */; }; A55A877822FD8272002D0A72 /* PNRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A874622FD8272002D0A72 /* PNRequest.m */; }; - A55A877922FD8272002D0A72 /* PNRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A874622FD8272002D0A72 /* PNRequest.m */; }; A55A877A22FD8272002D0A72 /* PNObjectsPaginatedRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A874822FD8272002D0A72 /* PNObjectsPaginatedRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A877B22FD8272002D0A72 /* PNObjectsPaginatedRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A874822FD8272002D0A72 /* PNObjectsPaginatedRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A877C22FD8272002D0A72 /* PNObjectsPaginatedRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A874822FD8272002D0A72 /* PNObjectsPaginatedRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A877D22FD8272002D0A72 /* PNObjectsPaginatedRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A874822FD8272002D0A72 /* PNObjectsPaginatedRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A877E22FD8272002D0A72 /* PNObjectsPaginatedRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A874822FD8272002D0A72 /* PNObjectsPaginatedRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A877F22FD8272002D0A72 /* PNObjectsPaginatedRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A874822FD8272002D0A72 /* PNObjectsPaginatedRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A878022FD8272002D0A72 /* PNObjectsPaginatedRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A874822FD8272002D0A72 /* PNObjectsPaginatedRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A878122FD8272002D0A72 /* PNFetchUserRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A874A22FD8272002D0A72 /* PNFetchUserRequest.m */; }; A55A878222FD8272002D0A72 /* PNFetchUserRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A874A22FD8272002D0A72 /* PNFetchUserRequest.m */; }; A55A878322FD8272002D0A72 /* PNFetchUserRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A874A22FD8272002D0A72 /* PNFetchUserRequest.m */; }; A55A878422FD8272002D0A72 /* PNFetchUserRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A874A22FD8272002D0A72 /* PNFetchUserRequest.m */; }; - A55A878522FD8272002D0A72 /* PNFetchUserRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A874A22FD8272002D0A72 /* PNFetchUserRequest.m */; }; A55A878622FD8272002D0A72 /* PNFetchUserRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A874A22FD8272002D0A72 /* PNFetchUserRequest.m */; }; - A55A878722FD8272002D0A72 /* PNFetchUserRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A874A22FD8272002D0A72 /* PNFetchUserRequest.m */; }; A55A878822FD8272002D0A72 /* PNUpdateUserRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A874B22FD8272002D0A72 /* PNUpdateUserRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A878922FD8272002D0A72 /* PNUpdateUserRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A874B22FD8272002D0A72 /* PNUpdateUserRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A878A22FD8272002D0A72 /* PNUpdateUserRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A874B22FD8272002D0A72 /* PNUpdateUserRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A878B22FD8272002D0A72 /* PNUpdateUserRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A874B22FD8272002D0A72 /* PNUpdateUserRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A878C22FD8272002D0A72 /* PNUpdateUserRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A874B22FD8272002D0A72 /* PNUpdateUserRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A878D22FD8272002D0A72 /* PNUpdateUserRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A874B22FD8272002D0A72 /* PNUpdateUserRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A878E22FD8272002D0A72 /* PNUpdateUserRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A874B22FD8272002D0A72 /* PNUpdateUserRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A878F22FD8272002D0A72 /* PNManageUserDataRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A874C22FD8272002D0A72 /* PNManageUserDataRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A879022FD8272002D0A72 /* PNManageUserDataRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A874C22FD8272002D0A72 /* PNManageUserDataRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A879122FD8272002D0A72 /* PNManageUserDataRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A874C22FD8272002D0A72 /* PNManageUserDataRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A879222FD8272002D0A72 /* PNManageUserDataRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A874C22FD8272002D0A72 /* PNManageUserDataRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A879322FD8272002D0A72 /* PNManageUserDataRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A874C22FD8272002D0A72 /* PNManageUserDataRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A879422FD8272002D0A72 /* PNManageUserDataRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A874C22FD8272002D0A72 /* PNManageUserDataRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A879522FD8272002D0A72 /* PNManageUserDataRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A874C22FD8272002D0A72 /* PNManageUserDataRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A879622FD8272002D0A72 /* PNFetchUsersRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A874D22FD8272002D0A72 /* PNFetchUsersRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A879722FD8272002D0A72 /* PNFetchUsersRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A874D22FD8272002D0A72 /* PNFetchUsersRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A879822FD8272002D0A72 /* PNFetchUsersRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A874D22FD8272002D0A72 /* PNFetchUsersRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A879922FD8272002D0A72 /* PNFetchUsersRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A874D22FD8272002D0A72 /* PNFetchUsersRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A879A22FD8272002D0A72 /* PNFetchUsersRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A874D22FD8272002D0A72 /* PNFetchUsersRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A879B22FD8272002D0A72 /* PNFetchUsersRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A874D22FD8272002D0A72 /* PNFetchUsersRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A879C22FD8272002D0A72 /* PNFetchUsersRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A874D22FD8272002D0A72 /* PNFetchUsersRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A879D22FD8272002D0A72 /* PNCreateUserRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A874E22FD8272002D0A72 /* PNCreateUserRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A879E22FD8272002D0A72 /* PNCreateUserRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A874E22FD8272002D0A72 /* PNCreateUserRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A879F22FD8272002D0A72 /* PNCreateUserRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A874E22FD8272002D0A72 /* PNCreateUserRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A87A022FD8272002D0A72 /* PNCreateUserRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A874E22FD8272002D0A72 /* PNCreateUserRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A87A122FD8272002D0A72 /* PNCreateUserRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A874E22FD8272002D0A72 /* PNCreateUserRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A87A222FD8272002D0A72 /* PNCreateUserRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A874E22FD8272002D0A72 /* PNCreateUserRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A87A322FD8272002D0A72 /* PNCreateUserRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A874E22FD8272002D0A72 /* PNCreateUserRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A87A422FD8272002D0A72 /* PNDeleteUserRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A874F22FD8272002D0A72 /* PNDeleteUserRequest.m */; }; A55A87A522FD8272002D0A72 /* PNDeleteUserRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A874F22FD8272002D0A72 /* PNDeleteUserRequest.m */; }; A55A87A622FD8272002D0A72 /* PNDeleteUserRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A874F22FD8272002D0A72 /* PNDeleteUserRequest.m */; }; A55A87A722FD8272002D0A72 /* PNDeleteUserRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A874F22FD8272002D0A72 /* PNDeleteUserRequest.m */; }; - A55A87A822FD8272002D0A72 /* PNDeleteUserRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A874F22FD8272002D0A72 /* PNDeleteUserRequest.m */; }; A55A87A922FD8272002D0A72 /* PNDeleteUserRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A874F22FD8272002D0A72 /* PNDeleteUserRequest.m */; }; - A55A87AA22FD8272002D0A72 /* PNDeleteUserRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A874F22FD8272002D0A72 /* PNDeleteUserRequest.m */; }; A55A87AB22FD8272002D0A72 /* PNFetchUserRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A875022FD8272002D0A72 /* PNFetchUserRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A87AC22FD8272002D0A72 /* PNFetchUserRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A875022FD8272002D0A72 /* PNFetchUserRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A87AD22FD8272002D0A72 /* PNFetchUserRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A875022FD8272002D0A72 /* PNFetchUserRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A87AE22FD8272002D0A72 /* PNFetchUserRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A875022FD8272002D0A72 /* PNFetchUserRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A87AF22FD8272002D0A72 /* PNFetchUserRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A875022FD8272002D0A72 /* PNFetchUserRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A87B022FD8272002D0A72 /* PNFetchUserRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A875022FD8272002D0A72 /* PNFetchUserRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A87B122FD8272002D0A72 /* PNFetchUserRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A875022FD8272002D0A72 /* PNFetchUserRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A87B922FD8272002D0A72 /* PNManageUserDataRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875222FD8272002D0A72 /* PNManageUserDataRequest.m */; }; A55A87BA22FD8272002D0A72 /* PNManageUserDataRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875222FD8272002D0A72 /* PNManageUserDataRequest.m */; }; A55A87BB22FD8272002D0A72 /* PNManageUserDataRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875222FD8272002D0A72 /* PNManageUserDataRequest.m */; }; A55A87BC22FD8272002D0A72 /* PNManageUserDataRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875222FD8272002D0A72 /* PNManageUserDataRequest.m */; }; - A55A87BD22FD8272002D0A72 /* PNManageUserDataRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875222FD8272002D0A72 /* PNManageUserDataRequest.m */; }; A55A87BE22FD8272002D0A72 /* PNManageUserDataRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875222FD8272002D0A72 /* PNManageUserDataRequest.m */; }; - A55A87BF22FD8272002D0A72 /* PNManageUserDataRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875222FD8272002D0A72 /* PNManageUserDataRequest.m */; }; A55A87C022FD8272002D0A72 /* PNUpdateUserRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875322FD8272002D0A72 /* PNUpdateUserRequest.m */; }; A55A87C122FD8272002D0A72 /* PNUpdateUserRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875322FD8272002D0A72 /* PNUpdateUserRequest.m */; }; A55A87C222FD8272002D0A72 /* PNUpdateUserRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875322FD8272002D0A72 /* PNUpdateUserRequest.m */; }; A55A87C322FD8272002D0A72 /* PNUpdateUserRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875322FD8272002D0A72 /* PNUpdateUserRequest.m */; }; - A55A87C422FD8272002D0A72 /* PNUpdateUserRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875322FD8272002D0A72 /* PNUpdateUserRequest.m */; }; A55A87C522FD8272002D0A72 /* PNUpdateUserRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875322FD8272002D0A72 /* PNUpdateUserRequest.m */; }; - A55A87C622FD8272002D0A72 /* PNUpdateUserRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875322FD8272002D0A72 /* PNUpdateUserRequest.m */; }; A55A87C722FD8272002D0A72 /* PNDeleteUserRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A875422FD8272002D0A72 /* PNDeleteUserRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A87C822FD8272002D0A72 /* PNDeleteUserRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A875422FD8272002D0A72 /* PNDeleteUserRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A87C922FD8272002D0A72 /* PNDeleteUserRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A875422FD8272002D0A72 /* PNDeleteUserRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A87CA22FD8272002D0A72 /* PNDeleteUserRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A875422FD8272002D0A72 /* PNDeleteUserRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A87CB22FD8272002D0A72 /* PNDeleteUserRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A875422FD8272002D0A72 /* PNDeleteUserRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A87CC22FD8272002D0A72 /* PNDeleteUserRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A875422FD8272002D0A72 /* PNDeleteUserRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A87CD22FD8272002D0A72 /* PNDeleteUserRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A875422FD8272002D0A72 /* PNDeleteUserRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A87CE22FD8272002D0A72 /* PNCreateUserRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875522FD8272002D0A72 /* PNCreateUserRequest.m */; }; A55A87CF22FD8272002D0A72 /* PNCreateUserRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875522FD8272002D0A72 /* PNCreateUserRequest.m */; }; A55A87D022FD8272002D0A72 /* PNCreateUserRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875522FD8272002D0A72 /* PNCreateUserRequest.m */; }; A55A87D122FD8272002D0A72 /* PNCreateUserRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875522FD8272002D0A72 /* PNCreateUserRequest.m */; }; - A55A87D222FD8272002D0A72 /* PNCreateUserRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875522FD8272002D0A72 /* PNCreateUserRequest.m */; }; A55A87D322FD8272002D0A72 /* PNCreateUserRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875522FD8272002D0A72 /* PNCreateUserRequest.m */; }; - A55A87D422FD8272002D0A72 /* PNCreateUserRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875522FD8272002D0A72 /* PNCreateUserRequest.m */; }; A55A87D522FD8272002D0A72 /* PNFetchUsersRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875622FD8272002D0A72 /* PNFetchUsersRequest.m */; }; A55A87D622FD8272002D0A72 /* PNFetchUsersRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875622FD8272002D0A72 /* PNFetchUsersRequest.m */; }; A55A87D722FD8272002D0A72 /* PNFetchUsersRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875622FD8272002D0A72 /* PNFetchUsersRequest.m */; }; A55A87D822FD8272002D0A72 /* PNFetchUsersRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875622FD8272002D0A72 /* PNFetchUsersRequest.m */; }; - A55A87D922FD8272002D0A72 /* PNFetchUsersRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875622FD8272002D0A72 /* PNFetchUsersRequest.m */; }; A55A87DA22FD8272002D0A72 /* PNFetchUsersRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875622FD8272002D0A72 /* PNFetchUsersRequest.m */; }; - A55A87DB22FD8272002D0A72 /* PNFetchUsersRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875622FD8272002D0A72 /* PNFetchUsersRequest.m */; }; A55A87DC22FD8272002D0A72 /* PNBaseObjectsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A875722FD8272002D0A72 /* PNBaseObjectsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A87DD22FD8272002D0A72 /* PNBaseObjectsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A875722FD8272002D0A72 /* PNBaseObjectsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A87DE22FD8272002D0A72 /* PNBaseObjectsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A875722FD8272002D0A72 /* PNBaseObjectsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A87DF22FD8272002D0A72 /* PNBaseObjectsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A875722FD8272002D0A72 /* PNBaseObjectsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A87E022FD8272002D0A72 /* PNBaseObjectsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A875722FD8272002D0A72 /* PNBaseObjectsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A87E122FD8272002D0A72 /* PNBaseObjectsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A875722FD8272002D0A72 /* PNBaseObjectsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A87E222FD8272002D0A72 /* PNBaseObjectsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A875722FD8272002D0A72 /* PNBaseObjectsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A87E322FD8272002D0A72 /* PNFetchSpaceRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875922FD8272002D0A72 /* PNFetchSpaceRequest.m */; }; A55A87E422FD8272002D0A72 /* PNFetchSpaceRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875922FD8272002D0A72 /* PNFetchSpaceRequest.m */; }; A55A87E522FD8272002D0A72 /* PNFetchSpaceRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875922FD8272002D0A72 /* PNFetchSpaceRequest.m */; }; A55A87E622FD8272002D0A72 /* PNFetchSpaceRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875922FD8272002D0A72 /* PNFetchSpaceRequest.m */; }; - A55A87E722FD8272002D0A72 /* PNFetchSpaceRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875922FD8272002D0A72 /* PNFetchSpaceRequest.m */; }; A55A87E822FD8272002D0A72 /* PNFetchSpaceRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875922FD8272002D0A72 /* PNFetchSpaceRequest.m */; }; - A55A87E922FD8272002D0A72 /* PNFetchSpaceRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875922FD8272002D0A72 /* PNFetchSpaceRequest.m */; }; A55A87EA22FD8272002D0A72 /* PNFetchSpacesRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875A22FD8272002D0A72 /* PNFetchSpacesRequest.m */; }; A55A87EB22FD8272002D0A72 /* PNFetchSpacesRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875A22FD8272002D0A72 /* PNFetchSpacesRequest.m */; }; A55A87EC22FD8272002D0A72 /* PNFetchSpacesRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875A22FD8272002D0A72 /* PNFetchSpacesRequest.m */; }; A55A87ED22FD8272002D0A72 /* PNFetchSpacesRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875A22FD8272002D0A72 /* PNFetchSpacesRequest.m */; }; - A55A87EE22FD8272002D0A72 /* PNFetchSpacesRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875A22FD8272002D0A72 /* PNFetchSpacesRequest.m */; }; A55A87EF22FD8272002D0A72 /* PNFetchSpacesRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875A22FD8272002D0A72 /* PNFetchSpacesRequest.m */; }; - A55A87F022FD8272002D0A72 /* PNFetchSpacesRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875A22FD8272002D0A72 /* PNFetchSpacesRequest.m */; }; A55A87F122FD8272002D0A72 /* PNCreateSpaceRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875B22FD8272002D0A72 /* PNCreateSpaceRequest.m */; }; A55A87F222FD8272002D0A72 /* PNCreateSpaceRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875B22FD8272002D0A72 /* PNCreateSpaceRequest.m */; }; A55A87F322FD8272002D0A72 /* PNCreateSpaceRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875B22FD8272002D0A72 /* PNCreateSpaceRequest.m */; }; A55A87F422FD8272002D0A72 /* PNCreateSpaceRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875B22FD8272002D0A72 /* PNCreateSpaceRequest.m */; }; - A55A87F522FD8272002D0A72 /* PNCreateSpaceRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875B22FD8272002D0A72 /* PNCreateSpaceRequest.m */; }; A55A87F622FD8272002D0A72 /* PNCreateSpaceRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875B22FD8272002D0A72 /* PNCreateSpaceRequest.m */; }; - A55A87F722FD8272002D0A72 /* PNCreateSpaceRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875B22FD8272002D0A72 /* PNCreateSpaceRequest.m */; }; A55A87F822FD8272002D0A72 /* PNManageSpaceDataRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A875C22FD8272002D0A72 /* PNManageSpaceDataRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A87F922FD8272002D0A72 /* PNManageSpaceDataRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A875C22FD8272002D0A72 /* PNManageSpaceDataRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A87FA22FD8272002D0A72 /* PNManageSpaceDataRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A875C22FD8272002D0A72 /* PNManageSpaceDataRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A87FB22FD8272002D0A72 /* PNManageSpaceDataRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A875C22FD8272002D0A72 /* PNManageSpaceDataRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A87FC22FD8272002D0A72 /* PNManageSpaceDataRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A875C22FD8272002D0A72 /* PNManageSpaceDataRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A87FD22FD8272002D0A72 /* PNManageSpaceDataRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A875C22FD8272002D0A72 /* PNManageSpaceDataRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A87FE22FD8272002D0A72 /* PNManageSpaceDataRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A875C22FD8272002D0A72 /* PNManageSpaceDataRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A87FF22FD8272002D0A72 /* PNUpdateSpaceRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A875D22FD8272002D0A72 /* PNUpdateSpaceRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A880022FD8272002D0A72 /* PNUpdateSpaceRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A875D22FD8272002D0A72 /* PNUpdateSpaceRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A880122FD8272002D0A72 /* PNUpdateSpaceRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A875D22FD8272002D0A72 /* PNUpdateSpaceRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A880222FD8272002D0A72 /* PNUpdateSpaceRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A875D22FD8272002D0A72 /* PNUpdateSpaceRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A880322FD8272002D0A72 /* PNUpdateSpaceRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A875D22FD8272002D0A72 /* PNUpdateSpaceRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A880422FD8272002D0A72 /* PNUpdateSpaceRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A875D22FD8272002D0A72 /* PNUpdateSpaceRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A880522FD8272002D0A72 /* PNUpdateSpaceRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A875D22FD8272002D0A72 /* PNUpdateSpaceRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A880622FD8272002D0A72 /* PNDeleteSpaceRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875E22FD8272002D0A72 /* PNDeleteSpaceRequest.m */; }; A55A880722FD8272002D0A72 /* PNDeleteSpaceRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875E22FD8272002D0A72 /* PNDeleteSpaceRequest.m */; }; A55A880822FD8272002D0A72 /* PNDeleteSpaceRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875E22FD8272002D0A72 /* PNDeleteSpaceRequest.m */; }; A55A880922FD8272002D0A72 /* PNDeleteSpaceRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875E22FD8272002D0A72 /* PNDeleteSpaceRequest.m */; }; - A55A880A22FD8272002D0A72 /* PNDeleteSpaceRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875E22FD8272002D0A72 /* PNDeleteSpaceRequest.m */; }; A55A880B22FD8272002D0A72 /* PNDeleteSpaceRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875E22FD8272002D0A72 /* PNDeleteSpaceRequest.m */; }; - A55A880C22FD8272002D0A72 /* PNDeleteSpaceRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A875E22FD8272002D0A72 /* PNDeleteSpaceRequest.m */; }; A55A881422FD8272002D0A72 /* PNCreateSpaceRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876022FD8272002D0A72 /* PNCreateSpaceRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A881522FD8272002D0A72 /* PNCreateSpaceRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876022FD8272002D0A72 /* PNCreateSpaceRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A881622FD8272002D0A72 /* PNCreateSpaceRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876022FD8272002D0A72 /* PNCreateSpaceRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A881722FD8272002D0A72 /* PNCreateSpaceRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876022FD8272002D0A72 /* PNCreateSpaceRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A881822FD8272002D0A72 /* PNCreateSpaceRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876022FD8272002D0A72 /* PNCreateSpaceRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A881922FD8272002D0A72 /* PNCreateSpaceRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876022FD8272002D0A72 /* PNCreateSpaceRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A881A22FD8272002D0A72 /* PNCreateSpaceRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876022FD8272002D0A72 /* PNCreateSpaceRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A881B22FD8272002D0A72 /* PNFetchSpacesRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876122FD8272002D0A72 /* PNFetchSpacesRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A881C22FD8272002D0A72 /* PNFetchSpacesRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876122FD8272002D0A72 /* PNFetchSpacesRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A881D22FD8272002D0A72 /* PNFetchSpacesRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876122FD8272002D0A72 /* PNFetchSpacesRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A881E22FD8272002D0A72 /* PNFetchSpacesRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876122FD8272002D0A72 /* PNFetchSpacesRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A881F22FD8272002D0A72 /* PNFetchSpacesRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876122FD8272002D0A72 /* PNFetchSpacesRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A882022FD8272002D0A72 /* PNFetchSpacesRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876122FD8272002D0A72 /* PNFetchSpacesRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A882122FD8272002D0A72 /* PNFetchSpacesRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876122FD8272002D0A72 /* PNFetchSpacesRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A882222FD8272002D0A72 /* PNFetchSpaceRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876222FD8272002D0A72 /* PNFetchSpaceRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A882322FD8272002D0A72 /* PNFetchSpaceRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876222FD8272002D0A72 /* PNFetchSpaceRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A882422FD8272002D0A72 /* PNFetchSpaceRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876222FD8272002D0A72 /* PNFetchSpaceRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A882522FD8272002D0A72 /* PNFetchSpaceRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876222FD8272002D0A72 /* PNFetchSpaceRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A882622FD8272002D0A72 /* PNFetchSpaceRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876222FD8272002D0A72 /* PNFetchSpaceRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A882722FD8272002D0A72 /* PNFetchSpaceRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876222FD8272002D0A72 /* PNFetchSpaceRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A882822FD8272002D0A72 /* PNFetchSpaceRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876222FD8272002D0A72 /* PNFetchSpaceRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A882922FD8272002D0A72 /* PNManageSpaceDataRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876322FD8272002D0A72 /* PNManageSpaceDataRequest.m */; }; A55A882A22FD8272002D0A72 /* PNManageSpaceDataRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876322FD8272002D0A72 /* PNManageSpaceDataRequest.m */; }; A55A882B22FD8272002D0A72 /* PNManageSpaceDataRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876322FD8272002D0A72 /* PNManageSpaceDataRequest.m */; }; A55A882C22FD8272002D0A72 /* PNManageSpaceDataRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876322FD8272002D0A72 /* PNManageSpaceDataRequest.m */; }; - A55A882D22FD8272002D0A72 /* PNManageSpaceDataRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876322FD8272002D0A72 /* PNManageSpaceDataRequest.m */; }; A55A882E22FD8272002D0A72 /* PNManageSpaceDataRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876322FD8272002D0A72 /* PNManageSpaceDataRequest.m */; }; - A55A882F22FD8272002D0A72 /* PNManageSpaceDataRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876322FD8272002D0A72 /* PNManageSpaceDataRequest.m */; }; A55A883022FD8272002D0A72 /* PNDeleteSpaceRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876422FD8272002D0A72 /* PNDeleteSpaceRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A883122FD8272002D0A72 /* PNDeleteSpaceRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876422FD8272002D0A72 /* PNDeleteSpaceRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A883222FD8272002D0A72 /* PNDeleteSpaceRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876422FD8272002D0A72 /* PNDeleteSpaceRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A883322FD8272002D0A72 /* PNDeleteSpaceRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876422FD8272002D0A72 /* PNDeleteSpaceRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A883422FD8272002D0A72 /* PNDeleteSpaceRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876422FD8272002D0A72 /* PNDeleteSpaceRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A883522FD8272002D0A72 /* PNDeleteSpaceRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876422FD8272002D0A72 /* PNDeleteSpaceRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A883622FD8272002D0A72 /* PNDeleteSpaceRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876422FD8272002D0A72 /* PNDeleteSpaceRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A883722FD8272002D0A72 /* PNUpdateSpaceRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876522FD8272002D0A72 /* PNUpdateSpaceRequest.m */; }; A55A883822FD8272002D0A72 /* PNUpdateSpaceRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876522FD8272002D0A72 /* PNUpdateSpaceRequest.m */; }; A55A883922FD8272002D0A72 /* PNUpdateSpaceRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876522FD8272002D0A72 /* PNUpdateSpaceRequest.m */; }; A55A883A22FD8272002D0A72 /* PNUpdateSpaceRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876522FD8272002D0A72 /* PNUpdateSpaceRequest.m */; }; - A55A883B22FD8272002D0A72 /* PNUpdateSpaceRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876522FD8272002D0A72 /* PNUpdateSpaceRequest.m */; }; A55A883C22FD8272002D0A72 /* PNUpdateSpaceRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876522FD8272002D0A72 /* PNUpdateSpaceRequest.m */; }; - A55A883D22FD8272002D0A72 /* PNUpdateSpaceRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876522FD8272002D0A72 /* PNUpdateSpaceRequest.m */; }; A55A883E22FD8272002D0A72 /* PNBaseObjectsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876622FD8272002D0A72 /* PNBaseObjectsRequest.m */; }; A55A883F22FD8272002D0A72 /* PNBaseObjectsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876622FD8272002D0A72 /* PNBaseObjectsRequest.m */; }; A55A884022FD8272002D0A72 /* PNBaseObjectsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876622FD8272002D0A72 /* PNBaseObjectsRequest.m */; }; A55A884122FD8272002D0A72 /* PNBaseObjectsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876622FD8272002D0A72 /* PNBaseObjectsRequest.m */; }; - A55A884222FD8272002D0A72 /* PNBaseObjectsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876622FD8272002D0A72 /* PNBaseObjectsRequest.m */; }; A55A884322FD8272002D0A72 /* PNBaseObjectsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876622FD8272002D0A72 /* PNBaseObjectsRequest.m */; }; - A55A884422FD8272002D0A72 /* PNBaseObjectsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876622FD8272002D0A72 /* PNBaseObjectsRequest.m */; }; A55A884522FD8272002D0A72 /* PNManageMembershipsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876822FD8272002D0A72 /* PNManageMembershipsRequest.m */; }; A55A884622FD8272002D0A72 /* PNManageMembershipsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876822FD8272002D0A72 /* PNManageMembershipsRequest.m */; }; A55A884722FD8272002D0A72 /* PNManageMembershipsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876822FD8272002D0A72 /* PNManageMembershipsRequest.m */; }; A55A884822FD8272002D0A72 /* PNManageMembershipsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876822FD8272002D0A72 /* PNManageMembershipsRequest.m */; }; - A55A884922FD8272002D0A72 /* PNManageMembershipsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876822FD8272002D0A72 /* PNManageMembershipsRequest.m */; }; A55A884A22FD8272002D0A72 /* PNManageMembershipsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876822FD8272002D0A72 /* PNManageMembershipsRequest.m */; }; - A55A884B22FD8272002D0A72 /* PNManageMembershipsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876822FD8272002D0A72 /* PNManageMembershipsRequest.m */; }; A55A884C22FD8272002D0A72 /* PNFetchMembershipsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876922FD8272002D0A72 /* PNFetchMembershipsRequest.m */; }; A55A884D22FD8272002D0A72 /* PNFetchMembershipsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876922FD8272002D0A72 /* PNFetchMembershipsRequest.m */; }; A55A884E22FD8272002D0A72 /* PNFetchMembershipsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876922FD8272002D0A72 /* PNFetchMembershipsRequest.m */; }; A55A884F22FD8272002D0A72 /* PNFetchMembershipsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876922FD8272002D0A72 /* PNFetchMembershipsRequest.m */; }; - A55A885022FD8272002D0A72 /* PNFetchMembershipsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876922FD8272002D0A72 /* PNFetchMembershipsRequest.m */; }; A55A885122FD8272002D0A72 /* PNFetchMembershipsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876922FD8272002D0A72 /* PNFetchMembershipsRequest.m */; }; - A55A885222FD8272002D0A72 /* PNFetchMembershipsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876922FD8272002D0A72 /* PNFetchMembershipsRequest.m */; }; A55A885322FD8272002D0A72 /* PNFetchMembersRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876A22FD8272002D0A72 /* PNFetchMembersRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A885422FD8272002D0A72 /* PNFetchMembersRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876A22FD8272002D0A72 /* PNFetchMembersRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A885522FD8272002D0A72 /* PNFetchMembersRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876A22FD8272002D0A72 /* PNFetchMembersRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A885622FD8272002D0A72 /* PNFetchMembersRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876A22FD8272002D0A72 /* PNFetchMembersRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A885722FD8272002D0A72 /* PNFetchMembersRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876A22FD8272002D0A72 /* PNFetchMembersRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A885822FD8272002D0A72 /* PNFetchMembersRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876A22FD8272002D0A72 /* PNFetchMembersRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A885922FD8272002D0A72 /* PNFetchMembersRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876A22FD8272002D0A72 /* PNFetchMembersRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A885A22FD8272002D0A72 /* PNManageMembersRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876B22FD8272002D0A72 /* PNManageMembersRequest.m */; }; A55A885B22FD8272002D0A72 /* PNManageMembersRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876B22FD8272002D0A72 /* PNManageMembersRequest.m */; }; A55A885C22FD8272002D0A72 /* PNManageMembersRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876B22FD8272002D0A72 /* PNManageMembersRequest.m */; }; A55A885D22FD8272002D0A72 /* PNManageMembersRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876B22FD8272002D0A72 /* PNManageMembersRequest.m */; }; - A55A885E22FD8272002D0A72 /* PNManageMembersRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876B22FD8272002D0A72 /* PNManageMembersRequest.m */; }; A55A885F22FD8272002D0A72 /* PNManageMembersRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876B22FD8272002D0A72 /* PNManageMembersRequest.m */; }; - A55A886022FD8272002D0A72 /* PNManageMembersRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876B22FD8272002D0A72 /* PNManageMembersRequest.m */; }; A55A886122FD8272002D0A72 /* PNFetchMembershipsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876C22FD8272002D0A72 /* PNFetchMembershipsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A886222FD8272002D0A72 /* PNFetchMembershipsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876C22FD8272002D0A72 /* PNFetchMembershipsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A886322FD8272002D0A72 /* PNFetchMembershipsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876C22FD8272002D0A72 /* PNFetchMembershipsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A886422FD8272002D0A72 /* PNFetchMembershipsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876C22FD8272002D0A72 /* PNFetchMembershipsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A886522FD8272002D0A72 /* PNFetchMembershipsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876C22FD8272002D0A72 /* PNFetchMembershipsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A886622FD8272002D0A72 /* PNFetchMembershipsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876C22FD8272002D0A72 /* PNFetchMembershipsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A886722FD8272002D0A72 /* PNFetchMembershipsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876C22FD8272002D0A72 /* PNFetchMembershipsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A886822FD8272002D0A72 /* PNManageMembershipsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876D22FD8272002D0A72 /* PNManageMembershipsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A886922FD8272002D0A72 /* PNManageMembershipsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876D22FD8272002D0A72 /* PNManageMembershipsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A886A22FD8272002D0A72 /* PNManageMembershipsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876D22FD8272002D0A72 /* PNManageMembershipsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A886B22FD8272002D0A72 /* PNManageMembershipsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876D22FD8272002D0A72 /* PNManageMembershipsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A886C22FD8272002D0A72 /* PNManageMembershipsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876D22FD8272002D0A72 /* PNManageMembershipsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A886D22FD8272002D0A72 /* PNManageMembershipsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876D22FD8272002D0A72 /* PNManageMembershipsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A886E22FD8272002D0A72 /* PNManageMembershipsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876D22FD8272002D0A72 /* PNManageMembershipsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A886F22FD8272002D0A72 /* PNFetchMembersRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876E22FD8272002D0A72 /* PNFetchMembersRequest.m */; }; A55A887022FD8272002D0A72 /* PNFetchMembersRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876E22FD8272002D0A72 /* PNFetchMembersRequest.m */; }; A55A887122FD8272002D0A72 /* PNFetchMembersRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876E22FD8272002D0A72 /* PNFetchMembersRequest.m */; }; A55A887222FD8272002D0A72 /* PNFetchMembersRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876E22FD8272002D0A72 /* PNFetchMembersRequest.m */; }; - A55A887322FD8272002D0A72 /* PNFetchMembersRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876E22FD8272002D0A72 /* PNFetchMembersRequest.m */; }; A55A887422FD8272002D0A72 /* PNFetchMembersRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876E22FD8272002D0A72 /* PNFetchMembersRequest.m */; }; - A55A887522FD8272002D0A72 /* PNFetchMembersRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A876E22FD8272002D0A72 /* PNFetchMembersRequest.m */; }; A55A887622FD8272002D0A72 /* PNManageMembersRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876F22FD8272002D0A72 /* PNManageMembersRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A887722FD8272002D0A72 /* PNManageMembersRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876F22FD8272002D0A72 /* PNManageMembersRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A887822FD8272002D0A72 /* PNManageMembersRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876F22FD8272002D0A72 /* PNManageMembersRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A887922FD8272002D0A72 /* PNManageMembersRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876F22FD8272002D0A72 /* PNManageMembersRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A887A22FD8272002D0A72 /* PNManageMembersRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876F22FD8272002D0A72 /* PNManageMembersRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A887B22FD8272002D0A72 /* PNManageMembersRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876F22FD8272002D0A72 /* PNManageMembersRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A887C22FD8272002D0A72 /* PNManageMembersRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A876F22FD8272002D0A72 /* PNManageMembersRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A887D22FD8272002D0A72 /* PNObjectsPaginatedRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A877022FD8272002D0A72 /* PNObjectsPaginatedRequest.m */; }; A55A887E22FD8272002D0A72 /* PNObjectsPaginatedRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A877022FD8272002D0A72 /* PNObjectsPaginatedRequest.m */; }; A55A887F22FD8272002D0A72 /* PNObjectsPaginatedRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A877022FD8272002D0A72 /* PNObjectsPaginatedRequest.m */; }; A55A888022FD8272002D0A72 /* PNObjectsPaginatedRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A877022FD8272002D0A72 /* PNObjectsPaginatedRequest.m */; }; - A55A888122FD8272002D0A72 /* PNObjectsPaginatedRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A877022FD8272002D0A72 /* PNObjectsPaginatedRequest.m */; }; A55A888222FD8272002D0A72 /* PNObjectsPaginatedRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A877022FD8272002D0A72 /* PNObjectsPaginatedRequest.m */; }; - A55A888322FD8272002D0A72 /* PNObjectsPaginatedRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A877022FD8272002D0A72 /* PNObjectsPaginatedRequest.m */; }; A55A888422FD8272002D0A72 /* PNRequest+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A877122FD8272002D0A72 /* PNRequest+Private.h */; }; A55A888522FD8272002D0A72 /* PNRequest+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A877122FD8272002D0A72 /* PNRequest+Private.h */; }; A55A888622FD8272002D0A72 /* PNRequest+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A877122FD8272002D0A72 /* PNRequest+Private.h */; }; A55A888722FD8272002D0A72 /* PNRequest+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A877122FD8272002D0A72 /* PNRequest+Private.h */; }; - A55A888822FD8272002D0A72 /* PNRequest+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A877122FD8272002D0A72 /* PNRequest+Private.h */; }; A55A888922FD8272002D0A72 /* PNRequest+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A877122FD8272002D0A72 /* PNRequest+Private.h */; }; - A55A888A22FD8272002D0A72 /* PNRequest+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A877122FD8272002D0A72 /* PNRequest+Private.h */; }; A55A888B22FD8272002D0A72 /* PNRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A877222FD8272002D0A72 /* PNRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A888C22FD8272002D0A72 /* PNRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A877222FD8272002D0A72 /* PNRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A888D22FD8272002D0A72 /* PNRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A877222FD8272002D0A72 /* PNRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A888E22FD8272002D0A72 /* PNRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A877222FD8272002D0A72 /* PNRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A888F22FD8272002D0A72 /* PNRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A877222FD8272002D0A72 /* PNRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55A889022FD8272002D0A72 /* PNRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A877222FD8272002D0A72 /* PNRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55A889122FD8272002D0A72 /* PNRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A55A877222FD8272002D0A72 /* PNRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55BCCA22319243F0019DB68 /* PNAddMessageActionStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCCA02319243F0019DB68 /* PNAddMessageActionStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55BCCA32319243F0019DB68 /* PNAddMessageActionStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCCA02319243F0019DB68 /* PNAddMessageActionStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55BCCA42319243F0019DB68 /* PNAddMessageActionStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCCA02319243F0019DB68 /* PNAddMessageActionStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55BCCA52319243F0019DB68 /* PNAddMessageActionStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCCA02319243F0019DB68 /* PNAddMessageActionStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55BCCA62319243F0019DB68 /* PNAddMessageActionStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCCA02319243F0019DB68 /* PNAddMessageActionStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55BCCA72319243F0019DB68 /* PNAddMessageActionStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCCA02319243F0019DB68 /* PNAddMessageActionStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55BCCA82319243F0019DB68 /* PNAddMessageActionStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCCA02319243F0019DB68 /* PNAddMessageActionStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55BCCA92319243F0019DB68 /* PNAddMessageActionStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A55BCCA12319243F0019DB68 /* PNAddMessageActionStatus.m */; }; A55BCCAA2319243F0019DB68 /* PNAddMessageActionStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A55BCCA12319243F0019DB68 /* PNAddMessageActionStatus.m */; }; A55BCCAB2319243F0019DB68 /* PNAddMessageActionStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A55BCCA12319243F0019DB68 /* PNAddMessageActionStatus.m */; }; A55BCCAC2319243F0019DB68 /* PNAddMessageActionStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A55BCCA12319243F0019DB68 /* PNAddMessageActionStatus.m */; }; - A55BCCAD2319243F0019DB68 /* PNAddMessageActionStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A55BCCA12319243F0019DB68 /* PNAddMessageActionStatus.m */; }; A55BCCAE2319243F0019DB68 /* PNAddMessageActionStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A55BCCA12319243F0019DB68 /* PNAddMessageActionStatus.m */; }; - A55BCCAF2319243F0019DB68 /* PNAddMessageActionStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A55BCCA12319243F0019DB68 /* PNAddMessageActionStatus.m */; }; A55BCCE6231D21840019DB68 /* PNAddMessageActionAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCCE4231D21840019DB68 /* PNAddMessageActionAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55BCCE7231D21840019DB68 /* PNAddMessageActionAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCCE4231D21840019DB68 /* PNAddMessageActionAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55BCCE8231D21840019DB68 /* PNAddMessageActionAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCCE4231D21840019DB68 /* PNAddMessageActionAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55BCCE9231D21840019DB68 /* PNAddMessageActionAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCCE4231D21840019DB68 /* PNAddMessageActionAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55BCCEA231D21840019DB68 /* PNAddMessageActionAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCCE4231D21840019DB68 /* PNAddMessageActionAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55BCCEB231D21840019DB68 /* PNAddMessageActionAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCCE4231D21840019DB68 /* PNAddMessageActionAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55BCCEC231D21840019DB68 /* PNAddMessageActionAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCCE4231D21840019DB68 /* PNAddMessageActionAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55BCCED231D21840019DB68 /* PNAddMessageActionAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55BCCE5231D21840019DB68 /* PNAddMessageActionAPICallBuilder.m */; }; A55BCCEE231D21840019DB68 /* PNAddMessageActionAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55BCCE5231D21840019DB68 /* PNAddMessageActionAPICallBuilder.m */; }; A55BCCEF231D21840019DB68 /* PNAddMessageActionAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55BCCE5231D21840019DB68 /* PNAddMessageActionAPICallBuilder.m */; }; A55BCCF0231D21840019DB68 /* PNAddMessageActionAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55BCCE5231D21840019DB68 /* PNAddMessageActionAPICallBuilder.m */; }; - A55BCCF1231D21840019DB68 /* PNAddMessageActionAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55BCCE5231D21840019DB68 /* PNAddMessageActionAPICallBuilder.m */; }; A55BCCF2231D21840019DB68 /* PNAddMessageActionAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55BCCE5231D21840019DB68 /* PNAddMessageActionAPICallBuilder.m */; }; - A55BCCF3231D21840019DB68 /* PNAddMessageActionAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55BCCE5231D21840019DB68 /* PNAddMessageActionAPICallBuilder.m */; }; A55BCCF6231D222B0019DB68 /* PNRemoveMessageActionAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCCF4231D222B0019DB68 /* PNRemoveMessageActionAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55BCCF7231D222B0019DB68 /* PNRemoveMessageActionAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCCF4231D222B0019DB68 /* PNRemoveMessageActionAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55BCCF8231D222B0019DB68 /* PNRemoveMessageActionAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCCF4231D222B0019DB68 /* PNRemoveMessageActionAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55BCCF9231D222B0019DB68 /* PNRemoveMessageActionAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCCF4231D222B0019DB68 /* PNRemoveMessageActionAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55BCCFA231D222B0019DB68 /* PNRemoveMessageActionAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCCF4231D222B0019DB68 /* PNRemoveMessageActionAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55BCCFB231D222B0019DB68 /* PNRemoveMessageActionAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCCF4231D222B0019DB68 /* PNRemoveMessageActionAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55BCCFC231D222B0019DB68 /* PNRemoveMessageActionAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCCF4231D222B0019DB68 /* PNRemoveMessageActionAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55BCCFD231D222B0019DB68 /* PNRemoveMessageActionAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55BCCF5231D222B0019DB68 /* PNRemoveMessageActionAPICallBuilder.m */; }; A55BCCFE231D222B0019DB68 /* PNRemoveMessageActionAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55BCCF5231D222B0019DB68 /* PNRemoveMessageActionAPICallBuilder.m */; }; A55BCCFF231D222B0019DB68 /* PNRemoveMessageActionAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55BCCF5231D222B0019DB68 /* PNRemoveMessageActionAPICallBuilder.m */; }; A55BCD00231D222B0019DB68 /* PNRemoveMessageActionAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55BCCF5231D222B0019DB68 /* PNRemoveMessageActionAPICallBuilder.m */; }; - A55BCD01231D222B0019DB68 /* PNRemoveMessageActionAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55BCCF5231D222B0019DB68 /* PNRemoveMessageActionAPICallBuilder.m */; }; A55BCD02231D222B0019DB68 /* PNRemoveMessageActionAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55BCCF5231D222B0019DB68 /* PNRemoveMessageActionAPICallBuilder.m */; }; - A55BCD03231D222B0019DB68 /* PNRemoveMessageActionAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55BCCF5231D222B0019DB68 /* PNRemoveMessageActionAPICallBuilder.m */; }; A55BCD06231D22400019DB68 /* PNFetchMessagesActionsAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCD04231D22400019DB68 /* PNFetchMessagesActionsAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55BCD07231D22400019DB68 /* PNFetchMessagesActionsAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCD04231D22400019DB68 /* PNFetchMessagesActionsAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55BCD08231D22400019DB68 /* PNFetchMessagesActionsAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCD04231D22400019DB68 /* PNFetchMessagesActionsAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55BCD09231D22400019DB68 /* PNFetchMessagesActionsAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCD04231D22400019DB68 /* PNFetchMessagesActionsAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55BCD0A231D22400019DB68 /* PNFetchMessagesActionsAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCD04231D22400019DB68 /* PNFetchMessagesActionsAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55BCD0B231D22400019DB68 /* PNFetchMessagesActionsAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCD04231D22400019DB68 /* PNFetchMessagesActionsAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55BCD0C231D22400019DB68 /* PNFetchMessagesActionsAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCD04231D22400019DB68 /* PNFetchMessagesActionsAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55BCD0D231D22400019DB68 /* PNFetchMessagesActionsAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55BCD05231D22400019DB68 /* PNFetchMessagesActionsAPICallBuilder.m */; }; A55BCD0E231D22400019DB68 /* PNFetchMessagesActionsAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55BCD05231D22400019DB68 /* PNFetchMessagesActionsAPICallBuilder.m */; }; A55BCD0F231D22400019DB68 /* PNFetchMessagesActionsAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55BCD05231D22400019DB68 /* PNFetchMessagesActionsAPICallBuilder.m */; }; A55BCD10231D22400019DB68 /* PNFetchMessagesActionsAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55BCD05231D22400019DB68 /* PNFetchMessagesActionsAPICallBuilder.m */; }; - A55BCD11231D22400019DB68 /* PNFetchMessagesActionsAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55BCD05231D22400019DB68 /* PNFetchMessagesActionsAPICallBuilder.m */; }; A55BCD12231D22400019DB68 /* PNFetchMessagesActionsAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55BCD05231D22400019DB68 /* PNFetchMessagesActionsAPICallBuilder.m */; }; - A55BCD13231D22400019DB68 /* PNFetchMessagesActionsAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A55BCD05231D22400019DB68 /* PNFetchMessagesActionsAPICallBuilder.m */; }; A55BCD16231D26110019DB68 /* PNMessageAction.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCD14231D26110019DB68 /* PNMessageAction.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55BCD17231D26110019DB68 /* PNMessageAction.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCD14231D26110019DB68 /* PNMessageAction.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55BCD18231D26110019DB68 /* PNMessageAction.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCD14231D26110019DB68 /* PNMessageAction.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55BCD19231D26110019DB68 /* PNMessageAction.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCD14231D26110019DB68 /* PNMessageAction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55BCD1A231D26110019DB68 /* PNMessageAction.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCD14231D26110019DB68 /* PNMessageAction.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55BCD1B231D26110019DB68 /* PNMessageAction.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCD14231D26110019DB68 /* PNMessageAction.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A55BCD1C231D26110019DB68 /* PNMessageAction.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCD14231D26110019DB68 /* PNMessageAction.h */; settings = {ATTRIBUTES = (Public, ); }; }; A55BCD1D231D26110019DB68 /* PNMessageAction.m in Sources */ = {isa = PBXBuildFile; fileRef = A55BCD15231D26110019DB68 /* PNMessageAction.m */; }; A55BCD1E231D26110019DB68 /* PNMessageAction.m in Sources */ = {isa = PBXBuildFile; fileRef = A55BCD15231D26110019DB68 /* PNMessageAction.m */; }; A55BCD1F231D26110019DB68 /* PNMessageAction.m in Sources */ = {isa = PBXBuildFile; fileRef = A55BCD15231D26110019DB68 /* PNMessageAction.m */; }; A55BCD20231D26110019DB68 /* PNMessageAction.m in Sources */ = {isa = PBXBuildFile; fileRef = A55BCD15231D26110019DB68 /* PNMessageAction.m */; }; - A55BCD21231D26110019DB68 /* PNMessageAction.m in Sources */ = {isa = PBXBuildFile; fileRef = A55BCD15231D26110019DB68 /* PNMessageAction.m */; }; A55BCD22231D26110019DB68 /* PNMessageAction.m in Sources */ = {isa = PBXBuildFile; fileRef = A55BCD15231D26110019DB68 /* PNMessageAction.m */; }; - A55BCD23231D26110019DB68 /* PNMessageAction.m in Sources */ = {isa = PBXBuildFile; fileRef = A55BCD15231D26110019DB68 /* PNMessageAction.m */; }; A55BCD25231D27F00019DB68 /* PNMessageAction+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCD24231D27F00019DB68 /* PNMessageAction+Private.h */; }; A55BCD26231D27F00019DB68 /* PNMessageAction+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCD24231D27F00019DB68 /* PNMessageAction+Private.h */; }; A55BCD27231D27F00019DB68 /* PNMessageAction+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCD24231D27F00019DB68 /* PNMessageAction+Private.h */; }; A55BCD28231D27F00019DB68 /* PNMessageAction+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCD24231D27F00019DB68 /* PNMessageAction+Private.h */; }; - A55BCD29231D27F00019DB68 /* PNMessageAction+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCD24231D27F00019DB68 /* PNMessageAction+Private.h */; }; A55BCD2A231D27F00019DB68 /* PNMessageAction+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCD24231D27F00019DB68 /* PNMessageAction+Private.h */; }; - A55BCD2B231D27F00019DB68 /* PNMessageAction+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A55BCD24231D27F00019DB68 /* PNMessageAction+Private.h */; }; A55CA69D2397389100B24E02 /* PNKeychain+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A55CA69C2397389100B24E02 /* PNKeychain+Private.h */; }; A55CA69E2397389100B24E02 /* PNKeychain+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A55CA69C2397389100B24E02 /* PNKeychain+Private.h */; }; A55CA69F2397389100B24E02 /* PNKeychain+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A55CA69C2397389100B24E02 /* PNKeychain+Private.h */; }; A55CA6A02397389100B24E02 /* PNKeychain+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A55CA69C2397389100B24E02 /* PNKeychain+Private.h */; }; - A55CA6A12397389100B24E02 /* PNKeychain+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A55CA69C2397389100B24E02 /* PNKeychain+Private.h */; }; A55CA6A22397389100B24E02 /* PNKeychain+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A55CA69C2397389100B24E02 /* PNKeychain+Private.h */; }; - A55CA6A32397389100B24E02 /* PNKeychain+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A55CA69C2397389100B24E02 /* PNKeychain+Private.h */; }; A56865602300622C0014E17C /* PNMember+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A568655F2300622C0014E17C /* PNMember+Private.h */; }; A56865612300622C0014E17C /* PNMember+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A568655F2300622C0014E17C /* PNMember+Private.h */; }; A56865622300622C0014E17C /* PNMember+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A568655F2300622C0014E17C /* PNMember+Private.h */; }; A56865632300622C0014E17C /* PNMember+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A568655F2300622C0014E17C /* PNMember+Private.h */; }; - A56865642300622C0014E17C /* PNMember+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A568655F2300622C0014E17C /* PNMember+Private.h */; }; A56865652300622C0014E17C /* PNMember+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A568655F2300622C0014E17C /* PNMember+Private.h */; }; - A56865662300622C0014E17C /* PNMember+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A568655F2300622C0014E17C /* PNMember+Private.h */; }; A56865692300709F0014E17C /* PNFetchMembershipsResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865672300709F0014E17C /* PNFetchMembershipsResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; A568656A2300709F0014E17C /* PNFetchMembershipsResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865672300709F0014E17C /* PNFetchMembershipsResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; A568656B2300709F0014E17C /* PNFetchMembershipsResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865672300709F0014E17C /* PNFetchMembershipsResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; A568656C2300709F0014E17C /* PNFetchMembershipsResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865672300709F0014E17C /* PNFetchMembershipsResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A568656D2300709F0014E17C /* PNFetchMembershipsResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865672300709F0014E17C /* PNFetchMembershipsResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; A568656E2300709F0014E17C /* PNFetchMembershipsResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865672300709F0014E17C /* PNFetchMembershipsResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A568656F2300709F0014E17C /* PNFetchMembershipsResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865672300709F0014E17C /* PNFetchMembershipsResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; A56865702300709F0014E17C /* PNFetchMembershipsResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865682300709F0014E17C /* PNFetchMembershipsResult.m */; }; A56865712300709F0014E17C /* PNFetchMembershipsResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865682300709F0014E17C /* PNFetchMembershipsResult.m */; }; A56865722300709F0014E17C /* PNFetchMembershipsResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865682300709F0014E17C /* PNFetchMembershipsResult.m */; }; A56865732300709F0014E17C /* PNFetchMembershipsResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865682300709F0014E17C /* PNFetchMembershipsResult.m */; }; - A56865742300709F0014E17C /* PNFetchMembershipsResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865682300709F0014E17C /* PNFetchMembershipsResult.m */; }; A56865752300709F0014E17C /* PNFetchMembershipsResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865682300709F0014E17C /* PNFetchMembershipsResult.m */; }; - A56865762300709F0014E17C /* PNFetchMembershipsResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865682300709F0014E17C /* PNFetchMembershipsResult.m */; }; A5686579230072810014E17C /* PNManageMembersStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A5686577230072810014E17C /* PNManageMembersStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; A568657A230072810014E17C /* PNManageMembersStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A5686577230072810014E17C /* PNManageMembersStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; A568657B230072810014E17C /* PNManageMembersStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A5686577230072810014E17C /* PNManageMembersStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; A568657C230072810014E17C /* PNManageMembersStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A5686577230072810014E17C /* PNManageMembersStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A568657D230072810014E17C /* PNManageMembersStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A5686577230072810014E17C /* PNManageMembersStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; A568657E230072810014E17C /* PNManageMembersStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A5686577230072810014E17C /* PNManageMembersStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A568657F230072810014E17C /* PNManageMembersStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A5686577230072810014E17C /* PNManageMembersStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; A5686580230072810014E17C /* PNManageMembersStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A5686578230072810014E17C /* PNManageMembersStatus.m */; }; A5686581230072810014E17C /* PNManageMembersStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A5686578230072810014E17C /* PNManageMembersStatus.m */; }; A5686582230072810014E17C /* PNManageMembersStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A5686578230072810014E17C /* PNManageMembersStatus.m */; }; A5686583230072810014E17C /* PNManageMembersStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A5686578230072810014E17C /* PNManageMembersStatus.m */; }; - A5686584230072810014E17C /* PNManageMembersStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A5686578230072810014E17C /* PNManageMembersStatus.m */; }; A5686585230072810014E17C /* PNManageMembersStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A5686578230072810014E17C /* PNManageMembersStatus.m */; }; - A5686586230072810014E17C /* PNManageMembersStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A5686578230072810014E17C /* PNManageMembersStatus.m */; }; A56865892300729E0014E17C /* PNFetchMembersResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865872300729E0014E17C /* PNFetchMembersResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; A568658A2300729E0014E17C /* PNFetchMembersResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865872300729E0014E17C /* PNFetchMembersResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; A568658B2300729E0014E17C /* PNFetchMembersResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865872300729E0014E17C /* PNFetchMembersResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; A568658C2300729E0014E17C /* PNFetchMembersResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865872300729E0014E17C /* PNFetchMembersResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A568658D2300729E0014E17C /* PNFetchMembersResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865872300729E0014E17C /* PNFetchMembersResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; A568658E2300729E0014E17C /* PNFetchMembersResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865872300729E0014E17C /* PNFetchMembersResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A568658F2300729E0014E17C /* PNFetchMembersResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865872300729E0014E17C /* PNFetchMembersResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; A56865902300729E0014E17C /* PNFetchMembersResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865882300729E0014E17C /* PNFetchMembersResult.m */; }; A56865912300729E0014E17C /* PNFetchMembersResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865882300729E0014E17C /* PNFetchMembersResult.m */; }; A56865922300729E0014E17C /* PNFetchMembersResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865882300729E0014E17C /* PNFetchMembersResult.m */; }; A56865932300729E0014E17C /* PNFetchMembersResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865882300729E0014E17C /* PNFetchMembersResult.m */; }; - A56865942300729E0014E17C /* PNFetchMembersResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865882300729E0014E17C /* PNFetchMembersResult.m */; }; A56865952300729E0014E17C /* PNFetchMembersResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865882300729E0014E17C /* PNFetchMembersResult.m */; }; - A56865962300729E0014E17C /* PNFetchMembersResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865882300729E0014E17C /* PNFetchMembersResult.m */; }; A5686599230170690014E17C /* PNFetchUsersParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A5686597230170690014E17C /* PNFetchUsersParser.h */; }; A568659A230170690014E17C /* PNFetchUsersParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A5686597230170690014E17C /* PNFetchUsersParser.h */; }; A568659B230170690014E17C /* PNFetchUsersParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A5686597230170690014E17C /* PNFetchUsersParser.h */; }; A568659C230170690014E17C /* PNFetchUsersParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A5686597230170690014E17C /* PNFetchUsersParser.h */; }; - A568659D230170690014E17C /* PNFetchUsersParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A5686597230170690014E17C /* PNFetchUsersParser.h */; }; A568659E230170690014E17C /* PNFetchUsersParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A5686597230170690014E17C /* PNFetchUsersParser.h */; }; - A568659F230170690014E17C /* PNFetchUsersParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A5686597230170690014E17C /* PNFetchUsersParser.h */; }; A56865A0230170690014E17C /* PNFetchUsersParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A5686598230170690014E17C /* PNFetchUsersParser.m */; }; A56865A1230170690014E17C /* PNFetchUsersParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A5686598230170690014E17C /* PNFetchUsersParser.m */; }; A56865A2230170690014E17C /* PNFetchUsersParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A5686598230170690014E17C /* PNFetchUsersParser.m */; }; A56865A3230170690014E17C /* PNFetchUsersParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A5686598230170690014E17C /* PNFetchUsersParser.m */; }; - A56865A4230170690014E17C /* PNFetchUsersParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A5686598230170690014E17C /* PNFetchUsersParser.m */; }; A56865A5230170690014E17C /* PNFetchUsersParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A5686598230170690014E17C /* PNFetchUsersParser.m */; }; - A56865A6230170690014E17C /* PNFetchUsersParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A5686598230170690014E17C /* PNFetchUsersParser.m */; }; A56865A9230172950014E17C /* PNFetchSpacesParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865A7230172950014E17C /* PNFetchSpacesParser.h */; }; A56865AA230172950014E17C /* PNFetchSpacesParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865A7230172950014E17C /* PNFetchSpacesParser.h */; }; A56865AB230172950014E17C /* PNFetchSpacesParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865A7230172950014E17C /* PNFetchSpacesParser.h */; }; A56865AC230172950014E17C /* PNFetchSpacesParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865A7230172950014E17C /* PNFetchSpacesParser.h */; }; - A56865AD230172950014E17C /* PNFetchSpacesParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865A7230172950014E17C /* PNFetchSpacesParser.h */; }; A56865AE230172950014E17C /* PNFetchSpacesParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865A7230172950014E17C /* PNFetchSpacesParser.h */; }; - A56865AF230172950014E17C /* PNFetchSpacesParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865A7230172950014E17C /* PNFetchSpacesParser.h */; }; A56865B0230172950014E17C /* PNFetchSpacesParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865A8230172950014E17C /* PNFetchSpacesParser.m */; }; A56865B1230172950014E17C /* PNFetchSpacesParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865A8230172950014E17C /* PNFetchSpacesParser.m */; }; A56865B2230172950014E17C /* PNFetchSpacesParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865A8230172950014E17C /* PNFetchSpacesParser.m */; }; A56865B3230172950014E17C /* PNFetchSpacesParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865A8230172950014E17C /* PNFetchSpacesParser.m */; }; - A56865B4230172950014E17C /* PNFetchSpacesParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865A8230172950014E17C /* PNFetchSpacesParser.m */; }; A56865B5230172950014E17C /* PNFetchSpacesParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865A8230172950014E17C /* PNFetchSpacesParser.m */; }; - A56865B6230172950014E17C /* PNFetchSpacesParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865A8230172950014E17C /* PNFetchSpacesParser.m */; }; A56865B9230173030014E17C /* PNSpaceDataChangeParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865B7230173030014E17C /* PNSpaceDataChangeParser.h */; }; A56865BA230173030014E17C /* PNSpaceDataChangeParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865B7230173030014E17C /* PNSpaceDataChangeParser.h */; }; A56865BB230173030014E17C /* PNSpaceDataChangeParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865B7230173030014E17C /* PNSpaceDataChangeParser.h */; }; A56865BC230173030014E17C /* PNSpaceDataChangeParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865B7230173030014E17C /* PNSpaceDataChangeParser.h */; }; - A56865BD230173030014E17C /* PNSpaceDataChangeParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865B7230173030014E17C /* PNSpaceDataChangeParser.h */; }; A56865BE230173030014E17C /* PNSpaceDataChangeParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865B7230173030014E17C /* PNSpaceDataChangeParser.h */; }; - A56865BF230173030014E17C /* PNSpaceDataChangeParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865B7230173030014E17C /* PNSpaceDataChangeParser.h */; }; A56865C0230173030014E17C /* PNSpaceDataChangeParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865B8230173030014E17C /* PNSpaceDataChangeParser.m */; }; A56865C1230173030014E17C /* PNSpaceDataChangeParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865B8230173030014E17C /* PNSpaceDataChangeParser.m */; }; A56865C2230173030014E17C /* PNSpaceDataChangeParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865B8230173030014E17C /* PNSpaceDataChangeParser.m */; }; A56865C3230173030014E17C /* PNSpaceDataChangeParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865B8230173030014E17C /* PNSpaceDataChangeParser.m */; }; - A56865C4230173030014E17C /* PNSpaceDataChangeParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865B8230173030014E17C /* PNSpaceDataChangeParser.m */; }; A56865C5230173030014E17C /* PNSpaceDataChangeParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865B8230173030014E17C /* PNSpaceDataChangeParser.m */; }; - A56865C6230173030014E17C /* PNSpaceDataChangeParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865B8230173030014E17C /* PNSpaceDataChangeParser.m */; }; A56865C9230173AA0014E17C /* PNObjectsDeleteParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865C7230173AA0014E17C /* PNObjectsDeleteParser.h */; }; A56865CA230173AA0014E17C /* PNObjectsDeleteParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865C7230173AA0014E17C /* PNObjectsDeleteParser.h */; }; A56865CB230173AA0014E17C /* PNObjectsDeleteParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865C7230173AA0014E17C /* PNObjectsDeleteParser.h */; }; A56865CC230173AA0014E17C /* PNObjectsDeleteParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865C7230173AA0014E17C /* PNObjectsDeleteParser.h */; }; - A56865CD230173AA0014E17C /* PNObjectsDeleteParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865C7230173AA0014E17C /* PNObjectsDeleteParser.h */; }; A56865CE230173AA0014E17C /* PNObjectsDeleteParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865C7230173AA0014E17C /* PNObjectsDeleteParser.h */; }; - A56865CF230173AA0014E17C /* PNObjectsDeleteParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865C7230173AA0014E17C /* PNObjectsDeleteParser.h */; }; A56865D0230173AA0014E17C /* PNObjectsDeleteParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865C8230173AA0014E17C /* PNObjectsDeleteParser.m */; }; A56865D1230173AA0014E17C /* PNObjectsDeleteParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865C8230173AA0014E17C /* PNObjectsDeleteParser.m */; }; A56865D2230173AA0014E17C /* PNObjectsDeleteParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865C8230173AA0014E17C /* PNObjectsDeleteParser.m */; }; A56865D3230173AA0014E17C /* PNObjectsDeleteParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865C8230173AA0014E17C /* PNObjectsDeleteParser.m */; }; - A56865D4230173AA0014E17C /* PNObjectsDeleteParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865C8230173AA0014E17C /* PNObjectsDeleteParser.m */; }; A56865D5230173AA0014E17C /* PNObjectsDeleteParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865C8230173AA0014E17C /* PNObjectsDeleteParser.m */; }; - A56865D6230173AA0014E17C /* PNObjectsDeleteParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865C8230173AA0014E17C /* PNObjectsDeleteParser.m */; }; A56865D9230175EC0014E17C /* PNMembershipsParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865D7230175EC0014E17C /* PNMembershipsParser.h */; }; A56865DA230175EC0014E17C /* PNMembershipsParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865D7230175EC0014E17C /* PNMembershipsParser.h */; }; A56865DB230175EC0014E17C /* PNMembershipsParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865D7230175EC0014E17C /* PNMembershipsParser.h */; }; A56865DC230175EC0014E17C /* PNMembershipsParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865D7230175EC0014E17C /* PNMembershipsParser.h */; }; - A56865DD230175EC0014E17C /* PNMembershipsParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865D7230175EC0014E17C /* PNMembershipsParser.h */; }; A56865DE230175EC0014E17C /* PNMembershipsParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865D7230175EC0014E17C /* PNMembershipsParser.h */; }; - A56865DF230175EC0014E17C /* PNMembershipsParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865D7230175EC0014E17C /* PNMembershipsParser.h */; }; A56865E0230175EC0014E17C /* PNMembershipsParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865D8230175EC0014E17C /* PNMembershipsParser.m */; }; A56865E1230175EC0014E17C /* PNMembershipsParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865D8230175EC0014E17C /* PNMembershipsParser.m */; }; A56865E2230175EC0014E17C /* PNMembershipsParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865D8230175EC0014E17C /* PNMembershipsParser.m */; }; A56865E3230175EC0014E17C /* PNMembershipsParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865D8230175EC0014E17C /* PNMembershipsParser.m */; }; - A56865E4230175EC0014E17C /* PNMembershipsParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865D8230175EC0014E17C /* PNMembershipsParser.m */; }; A56865E5230175EC0014E17C /* PNMembershipsParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865D8230175EC0014E17C /* PNMembershipsParser.m */; }; - A56865E6230175EC0014E17C /* PNMembershipsParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865D8230175EC0014E17C /* PNMembershipsParser.m */; }; A56865E9230176760014E17C /* PNMembersParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865E7230176760014E17C /* PNMembersParser.h */; }; A56865EA230176760014E17C /* PNMembersParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865E7230176760014E17C /* PNMembersParser.h */; }; A56865EB230176760014E17C /* PNMembersParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865E7230176760014E17C /* PNMembersParser.h */; }; A56865EC230176760014E17C /* PNMembersParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865E7230176760014E17C /* PNMembersParser.h */; }; - A56865ED230176760014E17C /* PNMembersParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865E7230176760014E17C /* PNMembersParser.h */; }; A56865EE230176760014E17C /* PNMembersParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865E7230176760014E17C /* PNMembersParser.h */; }; - A56865EF230176760014E17C /* PNMembersParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A56865E7230176760014E17C /* PNMembersParser.h */; }; A56865F0230176760014E17C /* PNMembersParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865E8230176760014E17C /* PNMembersParser.m */; }; A56865F1230176760014E17C /* PNMembersParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865E8230176760014E17C /* PNMembersParser.m */; }; A56865F2230176760014E17C /* PNMembersParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865E8230176760014E17C /* PNMembersParser.m */; }; A56865F3230176760014E17C /* PNMembersParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865E8230176760014E17C /* PNMembersParser.m */; }; - A56865F4230176760014E17C /* PNMembersParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865E8230176760014E17C /* PNMembersParser.m */; }; A56865F5230176760014E17C /* PNMembersParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865E8230176760014E17C /* PNMembersParser.m */; }; - A56865F6230176760014E17C /* PNMembersParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A56865E8230176760014E17C /* PNMembersParser.m */; }; A56FAEF2233161570072ADD6 /* PubNub+MessageActions.h in Headers */ = {isa = PBXBuildFile; fileRef = A56FAEF0233161560072ADD6 /* PubNub+MessageActions.h */; settings = {ATTRIBUTES = (Public, ); }; }; A56FAEF3233161570072ADD6 /* PubNub+MessageActions.h in Headers */ = {isa = PBXBuildFile; fileRef = A56FAEF0233161560072ADD6 /* PubNub+MessageActions.h */; settings = {ATTRIBUTES = (Public, ); }; }; A56FAEF4233161570072ADD6 /* PubNub+MessageActions.h in Headers */ = {isa = PBXBuildFile; fileRef = A56FAEF0233161560072ADD6 /* PubNub+MessageActions.h */; settings = {ATTRIBUTES = (Public, ); }; }; A56FAEF5233161570072ADD6 /* PubNub+MessageActions.h in Headers */ = {isa = PBXBuildFile; fileRef = A56FAEF0233161560072ADD6 /* PubNub+MessageActions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A56FAEF6233161570072ADD6 /* PubNub+MessageActions.h in Headers */ = {isa = PBXBuildFile; fileRef = A56FAEF0233161560072ADD6 /* PubNub+MessageActions.h */; settings = {ATTRIBUTES = (Public, ); }; }; A56FAEF7233161570072ADD6 /* PubNub+MessageActions.h in Headers */ = {isa = PBXBuildFile; fileRef = A56FAEF0233161560072ADD6 /* PubNub+MessageActions.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A56FAEF8233161570072ADD6 /* PubNub+MessageActions.h in Headers */ = {isa = PBXBuildFile; fileRef = A56FAEF0233161560072ADD6 /* PubNub+MessageActions.h */; settings = {ATTRIBUTES = (Public, ); }; }; A56FAEF9233161570072ADD6 /* PubNub+MessageActions.m in Sources */ = {isa = PBXBuildFile; fileRef = A56FAEF1233161570072ADD6 /* PubNub+MessageActions.m */; }; A56FAEFA233161570072ADD6 /* PubNub+MessageActions.m in Sources */ = {isa = PBXBuildFile; fileRef = A56FAEF1233161570072ADD6 /* PubNub+MessageActions.m */; }; A56FAEFB233161570072ADD6 /* PubNub+MessageActions.m in Sources */ = {isa = PBXBuildFile; fileRef = A56FAEF1233161570072ADD6 /* PubNub+MessageActions.m */; }; A56FAEFC233161570072ADD6 /* PubNub+MessageActions.m in Sources */ = {isa = PBXBuildFile; fileRef = A56FAEF1233161570072ADD6 /* PubNub+MessageActions.m */; }; - A56FAEFD233161570072ADD6 /* PubNub+MessageActions.m in Sources */ = {isa = PBXBuildFile; fileRef = A56FAEF1233161570072ADD6 /* PubNub+MessageActions.m */; }; A56FAEFE233161570072ADD6 /* PubNub+MessageActions.m in Sources */ = {isa = PBXBuildFile; fileRef = A56FAEF1233161570072ADD6 /* PubNub+MessageActions.m */; }; - A56FAEFF233161570072ADD6 /* PubNub+MessageActions.m in Sources */ = {isa = PBXBuildFile; fileRef = A56FAEF1233161570072ADD6 /* PubNub+MessageActions.m */; }; A57A300D238D59B500DE8C68 /* PNAddPushNotificationsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3003238D59B500DE8C68 /* PNAddPushNotificationsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A300E238D59B500DE8C68 /* PNAddPushNotificationsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3003238D59B500DE8C68 /* PNAddPushNotificationsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A300F238D59B500DE8C68 /* PNAddPushNotificationsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3003238D59B500DE8C68 /* PNAddPushNotificationsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A3010238D59B500DE8C68 /* PNAddPushNotificationsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3003238D59B500DE8C68 /* PNAddPushNotificationsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A57A3011238D59B500DE8C68 /* PNAddPushNotificationsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3003238D59B500DE8C68 /* PNAddPushNotificationsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A3012238D59B500DE8C68 /* PNAddPushNotificationsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3003238D59B500DE8C68 /* PNAddPushNotificationsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A57A3013238D59B500DE8C68 /* PNAddPushNotificationsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3003238D59B500DE8C68 /* PNAddPushNotificationsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A3014238D59B500DE8C68 /* PNRemoveAllPushNotificationsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3004238D59B500DE8C68 /* PNRemoveAllPushNotificationsRequest.m */; }; A57A3015238D59B500DE8C68 /* PNRemoveAllPushNotificationsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3004238D59B500DE8C68 /* PNRemoveAllPushNotificationsRequest.m */; }; A57A3016238D59B500DE8C68 /* PNRemoveAllPushNotificationsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3004238D59B500DE8C68 /* PNRemoveAllPushNotificationsRequest.m */; }; A57A3017238D59B500DE8C68 /* PNRemoveAllPushNotificationsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3004238D59B500DE8C68 /* PNRemoveAllPushNotificationsRequest.m */; }; - A57A3018238D59B500DE8C68 /* PNRemoveAllPushNotificationsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3004238D59B500DE8C68 /* PNRemoveAllPushNotificationsRequest.m */; }; A57A3019238D59B500DE8C68 /* PNRemoveAllPushNotificationsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3004238D59B500DE8C68 /* PNRemoveAllPushNotificationsRequest.m */; }; - A57A301A238D59B500DE8C68 /* PNRemoveAllPushNotificationsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3004238D59B500DE8C68 /* PNRemoveAllPushNotificationsRequest.m */; }; A57A301B238D59B500DE8C68 /* PNAuditPushNotificationsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3005238D59B500DE8C68 /* PNAuditPushNotificationsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A301C238D59B500DE8C68 /* PNAuditPushNotificationsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3005238D59B500DE8C68 /* PNAuditPushNotificationsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A301D238D59B500DE8C68 /* PNAuditPushNotificationsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3005238D59B500DE8C68 /* PNAuditPushNotificationsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A301E238D59B500DE8C68 /* PNAuditPushNotificationsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3005238D59B500DE8C68 /* PNAuditPushNotificationsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A57A301F238D59B500DE8C68 /* PNAuditPushNotificationsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3005238D59B500DE8C68 /* PNAuditPushNotificationsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A3020238D59B500DE8C68 /* PNAuditPushNotificationsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3005238D59B500DE8C68 /* PNAuditPushNotificationsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A57A3021238D59B500DE8C68 /* PNAuditPushNotificationsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3005238D59B500DE8C68 /* PNAuditPushNotificationsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A3022238D59B500DE8C68 /* PNRemovePushNotificationsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3006238D59B500DE8C68 /* PNRemovePushNotificationsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A3023238D59B500DE8C68 /* PNRemovePushNotificationsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3006238D59B500DE8C68 /* PNRemovePushNotificationsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A3024238D59B500DE8C68 /* PNRemovePushNotificationsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3006238D59B500DE8C68 /* PNRemovePushNotificationsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A3025238D59B500DE8C68 /* PNRemovePushNotificationsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3006238D59B500DE8C68 /* PNRemovePushNotificationsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A57A3026238D59B500DE8C68 /* PNRemovePushNotificationsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3006238D59B500DE8C68 /* PNRemovePushNotificationsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A3027238D59B500DE8C68 /* PNRemovePushNotificationsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3006238D59B500DE8C68 /* PNRemovePushNotificationsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A57A3028238D59B500DE8C68 /* PNRemovePushNotificationsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3006238D59B500DE8C68 /* PNRemovePushNotificationsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A3029238D59B500DE8C68 /* PNBasePushNotificationsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3007238D59B500DE8C68 /* PNBasePushNotificationsRequest.m */; }; A57A302A238D59B500DE8C68 /* PNBasePushNotificationsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3007238D59B500DE8C68 /* PNBasePushNotificationsRequest.m */; }; A57A302B238D59B500DE8C68 /* PNBasePushNotificationsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3007238D59B500DE8C68 /* PNBasePushNotificationsRequest.m */; }; A57A302C238D59B500DE8C68 /* PNBasePushNotificationsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3007238D59B500DE8C68 /* PNBasePushNotificationsRequest.m */; }; - A57A302D238D59B500DE8C68 /* PNBasePushNotificationsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3007238D59B500DE8C68 /* PNBasePushNotificationsRequest.m */; }; A57A302E238D59B500DE8C68 /* PNBasePushNotificationsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3007238D59B500DE8C68 /* PNBasePushNotificationsRequest.m */; }; - A57A302F238D59B500DE8C68 /* PNBasePushNotificationsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3007238D59B500DE8C68 /* PNBasePushNotificationsRequest.m */; }; A57A3030238D59B500DE8C68 /* PNAddPushNotificationsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3008238D59B500DE8C68 /* PNAddPushNotificationsRequest.m */; }; A57A3031238D59B500DE8C68 /* PNAddPushNotificationsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3008238D59B500DE8C68 /* PNAddPushNotificationsRequest.m */; }; A57A3032238D59B500DE8C68 /* PNAddPushNotificationsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3008238D59B500DE8C68 /* PNAddPushNotificationsRequest.m */; }; A57A3033238D59B500DE8C68 /* PNAddPushNotificationsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3008238D59B500DE8C68 /* PNAddPushNotificationsRequest.m */; }; - A57A3034238D59B500DE8C68 /* PNAddPushNotificationsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3008238D59B500DE8C68 /* PNAddPushNotificationsRequest.m */; }; A57A3035238D59B500DE8C68 /* PNAddPushNotificationsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3008238D59B500DE8C68 /* PNAddPushNotificationsRequest.m */; }; - A57A3036238D59B500DE8C68 /* PNAddPushNotificationsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3008238D59B500DE8C68 /* PNAddPushNotificationsRequest.m */; }; A57A3037238D59B500DE8C68 /* PNRemoveAllPushNotificationsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3009238D59B500DE8C68 /* PNRemoveAllPushNotificationsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A3038238D59B500DE8C68 /* PNRemoveAllPushNotificationsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3009238D59B500DE8C68 /* PNRemoveAllPushNotificationsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A3039238D59B500DE8C68 /* PNRemoveAllPushNotificationsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3009238D59B500DE8C68 /* PNRemoveAllPushNotificationsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A303A238D59B500DE8C68 /* PNRemoveAllPushNotificationsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3009238D59B500DE8C68 /* PNRemoveAllPushNotificationsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A57A303B238D59B500DE8C68 /* PNRemoveAllPushNotificationsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3009238D59B500DE8C68 /* PNRemoveAllPushNotificationsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A303C238D59B500DE8C68 /* PNRemoveAllPushNotificationsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3009238D59B500DE8C68 /* PNRemoveAllPushNotificationsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A57A303D238D59B500DE8C68 /* PNRemoveAllPushNotificationsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3009238D59B500DE8C68 /* PNRemoveAllPushNotificationsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A303E238D59B500DE8C68 /* PNRemovePushNotificationsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A300A238D59B500DE8C68 /* PNRemovePushNotificationsRequest.m */; }; A57A303F238D59B500DE8C68 /* PNRemovePushNotificationsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A300A238D59B500DE8C68 /* PNRemovePushNotificationsRequest.m */; }; A57A3040238D59B500DE8C68 /* PNRemovePushNotificationsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A300A238D59B500DE8C68 /* PNRemovePushNotificationsRequest.m */; }; A57A3041238D59B500DE8C68 /* PNRemovePushNotificationsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A300A238D59B500DE8C68 /* PNRemovePushNotificationsRequest.m */; }; - A57A3042238D59B500DE8C68 /* PNRemovePushNotificationsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A300A238D59B500DE8C68 /* PNRemovePushNotificationsRequest.m */; }; A57A3043238D59B500DE8C68 /* PNRemovePushNotificationsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A300A238D59B500DE8C68 /* PNRemovePushNotificationsRequest.m */; }; - A57A3044238D59B500DE8C68 /* PNRemovePushNotificationsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A300A238D59B500DE8C68 /* PNRemovePushNotificationsRequest.m */; }; A57A3045238D59B500DE8C68 /* PNAuditPushNotificationsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A300B238D59B500DE8C68 /* PNAuditPushNotificationsRequest.m */; }; A57A3046238D59B500DE8C68 /* PNAuditPushNotificationsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A300B238D59B500DE8C68 /* PNAuditPushNotificationsRequest.m */; }; A57A3047238D59B500DE8C68 /* PNAuditPushNotificationsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A300B238D59B500DE8C68 /* PNAuditPushNotificationsRequest.m */; }; A57A3048238D59B500DE8C68 /* PNAuditPushNotificationsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A300B238D59B500DE8C68 /* PNAuditPushNotificationsRequest.m */; }; - A57A3049238D59B500DE8C68 /* PNAuditPushNotificationsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A300B238D59B500DE8C68 /* PNAuditPushNotificationsRequest.m */; }; A57A304A238D59B500DE8C68 /* PNAuditPushNotificationsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A300B238D59B500DE8C68 /* PNAuditPushNotificationsRequest.m */; }; - A57A304B238D59B500DE8C68 /* PNAuditPushNotificationsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A300B238D59B500DE8C68 /* PNAuditPushNotificationsRequest.m */; }; A57A304C238D59B500DE8C68 /* PNBasePushNotificationsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A300C238D59B500DE8C68 /* PNBasePushNotificationsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A304D238D59B500DE8C68 /* PNBasePushNotificationsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A300C238D59B500DE8C68 /* PNBasePushNotificationsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A304E238D59B500DE8C68 /* PNBasePushNotificationsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A300C238D59B500DE8C68 /* PNBasePushNotificationsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A304F238D59B500DE8C68 /* PNBasePushNotificationsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A300C238D59B500DE8C68 /* PNBasePushNotificationsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A57A3050238D59B500DE8C68 /* PNBasePushNotificationsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A300C238D59B500DE8C68 /* PNBasePushNotificationsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A3051238D59B500DE8C68 /* PNBasePushNotificationsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A300C238D59B500DE8C68 /* PNBasePushNotificationsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A57A3052238D59B500DE8C68 /* PNBasePushNotificationsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A300C238D59B500DE8C68 /* PNBasePushNotificationsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A3059238D65A200DE8C68 /* PNNotificationsPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3057238D65A200DE8C68 /* PNNotificationsPayload.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A305A238D65A200DE8C68 /* PNNotificationsPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3057238D65A200DE8C68 /* PNNotificationsPayload.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A305B238D65A200DE8C68 /* PNNotificationsPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3057238D65A200DE8C68 /* PNNotificationsPayload.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A305C238D65A200DE8C68 /* PNNotificationsPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3057238D65A200DE8C68 /* PNNotificationsPayload.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A57A305D238D65A200DE8C68 /* PNNotificationsPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3057238D65A200DE8C68 /* PNNotificationsPayload.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A305E238D65A200DE8C68 /* PNNotificationsPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3057238D65A200DE8C68 /* PNNotificationsPayload.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A57A305F238D65A200DE8C68 /* PNNotificationsPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3057238D65A200DE8C68 /* PNNotificationsPayload.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A3060238D65A200DE8C68 /* PNNotificationsPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3058238D65A200DE8C68 /* PNNotificationsPayload.m */; }; A57A3061238D65A200DE8C68 /* PNNotificationsPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3058238D65A200DE8C68 /* PNNotificationsPayload.m */; }; A57A3062238D65A200DE8C68 /* PNNotificationsPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3058238D65A200DE8C68 /* PNNotificationsPayload.m */; }; A57A3063238D65A200DE8C68 /* PNNotificationsPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3058238D65A200DE8C68 /* PNNotificationsPayload.m */; }; - A57A3064238D65A200DE8C68 /* PNNotificationsPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3058238D65A200DE8C68 /* PNNotificationsPayload.m */; }; A57A3065238D65A200DE8C68 /* PNNotificationsPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3058238D65A200DE8C68 /* PNNotificationsPayload.m */; }; - A57A3066238D65A200DE8C68 /* PNNotificationsPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3058238D65A200DE8C68 /* PNNotificationsPayload.m */; }; A57A3069238D6BCC00DE8C68 /* PNFCMNotificationPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3067238D6BCC00DE8C68 /* PNFCMNotificationPayload.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A306A238D6BCC00DE8C68 /* PNFCMNotificationPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3067238D6BCC00DE8C68 /* PNFCMNotificationPayload.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A306B238D6BCC00DE8C68 /* PNFCMNotificationPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3067238D6BCC00DE8C68 /* PNFCMNotificationPayload.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A306C238D6BCC00DE8C68 /* PNFCMNotificationPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3067238D6BCC00DE8C68 /* PNFCMNotificationPayload.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A57A306D238D6BCC00DE8C68 /* PNFCMNotificationPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3067238D6BCC00DE8C68 /* PNFCMNotificationPayload.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A306E238D6BCC00DE8C68 /* PNFCMNotificationPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3067238D6BCC00DE8C68 /* PNFCMNotificationPayload.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A57A306F238D6BCC00DE8C68 /* PNFCMNotificationPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3067238D6BCC00DE8C68 /* PNFCMNotificationPayload.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A3070238D6BCC00DE8C68 /* PNFCMNotificationPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3068238D6BCC00DE8C68 /* PNFCMNotificationPayload.m */; }; A57A3071238D6BCC00DE8C68 /* PNFCMNotificationPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3068238D6BCC00DE8C68 /* PNFCMNotificationPayload.m */; }; A57A3072238D6BCC00DE8C68 /* PNFCMNotificationPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3068238D6BCC00DE8C68 /* PNFCMNotificationPayload.m */; }; A57A3073238D6BCC00DE8C68 /* PNFCMNotificationPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3068238D6BCC00DE8C68 /* PNFCMNotificationPayload.m */; }; - A57A3074238D6BCC00DE8C68 /* PNFCMNotificationPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3068238D6BCC00DE8C68 /* PNFCMNotificationPayload.m */; }; A57A3075238D6BCC00DE8C68 /* PNFCMNotificationPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3068238D6BCC00DE8C68 /* PNFCMNotificationPayload.m */; }; - A57A3076238D6BCC00DE8C68 /* PNFCMNotificationPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3068238D6BCC00DE8C68 /* PNFCMNotificationPayload.m */; }; A57A3089238D751400DE8C68 /* PNMPNSNotificationPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3087238D751400DE8C68 /* PNMPNSNotificationPayload.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A308A238D751400DE8C68 /* PNMPNSNotificationPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3087238D751400DE8C68 /* PNMPNSNotificationPayload.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A308B238D751400DE8C68 /* PNMPNSNotificationPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3087238D751400DE8C68 /* PNMPNSNotificationPayload.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A308C238D751400DE8C68 /* PNMPNSNotificationPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3087238D751400DE8C68 /* PNMPNSNotificationPayload.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A57A308D238D751400DE8C68 /* PNMPNSNotificationPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3087238D751400DE8C68 /* PNMPNSNotificationPayload.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A308E238D751400DE8C68 /* PNMPNSNotificationPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3087238D751400DE8C68 /* PNMPNSNotificationPayload.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A57A308F238D751400DE8C68 /* PNMPNSNotificationPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3087238D751400DE8C68 /* PNMPNSNotificationPayload.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A3090238D751400DE8C68 /* PNMPNSNotificationPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3088238D751400DE8C68 /* PNMPNSNotificationPayload.m */; }; A57A3091238D751400DE8C68 /* PNMPNSNotificationPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3088238D751400DE8C68 /* PNMPNSNotificationPayload.m */; }; A57A3092238D751400DE8C68 /* PNMPNSNotificationPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3088238D751400DE8C68 /* PNMPNSNotificationPayload.m */; }; A57A3093238D751400DE8C68 /* PNMPNSNotificationPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3088238D751400DE8C68 /* PNMPNSNotificationPayload.m */; }; - A57A3094238D751400DE8C68 /* PNMPNSNotificationPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3088238D751400DE8C68 /* PNMPNSNotificationPayload.m */; }; A57A3095238D751400DE8C68 /* PNMPNSNotificationPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3088238D751400DE8C68 /* PNMPNSNotificationPayload.m */; }; - A57A3096238D751400DE8C68 /* PNMPNSNotificationPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3088238D751400DE8C68 /* PNMPNSNotificationPayload.m */; }; A57A3099238D784A00DE8C68 /* PNBaseNotificationPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3097238D784A00DE8C68 /* PNBaseNotificationPayload.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A309A238D784A00DE8C68 /* PNBaseNotificationPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3097238D784A00DE8C68 /* PNBaseNotificationPayload.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A309B238D784A00DE8C68 /* PNBaseNotificationPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3097238D784A00DE8C68 /* PNBaseNotificationPayload.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A309C238D784A00DE8C68 /* PNBaseNotificationPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3097238D784A00DE8C68 /* PNBaseNotificationPayload.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A57A309D238D784A00DE8C68 /* PNBaseNotificationPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3097238D784A00DE8C68 /* PNBaseNotificationPayload.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A309E238D784A00DE8C68 /* PNBaseNotificationPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3097238D784A00DE8C68 /* PNBaseNotificationPayload.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A57A309F238D784A00DE8C68 /* PNBaseNotificationPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A3097238D784A00DE8C68 /* PNBaseNotificationPayload.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A30A0238D784A00DE8C68 /* PNBaseNotificationPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3098238D784A00DE8C68 /* PNBaseNotificationPayload.m */; }; A57A30A1238D784A00DE8C68 /* PNBaseNotificationPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3098238D784A00DE8C68 /* PNBaseNotificationPayload.m */; }; A57A30A2238D784A00DE8C68 /* PNBaseNotificationPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3098238D784A00DE8C68 /* PNBaseNotificationPayload.m */; }; A57A30A3238D784A00DE8C68 /* PNBaseNotificationPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3098238D784A00DE8C68 /* PNBaseNotificationPayload.m */; }; - A57A30A4238D784A00DE8C68 /* PNBaseNotificationPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3098238D784A00DE8C68 /* PNBaseNotificationPayload.m */; }; A57A30A5238D784A00DE8C68 /* PNBaseNotificationPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3098238D784A00DE8C68 /* PNBaseNotificationPayload.m */; }; - A57A30A6238D784A00DE8C68 /* PNBaseNotificationPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A3098238D784A00DE8C68 /* PNBaseNotificationPayload.m */; }; A57A30A8238D78C400DE8C68 /* PNBaseNotificationPayload+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30A7238D78C400DE8C68 /* PNBaseNotificationPayload+Private.h */; }; A57A30A9238D78C400DE8C68 /* PNBaseNotificationPayload+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30A7238D78C400DE8C68 /* PNBaseNotificationPayload+Private.h */; }; A57A30AA238D78C400DE8C68 /* PNBaseNotificationPayload+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30A7238D78C400DE8C68 /* PNBaseNotificationPayload+Private.h */; }; A57A30AB238D78C400DE8C68 /* PNBaseNotificationPayload+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30A7238D78C400DE8C68 /* PNBaseNotificationPayload+Private.h */; }; - A57A30AC238D78C400DE8C68 /* PNBaseNotificationPayload+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30A7238D78C400DE8C68 /* PNBaseNotificationPayload+Private.h */; }; A57A30AD238D78C400DE8C68 /* PNBaseNotificationPayload+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30A7238D78C400DE8C68 /* PNBaseNotificationPayload+Private.h */; }; - A57A30AE238D78C400DE8C68 /* PNBaseNotificationPayload+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30A7238D78C400DE8C68 /* PNBaseNotificationPayload+Private.h */; }; A57A30B2238DC6B600DE8C68 /* PNAPNSNotificationPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30B0238DC6B600DE8C68 /* PNAPNSNotificationPayload.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A30B3238DC6B600DE8C68 /* PNAPNSNotificationPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30B0238DC6B600DE8C68 /* PNAPNSNotificationPayload.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A30B4238DC6B600DE8C68 /* PNAPNSNotificationPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30B0238DC6B600DE8C68 /* PNAPNSNotificationPayload.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A30B5238DC6B600DE8C68 /* PNAPNSNotificationPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30B0238DC6B600DE8C68 /* PNAPNSNotificationPayload.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A57A30B6238DC6B600DE8C68 /* PNAPNSNotificationPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30B0238DC6B600DE8C68 /* PNAPNSNotificationPayload.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A30B7238DC6B600DE8C68 /* PNAPNSNotificationPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30B0238DC6B600DE8C68 /* PNAPNSNotificationPayload.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A57A30B8238DC6B600DE8C68 /* PNAPNSNotificationPayload.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30B0238DC6B600DE8C68 /* PNAPNSNotificationPayload.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A30B9238DC6B600DE8C68 /* PNAPNSNotificationPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A30B1238DC6B600DE8C68 /* PNAPNSNotificationPayload.m */; }; A57A30BA238DC6B600DE8C68 /* PNAPNSNotificationPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A30B1238DC6B600DE8C68 /* PNAPNSNotificationPayload.m */; }; A57A30BB238DC6B600DE8C68 /* PNAPNSNotificationPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A30B1238DC6B600DE8C68 /* PNAPNSNotificationPayload.m */; }; A57A30BC238DC6B600DE8C68 /* PNAPNSNotificationPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A30B1238DC6B600DE8C68 /* PNAPNSNotificationPayload.m */; }; - A57A30BD238DC6B600DE8C68 /* PNAPNSNotificationPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A30B1238DC6B600DE8C68 /* PNAPNSNotificationPayload.m */; }; A57A30BE238DC6B600DE8C68 /* PNAPNSNotificationPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A30B1238DC6B600DE8C68 /* PNAPNSNotificationPayload.m */; }; - A57A30BF238DC6B600DE8C68 /* PNAPNSNotificationPayload.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A30B1238DC6B600DE8C68 /* PNAPNSNotificationPayload.m */; }; A57A30C2238DC71800DE8C68 /* PNAPNSNotificationConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30C0238DC71800DE8C68 /* PNAPNSNotificationConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A30C3238DC71800DE8C68 /* PNAPNSNotificationConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30C0238DC71800DE8C68 /* PNAPNSNotificationConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A30C4238DC71800DE8C68 /* PNAPNSNotificationConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30C0238DC71800DE8C68 /* PNAPNSNotificationConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A30C5238DC71800DE8C68 /* PNAPNSNotificationConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30C0238DC71800DE8C68 /* PNAPNSNotificationConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A57A30C6238DC71800DE8C68 /* PNAPNSNotificationConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30C0238DC71800DE8C68 /* PNAPNSNotificationConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A30C7238DC71800DE8C68 /* PNAPNSNotificationConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30C0238DC71800DE8C68 /* PNAPNSNotificationConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A57A30C8238DC71800DE8C68 /* PNAPNSNotificationConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30C0238DC71800DE8C68 /* PNAPNSNotificationConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A30C9238DC71800DE8C68 /* PNAPNSNotificationConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A30C1238DC71800DE8C68 /* PNAPNSNotificationConfiguration.m */; }; A57A30CA238DC71800DE8C68 /* PNAPNSNotificationConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A30C1238DC71800DE8C68 /* PNAPNSNotificationConfiguration.m */; }; A57A30CB238DC71800DE8C68 /* PNAPNSNotificationConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A30C1238DC71800DE8C68 /* PNAPNSNotificationConfiguration.m */; }; A57A30CC238DC71800DE8C68 /* PNAPNSNotificationConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A30C1238DC71800DE8C68 /* PNAPNSNotificationConfiguration.m */; }; - A57A30CD238DC71800DE8C68 /* PNAPNSNotificationConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A30C1238DC71800DE8C68 /* PNAPNSNotificationConfiguration.m */; }; A57A30CE238DC71800DE8C68 /* PNAPNSNotificationConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A30C1238DC71800DE8C68 /* PNAPNSNotificationConfiguration.m */; }; - A57A30CF238DC71800DE8C68 /* PNAPNSNotificationConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A30C1238DC71800DE8C68 /* PNAPNSNotificationConfiguration.m */; }; A57A30D1238DC7FF00DE8C68 /* PNAPNSNotificationConfiguration+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30D0238DC7FF00DE8C68 /* PNAPNSNotificationConfiguration+Private.h */; }; A57A30D2238DC7FF00DE8C68 /* PNAPNSNotificationConfiguration+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30D0238DC7FF00DE8C68 /* PNAPNSNotificationConfiguration+Private.h */; }; A57A30D3238DC7FF00DE8C68 /* PNAPNSNotificationConfiguration+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30D0238DC7FF00DE8C68 /* PNAPNSNotificationConfiguration+Private.h */; }; A57A30D4238DC7FF00DE8C68 /* PNAPNSNotificationConfiguration+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30D0238DC7FF00DE8C68 /* PNAPNSNotificationConfiguration+Private.h */; }; - A57A30D5238DC7FF00DE8C68 /* PNAPNSNotificationConfiguration+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30D0238DC7FF00DE8C68 /* PNAPNSNotificationConfiguration+Private.h */; }; A57A30D6238DC7FF00DE8C68 /* PNAPNSNotificationConfiguration+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30D0238DC7FF00DE8C68 /* PNAPNSNotificationConfiguration+Private.h */; }; - A57A30D7238DC7FF00DE8C68 /* PNAPNSNotificationConfiguration+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30D0238DC7FF00DE8C68 /* PNAPNSNotificationConfiguration+Private.h */; }; A57A30DA238DC87400DE8C68 /* PNAPNSNotificationTarget.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30D8238DC87400DE8C68 /* PNAPNSNotificationTarget.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A30DB238DC87400DE8C68 /* PNAPNSNotificationTarget.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30D8238DC87400DE8C68 /* PNAPNSNotificationTarget.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A30DC238DC87400DE8C68 /* PNAPNSNotificationTarget.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30D8238DC87400DE8C68 /* PNAPNSNotificationTarget.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A30DD238DC87400DE8C68 /* PNAPNSNotificationTarget.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30D8238DC87400DE8C68 /* PNAPNSNotificationTarget.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A57A30DE238DC87400DE8C68 /* PNAPNSNotificationTarget.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30D8238DC87400DE8C68 /* PNAPNSNotificationTarget.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A30DF238DC87400DE8C68 /* PNAPNSNotificationTarget.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30D8238DC87400DE8C68 /* PNAPNSNotificationTarget.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A57A30E0238DC87400DE8C68 /* PNAPNSNotificationTarget.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30D8238DC87400DE8C68 /* PNAPNSNotificationTarget.h */; settings = {ATTRIBUTES = (Public, ); }; }; A57A30E1238DC87400DE8C68 /* PNAPNSNotificationTarget.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A30D9238DC87400DE8C68 /* PNAPNSNotificationTarget.m */; }; A57A30E2238DC87400DE8C68 /* PNAPNSNotificationTarget.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A30D9238DC87400DE8C68 /* PNAPNSNotificationTarget.m */; }; A57A30E3238DC87400DE8C68 /* PNAPNSNotificationTarget.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A30D9238DC87400DE8C68 /* PNAPNSNotificationTarget.m */; }; A57A30E4238DC87400DE8C68 /* PNAPNSNotificationTarget.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A30D9238DC87400DE8C68 /* PNAPNSNotificationTarget.m */; }; - A57A30E5238DC87400DE8C68 /* PNAPNSNotificationTarget.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A30D9238DC87400DE8C68 /* PNAPNSNotificationTarget.m */; }; A57A30E6238DC87400DE8C68 /* PNAPNSNotificationTarget.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A30D9238DC87400DE8C68 /* PNAPNSNotificationTarget.m */; }; - A57A30E7238DC87400DE8C68 /* PNAPNSNotificationTarget.m in Sources */ = {isa = PBXBuildFile; fileRef = A57A30D9238DC87400DE8C68 /* PNAPNSNotificationTarget.m */; }; A57A30E9238DCAAF00DE8C68 /* PNAPNSNotificationTarget+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30E8238DCAAF00DE8C68 /* PNAPNSNotificationTarget+Private.h */; }; A57A30EA238DCAAF00DE8C68 /* PNAPNSNotificationTarget+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30E8238DCAAF00DE8C68 /* PNAPNSNotificationTarget+Private.h */; }; A57A30EB238DCAAF00DE8C68 /* PNAPNSNotificationTarget+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30E8238DCAAF00DE8C68 /* PNAPNSNotificationTarget+Private.h */; }; A57A30EC238DCAAF00DE8C68 /* PNAPNSNotificationTarget+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30E8238DCAAF00DE8C68 /* PNAPNSNotificationTarget+Private.h */; }; - A57A30ED238DCAAF00DE8C68 /* PNAPNSNotificationTarget+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30E8238DCAAF00DE8C68 /* PNAPNSNotificationTarget+Private.h */; }; A57A30EE238DCAAF00DE8C68 /* PNAPNSNotificationTarget+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30E8238DCAAF00DE8C68 /* PNAPNSNotificationTarget+Private.h */; }; - A57A30EF238DCAAF00DE8C68 /* PNAPNSNotificationTarget+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30E8238DCAAF00DE8C68 /* PNAPNSNotificationTarget+Private.h */; }; A57A30F1238DDCA300DE8C68 /* PNAPNSNotificationPayload+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30F0238DDCA200DE8C68 /* PNAPNSNotificationPayload+Private.h */; }; A57A30F2238DDCA300DE8C68 /* PNAPNSNotificationPayload+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30F0238DDCA200DE8C68 /* PNAPNSNotificationPayload+Private.h */; }; A57A30F3238DDCA300DE8C68 /* PNAPNSNotificationPayload+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30F0238DDCA200DE8C68 /* PNAPNSNotificationPayload+Private.h */; }; A57A30F4238DDCA300DE8C68 /* PNAPNSNotificationPayload+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30F0238DDCA200DE8C68 /* PNAPNSNotificationPayload+Private.h */; }; - A57A30F5238DDCA300DE8C68 /* PNAPNSNotificationPayload+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30F0238DDCA200DE8C68 /* PNAPNSNotificationPayload+Private.h */; }; A57A30F6238DDCA300DE8C68 /* PNAPNSNotificationPayload+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30F0238DDCA200DE8C68 /* PNAPNSNotificationPayload+Private.h */; }; - A57A30F7238DDCA300DE8C68 /* PNAPNSNotificationPayload+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A57A30F0238DDCA200DE8C68 /* PNAPNSNotificationPayload+Private.h */; }; A586A9E52337E581008856D2 /* PNFetchMessageActionsResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A586A9E32337E581008856D2 /* PNFetchMessageActionsResult.m */; }; A586A9E62337E581008856D2 /* PNFetchMessageActionsResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A586A9E32337E581008856D2 /* PNFetchMessageActionsResult.m */; }; A586A9E72337E581008856D2 /* PNFetchMessageActionsResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A586A9E32337E581008856D2 /* PNFetchMessageActionsResult.m */; }; A586A9E82337E581008856D2 /* PNFetchMessageActionsResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A586A9E32337E581008856D2 /* PNFetchMessageActionsResult.m */; }; - A586A9E92337E581008856D2 /* PNFetchMessageActionsResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A586A9E32337E581008856D2 /* PNFetchMessageActionsResult.m */; }; A586A9EA2337E581008856D2 /* PNFetchMessageActionsResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A586A9E32337E581008856D2 /* PNFetchMessageActionsResult.m */; }; - A586A9EB2337E581008856D2 /* PNFetchMessageActionsResult.m in Sources */ = {isa = PBXBuildFile; fileRef = A586A9E32337E581008856D2 /* PNFetchMessageActionsResult.m */; }; A586A9EC2337E581008856D2 /* PNFetchMessageActionsResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A586A9E42337E581008856D2 /* PNFetchMessageActionsResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; A586A9ED2337E581008856D2 /* PNFetchMessageActionsResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A586A9E42337E581008856D2 /* PNFetchMessageActionsResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; A586A9EE2337E581008856D2 /* PNFetchMessageActionsResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A586A9E42337E581008856D2 /* PNFetchMessageActionsResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; A586A9EF2337E581008856D2 /* PNFetchMessageActionsResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A586A9E42337E581008856D2 /* PNFetchMessageActionsResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A586A9F02337E581008856D2 /* PNFetchMessageActionsResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A586A9E42337E581008856D2 /* PNFetchMessageActionsResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; A586A9F12337E581008856D2 /* PNFetchMessageActionsResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A586A9E42337E581008856D2 /* PNFetchMessageActionsResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A586A9F22337E581008856D2 /* PNFetchMessageActionsResult.h in Headers */ = {isa = PBXBuildFile; fileRef = A586A9E42337E581008856D2 /* PNFetchMessageActionsResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; A589756922FEF0F70093BD9A /* PNBaseObjectsRequest+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A589756822FEF0F70093BD9A /* PNBaseObjectsRequest+Private.h */; }; A589756A22FEF0F70093BD9A /* PNBaseObjectsRequest+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A589756822FEF0F70093BD9A /* PNBaseObjectsRequest+Private.h */; }; A589756B22FEF0F70093BD9A /* PNBaseObjectsRequest+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A589756822FEF0F70093BD9A /* PNBaseObjectsRequest+Private.h */; }; A589756C22FEF0F70093BD9A /* PNBaseObjectsRequest+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A589756822FEF0F70093BD9A /* PNBaseObjectsRequest+Private.h */; }; - A589756D22FEF0F70093BD9A /* PNBaseObjectsRequest+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A589756822FEF0F70093BD9A /* PNBaseObjectsRequest+Private.h */; }; A589756E22FEF0F70093BD9A /* PNBaseObjectsRequest+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A589756822FEF0F70093BD9A /* PNBaseObjectsRequest+Private.h */; }; - A589756F22FEF0F70093BD9A /* PNBaseObjectsRequest+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A589756822FEF0F70093BD9A /* PNBaseObjectsRequest+Private.h */; }; A5897572230014090093BD9A /* PNManageMembershipsAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A5897570230014080093BD9A /* PNManageMembershipsAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A5897573230014090093BD9A /* PNManageMembershipsAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A5897570230014080093BD9A /* PNManageMembershipsAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A5897574230014090093BD9A /* PNManageMembershipsAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A5897570230014080093BD9A /* PNManageMembershipsAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A5897575230014090093BD9A /* PNManageMembershipsAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A5897570230014080093BD9A /* PNManageMembershipsAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A5897576230014090093BD9A /* PNManageMembershipsAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A5897570230014080093BD9A /* PNManageMembershipsAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A5897577230014090093BD9A /* PNManageMembershipsAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A5897570230014080093BD9A /* PNManageMembershipsAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A5897578230014090093BD9A /* PNManageMembershipsAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A5897570230014080093BD9A /* PNManageMembershipsAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A5897579230014090093BD9A /* PNManageMembershipsAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A5897571230014090093BD9A /* PNManageMembershipsAPICallBuilder.m */; }; A589757A230014090093BD9A /* PNManageMembershipsAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A5897571230014090093BD9A /* PNManageMembershipsAPICallBuilder.m */; }; A589757B230014090093BD9A /* PNManageMembershipsAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A5897571230014090093BD9A /* PNManageMembershipsAPICallBuilder.m */; }; A589757C230014090093BD9A /* PNManageMembershipsAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A5897571230014090093BD9A /* PNManageMembershipsAPICallBuilder.m */; }; - A589757D230014090093BD9A /* PNManageMembershipsAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A5897571230014090093BD9A /* PNManageMembershipsAPICallBuilder.m */; }; A589757E230014090093BD9A /* PNManageMembershipsAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A5897571230014090093BD9A /* PNManageMembershipsAPICallBuilder.m */; }; - A589757F230014090093BD9A /* PNManageMembershipsAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A5897571230014090093BD9A /* PNManageMembershipsAPICallBuilder.m */; }; A5897582230014160093BD9A /* PNFetchMembershipsAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A5897580230014160093BD9A /* PNFetchMembershipsAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A5897583230014160093BD9A /* PNFetchMembershipsAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A5897580230014160093BD9A /* PNFetchMembershipsAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A5897584230014160093BD9A /* PNFetchMembershipsAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A5897580230014160093BD9A /* PNFetchMembershipsAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A5897585230014160093BD9A /* PNFetchMembershipsAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A5897580230014160093BD9A /* PNFetchMembershipsAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A5897586230014160093BD9A /* PNFetchMembershipsAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A5897580230014160093BD9A /* PNFetchMembershipsAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A5897587230014160093BD9A /* PNFetchMembershipsAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A5897580230014160093BD9A /* PNFetchMembershipsAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A5897588230014160093BD9A /* PNFetchMembershipsAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A5897580230014160093BD9A /* PNFetchMembershipsAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A5897589230014160093BD9A /* PNFetchMembershipsAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A5897581230014160093BD9A /* PNFetchMembershipsAPICallBuilder.m */; }; A589758A230014160093BD9A /* PNFetchMembershipsAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A5897581230014160093BD9A /* PNFetchMembershipsAPICallBuilder.m */; }; A589758B230014160093BD9A /* PNFetchMembershipsAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A5897581230014160093BD9A /* PNFetchMembershipsAPICallBuilder.m */; }; A589758C230014160093BD9A /* PNFetchMembershipsAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A5897581230014160093BD9A /* PNFetchMembershipsAPICallBuilder.m */; }; - A589758D230014160093BD9A /* PNFetchMembershipsAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A5897581230014160093BD9A /* PNFetchMembershipsAPICallBuilder.m */; }; A589758E230014160093BD9A /* PNFetchMembershipsAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A5897581230014160093BD9A /* PNFetchMembershipsAPICallBuilder.m */; }; - A589758F230014160093BD9A /* PNFetchMembershipsAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A5897581230014160093BD9A /* PNFetchMembershipsAPICallBuilder.m */; }; A5897592230014220093BD9A /* PNManageMembersAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A5897590230014220093BD9A /* PNManageMembersAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A5897593230014220093BD9A /* PNManageMembersAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A5897590230014220093BD9A /* PNManageMembersAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A5897594230014220093BD9A /* PNManageMembersAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A5897590230014220093BD9A /* PNManageMembersAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A5897595230014220093BD9A /* PNManageMembersAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A5897590230014220093BD9A /* PNManageMembersAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A5897596230014220093BD9A /* PNManageMembersAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A5897590230014220093BD9A /* PNManageMembersAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A5897597230014220093BD9A /* PNManageMembersAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A5897590230014220093BD9A /* PNManageMembersAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A5897598230014220093BD9A /* PNManageMembersAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A5897590230014220093BD9A /* PNManageMembersAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A5897599230014220093BD9A /* PNManageMembersAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A5897591230014220093BD9A /* PNManageMembersAPICallBuilder.m */; }; A589759A230014220093BD9A /* PNManageMembersAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A5897591230014220093BD9A /* PNManageMembersAPICallBuilder.m */; }; A589759B230014220093BD9A /* PNManageMembersAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A5897591230014220093BD9A /* PNManageMembersAPICallBuilder.m */; }; A589759C230014220093BD9A /* PNManageMembersAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A5897591230014220093BD9A /* PNManageMembersAPICallBuilder.m */; }; - A589759D230014220093BD9A /* PNManageMembersAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A5897591230014220093BD9A /* PNManageMembersAPICallBuilder.m */; }; A589759E230014220093BD9A /* PNManageMembersAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A5897591230014220093BD9A /* PNManageMembersAPICallBuilder.m */; }; - A589759F230014220093BD9A /* PNManageMembersAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A5897591230014220093BD9A /* PNManageMembersAPICallBuilder.m */; }; A58975A2230014300093BD9A /* PNFetchMembersAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A58975A0230014300093BD9A /* PNFetchMembersAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A58975A3230014300093BD9A /* PNFetchMembersAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A58975A0230014300093BD9A /* PNFetchMembersAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A58975A4230014300093BD9A /* PNFetchMembersAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A58975A0230014300093BD9A /* PNFetchMembersAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A58975A5230014300093BD9A /* PNFetchMembersAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A58975A0230014300093BD9A /* PNFetchMembersAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A58975A6230014300093BD9A /* PNFetchMembersAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A58975A0230014300093BD9A /* PNFetchMembersAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A58975A7230014300093BD9A /* PNFetchMembersAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A58975A0230014300093BD9A /* PNFetchMembersAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A58975A8230014300093BD9A /* PNFetchMembersAPICallBuilder.h in Headers */ = {isa = PBXBuildFile; fileRef = A58975A0230014300093BD9A /* PNFetchMembersAPICallBuilder.h */; settings = {ATTRIBUTES = (Public, ); }; }; A58975A9230014300093BD9A /* PNFetchMembersAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A58975A1230014300093BD9A /* PNFetchMembersAPICallBuilder.m */; }; A58975AA230014300093BD9A /* PNFetchMembersAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A58975A1230014300093BD9A /* PNFetchMembersAPICallBuilder.m */; }; A58975AB230014300093BD9A /* PNFetchMembersAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A58975A1230014300093BD9A /* PNFetchMembersAPICallBuilder.m */; }; A58975AC230014300093BD9A /* PNFetchMembersAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A58975A1230014300093BD9A /* PNFetchMembersAPICallBuilder.m */; }; - A58975AD230014300093BD9A /* PNFetchMembersAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A58975A1230014300093BD9A /* PNFetchMembersAPICallBuilder.m */; }; A58975AE230014300093BD9A /* PNFetchMembersAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A58975A1230014300093BD9A /* PNFetchMembersAPICallBuilder.m */; }; - A58975AF230014300093BD9A /* PNFetchMembersAPICallBuilder.m in Sources */ = {isa = PBXBuildFile; fileRef = A58975A1230014300093BD9A /* PNFetchMembersAPICallBuilder.m */; }; A58975B223005AAC0093BD9A /* PNManageMembershipsStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A58975B023005AAC0093BD9A /* PNManageMembershipsStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; A58975B323005AAC0093BD9A /* PNManageMembershipsStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A58975B023005AAC0093BD9A /* PNManageMembershipsStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; A58975B423005AAC0093BD9A /* PNManageMembershipsStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A58975B023005AAC0093BD9A /* PNManageMembershipsStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; A58975B523005AAC0093BD9A /* PNManageMembershipsStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A58975B023005AAC0093BD9A /* PNManageMembershipsStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A58975B623005AAC0093BD9A /* PNManageMembershipsStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A58975B023005AAC0093BD9A /* PNManageMembershipsStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; A58975B723005AAC0093BD9A /* PNManageMembershipsStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A58975B023005AAC0093BD9A /* PNManageMembershipsStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A58975B823005AAC0093BD9A /* PNManageMembershipsStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = A58975B023005AAC0093BD9A /* PNManageMembershipsStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; A58975B923005AAC0093BD9A /* PNManageMembershipsStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A58975B123005AAC0093BD9A /* PNManageMembershipsStatus.m */; }; A58975BA23005AAC0093BD9A /* PNManageMembershipsStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A58975B123005AAC0093BD9A /* PNManageMembershipsStatus.m */; }; A58975BB23005AAC0093BD9A /* PNManageMembershipsStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A58975B123005AAC0093BD9A /* PNManageMembershipsStatus.m */; }; A58975BC23005AAC0093BD9A /* PNManageMembershipsStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A58975B123005AAC0093BD9A /* PNManageMembershipsStatus.m */; }; - A58975BD23005AAC0093BD9A /* PNManageMembershipsStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A58975B123005AAC0093BD9A /* PNManageMembershipsStatus.m */; }; A58975BE23005AAC0093BD9A /* PNManageMembershipsStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A58975B123005AAC0093BD9A /* PNManageMembershipsStatus.m */; }; - A58975BF23005AAC0093BD9A /* PNManageMembershipsStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = A58975B123005AAC0093BD9A /* PNManageMembershipsStatus.m */; }; A58975C223005BD80093BD9A /* PNMembership.h in Headers */ = {isa = PBXBuildFile; fileRef = A58975C023005BD80093BD9A /* PNMembership.h */; settings = {ATTRIBUTES = (Public, ); }; }; A58975C323005BD80093BD9A /* PNMembership.h in Headers */ = {isa = PBXBuildFile; fileRef = A58975C023005BD80093BD9A /* PNMembership.h */; settings = {ATTRIBUTES = (Public, ); }; }; A58975C423005BD80093BD9A /* PNMembership.h in Headers */ = {isa = PBXBuildFile; fileRef = A58975C023005BD80093BD9A /* PNMembership.h */; settings = {ATTRIBUTES = (Public, ); }; }; A58975C523005BD80093BD9A /* PNMembership.h in Headers */ = {isa = PBXBuildFile; fileRef = A58975C023005BD80093BD9A /* PNMembership.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A58975C623005BD80093BD9A /* PNMembership.h in Headers */ = {isa = PBXBuildFile; fileRef = A58975C023005BD80093BD9A /* PNMembership.h */; settings = {ATTRIBUTES = (Public, ); }; }; A58975C723005BD80093BD9A /* PNMembership.h in Headers */ = {isa = PBXBuildFile; fileRef = A58975C023005BD80093BD9A /* PNMembership.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A58975C823005BD80093BD9A /* PNMembership.h in Headers */ = {isa = PBXBuildFile; fileRef = A58975C023005BD80093BD9A /* PNMembership.h */; settings = {ATTRIBUTES = (Public, ); }; }; A58975C923005BD80093BD9A /* PNMembership.m in Sources */ = {isa = PBXBuildFile; fileRef = A58975C123005BD80093BD9A /* PNMembership.m */; }; A58975CA23005BD80093BD9A /* PNMembership.m in Sources */ = {isa = PBXBuildFile; fileRef = A58975C123005BD80093BD9A /* PNMembership.m */; }; A58975CB23005BD80093BD9A /* PNMembership.m in Sources */ = {isa = PBXBuildFile; fileRef = A58975C123005BD80093BD9A /* PNMembership.m */; }; A58975CC23005BD80093BD9A /* PNMembership.m in Sources */ = {isa = PBXBuildFile; fileRef = A58975C123005BD80093BD9A /* PNMembership.m */; }; - A58975CD23005BD80093BD9A /* PNMembership.m in Sources */ = {isa = PBXBuildFile; fileRef = A58975C123005BD80093BD9A /* PNMembership.m */; }; A58975CE23005BD80093BD9A /* PNMembership.m in Sources */ = {isa = PBXBuildFile; fileRef = A58975C123005BD80093BD9A /* PNMembership.m */; }; - A58975CF23005BD80093BD9A /* PNMembership.m in Sources */ = {isa = PBXBuildFile; fileRef = A58975C123005BD80093BD9A /* PNMembership.m */; }; A58975D223005BE60093BD9A /* PNMember.h in Headers */ = {isa = PBXBuildFile; fileRef = A58975D023005BE60093BD9A /* PNMember.h */; settings = {ATTRIBUTES = (Public, ); }; }; A58975D323005BE60093BD9A /* PNMember.h in Headers */ = {isa = PBXBuildFile; fileRef = A58975D023005BE60093BD9A /* PNMember.h */; settings = {ATTRIBUTES = (Public, ); }; }; A58975D423005BE60093BD9A /* PNMember.h in Headers */ = {isa = PBXBuildFile; fileRef = A58975D023005BE60093BD9A /* PNMember.h */; settings = {ATTRIBUTES = (Public, ); }; }; A58975D523005BE60093BD9A /* PNMember.h in Headers */ = {isa = PBXBuildFile; fileRef = A58975D023005BE60093BD9A /* PNMember.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A58975D623005BE60093BD9A /* PNMember.h in Headers */ = {isa = PBXBuildFile; fileRef = A58975D023005BE60093BD9A /* PNMember.h */; settings = {ATTRIBUTES = (Public, ); }; }; A58975D723005BE60093BD9A /* PNMember.h in Headers */ = {isa = PBXBuildFile; fileRef = A58975D023005BE60093BD9A /* PNMember.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A58975D823005BE60093BD9A /* PNMember.h in Headers */ = {isa = PBXBuildFile; fileRef = A58975D023005BE60093BD9A /* PNMember.h */; settings = {ATTRIBUTES = (Public, ); }; }; A58975D923005BE60093BD9A /* PNMember.m in Sources */ = {isa = PBXBuildFile; fileRef = A58975D123005BE60093BD9A /* PNMember.m */; }; A58975DA23005BE60093BD9A /* PNMember.m in Sources */ = {isa = PBXBuildFile; fileRef = A58975D123005BE60093BD9A /* PNMember.m */; }; A58975DB23005BE60093BD9A /* PNMember.m in Sources */ = {isa = PBXBuildFile; fileRef = A58975D123005BE60093BD9A /* PNMember.m */; }; A58975DC23005BE60093BD9A /* PNMember.m in Sources */ = {isa = PBXBuildFile; fileRef = A58975D123005BE60093BD9A /* PNMember.m */; }; - A58975DD23005BE60093BD9A /* PNMember.m in Sources */ = {isa = PBXBuildFile; fileRef = A58975D123005BE60093BD9A /* PNMember.m */; }; A58975DE23005BE60093BD9A /* PNMember.m in Sources */ = {isa = PBXBuildFile; fileRef = A58975D123005BE60093BD9A /* PNMember.m */; }; - A58975DF23005BE60093BD9A /* PNMember.m in Sources */ = {isa = PBXBuildFile; fileRef = A58975D123005BE60093BD9A /* PNMember.m */; }; A58975E123005CFB0093BD9A /* PNMembership+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A58975E023005CFB0093BD9A /* PNMembership+Private.h */; }; A58975E223005CFB0093BD9A /* PNMembership+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A58975E023005CFB0093BD9A /* PNMembership+Private.h */; }; A58975E323005CFB0093BD9A /* PNMembership+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A58975E023005CFB0093BD9A /* PNMembership+Private.h */; }; A58975E423005CFB0093BD9A /* PNMembership+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A58975E023005CFB0093BD9A /* PNMembership+Private.h */; }; - A58975E523005CFB0093BD9A /* PNMembership+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A58975E023005CFB0093BD9A /* PNMembership+Private.h */; }; A58975E623005CFB0093BD9A /* PNMembership+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A58975E023005CFB0093BD9A /* PNMembership+Private.h */; }; - A58975E723005CFB0093BD9A /* PNMembership+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A58975E023005CFB0093BD9A /* PNMembership+Private.h */; }; A5A7AFC6234932F30060113B /* PNFetchMessagesActionsParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFC0234932F30060113B /* PNFetchMessagesActionsParser.m */; }; A5A7AFC7234932F30060113B /* PNFetchMessagesActionsParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFC0234932F30060113B /* PNFetchMessagesActionsParser.m */; }; A5A7AFC8234932F30060113B /* PNFetchMessagesActionsParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFC0234932F30060113B /* PNFetchMessagesActionsParser.m */; }; A5A7AFC9234932F30060113B /* PNFetchMessagesActionsParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFC0234932F30060113B /* PNFetchMessagesActionsParser.m */; }; - A5A7AFCA234932F30060113B /* PNFetchMessagesActionsParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFC0234932F30060113B /* PNFetchMessagesActionsParser.m */; }; A5A7AFCB234932F30060113B /* PNFetchMessagesActionsParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFC0234932F30060113B /* PNFetchMessagesActionsParser.m */; }; - A5A7AFCC234932F30060113B /* PNFetchMessagesActionsParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFC0234932F30060113B /* PNFetchMessagesActionsParser.m */; }; A5A7AFCD234932F30060113B /* PNFetchMessagesActionsParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFC1234932F30060113B /* PNFetchMessagesActionsParser.h */; }; A5A7AFCE234932F30060113B /* PNFetchMessagesActionsParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFC1234932F30060113B /* PNFetchMessagesActionsParser.h */; }; A5A7AFCF234932F30060113B /* PNFetchMessagesActionsParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFC1234932F30060113B /* PNFetchMessagesActionsParser.h */; }; A5A7AFD0234932F30060113B /* PNFetchMessagesActionsParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFC1234932F30060113B /* PNFetchMessagesActionsParser.h */; }; - A5A7AFD1234932F30060113B /* PNFetchMessagesActionsParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFC1234932F30060113B /* PNFetchMessagesActionsParser.h */; }; A5A7AFD2234932F30060113B /* PNFetchMessagesActionsParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFC1234932F30060113B /* PNFetchMessagesActionsParser.h */; }; - A5A7AFD3234932F30060113B /* PNFetchMessagesActionsParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFC1234932F30060113B /* PNFetchMessagesActionsParser.h */; }; A5A7AFD4234932F30060113B /* PNAddMessageActionParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFC2234932F30060113B /* PNAddMessageActionParser.h */; }; A5A7AFD5234932F30060113B /* PNAddMessageActionParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFC2234932F30060113B /* PNAddMessageActionParser.h */; }; A5A7AFD6234932F30060113B /* PNAddMessageActionParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFC2234932F30060113B /* PNAddMessageActionParser.h */; }; A5A7AFD7234932F30060113B /* PNAddMessageActionParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFC2234932F30060113B /* PNAddMessageActionParser.h */; }; - A5A7AFD8234932F30060113B /* PNAddMessageActionParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFC2234932F30060113B /* PNAddMessageActionParser.h */; }; A5A7AFD9234932F30060113B /* PNAddMessageActionParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFC2234932F30060113B /* PNAddMessageActionParser.h */; }; - A5A7AFDA234932F30060113B /* PNAddMessageActionParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFC2234932F30060113B /* PNAddMessageActionParser.h */; }; A5A7AFDB234932F30060113B /* PNAddMessageActionParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFC3234932F30060113B /* PNAddMessageActionParser.m */; }; A5A7AFDC234932F30060113B /* PNAddMessageActionParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFC3234932F30060113B /* PNAddMessageActionParser.m */; }; A5A7AFDD234932F30060113B /* PNAddMessageActionParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFC3234932F30060113B /* PNAddMessageActionParser.m */; }; A5A7AFDE234932F30060113B /* PNAddMessageActionParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFC3234932F30060113B /* PNAddMessageActionParser.m */; }; - A5A7AFDF234932F30060113B /* PNAddMessageActionParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFC3234932F30060113B /* PNAddMessageActionParser.m */; }; A5A7AFE0234932F30060113B /* PNAddMessageActionParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFC3234932F30060113B /* PNAddMessageActionParser.m */; }; - A5A7AFE1234932F30060113B /* PNAddMessageActionParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFC3234932F30060113B /* PNAddMessageActionParser.m */; }; A5A7AFE2234932F30060113B /* PNRemoveMessageActionParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFC4234932F30060113B /* PNRemoveMessageActionParser.h */; }; A5A7AFE3234932F30060113B /* PNRemoveMessageActionParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFC4234932F30060113B /* PNRemoveMessageActionParser.h */; }; A5A7AFE4234932F30060113B /* PNRemoveMessageActionParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFC4234932F30060113B /* PNRemoveMessageActionParser.h */; }; A5A7AFE5234932F30060113B /* PNRemoveMessageActionParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFC4234932F30060113B /* PNRemoveMessageActionParser.h */; }; - A5A7AFE6234932F30060113B /* PNRemoveMessageActionParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFC4234932F30060113B /* PNRemoveMessageActionParser.h */; }; A5A7AFE7234932F30060113B /* PNRemoveMessageActionParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFC4234932F30060113B /* PNRemoveMessageActionParser.h */; }; - A5A7AFE8234932F30060113B /* PNRemoveMessageActionParser.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFC4234932F30060113B /* PNRemoveMessageActionParser.h */; }; A5A7AFE9234932F30060113B /* PNRemoveMessageActionParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFC5234932F30060113B /* PNRemoveMessageActionParser.m */; }; A5A7AFEA234932F30060113B /* PNRemoveMessageActionParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFC5234932F30060113B /* PNRemoveMessageActionParser.m */; }; A5A7AFEB234932F30060113B /* PNRemoveMessageActionParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFC5234932F30060113B /* PNRemoveMessageActionParser.m */; }; A5A7AFEC234932F30060113B /* PNRemoveMessageActionParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFC5234932F30060113B /* PNRemoveMessageActionParser.m */; }; - A5A7AFED234932F30060113B /* PNRemoveMessageActionParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFC5234932F30060113B /* PNRemoveMessageActionParser.m */; }; A5A7AFEE234932F30060113B /* PNRemoveMessageActionParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFC5234932F30060113B /* PNRemoveMessageActionParser.m */; }; - A5A7AFEF234932F30060113B /* PNRemoveMessageActionParser.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFC5234932F30060113B /* PNRemoveMessageActionParser.m */; }; A5A7AFF92349330F0060113B /* PNFetchMessageActionsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFF02349330E0060113B /* PNFetchMessageActionsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A5A7AFFA2349330F0060113B /* PNFetchMessageActionsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFF02349330E0060113B /* PNFetchMessageActionsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A5A7AFFB2349330F0060113B /* PNFetchMessageActionsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFF02349330E0060113B /* PNFetchMessageActionsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A5A7AFFC2349330F0060113B /* PNFetchMessageActionsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFF02349330E0060113B /* PNFetchMessageActionsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A5A7AFFD2349330F0060113B /* PNFetchMessageActionsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFF02349330E0060113B /* PNFetchMessageActionsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A5A7AFFE2349330F0060113B /* PNFetchMessageActionsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFF02349330E0060113B /* PNFetchMessageActionsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A5A7AFFF2349330F0060113B /* PNFetchMessageActionsRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFF02349330E0060113B /* PNFetchMessageActionsRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A5A7B0002349330F0060113B /* PNBaseMessageActionRequest+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFF12349330E0060113B /* PNBaseMessageActionRequest+Private.h */; }; A5A7B0012349330F0060113B /* PNBaseMessageActionRequest+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFF12349330E0060113B /* PNBaseMessageActionRequest+Private.h */; }; A5A7B0022349330F0060113B /* PNBaseMessageActionRequest+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFF12349330E0060113B /* PNBaseMessageActionRequest+Private.h */; }; A5A7B0032349330F0060113B /* PNBaseMessageActionRequest+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFF12349330E0060113B /* PNBaseMessageActionRequest+Private.h */; }; - A5A7B0042349330F0060113B /* PNBaseMessageActionRequest+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFF12349330E0060113B /* PNBaseMessageActionRequest+Private.h */; }; A5A7B0052349330F0060113B /* PNBaseMessageActionRequest+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFF12349330E0060113B /* PNBaseMessageActionRequest+Private.h */; }; - A5A7B0062349330F0060113B /* PNBaseMessageActionRequest+Private.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFF12349330E0060113B /* PNBaseMessageActionRequest+Private.h */; }; A5A7B0072349330F0060113B /* PNBaseMessageActionRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFF22349330E0060113B /* PNBaseMessageActionRequest.m */; }; A5A7B0082349330F0060113B /* PNBaseMessageActionRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFF22349330E0060113B /* PNBaseMessageActionRequest.m */; }; A5A7B0092349330F0060113B /* PNBaseMessageActionRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFF22349330E0060113B /* PNBaseMessageActionRequest.m */; }; A5A7B00A2349330F0060113B /* PNBaseMessageActionRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFF22349330E0060113B /* PNBaseMessageActionRequest.m */; }; - A5A7B00B2349330F0060113B /* PNBaseMessageActionRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFF22349330E0060113B /* PNBaseMessageActionRequest.m */; }; A5A7B00C2349330F0060113B /* PNBaseMessageActionRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFF22349330E0060113B /* PNBaseMessageActionRequest.m */; }; - A5A7B00D2349330F0060113B /* PNBaseMessageActionRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFF22349330E0060113B /* PNBaseMessageActionRequest.m */; }; A5A7B00E2349330F0060113B /* PNAddMessageActionRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFF32349330E0060113B /* PNAddMessageActionRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A5A7B00F2349330F0060113B /* PNAddMessageActionRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFF32349330E0060113B /* PNAddMessageActionRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A5A7B0102349330F0060113B /* PNAddMessageActionRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFF32349330E0060113B /* PNAddMessageActionRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A5A7B0112349330F0060113B /* PNAddMessageActionRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFF32349330E0060113B /* PNAddMessageActionRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A5A7B0122349330F0060113B /* PNAddMessageActionRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFF32349330E0060113B /* PNAddMessageActionRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A5A7B0132349330F0060113B /* PNAddMessageActionRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFF32349330E0060113B /* PNAddMessageActionRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A5A7B0142349330F0060113B /* PNAddMessageActionRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFF32349330E0060113B /* PNAddMessageActionRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A5A7B0152349330F0060113B /* PNAddMessageActionRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFF42349330E0060113B /* PNAddMessageActionRequest.m */; }; A5A7B0162349330F0060113B /* PNAddMessageActionRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFF42349330E0060113B /* PNAddMessageActionRequest.m */; }; A5A7B0172349330F0060113B /* PNAddMessageActionRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFF42349330E0060113B /* PNAddMessageActionRequest.m */; }; A5A7B0182349330F0060113B /* PNAddMessageActionRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFF42349330E0060113B /* PNAddMessageActionRequest.m */; }; - A5A7B0192349330F0060113B /* PNAddMessageActionRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFF42349330E0060113B /* PNAddMessageActionRequest.m */; }; A5A7B01A2349330F0060113B /* PNAddMessageActionRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFF42349330E0060113B /* PNAddMessageActionRequest.m */; }; - A5A7B01B2349330F0060113B /* PNAddMessageActionRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFF42349330E0060113B /* PNAddMessageActionRequest.m */; }; A5A7B01C2349330F0060113B /* PNFetchMessageActionsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFF52349330E0060113B /* PNFetchMessageActionsRequest.m */; }; A5A7B01D2349330F0060113B /* PNFetchMessageActionsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFF52349330E0060113B /* PNFetchMessageActionsRequest.m */; }; A5A7B01E2349330F0060113B /* PNFetchMessageActionsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFF52349330E0060113B /* PNFetchMessageActionsRequest.m */; }; A5A7B01F2349330F0060113B /* PNFetchMessageActionsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFF52349330E0060113B /* PNFetchMessageActionsRequest.m */; }; - A5A7B0202349330F0060113B /* PNFetchMessageActionsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFF52349330E0060113B /* PNFetchMessageActionsRequest.m */; }; A5A7B0212349330F0060113B /* PNFetchMessageActionsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFF52349330E0060113B /* PNFetchMessageActionsRequest.m */; }; - A5A7B0222349330F0060113B /* PNFetchMessageActionsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFF52349330E0060113B /* PNFetchMessageActionsRequest.m */; }; A5A7B0232349330F0060113B /* PNRemoveMessageActionRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFF62349330E0060113B /* PNRemoveMessageActionRequest.m */; }; A5A7B0242349330F0060113B /* PNRemoveMessageActionRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFF62349330E0060113B /* PNRemoveMessageActionRequest.m */; }; A5A7B0252349330F0060113B /* PNRemoveMessageActionRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFF62349330E0060113B /* PNRemoveMessageActionRequest.m */; }; A5A7B0262349330F0060113B /* PNRemoveMessageActionRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFF62349330E0060113B /* PNRemoveMessageActionRequest.m */; }; - A5A7B0272349330F0060113B /* PNRemoveMessageActionRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFF62349330E0060113B /* PNRemoveMessageActionRequest.m */; }; A5A7B0282349330F0060113B /* PNRemoveMessageActionRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFF62349330E0060113B /* PNRemoveMessageActionRequest.m */; }; - A5A7B0292349330F0060113B /* PNRemoveMessageActionRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A7AFF62349330E0060113B /* PNRemoveMessageActionRequest.m */; }; A5A7B02A2349330F0060113B /* PNRemoveMessageActionRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFF72349330F0060113B /* PNRemoveMessageActionRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A5A7B02B2349330F0060113B /* PNRemoveMessageActionRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFF72349330F0060113B /* PNRemoveMessageActionRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A5A7B02C2349330F0060113B /* PNRemoveMessageActionRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFF72349330F0060113B /* PNRemoveMessageActionRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A5A7B02D2349330F0060113B /* PNRemoveMessageActionRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFF72349330F0060113B /* PNRemoveMessageActionRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A5A7B02E2349330F0060113B /* PNRemoveMessageActionRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFF72349330F0060113B /* PNRemoveMessageActionRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A5A7B02F2349330F0060113B /* PNRemoveMessageActionRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFF72349330F0060113B /* PNRemoveMessageActionRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A5A7B0302349330F0060113B /* PNRemoveMessageActionRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFF72349330F0060113B /* PNRemoveMessageActionRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A5A7B0312349330F0060113B /* PNBaseMessageActionRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFF82349330F0060113B /* PNBaseMessageActionRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A5A7B0322349330F0060113B /* PNBaseMessageActionRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFF82349330F0060113B /* PNBaseMessageActionRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A5A7B0332349330F0060113B /* PNBaseMessageActionRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFF82349330F0060113B /* PNBaseMessageActionRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A5A7B0342349330F0060113B /* PNBaseMessageActionRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFF82349330F0060113B /* PNBaseMessageActionRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A5A7B0352349330F0060113B /* PNBaseMessageActionRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFF82349330F0060113B /* PNBaseMessageActionRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; A5A7B0362349330F0060113B /* PNBaseMessageActionRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFF82349330F0060113B /* PNBaseMessageActionRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; - A5A7B0372349330F0060113B /* PNBaseMessageActionRequest.h in Headers */ = {isa = PBXBuildFile; fileRef = A5A7AFF82349330F0060113B /* PNBaseMessageActionRequest.h */; settings = {ATTRIBUTES = (Public, ); }; }; DD71B9872595DE1337983CE1 /* PNClientStateGetResult.h in Headers */ = {isa = PBXBuildFile; fileRef = DD71BDF55F5AC37C145971EC /* PNClientStateGetResult.h */; settings = {ATTRIBUTES = (Public, ); }; }; DD71BCFC02D4AB87E006CBBB /* PNClientStateGetResult.m in Sources */ = {isa = PBXBuildFile; fileRef = DD71B20066E72A597492173C /* PNClientStateGetResult.m */; }; /* End PBXBuildFile section */ @@ -2948,16 +2113,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 798843991C191579003E8948 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 16; - files = ( - 79A8BDB31C58FB7800015BDE /* PubNub-Fabric-Info.plist in CopyFiles */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ @@ -2989,7 +2144,6 @@ 797D606922D2E44000E64C94 /* PNSignalStatus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PNSignalStatus.h; sourceTree = ""; }; 798842101C18AFE0003E8948 /* update_modulemap.sh */ = {isa = PBXFileReference; lastKnownFileType = text.script.sh; path = update_modulemap.sh; sourceTree = ""; }; 7988421B1C18EDA7003E8948 /* PubNub.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = PubNub.a; sourceTree = BUILT_PRODUCTS_DIR; }; - 798843A11C191579003E8948 /* PubNub.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = PubNub.a; sourceTree = BUILT_PRODUCTS_DIR; }; 79A0D80C1DC22C950039A264 /* PNAPNSAPICallBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PNAPNSAPICallBuilder.h; sourceTree = ""; }; 79A0D80D1DC22C950039A264 /* PNAPNSAPICallBuilder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PNAPNSAPICallBuilder.m; sourceTree = ""; }; 79A0D80E1DC22C950039A264 /* PNAPNSAuditAPICallBuilder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PNAPNSAuditAPICallBuilder.h; sourceTree = ""; }; @@ -3052,7 +2206,6 @@ 79ABD8901F01636B007634E0 /* PNTelemetry.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PNTelemetry.m; sourceTree = ""; }; 79ACC3D91C11BB420056523A /* PubNub+FAB.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "PubNub+FAB.h"; sourceTree = ""; }; 79ACC3DA1C11BB420056523A /* PubNub+FAB.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "PubNub+FAB.m"; sourceTree = ""; }; - 79ACC48F1C11BC4D0056523A /* PubNub.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PubNub.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 79ACC4961C11BD720056523A /* PubNub-Fabric-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "PubNub-Fabric-Info.plist"; sourceTree = ""; }; 79CBB03E1BD03D3F001FC34D /* PubNub.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PubNub.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 79CBB0411BD03D3F001FC34D /* PubNub.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PubNub.h; sourceTree = ""; }; @@ -3419,13 +2572,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 798843411C191579003E8948 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 79A8BC631C58F93900015BDE /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -3435,15 +2581,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 79ACC42F1C11BC4D0056523A /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 79ACC4311C11BC4D0056523A /* UIKit.framework in Frameworks */, - 79ACC4321C11BC4D0056523A /* libz.tbd in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 79CBB03A1BD03D3F001FC34D /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -3650,9 +2787,7 @@ 79CBB03E1BD03D3F001FC34D /* PubNub.framework */, 791582AC1BD709C60084FC70 /* PubNub.framework */, 791583551BD709D10084FC70 /* PubNub.framework */, - 79ACC48F1C11BC4D0056523A /* PubNub.framework */, 7988421B1C18EDA7003E8948 /* PubNub.a */, - 798843A11C191579003E8948 /* PubNub.a */, 79A8BCC41C58F93900015BDE /* PubNub.framework */, ); name = Products; @@ -4968,233 +4103,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 798843421C191579003E8948 /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - A58975D823005BE60093BD9A /* PNMember.h in Headers */, - 79A238E41D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfigurationPrivate.h in Headers */, - 798843801C191579003E8948 /* PNPushNotificationsStateModificationParser.h in Headers */, - 79A238D61D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfiguration.h in Headers */, - 79A0D8AC1DC22FA70039A264 /* PNHistoryAPICallBuilder.h in Headers */, - 797D606022D2E41100E64C94 /* PNSignalAPICallBuilder.h in Headers */, - 7988437C1C191579003E8948 /* PNPresenceChannelGroupHereNowResult.h in Headers */, - 79A0D9121DC230780039A264 /* PNStateAuditAPICallBuilder.h in Headers */, - 798843571C191579003E8948 /* PNChannelGroupModificationParser.h in Headers */, - A55A871E22FD81E3002D0A72 /* PNCreateSpaceStatus.h in Headers */, - A55A860122FD80B9002D0A72 /* PNCreateUserAPICallBuilder.h in Headers */, - A5897578230014090093BD9A /* PNManageMembershipsAPICallBuilder.h in Headers */, - 79A0D9541DC230F60039A264 /* PNSubscribeAPIBuilder.h in Headers */, - 7988434E1C191579003E8948 /* PNChannelGroupClientStateResult.h in Headers */, - 79A0D8CA1DC22FEB0039A264 /* PNPresenceHereNowAPICallBuilder.h in Headers */, - A5897598230014220093BD9A /* PNManageMembersAPICallBuilder.h in Headers */, - 79A0D8BE1DC22FCA0039A264 /* PNPresenceChannelGroupHereNowAPICallBuilder.h in Headers */, - 7988438D1C191579003E8948 /* PNPushNotificationsAuditParser.h in Headers */, - 798843761C191579003E8948 /* PNPresenceChannelHereNowResult.h in Headers */, - A55BCCEC231D21840019DB68 /* PNAddMessageActionAPICallBuilder.h in Headers */, - 798843881C191579003E8948 /* PNPresenceGlobalHereNowResult.h in Headers */, - 798843711C191579003E8948 /* PNChannelGroupChannelsResult.h in Headers */, - A55A883622FD8272002D0A72 /* PNDeleteSpaceRequest.h in Headers */, - 798843591C191579003E8948 /* PNChannelGroupAuditionParser.h in Headers */, - 798843921C191579003E8948 /* PNAPNSEnabledChannelsResult.h in Headers */, - 797D607722D2E44000E64C94 /* PNSignalStatus.h in Headers */, - 798843631C191579003E8948 /* PNNetworkResponseSerializer.h in Headers */, - A55A879C22FD8272002D0A72 /* PNFetchUsersRequest.h in Headers */, - 79A0D9301DC230AD0039A264 /* PNStreamAPICallBuilder.h in Headers */, - 798843851C191579003E8948 /* PNChannelClientStateResult.h in Headers */, - A57A30AE238D78C400DE8C68 /* PNBaseNotificationPayload+Private.h in Headers */, - 79E20D2A1C8AEFF5001BC9CC /* PNSubscribeStatus+Private.h in Headers */, - 798843731C191579003E8948 /* PNClientStateUpdateStatus.h in Headers */, - 7988438C1C191579003E8948 /* PNPresenceWhereNowParser.h in Headers */, - A55A87FE22FD8272002D0A72 /* PNManageSpaceDataRequest.h in Headers */, - 79A0D8881DC22F520039A264 /* PNAPNSAPICallBuilder.h in Headers */, - 7988435D1C191579003E8948 /* PNPresenceWhereNowResult.h in Headers */, - A56FAEF8233161570072ADD6 /* PubNub+MessageActions.h in Headers */, - 798843901C191579003E8948 /* PNPresenceHereNowParser.h in Headers */, - 798843741C191579003E8948 /* PubNub+SubscribePrivate.h in Headers */, - A57A303D238D59B500DE8C68 /* PNRemoveAllPushNotificationsRequest.h in Headers */, - A55A87A322FD8272002D0A72 /* PNCreateUserRequest.h in Headers */, - A55A870922FD81E3002D0A72 /* PNUpdateUserStatus.h in Headers */, - 79A0D95A1DC230FB0039A264 /* PNSubscribeChannelsOrGroupsAPIBuilder.h in Headers */, - 79A0D8FA1DC230470039A264 /* PNPublishSizeAPICallBuilder.h in Headers */, - 798843831C191579003E8948 /* PNAcknowledgmentStatus.h in Headers */, - 79A3E41E221569BA00F2ADB9 /* PNMessageCountResult.h in Headers */, - A55A87E222FD8272002D0A72 /* PNBaseObjectsRequest.h in Headers */, - A55A878E22FD8272002D0A72 /* PNUpdateUserRequest.h in Headers */, - 798843681C191579003E8948 /* PubNub+PresencePrivate.h in Headers */, - 7988434C1C191579003E8948 /* PNMessagePublishParser.h in Headers */, - 798843981C191579003E8948 /* PNChannelGroupsResult.h in Headers */, - A55A878022FD8272002D0A72 /* PNObjectsPaginatedRequest.h in Headers */, - A55A868622FD80B9002D0A72 /* PNUpdateSpaceAPICallBuilder.h in Headers */, - 7988438A1C191579003E8948 /* PNServiceData+Private.h in Headers */, - 7988436C1C191579003E8948 /* PNObjectEventListener.h in Headers */, - A57A30D7238DC7FF00DE8C68 /* PNAPNSNotificationConfiguration+Private.h in Headers */, - A58975E723005CFB0093BD9A /* PNMembership+Private.h in Headers */, - 798843621C191579003E8948 /* PNErrorStatus+Private.h in Headers */, - 79E20D1C1C8AEC4C001BC9CC /* PNEnvelopeInformation.h in Headers */, - A55A887C22FD8272002D0A72 /* PNManageMembersRequest.h in Headers */, - 7925DB9B1D3FFCAC00857C0D /* PNLLogFileInformation.h in Headers */, - A57A3028238D59B500DE8C68 /* PNRemovePushNotificationsRequest.h in Headers */, - 798843911C191579003E8948 /* PNClientStateParser.h in Headers */, - A55A87B122FD8272002D0A72 /* PNFetchUserRequest.h in Headers */, - 798843701C191579003E8948 /* PNRequestParameters.h in Headers */, - 79A3E42E221569DA00F2ADB9 /* PNMessageCountParser.h in Headers */, - 7988436B1C191579003E8948 /* PNPrivateStructures.h in Headers */, - A5897588230014160093BD9A /* PNFetchMembershipsAPICallBuilder.h in Headers */, - A55A889122FD8272002D0A72 /* PNRequest.h in Headers */, - 79A0D93C1DC230CE0039A264 /* PNStreamModificationAPICallBuilder.h in Headers */, - A55A866322FD80B9002D0A72 /* PNFetchSpaceAPICallBuilder.h in Headers */, - A5A7B0142349330F0060113B /* PNAddMessageActionRequest.h in Headers */, - 79A0D9361DC230BD0039A264 /* PNStreamAuditAPICallBuilder.h in Headers */, - A55A874422FD825A002D0A72 /* PNUserDataChangeParser.h in Headers */, - 79A0D8C41DC22FD80039A264 /* PNPresenceChannelHereNowAPICallBuilder.h in Headers */, - A55BCD0C231D22400019DB68 /* PNFetchMessagesActionsAPICallBuilder.h in Headers */, - 798843661C191579003E8948 /* PubNub+ChannelGroup.h in Headers */, - A57A30EF238DCAAF00DE8C68 /* PNAPNSNotificationTarget+Private.h in Headers */, - 798843651C191579003E8948 /* PNSubscriberResults.h in Headers */, - 798843601C191579003E8948 /* PNClientInformation.h in Headers */, - 798843581C191579003E8948 /* PubNub+CorePrivate.h in Headers */, - 7960B66A1F68122200FFAEBB /* PNDeleteMessageAPICallBuilder.h in Headers */, - 7988438F1C191579003E8948 /* PNSubscribeParser.h in Headers */, - A55A86E622FD81E3002D0A72 /* PNFetchUsersResult.h in Headers */, - A55A881A22FD8272002D0A72 /* PNCreateSpaceRequest.h in Headers */, - A5A7B0372349330F0060113B /* PNBaseMessageActionRequest.h in Headers */, - A55A882822FD8272002D0A72 /* PNFetchSpaceRequest.h in Headers */, - 7988434B1C191579003E8948 /* PNHeartbeatParser.h in Headers */, - 798843451C191579003E8948 /* PNSubscribeStatus.h in Headers */, - A55CA6A32397389100B24E02 /* PNKeychain+Private.h in Headers */, - A55A86BE22FD817E002D0A72 /* PNSpace.h in Headers */, - 7988438B1C191579003E8948 /* PNResult+Private.h in Headers */, - A57A30C8238DC71800DE8C68 /* PNAPNSNotificationConfiguration.h in Headers */, - A55BCCA82319243F0019DB68 /* PNAddMessageActionStatus.h in Headers */, - A56865CF230173AA0014E17C /* PNObjectsDeleteParser.h in Headers */, - A55A872C22FD81E3002D0A72 /* PNFetchSpacesResult.h in Headers */, - A57A305F238D65A200DE8C68 /* PNNotificationsPayload.h in Headers */, - 79A0D9171DC2308A0039A264 /* PNStateModificationAPICallBuilder.h in Headers */, - A55A86F422FD81E3002D0A72 /* PNCreateUserStatus.h in Headers */, - 798843561C191579003E8948 /* PNStatus+Private.h in Headers */, - A5A7AFDA234932F30060113B /* PNAddMessageActionParser.h in Headers */, - 79A0D87C1DC22F240039A264 /* PNAPICallBuilder.h in Headers */, - 79A0D8CF1DC22FFC0039A264 /* PNPresenceWhereNowAPICallBuilder.h in Headers */, - 798843471C191579003E8948 /* PubNub+Subscribe.h in Headers */, - A57A308F238D751400DE8C68 /* PNMPNSNotificationPayload.h in Headers */, - 798843891C191579003E8948 /* PubNub+Presence.h in Headers */, - A55A886E22FD8272002D0A72 /* PNManageMembershipsRequest.h in Headers */, - 798843861C191579003E8948 /* PNConfiguration.h in Headers */, - 79A0D8761DC22F0A0039A264 /* PNAPICallBuilder+Private.h in Headers */, - 7988436F1C191579003E8948 /* PNStateListener.h in Headers */, - A55A864022FD80B9002D0A72 /* PNFetchUserAPICallBuilder.h in Headers */, - 79650C341E775E9400006F66 /* PNDefines.h in Headers */, - 7988435B1C191579003E8948 /* PNHistoryParser.h in Headers */, - A55BCD2B231D27F00019DB68 /* PNMessageAction+Private.h in Headers */, - 7988434F1C191579003E8948 /* PNHistoryResult.h in Headers */, - 793248641D874D9F00FBDF36 /* PNPublishSequence.h in Headers */, - A568658F2300729E0014E17C /* PNFetchMembersResult.h in Headers */, - 7988434D1C191579003E8948 /* PNPublishStatus.h in Headers */, - A55BCD1C231D26110019DB68 /* PNMessageAction.h in Headers */, - 798843811C191579003E8948 /* PubNub+Publish.h in Headers */, - 7988437A1C191579003E8948 /* PNReachability.h in Headers */, - 79F85805219640CB00BFD0B1 /* PNClientStateGetResult.h in Headers */, - A57A309F238D784A00DE8C68 /* PNBaseNotificationPayload.h in Headers */, - 798843791C191579003E8948 /* PubNub+History.h in Headers */, - A589756F22FEF0F70093BD9A /* PNBaseObjectsRequest+Private.h in Headers */, - 7988437D1C191579003E8948 /* PNClientState.h in Headers */, - A55A879522FD8272002D0A72 /* PNManageUserDataRequest.h in Headers */, - A57A30E0238DC87400DE8C68 /* PNAPNSNotificationTarget.h in Headers */, - 79F90F201FDEC1C9007132A3 /* PNPresenceHeartbeatAPICallBuilder.h in Headers */, - 7988436D1C191579003E8948 /* PNErrorParser.h in Headers */, - 7988435C1C191579003E8948 /* PNErrorStatus.h in Headers */, - A57A3021238D59B500DE8C68 /* PNAuditPushNotificationsRequest.h in Headers */, - 79A0D9661DC231050039A264 /* PNUnsubscribeChannelsOrGroupsAPICallBuilder.h in Headers */, - A55A86CC22FD817E002D0A72 /* PNUser.h in Headers */, - 79A0D8F41DC230360039A264 /* PNPublishAPICallBuilder.h in Headers */, - A57A30B8238DC6B600DE8C68 /* PNAPNSNotificationPayload.h in Headers */, - A57A30F7238DDCA300DE8C68 /* PNAPNSNotificationPayload+Private.h in Headers */, - 798843511C191579003E8948 /* PNLeaveParser.h in Headers */, - 798843501C191579003E8948 /* PNServiceData.h in Headers */, - 798843971C191579003E8948 /* PNURLRequest.h in Headers */, - A568659F230170690014E17C /* PNFetchUsersParser.h in Headers */, - A55A87CD22FD8272002D0A72 /* PNDeleteUserRequest.h in Headers */, - 798843941C191579003E8948 /* PubNub+State.h in Headers */, - A55A886722FD8272002D0A72 /* PNFetchMembershipsRequest.h in Headers */, - A5A7AFE8234932F30060113B /* PNRemoveMessageActionParser.h in Headers */, - 798843821C191579003E8948 /* PNTimeResult.h in Headers */, - A55A86A222FD80B9002D0A72 /* PNDeleteSpaceAPICallBuilder.h in Headers */, - 7988436E1C191579003E8948 /* PNDictionary.h in Headers */, - 7988436A1C191579003E8948 /* PNStructures.h in Headers */, - A55A85D722FD8078002D0A72 /* PubNub+Objects.h in Headers */, - A5A7B0062349330F0060113B /* PNBaseMessageActionRequest+Private.h in Headers */, - 798843611C191579003E8948 /* PNTimeParser.h in Headers */, - 79A0D8B81DC22FBD0039A264 /* PNPresenceAPICallBuilder.h in Headers */, - 798843551C191579003E8948 /* PNSubscriber.h in Headers */, - 798843521C191579003E8948 /* PNErrorCodes.h in Headers */, - A52DC1EC2307E10B001F20B0 /* NSDateFormatter+PNCacheable.h in Headers */, - A55A861622FD80B9002D0A72 /* PNDeleteUserAPICallBuilder.h in Headers */, - 798843481C191579003E8948 /* PNURLBuilder.h in Headers */, - A55A867F22FD80B9002D0A72 /* PNCreateSpaceAPICallBuilder.h in Headers */, - 798843951C191579003E8948 /* PNHeartbeat.h in Headers */, - A5105B56238F027D00CB693D /* PNDate.h in Headers */, - 79A0D8A01DC22F850039A264 /* PNAPNSModificationAPICallBuilder.h in Headers */, - 798843841C191579003E8948 /* PubNub+Time.h in Headers */, - A586A9F22337E581008856D2 /* PNFetchMessageActionsResult.h in Headers */, - 798843781C191579003E8948 /* PNConstants.h in Headers */, - 79A0D8941DC22F6A0039A264 /* PNAPNSAuditAPICallBuilder.h in Headers */, - 798843671C191579003E8948 /* PubNub+APNS.h in Headers */, - 7988435E1C191579003E8948 /* PubNub+Core.h in Headers */, - A55A864722FD80B9002D0A72 /* PNFetchUsersAPICallBuilder.h in Headers */, - A55BCCFC231D222B0019DB68 /* PNRemoveMessageActionAPICallBuilder.h in Headers */, - A58975C823005BD80093BD9A /* PNMembership.h in Headers */, - A55A86B722FD817E002D0A72 /* PNSpace+Private.h in Headers */, - 79E2D0F31C56434700BAA244 /* PNKeychain.h in Headers */, - 7988437F1C191579003E8948 /* PNLogMacro.h in Headers */, - 798843AB1C1916A6003E8948 /* PubNub+FAB.h in Headers */, - 798843931C191579003E8948 /* PNNetwork.h in Headers */, - A55A86C522FD817E002D0A72 /* PNUser+Private.h in Headers */, - A56865DF230175EC0014E17C /* PNMembershipsParser.h in Headers */, - 798843751C191579003E8948 /* PNHelpers.h in Headers */, - 79A3E4152215699900F2ADB9 /* PNMessageCountAPICallBuilder.h in Headers */, - A56865BF230173030014E17C /* PNSpaceDataChangeParser.h in Headers */, - 79A0D9601DC231000039A264 /* PNUnsubscribeAPICallBuilder.h in Headers */, - A5A7B0302349330F0060113B /* PNRemoveMessageActionRequest.h in Headers */, - A56865EF230176760014E17C /* PNMembersParser.h in Headers */, - 798843691C191579003E8948 /* PNChannel.h in Headers */, - 7925DB8D1D3FFCAC00857C0D /* PNLLogger.h in Headers */, - 798843871C191579003E8948 /* PNNumber.h in Headers */, - A55A880522FD8272002D0A72 /* PNUpdateSpaceRequest.h in Headers */, - A55A882122FD8272002D0A72 /* PNFetchSpacesRequest.h in Headers */, - A5A7AFD3234932F30060113B /* PNFetchMessagesActionsParser.h in Headers */, - A55A888A22FD8272002D0A72 /* PNRequest+Private.h in Headers */, - 798843771C191579003E8948 /* PNParser.h in Headers */, - A57A3052238D59B500DE8C68 /* PNBasePushNotificationsRequest.h in Headers */, - 7988435F1C191579003E8948 /* PNStatus.h in Headers */, - 798843441C191579003E8948 /* PNString.h in Headers */, - A56865AF230172950014E17C /* PNFetchSpacesParser.h in Headers */, - A55A867122FD80B9002D0A72 /* PNFetchSpacesAPICallBuilder.h in Headers */, - 798843431C191579003E8948 /* PNResult.h in Headers */, - A57A3013238D59B500DE8C68 /* PNAddPushNotificationsRequest.h in Headers */, - A55A861D22FD80B9002D0A72 /* PNUpdateUserAPICallBuilder.h in Headers */, - 7988437B1C191579003E8948 /* PNArray.h in Headers */, - A55A872522FD81E3002D0A72 /* PNUpdateSpaceStatus.h in Headers */, - 798843961C191579003E8948 /* PNData.h in Headers */, - A568656F2300709F0014E17C /* PNFetchMembershipsResult.h in Headers */, - A568657F230072810014E17C /* PNManageMembersStatus.h in Headers */, - A56865662300622C0014E17C /* PNMember+Private.h in Headers */, - 79ABD8971F01636B007634E0 /* PNTelemetry.h in Headers */, - A5A7AFFF2349330F0060113B /* PNFetchMessageActionsRequest.h in Headers */, - 798843AA1C191692003E8948 /* PubNub.h in Headers */, - A57A306F238D6BCC00DE8C68 /* PNFCMNotificationPayload.h in Headers */, - 79A0D90C1DC230680039A264 /* PNStateAPICallBuilder.h in Headers */, - 7988435A1C191579003E8948 /* PNJSON.h in Headers */, - A58975B823005AAC0093BD9A /* PNManageMembershipsStatus.h in Headers */, - 798843461C191579003E8948 /* PNGZIP.h in Headers */, - A55A885922FD8272002D0A72 /* PNFetchMembersRequest.h in Headers */, - 798843541C191579003E8948 /* PNAES.h in Headers */, - 79650C3A1E775E9800006F66 /* PNLockSupport.h in Headers */, - A58975A8230014300093BD9A /* PNFetchMembersAPICallBuilder.h in Headers */, - 79A0D9851DC2314D0039A264 /* PNTimeAPICallBuilder.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 79A8BC671C58F93900015BDE /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -5421,233 +4329,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 79ACC4331C11BC4D0056523A /* Headers */ = { - isa = PBXHeadersBuildPhase; - buildActionMask = 2147483647; - files = ( - A58975D623005BE60093BD9A /* PNMember.h in Headers */, - 79A238E21D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfigurationPrivate.h in Headers */, - 79ACC4591C11BC4D0056523A /* PNPushNotificationsStateModificationParser.h in Headers */, - 79A238D41D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfiguration.h in Headers */, - 79A0D8AA1DC22FA70039A264 /* PNHistoryAPICallBuilder.h in Headers */, - 797D605E22D2E41100E64C94 /* PNSignalAPICallBuilder.h in Headers */, - 79ACC4341C11BC4D0056523A /* PNPresenceChannelGroupHereNowResult.h in Headers */, - 79A0D9101DC230770039A264 /* PNStateAuditAPICallBuilder.h in Headers */, - 79ACC4851C11BC4D0056523A /* PNChannelGroupModificationParser.h in Headers */, - A55A871C22FD81E3002D0A72 /* PNCreateSpaceStatus.h in Headers */, - A55A85FF22FD80B9002D0A72 /* PNCreateUserAPICallBuilder.h in Headers */, - A5897576230014090093BD9A /* PNManageMembershipsAPICallBuilder.h in Headers */, - 79A0D9521DC230F60039A264 /* PNSubscribeAPIBuilder.h in Headers */, - 79ACC4361C11BC4D0056523A /* PNChannelGroupClientStateResult.h in Headers */, - 79A0D8C81DC22FEB0039A264 /* PNPresenceHereNowAPICallBuilder.h in Headers */, - A5897596230014220093BD9A /* PNManageMembersAPICallBuilder.h in Headers */, - 79A0D8BC1DC22FC90039A264 /* PNPresenceChannelGroupHereNowAPICallBuilder.h in Headers */, - 79ACC4431C11BC4D0056523A /* PNPushNotificationsAuditParser.h in Headers */, - 79ACC4351C11BC4D0056523A /* PNPresenceChannelHereNowResult.h in Headers */, - A55BCCEA231D21840019DB68 /* PNAddMessageActionAPICallBuilder.h in Headers */, - 79ACC4371C11BC4D0056523A /* PNPresenceGlobalHereNowResult.h in Headers */, - 79ACC4831C11BC4D0056523A /* PNChannelGroupAuditionParser.h in Headers */, - A55A883422FD8272002D0A72 /* PNDeleteSpaceRequest.h in Headers */, - 79ACC4381C11BC4D0056523A /* PNChannelGroupChannelsResult.h in Headers */, - 79ACC46A1C11BC4D0056523A /* PNNetworkResponseSerializer.h in Headers */, - 797D607522D2E44000E64C94 /* PNSignalStatus.h in Headers */, - 79ACC4391C11BC4D0056523A /* PNAPNSEnabledChannelsResult.h in Headers */, - A55A879A22FD8272002D0A72 /* PNFetchUsersRequest.h in Headers */, - 79A0D92E1DC230AC0039A264 /* PNStreamAPICallBuilder.h in Headers */, - 79ACC43B1C11BC4D0056523A /* PNChannelClientStateResult.h in Headers */, - A57A30AC238D78C400DE8C68 /* PNBaseNotificationPayload+Private.h in Headers */, - 79E20D281C8AEFF3001BC9CC /* PNSubscribeStatus+Private.h in Headers */, - 79ACC43C1C11BC4D0056523A /* PNClientStateUpdateStatus.h in Headers */, - 79ACC4781C11BC4D0056523A /* PNPresenceWhereNowParser.h in Headers */, - A55A87FC22FD8272002D0A72 /* PNManageSpaceDataRequest.h in Headers */, - 79A0D8861DC22F520039A264 /* PNAPNSAPICallBuilder.h in Headers */, - 79ACC43A1C11BC4D0056523A /* PNPresenceWhereNowResult.h in Headers */, - A56FAEF6233161570072ADD6 /* PubNub+MessageActions.h in Headers */, - 79ACC4871C11BC4D0056523A /* PNPresenceHereNowParser.h in Headers */, - 79ACC4841C11BC4D0056523A /* PubNub+SubscribePrivate.h in Headers */, - A57A303B238D59B500DE8C68 /* PNRemoveAllPushNotificationsRequest.h in Headers */, - A55A87A122FD8272002D0A72 /* PNCreateUserRequest.h in Headers */, - A55A870722FD81E3002D0A72 /* PNUpdateUserStatus.h in Headers */, - 79A0D9581DC230FA0039A264 /* PNSubscribeChannelsOrGroupsAPIBuilder.h in Headers */, - 79A0D8F81DC230460039A264 /* PNPublishSizeAPICallBuilder.h in Headers */, - 79ACC4771C11BC4D0056523A /* PubNub+PresencePrivate.h in Headers */, - 79A3E41C221569BA00F2ADB9 /* PNMessageCountResult.h in Headers */, - A55A87E022FD8272002D0A72 /* PNBaseObjectsRequest.h in Headers */, - A55A878C22FD8272002D0A72 /* PNUpdateUserRequest.h in Headers */, - 79ACC4741C11BC4D0056523A /* PNMessagePublishParser.h in Headers */, - 79ACC43D1C11BC4D0056523A /* PNAcknowledgmentStatus.h in Headers */, - 79ACC4891C11BC4D0056523A /* PNErrorStatus+Private.h in Headers */, - A55A877E22FD8272002D0A72 /* PNObjectsPaginatedRequest.h in Headers */, - A55A868422FD80B9002D0A72 /* PNUpdateSpaceAPICallBuilder.h in Headers */, - 79ACC4691C11BC4D0056523A /* PNServiceData+Private.h in Headers */, - 79ACC4401C11BC4D0056523A /* PNObjectEventListener.h in Headers */, - A57A30D5238DC7FF00DE8C68 /* PNAPNSNotificationConfiguration+Private.h in Headers */, - A58975E523005CFB0093BD9A /* PNMembership+Private.h in Headers */, - 79ACC43E1C11BC4D0056523A /* PNChannelGroupsResult.h in Headers */, - 79E20D1A1C8AEC45001BC9CC /* PNEnvelopeInformation.h in Headers */, - A55A887A22FD8272002D0A72 /* PNManageMembersRequest.h in Headers */, - 7925DB991D3FFCAC00857C0D /* PNLLogFileInformation.h in Headers */, - A57A3026238D59B500DE8C68 /* PNRemovePushNotificationsRequest.h in Headers */, - 79ACC47E1C11BC4D0056523A /* PNClientStateParser.h in Headers */, - A55A87AF22FD8272002D0A72 /* PNFetchUserRequest.h in Headers */, - 79ACC4721C11BC4D0056523A /* PNRequestParameters.h in Headers */, - 79A3E42C221569DA00F2ADB9 /* PNMessageCountParser.h in Headers */, - 79ACC45C1C11BC4D0056523A /* PNPrivateStructures.h in Headers */, - A5897586230014160093BD9A /* PNFetchMembershipsAPICallBuilder.h in Headers */, - A55A888F22FD8272002D0A72 /* PNRequest.h in Headers */, - 79A0D93B1DC230CD0039A264 /* PNStreamModificationAPICallBuilder.h in Headers */, - A55A866122FD80B9002D0A72 /* PNFetchSpaceAPICallBuilder.h in Headers */, - A5A7B0122349330F0060113B /* PNAddMessageActionRequest.h in Headers */, - 79A0D9331DC230BC0039A264 /* PNStreamAuditAPICallBuilder.h in Headers */, - A55A874222FD825A002D0A72 /* PNUserDataChangeParser.h in Headers */, - 79A0D8C21DC22FD70039A264 /* PNPresenceChannelHereNowAPICallBuilder.h in Headers */, - A55BCD0A231D22400019DB68 /* PNFetchMessagesActionsAPICallBuilder.h in Headers */, - 79ACC4421C11BC4D0056523A /* PNClientInformation.h in Headers */, - A57A30ED238DCAAF00DE8C68 /* PNAPNSNotificationTarget+Private.h in Headers */, - 79ACC4411C11BC4D0056523A /* PNSubscriberResults.h in Headers */, - 79ACC43F1C11BC4D0056523A /* PubNub+ChannelGroup.h in Headers */, - 79ACC4821C11BC4D0056523A /* PubNub+CorePrivate.h in Headers */, - 7960B6681F68122100FFAEBB /* PNDeleteMessageAPICallBuilder.h in Headers */, - 79ACC4681C11BC4D0056523A /* PNHeartbeatParser.h in Headers */, - A55A86E422FD81E3002D0A72 /* PNFetchUsersResult.h in Headers */, - A55A881822FD8272002D0A72 /* PNCreateSpaceRequest.h in Headers */, - A5A7B0352349330F0060113B /* PNBaseMessageActionRequest.h in Headers */, - A55A882622FD8272002D0A72 /* PNFetchSpaceRequest.h in Headers */, - 79ACC4641C11BC4D0056523A /* PNSubscribeParser.h in Headers */, - 79ACC4451C11BC4D0056523A /* PNSubscribeStatus.h in Headers */, - A55CA6A12397389100B24E02 /* PNKeychain+Private.h in Headers */, - A55A86BC22FD817E002D0A72 /* PNSpace.h in Headers */, - 79ACC4811C11BC4D0056523A /* PNResult+Private.h in Headers */, - A57A30C6238DC71800DE8C68 /* PNAPNSNotificationConfiguration.h in Headers */, - A55BCCA62319243F0019DB68 /* PNAddMessageActionStatus.h in Headers */, - A56865CD230173AA0014E17C /* PNObjectsDeleteParser.h in Headers */, - A55A872A22FD81E3002D0A72 /* PNFetchSpacesResult.h in Headers */, - A57A305D238D65A200DE8C68 /* PNNotificationsPayload.h in Headers */, - 79A0D9161DC230890039A264 /* PNStateModificationAPICallBuilder.h in Headers */, - A55A86F222FD81E3002D0A72 /* PNCreateUserStatus.h in Headers */, - 79ACC4661C11BC4D0056523A /* PNStatus+Private.h in Headers */, - A5A7AFD8234932F30060113B /* PNAddMessageActionParser.h in Headers */, - 79A0D87A1DC22F230039A264 /* PNAPICallBuilder.h in Headers */, - 79A0D8CE1DC22FFB0039A264 /* PNPresenceWhereNowAPICallBuilder.h in Headers */, - 79ACC4441C11BC4D0056523A /* PubNub+Subscribe.h in Headers */, - A57A308D238D751400DE8C68 /* PNMPNSNotificationPayload.h in Headers */, - 79ACC4801C11BC4D0056523A /* PNStateListener.h in Headers */, - A55A886C22FD8272002D0A72 /* PNManageMembershipsRequest.h in Headers */, - 79ACC4731C11BC4D0056523A /* PNHistoryParser.h in Headers */, - 79A0D8741DC22F090039A264 /* PNAPICallBuilder+Private.h in Headers */, - 79ACC44A1C11BC4D0056523A /* PNHistoryResult.h in Headers */, - A55A863E22FD80B9002D0A72 /* PNFetchUserAPICallBuilder.h in Headers */, - 79650C321E775E8E00006F66 /* PNDefines.h in Headers */, - 79ACC4491C11BC4D0056523A /* PNConfiguration.h in Headers */, - A55BCD29231D27F00019DB68 /* PNMessageAction+Private.h in Headers */, - 79ACC4481C11BC4D0056523A /* PNPublishStatus.h in Headers */, - 793248621D874D9F00FBDF36 /* PNPublishSequence.h in Headers */, - A568658D2300729E0014E17C /* PNFetchMembersResult.h in Headers */, - 79ACC4461C11BC4D0056523A /* PubNub+Presence.h in Headers */, - A55BCD1A231D26110019DB68 /* PNMessageAction.h in Headers */, - 79ACC4631C11BC4D0056523A /* PNReachability.h in Headers */, - 79ACC44B1C11BC4D0056523A /* PubNub+History.h in Headers */, - 79F85803219640CA00BFD0B1 /* PNClientStateGetResult.h in Headers */, - A57A309D238D784A00DE8C68 /* PNBaseNotificationPayload.h in Headers */, - 79ACC4471C11BC4D0056523A /* PubNub+Publish.h in Headers */, - A589756D22FEF0F70093BD9A /* PNBaseObjectsRequest+Private.h in Headers */, - 79ACC46F1C11BC4D0056523A /* PNLeaveParser.h in Headers */, - A55A879322FD8272002D0A72 /* PNManageUserDataRequest.h in Headers */, - A57A30DE238DC87400DE8C68 /* PNAPNSNotificationTarget.h in Headers */, - 79F90F1E1FDEC1C7007132A3 /* PNPresenceHeartbeatAPICallBuilder.h in Headers */, - 79ACC46B1C11BC4D0056523A /* PNClientState.h in Headers */, - 79ACC45B1C11BC4D0056523A /* PNErrorParser.h in Headers */, - A57A301F238D59B500DE8C68 /* PNAuditPushNotificationsRequest.h in Headers */, - 79A0D9641DC231040039A264 /* PNUnsubscribeChannelsOrGroupsAPICallBuilder.h in Headers */, - A55A86CA22FD817E002D0A72 /* PNUser.h in Headers */, - 79A0D8F21DC230360039A264 /* PNPublishAPICallBuilder.h in Headers */, - A57A30B6238DC6B600DE8C68 /* PNAPNSNotificationPayload.h in Headers */, - A57A30F5238DDCA300DE8C68 /* PNAPNSNotificationPayload+Private.h in Headers */, - 79ACC4531C11BC4D0056523A /* PNErrorStatus.h in Headers */, - 79ACC44C1C11BC4D0056523A /* PNServiceData.h in Headers */, - 79ACC47A1C11BC4D0056523A /* PNDictionary.h in Headers */, - A568659D230170690014E17C /* PNFetchUsersParser.h in Headers */, - A55A87CB22FD8272002D0A72 /* PNDeleteUserRequest.h in Headers */, - 79ACC4761C11BC4D0056523A /* PNSubscriber.h in Headers */, - A55A886522FD8272002D0A72 /* PNFetchMembershipsRequest.h in Headers */, - A5A7AFE6234932F30060113B /* PNRemoveMessageActionParser.h in Headers */, - 79ACC4651C11BC4D0056523A /* PNURLRequest.h in Headers */, - A55A86A022FD80B9002D0A72 /* PNDeleteSpaceAPICallBuilder.h in Headers */, - 79ACC4601C11BC4D0056523A /* PNURLBuilder.h in Headers */, - 79ACC45E1C11BC4D0056523A /* PNTimeParser.h in Headers */, - A55A85D522FD8078002D0A72 /* PubNub+Objects.h in Headers */, - A5A7B0042349330F0060113B /* PNBaseMessageActionRequest+Private.h in Headers */, - 79ACC4541C11BC4D0056523A /* PNStructures.h in Headers */, - 79A0D8B61DC22FBC0039A264 /* PNPresenceAPICallBuilder.h in Headers */, - 79ACC4521C11BC4D0056523A /* PNTimeResult.h in Headers */, - 79ACC44F1C11BC4D0056523A /* PNErrorCodes.h in Headers */, - A52DC1EA2307E10B001F20B0 /* NSDateFormatter+PNCacheable.h in Headers */, - A55A861422FD80B9002D0A72 /* PNDeleteUserAPICallBuilder.h in Headers */, - 79ACC44E1C11BC4D0056523A /* PubNub+State.h in Headers */, - A55A867D22FD80B9002D0A72 /* PNCreateSpaceAPICallBuilder.h in Headers */, - 79ACC47F1C11BC4D0056523A /* PNConstants.h in Headers */, - A5105B54238F027D00CB693D /* PNDate.h in Headers */, - 79A0D89E1DC22F840039A264 /* PNAPNSModificationAPICallBuilder.h in Headers */, - 79ACC45A1C11BC4D0056523A /* PNHeartbeat.h in Headers */, - A586A9F02337E581008856D2 /* PNFetchMessageActionsResult.h in Headers */, - 79ACC4511C11BC4D0056523A /* PubNub+Core.h in Headers */, - 79A0D8921DC22F6A0039A264 /* PNAPNSAuditAPICallBuilder.h in Headers */, - 79ACC4501C11BC4D0056523A /* PubNub+Time.h in Headers */, - 79ACC44D1C11BC4D0056523A /* PubNub+APNS.h in Headers */, - A55A864522FD80B9002D0A72 /* PNFetchUsersAPICallBuilder.h in Headers */, - A55BCCFA231D222B0019DB68 /* PNRemoveMessageActionAPICallBuilder.h in Headers */, - A58975C623005BD80093BD9A /* PNMembership.h in Headers */, - A55A86B522FD817E002D0A72 /* PNSpace+Private.h in Headers */, - 79E2D0F11C56434700BAA244 /* PNKeychain.h in Headers */, - 79ACC4671C11BC4D0056523A /* PNLogMacro.h in Headers */, - 79AAC15B1C11BE71008D94A8 /* PubNub+FAB.h in Headers */, - 79ACC47C1C11BC4D0056523A /* PNNetwork.h in Headers */, - A55A86C322FD817E002D0A72 /* PNUser+Private.h in Headers */, - A56865DD230175EC0014E17C /* PNMembershipsParser.h in Headers */, - 79ACC4751C11BC4D0056523A /* PNChannel.h in Headers */, - 79A3E4132215699900F2ADB9 /* PNMessageCountAPICallBuilder.h in Headers */, - A56865BD230173030014E17C /* PNSpaceDataChangeParser.h in Headers */, - 79A0D95E1DC230FF0039A264 /* PNUnsubscribeAPICallBuilder.h in Headers */, - A5A7B02E2349330F0060113B /* PNRemoveMessageActionRequest.h in Headers */, - A56865ED230176760014E17C /* PNMembersParser.h in Headers */, - 79ACC4611C11BC4D0056523A /* PNHelpers.h in Headers */, - 7925DB8B1D3FFCAC00857C0D /* PNLLogger.h in Headers */, - 79ACC4791C11BC4D0056523A /* PNNumber.h in Headers */, - A55A880322FD8272002D0A72 /* PNUpdateSpaceRequest.h in Headers */, - A55A881F22FD8272002D0A72 /* PNFetchSpacesRequest.h in Headers */, - A5A7AFD1234932F30060113B /* PNFetchMessagesActionsParser.h in Headers */, - A55A888822FD8272002D0A72 /* PNRequest+Private.h in Headers */, - 79ACC46E1C11BC4D0056523A /* PNParser.h in Headers */, - A57A3050238D59B500DE8C68 /* PNBasePushNotificationsRequest.h in Headers */, - 79ACC46D1C11BC4D0056523A /* PNString.h in Headers */, - 79ACC4561C11BC4D0056523A /* PNResult.h in Headers */, - A56865AD230172950014E17C /* PNFetchSpacesParser.h in Headers */, - A55A866F22FD80B9002D0A72 /* PNFetchSpacesAPICallBuilder.h in Headers */, - 79ACC4551C11BC4D0056523A /* PNStatus.h in Headers */, - A57A3011238D59B500DE8C68 /* PNAddPushNotificationsRequest.h in Headers */, - A55A861B22FD80B9002D0A72 /* PNUpdateUserAPICallBuilder.h in Headers */, - 79ACC4711C11BC4D0056523A /* PNArray.h in Headers */, - A55A872322FD81E3002D0A72 /* PNUpdateSpaceStatus.h in Headers */, - 79ACC4701C11BC4D0056523A /* PNData.h in Headers */, - A568656D2300709F0014E17C /* PNFetchMembershipsResult.h in Headers */, - A568657D230072810014E17C /* PNManageMembersStatus.h in Headers */, - A56865642300622C0014E17C /* PNMember+Private.h in Headers */, - 79ABD8951F01636B007634E0 /* PNTelemetry.h in Headers */, - A5A7AFFD2349330F0060113B /* PNFetchMessageActionsRequest.h in Headers */, - 79ACC45F1C11BC4D0056523A /* PNGZIP.h in Headers */, - A57A306D238D6BCC00DE8C68 /* PNFCMNotificationPayload.h in Headers */, - 79A0D90A1DC230680039A264 /* PNStateAPICallBuilder.h in Headers */, - 79ACC45D1C11BC4D0056523A /* PNJSON.h in Headers */, - A58975B623005AAC0093BD9A /* PNManageMembershipsStatus.h in Headers */, - 795158621C11EA5500A9D3AE /* PubNub.h in Headers */, - A55A885722FD8272002D0A72 /* PNFetchMembersRequest.h in Headers */, - 79ACC4581C11BC4D0056523A /* PNAES.h in Headers */, - 79650C381E775E9800006F66 /* PNLockSupport.h in Headers */, - A58975A6230014300093BD9A /* PNFetchMembersAPICallBuilder.h in Headers */, - 79A0D9831DC2314D0039A264 /* PNTimeAPICallBuilder.h in Headers */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 79CBB03B1BD03D3F001FC34D /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -5887,7 +4568,6 @@ 791582A71BD709C60084FC70 /* Resources */, 791582A81BD709C60084FC70 /* Copy Products */, 7988420F1C18AF98003E8948 /* Update module map */, - 79258BFC218645D5009C5FBE /* Cleanup CocoaPods scripts */, ); buildRules = ( ); @@ -5908,7 +4588,6 @@ 791583501BD709D10084FC70 /* Resources */, 791583511BD709D10084FC70 /* Copy Products */, 798842111C18B236003E8948 /* Update module map */, - 79258BFE218645E5009C5FBE /* Cleanup CocoaPods scripts */, ); buildRules = ( ); @@ -5929,7 +4608,6 @@ 798842191C18EDA7003E8948 /* CopyFiles */, 798842EB1C18FBC8003E8948 /* Copy Products */, 798842ED1C1907C2003E8948 /* Update module map */, - 79258C01218645FF009C5FBE /* Cleanup CocoaPods scripts */, ); buildRules = ( ); @@ -5940,27 +4618,6 @@ productReference = 7988421B1C18EDA7003E8948 /* PubNub.a */; productType = "com.apple.product-type.library.static"; }; - 798842F81C191579003E8948 /* Static PubNub (Fabric) */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7988439E1C191579003E8948 /* Build configuration list for PBXNativeTarget "Static PubNub (Fabric)" */; - buildPhases = ( - 798842FB1C191579003E8948 /* Sources */, - 798843411C191579003E8948 /* Frameworks */, - 798843421C191579003E8948 /* Headers */, - 798843991C191579003E8948 /* CopyFiles */, - 7988439B1C191579003E8948 /* Copy Products */, - 7988439C1C191579003E8948 /* Update module map */, - 79258C0221864606009C5FBE /* Cleanup CocoaPods scripts */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "Static PubNub (Fabric)"; - productName = "pubnub-objc"; - productReference = 798843A11C191579003E8948 /* PubNub.a */; - productType = "com.apple.product-type.library.static"; - }; 79A8BC1A1C58F93900015BDE /* PubNub (tvOS) */ = { isa = PBXNativeTarget; buildConfigurationList = 79A8BCC11C58F93900015BDE /* Build configuration list for PBXNativeTarget "PubNub (tvOS)" */; @@ -5971,7 +4628,6 @@ 79A8BCBE1C58F93900015BDE /* Resources */, 79A8BCBF1C58F93900015BDE /* Copy Products */, 79A8BCC01C58F93900015BDE /* Update module map */, - 79258BFD218645DC009C5FBE /* Cleanup CocoaPods scripts */, ); buildRules = ( ); @@ -5982,27 +4638,6 @@ productReference = 79A8BCC41C58F93900015BDE /* PubNub.framework */; productType = "com.apple.product-type.framework"; }; - 79ACC3E61C11BC4D0056523A /* PubNub (Fabric) */ = { - isa = PBXNativeTarget; - buildConfigurationList = 79ACC48C1C11BC4D0056523A /* Build configuration list for PBXNativeTarget "PubNub (Fabric)" */; - buildPhases = ( - 79ACC3E91C11BC4D0056523A /* Sources */, - 79ACC42F1C11BC4D0056523A /* Frameworks */, - 79ACC4331C11BC4D0056523A /* Headers */, - 79ACC48A1C11BC4D0056523A /* Resources */, - 79ACC48B1C11BC4D0056523A /* Copy Products */, - 798842131C18B24B003E8948 /* Update module map */, - 79258C00218645F8009C5FBE /* Cleanup CocoaPods scripts */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "PubNub (Fabric)"; - productName = PubNub; - productReference = 79ACC48F1C11BC4D0056523A /* PubNub.framework */; - productType = "com.apple.product-type.framework"; - }; 79CBB03D1BD03D3F001FC34D /* PubNub (OSX) */ = { isa = PBXNativeTarget; buildConfigurationList = 79CBB0461BD03D3F001FC34D /* Build configuration list for PBXNativeTarget "PubNub (OSX)" */; @@ -6013,7 +4648,6 @@ 79CBB03C1BD03D3F001FC34D /* Resources */, 79CBB1D21BD04299001FC34D /* Copy Products */, 798842121C18B23F003E8948 /* Update module map */, - 79258BFF218645EC009C5FBE /* Cleanup CocoaPods scripts */, ); buildRules = ( ); @@ -6064,14 +4698,11 @@ 79A8BC1A1C58F93900015BDE /* PubNub (tvOS) */, 791582AE1BD709D10084FC70 /* PubNub (watchOS) */, 79CBB03D1BD03D3F001FC34D /* PubNub (OSX) */, - 79ACC3E61C11BC4D0056523A /* PubNub (Fabric) */, 79CBB1D31BD042FB001FC34D /* XCFramework (iOS) */, 79A8BDB71C58FC2E00015BDE /* XCFramework (tvOS) */, 791582001BD705130084FC70 /* XCFramework (watchOS) */, A57A2FF3238A04F500DE8C68 /* XCFramework (Catalyst) */, - 79ACC4911C11BC620056523A /* XCFramework (Fabric) */, 7988421A1C18EDA7003E8948 /* Static PubNub (iOS) */, - 798842F81C191579003E8948 /* Static PubNub (Fabric) */, 798842EF1C190DF5003E8948 /* Universal Static Framework (iOS) */, ); }; @@ -6099,13 +4730,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 79ACC48A1C11BC4D0056523A /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; 79CBB03C1BD03D3F001FC34D /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -6158,222 +4782,6 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"${SRCROOT}/scripts/copy_products.sh\""; }; - 79258BFC218645D5009C5FBE /* Cleanup CocoaPods scripts */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - name = "Cleanup CocoaPods scripts"; - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "find \"${TARGET_TEMP_DIR}\" -name 'Script-*.sh' -exec rm -rf {} \\;\n"; - }; - 79258BFD218645DC009C5FBE /* Cleanup CocoaPods scripts */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - name = "Cleanup CocoaPods scripts"; - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "find \"${TARGET_TEMP_DIR}\" -name 'Script-*.sh' -exec rm -rf {} \\;\n"; - }; - 79258BFE218645E5009C5FBE /* Cleanup CocoaPods scripts */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - name = "Cleanup CocoaPods scripts"; - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "find \"${TARGET_TEMP_DIR}\" -name 'Script-*.sh' -exec rm -rf {} \\;\n"; - }; - 79258BFF218645EC009C5FBE /* Cleanup CocoaPods scripts */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - name = "Cleanup CocoaPods scripts"; - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "find \"${TARGET_TEMP_DIR}\" -name 'Script-*.sh' -exec rm -rf {} \\;\n"; - }; - 79258C00218645F8009C5FBE /* Cleanup CocoaPods scripts */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - name = "Cleanup CocoaPods scripts"; - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "find \"${TARGET_TEMP_DIR}\" -name 'Script-*.sh' -exec rm -rf {} \\;\n"; - }; - 79258C01218645FF009C5FBE /* Cleanup CocoaPods scripts */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - name = "Cleanup CocoaPods scripts"; - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "find \"${TARGET_TEMP_DIR}\" -name 'Script-*.sh' -exec rm -rf {} \\;\n"; - }; - 79258C0221864606009C5FBE /* Cleanup CocoaPods scripts */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - name = "Cleanup CocoaPods scripts"; - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "find \"${TARGET_TEMP_DIR}\" -name 'Script-*.sh' -exec rm -rf {} \\;\n"; - }; - 79258C0321864610009C5FBE /* Cleanup CocoaPods scripts */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - name = "Cleanup CocoaPods scripts"; - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "find \"${TARGET_TEMP_DIR}\" -name 'Script-*.sh' -exec rm -rf {} \\;\n"; - }; - 79258C0421864617009C5FBE /* Cleanup CocoaPods scripts */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - name = "Cleanup CocoaPods scripts"; - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "find \"${TARGET_TEMP_DIR}\" -name 'Script-*.sh' -exec rm -rf {} \\;\n"; - }; - 79258C052186461C009C5FBE /* Cleanup CocoaPods scripts */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - name = "Cleanup CocoaPods scripts"; - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "find \"${TARGET_TEMP_DIR}\" -name 'Script-*.sh' -exec rm -rf {} \\;\n"; - }; - 79258C0621864621009C5FBE /* Cleanup CocoaPods scripts */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - name = "Cleanup CocoaPods scripts"; - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "find \"${TARGET_TEMP_DIR}\" -name 'Script-*.sh' -exec rm -rf {} \\;\n"; - }; - 79258C0721864627009C5FBE /* Cleanup CocoaPods scripts */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - name = "Cleanup CocoaPods scripts"; - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "find \"${TARGET_TEMP_DIR}\" -name 'Script-*.sh' -exec rm -rf {} \\;\n"; - }; 7988420F1C18AF98003E8948 /* Update module map */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -6416,20 +4824,6 @@ shellPath = /bin/sh; shellScript = "/bin/sh \"${SRCROOT}/scripts/update_modulemap.sh\"\n"; }; - 798842131C18B24B003E8948 /* Update module map */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Update module map"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "/bin/sh \"${SRCROOT}/scripts/update_modulemap.sh\""; - }; 798842151C18B26D003E8948 /* Update module map */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -6444,20 +4838,6 @@ shellPath = /bin/sh; shellScript = "# Leaving universal framework build phase.\nexport BUILDING_UNIVERSAL_FRAMEWORK=0\n\n/bin/sh \"${SRCROOT}/scripts/update_modulemap.sh\""; }; - 798842161C18B272003E8948 /* Update module map */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Update module map"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "# Leaving universal framework build phase.\nexport BUILDING_UNIVERSAL_FRAMEWORK=0\n\n# Make all scripts aware what static binary is built.\nexport BUILDING_STATIC_FRAMEWORK=1\n\n/bin/sh \"${SRCROOT}/scripts/update_modulemap.sh\"\n"; - }; 798842EB1C18FBC8003E8948 /* Copy Products */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -6514,34 +4894,6 @@ shellPath = /bin/sh; shellScript = "# Leaving universal framework build phase.\nexport BUILDING_UNIVERSAL_FRAMEWORK=0\n\n# Make all scripts aware what static binary is built.\nexport BUILDING_STATIC_FRAMEWORK=1\n\n/bin/sh \"${SRCROOT}/scripts/update_modulemap.sh\""; }; - 7988439B1C191579003E8948 /* Copy Products */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Copy Products"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "# Make all scripts aware what static binary is built.\nexport BUILDING_STATIC_FRAMEWORK=1\n\n/bin/sh \"${SRCROOT}/scripts/copy_products.sh\""; - }; - 7988439C1C191579003E8948 /* Update module map */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Update module map"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "# Make all scripts aware what static binary is built.\nexport BUILDING_STATIC_FRAMEWORK=1\n\n/bin/sh \"${SRCROOT}/scripts/update_modulemap.sh\"\n"; - }; 79A8BCBF1C58F93900015BDE /* Copy Products */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -6598,34 +4950,6 @@ shellPath = /bin/sh; shellScript = "# Leaving universal framework build phase.\nexport BUILDING_UNIVERSAL_FRAMEWORK=0\n\n/bin/sh \"${SRCROOT}/scripts/update_modulemap.sh\"\n"; }; - 79ACC48B1C11BC4D0056523A /* Copy Products */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Copy Products"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "/bin/sh \"${SRCROOT}/scripts/copy_products.sh\""; - }; - 79ACC4921C11BC620056523A /* Build Universal Binary */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Build Universal Binary"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "# Make all scripts aware what universal binary is built.\nexport BUILDING_UNIVERSAL_FRAMEWORK=1\n\n/bin/bash \"${SRCROOT}/scripts/build_xcframework.sh\"\n"; - }; 79CBB1D21BD04299001FC34D /* Copy Products */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -6668,24 +4992,6 @@ shellPath = /bin/sh; shellScript = "# Make all scripts aware what universal binary is built.\nexport BUILDING_UNIVERSAL_FRAMEWORK=1\n\n/bin/bash \"${SRCROOT}/scripts/build_xcframework.sh\"\n"; }; - A57A2FF5238A04F500DE8C68 /* Cleanup CocoaPods scripts */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputFileListPaths = ( - ); - inputPaths = ( - ); - name = "Cleanup CocoaPods scripts"; - outputFileListPaths = ( - ); - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "find \"${TARGET_TEMP_DIR}\" -name 'Script-*.sh' -exec rm -rf {} \\;\n"; - }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -7268,200 +5574,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 798842FB1C191579003E8948 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - A589758F230014160093BD9A /* PNFetchMembershipsAPICallBuilder.m in Sources */, - A586A9EB2337E581008856D2 /* PNFetchMessageActionsResult.m in Sources */, - 7988431A1C191579003E8948 /* PNPushNotificationsStateModificationParser.m in Sources */, - 79ABD89E1F01636B007634E0 /* PNTelemetry.m in Sources */, - 79A0D9481DC230E50039A264 /* PNStreamAuditAPICallBuilder.m in Sources */, - 79A238DD1D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfiguration.m in Sources */, - 79A0D9421DC230DF0039A264 /* PNStreamAPICallBuilder.m in Sources */, - A55A883D22FD8272002D0A72 /* PNUpdateSpaceRequest.m in Sources */, - 79A0D8DC1DC230150039A264 /* PNPresenceChannelGroupHereNowAPICallBuilder.m in Sources */, - 798843341C191579003E8948 /* PNPresenceChannelGroupHereNowResult.m in Sources */, - 7988432A1C191579003E8948 /* PNChannelGroupModificationParser.m in Sources */, - A589759F230014220093BD9A /* PNManageMembersAPICallBuilder.m in Sources */, - 798843301C191579003E8948 /* PNChannelGroupClientStateResult.m in Sources */, - 7988433D1C191579003E8948 /* PNPresenceChannelHereNowResult.m in Sources */, - A55A873322FD81E3002D0A72 /* PNUpdateSpaceStatus.m in Sources */, - 79A3E425221569BA00F2ADB9 /* PNMessageCountResult.m in Sources */, - A55A871722FD81E3002D0A72 /* PNCreateUserStatus.m in Sources */, - A55A863922FD80B9002D0A72 /* PNDeleteUserAPICallBuilder.m in Sources */, - 798843381C191579003E8948 /* PNPushNotificationsAuditParser.m in Sources */, - A5686586230072810014E17C /* PNManageMembersStatus.m in Sources */, - 798842FD1C191579003E8948 /* PNPresenceGlobalHereNowResult.m in Sources */, - A55BCCF3231D21840019DB68 /* PNAddMessageActionAPICallBuilder.m in Sources */, - 7988433A1C191579003E8948 /* PNChannelGroupAuditionParser.m in Sources */, - A5A7AFCC234932F30060113B /* PNFetchMessagesActionsParser.m in Sources */, - A55A869422FD80B9002D0A72 /* PNFetchSpaceAPICallBuilder.m in Sources */, - A5A7B01B2349330F0060113B /* PNAddMessageActionRequest.m in Sources */, - 79A0D9781DC231410039A264 /* PNUnsubscribeAPICallBuilder.m in Sources */, - 798843181C191579003E8948 /* PNChannelGroupChannelsResult.m in Sources */, - 79A0D96C1DC231370039A264 /* PNSubscribeAPIBuilder.m in Sources */, - A56FAEFF233161570072ADD6 /* PubNub+MessageActions.m in Sources */, - 79A0D8821DC22F480039A264 /* PNAPICallBuilder.m in Sources */, - A55A860F22FD80B9002D0A72 /* PNFetchUserAPICallBuilder.m in Sources */, - A57A30CF238DC71800DE8C68 /* PNAPNSNotificationConfiguration.m in Sources */, - 798843371C191579003E8948 /* PNAPNSEnabledChannelsResult.m in Sources */, - A55BCD13231D22400019DB68 /* PNFetchMessagesActionsAPICallBuilder.m in Sources */, - 798843101C191579003E8948 /* PNNetworkResponseSerializer.m in Sources */, - A55A87AA22FD8272002D0A72 /* PNDeleteUserRequest.m in Sources */, - 797D606722D2E41100E64C94 /* PNSignalAPICallBuilder.m in Sources */, - A5105B5D238F027D00CB693D /* PNDate.m in Sources */, - 798843121C191579003E8948 /* PNChannelClientStateResult.m in Sources */, - 798843231C191579003E8948 /* PNClientStateUpdateStatus.m in Sources */, - 798843241C191579003E8948 /* PNPresenceWhereNowParser.m in Sources */, - 79A0D88E1DC22F630039A264 /* PNAPNSAPICallBuilder.m in Sources */, - A55BCD03231D222B0019DB68 /* PNRemoveMessageActionAPICallBuilder.m in Sources */, - A57A301A238D59B500DE8C68 /* PNRemoveAllPushNotificationsRequest.m in Sources */, - 79A0D8EE1DC230240039A264 /* PNPresenceWhereNowAPICallBuilder.m in Sources */, - 798843041C191579003E8948 /* PNPresenceWhereNowResult.m in Sources */, - A57A3066238D65A200DE8C68 /* PNNotificationsPayload.m in Sources */, - 79A0D98A1DC2315F0039A264 /* PNTimeAPICallBuilder.m in Sources */, - 79A3E40E2215699900F2ADB9 /* PNMessageCountAPICallBuilder.m in Sources */, - 7988432D1C191579003E8948 /* PNPresenceHereNowParser.m in Sources */, - A55A871022FD81E3002D0A72 /* PNUpdateUserStatus.m in Sources */, - A55A86D322FD817E002D0A72 /* PNSpace.m in Sources */, - 79A0D8E21DC2301A0039A264 /* PNPresenceChannelHereNowAPICallBuilder.m in Sources */, - A589757F230014090093BD9A /* PNManageMembershipsAPICallBuilder.m in Sources */, - A55A87F022FD8272002D0A72 /* PNFetchSpacesRequest.m in Sources */, - 798843271C191579003E8948 /* PNMessagePublishParser.m in Sources */, - 7988430E1C191579003E8948 /* PNAcknowledgmentStatus.m in Sources */, - 798843071C191579003E8948 /* PNChannelGroupsResult.m in Sources */, - 79E20D221C8AEC53001BC9CC /* PNEnvelopeInformation.m in Sources */, - 7925DBA21D3FFCAC00857C0D /* PNLLogFileInformation.m in Sources */, - 7988433F1C191579003E8948 /* PNRequestParameters.m in Sources */, - 7988432C1C191579003E8948 /* PubNub+ChannelGroup.m in Sources */, - A55A863222FD80B9002D0A72 /* PNCreateUserAPICallBuilder.m in Sources */, - A5A7B00D2349330F0060113B /* PNBaseMessageActionRequest.m in Sources */, - 798843161C191579003E8948 /* PNClientStateParser.m in Sources */, - 798843141C191579003E8948 /* PNClientInformation.m in Sources */, - A55BCD23231D26110019DB68 /* PNMessageAction.m in Sources */, - A55A880C22FD8272002D0A72 /* PNDeleteSpaceRequest.m in Sources */, - A55A864E22FD80B9002D0A72 /* PNUpdateUserAPICallBuilder.m in Sources */, - A57A3096238D751400DE8C68 /* PNMPNSNotificationPayload.m in Sources */, - 798843131C191579003E8948 /* PNSubscriberResults.m in Sources */, - 79A0D9241DC230A00039A264 /* PNStateAuditAPICallBuilder.m in Sources */, - 79A0D9721DC2313C0039A264 /* PNSubscribeChannelsOrGroupsAPIBuilder.m in Sources */, - A55A85DE22FD8078002D0A72 /* PubNub+Objects.m in Sources */, - 7988431F1C191579003E8948 /* PNSubscribeParser.m in Sources */, - A56865962300729E0014E17C /* PNFetchMembersResult.m in Sources */, - A55A873D22FD825A002D0A72 /* PNUserDataChangeParser.m in Sources */, - 7988431C1C191579003E8948 /* PNHeartbeatParser.m in Sources */, - 798843011C191579003E8948 /* PNSubscribeStatus.m in Sources */, - A57A30E7238DC87400DE8C68 /* PNAPNSNotificationTarget.m in Sources */, - A55A887522FD8272002D0A72 /* PNFetchMembersRequest.m in Sources */, - 798843361C191579003E8948 /* PubNub+Subscribe.m in Sources */, - 798843311C191579003E8948 /* PNHistoryParser.m in Sources */, - 7988432B1C191579003E8948 /* PNPublishStatus.m in Sources */, - 798843111C191579003E8948 /* PNHistoryResult.m in Sources */, - A5A7AFEF234932F30060113B /* PNRemoveMessageActionParser.m in Sources */, - 79A0D8A61DC22F940039A264 /* PNAPNSModificationAPICallBuilder.m in Sources */, - A55A878722FD8272002D0A72 /* PNFetchUserRequest.m in Sources */, - 7988430B1C191579003E8948 /* PNStateListener.m in Sources */, - A58975CF23005BD80093BD9A /* PNMembership.m in Sources */, - A55A867822FD80B9002D0A72 /* PNDeleteSpaceAPICallBuilder.m in Sources */, - 798843021C191579003E8948 /* PNConfiguration.m in Sources */, - 798842FC1C191579003E8948 /* PubNub+Presence.m in Sources */, - 7988432E1C191579003E8948 /* PNReachability.m in Sources */, - A55BCCAF2319243F0019DB68 /* PNAddMessageActionStatus.m in Sources */, - A55A86ED22FD81E3002D0A72 /* PNFetchUsersResult.m in Sources */, - 7988430A1C191579003E8948 /* PubNub+History.m in Sources */, - A57A30BF238DC6B600DE8C68 /* PNAPNSNotificationPayload.m in Sources */, - 798843001C191579003E8948 /* PubNub+Publish.m in Sources */, - 798843261C191579003E8948 /* PNErrorParser.m in Sources */, - 798843221C191579003E8948 /* PNLeaveParser.m in Sources */, - 7988431E1C191579003E8948 /* PNServiceData.m in Sources */, - A58975BF23005AAC0093BD9A /* PNManageMembershipsStatus.m in Sources */, - A55A86FB22FD81E3002D0A72 /* PNFetchSpacesResult.m in Sources */, - 7988431B1C191579003E8948 /* PNClientState.m in Sources */, - A55A87C622FD8272002D0A72 /* PNUpdateUserRequest.m in Sources */, - 7932486B1D874D9F00FBDF36 /* PNPublishSequence.m in Sources */, - 798843091C191579003E8948 /* PNErrorStatus.m in Sources */, - 7988433C1C191579003E8948 /* PNURLBuilder.m in Sources */, - A52DC1F32307E10B001F20B0 /* NSDateFormatter+PNCacheable.m in Sources */, - A56865E6230175EC0014E17C /* PNMembershipsParser.m in Sources */, - A5A7B0292349330F0060113B /* PNRemoveMessageActionRequest.m in Sources */, - 798843391C191579003E8948 /* PNURLRequest.m in Sources */, - 7988432F1C191579003E8948 /* PNSubscriber.m in Sources */, - A58975AF230014300093BD9A /* PNFetchMembersAPICallBuilder.m in Sources */, - A55A870222FD81E3002D0A72 /* PNCreateSpaceStatus.m in Sources */, - A55A87D422FD8272002D0A72 /* PNCreateUserRequest.m in Sources */, - A55A885222FD8272002D0A72 /* PNFetchMembershipsRequest.m in Sources */, - A55A87F722FD8272002D0A72 /* PNCreateSpaceRequest.m in Sources */, - A57A3044238D59B500DE8C68 /* PNRemovePushNotificationsRequest.m in Sources */, - A58975DF23005BE60093BD9A /* PNMember.m in Sources */, - 798843211C191579003E8948 /* PNTimeParser.m in Sources */, - 79A0D8D61DC230110039A264 /* PNPresenceAPICallBuilder.m in Sources */, - A55A884422FD8272002D0A72 /* PNBaseObjectsRequest.m in Sources */, - A55A87BF22FD8272002D0A72 /* PNManageUserDataRequest.m in Sources */, - A56865D6230173AA0014E17C /* PNObjectsDeleteParser.m in Sources */, - A56865A6230170690014E17C /* PNFetchUsersParser.m in Sources */, - A55A886022FD8272002D0A72 /* PNManageMembersRequest.m in Sources */, - 7988431D1C191579003E8948 /* PNTimeResult.m in Sources */, - A56865B6230172950014E17C /* PNFetchSpacesParser.m in Sources */, - A56865762300709F0014E17C /* PNFetchMembershipsResult.m in Sources */, - 798843051C191579003E8948 /* PubNub+State.m in Sources */, - 79F857FF219640C200BFD0B1 /* PNClientStateGetResult.m in Sources */, - 798843031C191579003E8948 /* PNDictionary.m in Sources */, - 7988433E1C191579003E8948 /* PubNub+Core.m in Sources */, - A55A86B022FD817E002D0A72 /* PNUser.m in Sources */, - 79650C401E775EA200006F66 /* PNLockSupport.m in Sources */, - 7988430F1C191579003E8948 /* PubNub+APNS.m in Sources */, - A57A304B238D59B500DE8C68 /* PNAuditPushNotificationsRequest.m in Sources */, - 7988430C1C191579003E8948 /* PNHeartbeat.m in Sources */, - A55A888322FD8272002D0A72 /* PNObjectsPaginatedRequest.m in Sources */, - 798843081C191579003E8948 /* PubNub+Time.m in Sources */, - A56865F6230176760014E17C /* PNMembersParser.m in Sources */, - A55A882F22FD8272002D0A72 /* PNManageSpaceDataRequest.m in Sources */, - 79A0D9001DC230560039A264 /* PNPublishAPICallBuilder.m in Sources */, - A55A869B22FD80B9002D0A72 /* PNFetchSpacesAPICallBuilder.m in Sources */, - A5A7B0222349330F0060113B /* PNFetchMessageActionsRequest.m in Sources */, - 79A0D9061DC2305C0039A264 /* PNPublishSizeAPICallBuilder.m in Sources */, - 798843AC1C1916AC003E8948 /* PubNub+FAB.m in Sources */, - 79F90F211FDEC1DC007132A3 /* PNPresenceHeartbeatAPICallBuilder.m in Sources */, - 79A0D8B21DC22FB60039A264 /* PNHistoryAPICallBuilder.m in Sources */, - 79E2D0F91C56434700BAA244 /* PNKeychain.m in Sources */, - 797D607022D2E44000E64C94 /* PNSignalStatus.m in Sources */, - 79A3E435221569DA00F2ADB9 /* PNMessageCountParser.m in Sources */, - A57A30A6238D784A00DE8C68 /* PNBaseNotificationPayload.m in Sources */, - 798843291C191579003E8948 /* PNChannel.m in Sources */, - A57A3076238D6BCC00DE8C68 /* PNFCMNotificationPayload.m in Sources */, - 7988430D1C191579003E8948 /* PNNetwork.m in Sources */, - 79A0D94E1DC230EA0039A264 /* PNStreamModificationAPICallBuilder.m in Sources */, - 79A0D89A1DC22F800039A264 /* PNAPNSAuditAPICallBuilder.m in Sources */, - 7925DB941D3FFCAC00857C0D /* PNLLogger.m in Sources */, - 7988433B1C191579003E8948 /* PNResult.m in Sources */, - A55A862422FD80B9002D0A72 /* PNFetchUsersAPICallBuilder.m in Sources */, - A55A865522FD80B9002D0A72 /* PNUpdateSpaceAPICallBuilder.m in Sources */, - 7960B6701F68123500FFAEBB /* PNDeleteMessageAPICallBuilder.m in Sources */, - A55A865C22FD80B9002D0A72 /* PNCreateSpaceAPICallBuilder.m in Sources */, - A57A3036238D59B500DE8C68 /* PNAddPushNotificationsRequest.m in Sources */, - A56865C6230173030014E17C /* PNSpaceDataChangeParser.m in Sources */, - A57A302F238D59B500DE8C68 /* PNBasePushNotificationsRequest.m in Sources */, - A5A7AFE1234932F30060113B /* PNAddMessageActionParser.m in Sources */, - 798843351C191579003E8948 /* PNStatus.m in Sources */, - 798843331C191579003E8948 /* PNString.m in Sources */, - 798843281C191579003E8948 /* PNNumber.m in Sources */, - 79A0D92A1DC230A50039A264 /* PNStateModificationAPICallBuilder.m in Sources */, - 798843151C191579003E8948 /* PNArray.m in Sources */, - A55A87DB22FD8272002D0A72 /* PNFetchUsersRequest.m in Sources */, - 798843401C191579003E8948 /* PNJSON.m in Sources */, - 79A0D8E81DC2301F0039A264 /* PNPresenceHereNowAPICallBuilder.m in Sources */, - 79A0D91E1DC2309C0039A264 /* PNStateAPICallBuilder.m in Sources */, - 798843191C191579003E8948 /* PNData.m in Sources */, - A55A884B22FD8272002D0A72 /* PNManageMembershipsRequest.m in Sources */, - A55A877922FD8272002D0A72 /* PNRequest.m in Sources */, - 798843171C191579003E8948 /* PNGZIP.m in Sources */, - A55A87E922FD8272002D0A72 /* PNFetchSpaceRequest.m in Sources */, - 798843251C191579003E8948 /* PNAES.m in Sources */, - 79A0D97F1DC231470039A264 /* PNUnsubscribeChannelsOrGroupsAPICallBuilder.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 79A8BC1D1C58F93900015BDE /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -7655,200 +5767,6 @@ ); runOnlyForDeploymentPostprocessing = 0; }; - 79ACC3E91C11BC4D0056523A /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - A589758D230014160093BD9A /* PNFetchMembershipsAPICallBuilder.m in Sources */, - A586A9E92337E581008856D2 /* PNFetchMessageActionsResult.m in Sources */, - 79ACC3F61C11BC4D0056523A /* PNPushNotificationsStateModificationParser.m in Sources */, - 79ABD89C1F01636B007634E0 /* PNTelemetry.m in Sources */, - 79A0D9461DC230E40039A264 /* PNStreamAuditAPICallBuilder.m in Sources */, - 79A238DB1D2E70BD00D080CD /* NSURLSessionConfiguration+PNConfiguration.m in Sources */, - 79A0D9401DC230DF0039A264 /* PNStreamAPICallBuilder.m in Sources */, - A55A883B22FD8272002D0A72 /* PNUpdateSpaceRequest.m in Sources */, - 79A0D8DA1DC230140039A264 /* PNPresenceChannelGroupHereNowAPICallBuilder.m in Sources */, - 79ACC4231C11BC4D0056523A /* PNPresenceChannelGroupHereNowResult.m in Sources */, - 79ACC40B1C11BC4D0056523A /* PNChannelGroupModificationParser.m in Sources */, - A589759D230014220093BD9A /* PNManageMembersAPICallBuilder.m in Sources */, - 79ACC4211C11BC4D0056523A /* PNChannelGroupClientStateResult.m in Sources */, - 79ACC42B1C11BC4D0056523A /* PNPresenceChannelHereNowResult.m in Sources */, - A55A873122FD81E3002D0A72 /* PNUpdateSpaceStatus.m in Sources */, - 79A3E423221569BA00F2ADB9 /* PNMessageCountResult.m in Sources */, - A55A871522FD81E3002D0A72 /* PNCreateUserStatus.m in Sources */, - A55A863722FD80B9002D0A72 /* PNDeleteUserAPICallBuilder.m in Sources */, - 79ACC3FF1C11BC4D0056523A /* PNPushNotificationsAuditParser.m in Sources */, - A5686584230072810014E17C /* PNManageMembersStatus.m in Sources */, - 79ACC3EB1C11BC4D0056523A /* PNPresenceGlobalHereNowResult.m in Sources */, - A55BCCF1231D21840019DB68 /* PNAddMessageActionAPICallBuilder.m in Sources */, - 79ACC40E1C11BC4D0056523A /* PNChannelGroupChannelsResult.m in Sources */, - A5A7AFCA234932F30060113B /* PNFetchMessagesActionsParser.m in Sources */, - A55A869222FD80B9002D0A72 /* PNFetchSpaceAPICallBuilder.m in Sources */, - A5A7B0192349330F0060113B /* PNAddMessageActionRequest.m in Sources */, - 79A0D9761DC231400039A264 /* PNUnsubscribeAPICallBuilder.m in Sources */, - 79ACC3FA1C11BC4D0056523A /* PNChannelGroupAuditionParser.m in Sources */, - 79A0D96A1DC231360039A264 /* PNSubscribeAPIBuilder.m in Sources */, - A56FAEFD233161570072ADD6 /* PubNub+MessageActions.m in Sources */, - 79A0D8801DC22F470039A264 /* PNAPICallBuilder.m in Sources */, - A55A860D22FD80B9002D0A72 /* PNFetchUserAPICallBuilder.m in Sources */, - A57A30CD238DC71800DE8C68 /* PNAPNSNotificationConfiguration.m in Sources */, - 79ACC4291C11BC4D0056523A /* PNAPNSEnabledChannelsResult.m in Sources */, - A55BCD11231D22400019DB68 /* PNFetchMessagesActionsAPICallBuilder.m in Sources */, - 79ACC4271C11BC4D0056523A /* PNNetworkResponseSerializer.m in Sources */, - A55A87A822FD8272002D0A72 /* PNDeleteUserRequest.m in Sources */, - 797D606522D2E41100E64C94 /* PNSignalAPICallBuilder.m in Sources */, - A5105B5B238F027D00CB693D /* PNDate.m in Sources */, - 79ACC4071C11BC4D0056523A /* PNChannelClientStateResult.m in Sources */, - 79ACC4181C11BC4D0056523A /* PNClientStateUpdateStatus.m in Sources */, - 79ACC4081C11BC4D0056523A /* PNPresenceWhereNowParser.m in Sources */, - 79A0D88C1DC22F620039A264 /* PNAPNSAPICallBuilder.m in Sources */, - A55BCD01231D222B0019DB68 /* PNRemoveMessageActionAPICallBuilder.m in Sources */, - A57A3018238D59B500DE8C68 /* PNRemoveAllPushNotificationsRequest.m in Sources */, - 79A0D8EC1DC230240039A264 /* PNPresenceWhereNowAPICallBuilder.m in Sources */, - 79ACC3F81C11BC4D0056523A /* PNPresenceWhereNowResult.m in Sources */, - A57A3064238D65A200DE8C68 /* PNNotificationsPayload.m in Sources */, - 79A0D9891DC2315E0039A264 /* PNTimeAPICallBuilder.m in Sources */, - 79A3E40C2215699900F2ADB9 /* PNMessageCountAPICallBuilder.m in Sources */, - 79ACC42E1C11BC4D0056523A /* PNPresenceHereNowParser.m in Sources */, - A55A870E22FD81E3002D0A72 /* PNUpdateUserStatus.m in Sources */, - A55A86D122FD817E002D0A72 /* PNSpace.m in Sources */, - 79A0D8E01DC230190039A264 /* PNPresenceChannelHereNowAPICallBuilder.m in Sources */, - A589757D230014090093BD9A /* PNManageMembershipsAPICallBuilder.m in Sources */, - A55A87EE22FD8272002D0A72 /* PNFetchSpacesRequest.m in Sources */, - 79ACC4121C11BC4D0056523A /* PNMessagePublishParser.m in Sources */, - 79ACC4021C11BC4D0056523A /* PNAcknowledgmentStatus.m in Sources */, - 79ACC3FB1C11BC4D0056523A /* PNChannelGroupsResult.m in Sources */, - 79E20D201C8AEC53001BC9CC /* PNEnvelopeInformation.m in Sources */, - 7925DBA01D3FFCAC00857C0D /* PNLLogFileInformation.m in Sources */, - 79ACC42C1C11BC4D0056523A /* PNClientStateParser.m in Sources */, - 79ACC40D1C11BC4D0056523A /* PNClientInformation.m in Sources */, - A55A863022FD80B9002D0A72 /* PNCreateUserAPICallBuilder.m in Sources */, - A5A7B00B2349330F0060113B /* PNBaseMessageActionRequest.m in Sources */, - 79ACC40A1C11BC4D0056523A /* PNSubscriberResults.m in Sources */, - 79ACC4041C11BC4D0056523A /* PNRequestParameters.m in Sources */, - A55BCD21231D26110019DB68 /* PNMessageAction.m in Sources */, - A55A880A22FD8272002D0A72 /* PNDeleteSpaceRequest.m in Sources */, - A55A864C22FD80B9002D0A72 /* PNUpdateUserAPICallBuilder.m in Sources */, - A57A3094238D751400DE8C68 /* PNMPNSNotificationPayload.m in Sources */, - 79ACC4031C11BC4D0056523A /* PubNub+ChannelGroup.m in Sources */, - 79A0D9221DC230A00039A264 /* PNStateAuditAPICallBuilder.m in Sources */, - 79A0D9701DC2313B0039A264 /* PNSubscribeChannelsOrGroupsAPIBuilder.m in Sources */, - A55A85DC22FD8078002D0A72 /* PubNub+Objects.m in Sources */, - 79ACC4241C11BC4D0056523A /* PNHeartbeatParser.m in Sources */, - A56865942300729E0014E17C /* PNFetchMembersResult.m in Sources */, - A55A873B22FD825A002D0A72 /* PNUserDataChangeParser.m in Sources */, - 79ACC4111C11BC4D0056523A /* PNSubscribeParser.m in Sources */, - 79ACC3F21C11BC4D0056523A /* PNSubscribeStatus.m in Sources */, - A57A30E5238DC87400DE8C68 /* PNAPNSNotificationTarget.m in Sources */, - A55A887322FD8272002D0A72 /* PNFetchMembersRequest.m in Sources */, - 79ACC4281C11BC4D0056523A /* PubNub+Subscribe.m in Sources */, - 79ACC41E1C11BC4D0056523A /* PubNub+Presence.m in Sources */, - 79ACC41C1C11BC4D0056523A /* PNPublishStatus.m in Sources */, - 79ACC4051C11BC4D0056523A /* PNHistoryResult.m in Sources */, - A5A7AFED234932F30060113B /* PNRemoveMessageActionParser.m in Sources */, - 79A0D8A41DC22F930039A264 /* PNAPNSModificationAPICallBuilder.m in Sources */, - A55A878522FD8272002D0A72 /* PNFetchUserRequest.m in Sources */, - 79ACC4001C11BC4D0056523A /* PNStateListener.m in Sources */, - A58975CD23005BD80093BD9A /* PNMembership.m in Sources */, - A55A867622FD80B9002D0A72 /* PNDeleteSpaceAPICallBuilder.m in Sources */, - 79ACC3F41C11BC4D0056523A /* PNHistoryParser.m in Sources */, - 79ACC3F31C11BC4D0056523A /* PNConfiguration.m in Sources */, - 79ACC42D1C11BC4D0056523A /* PubNub+Publish.m in Sources */, - A55BCCAD2319243F0019DB68 /* PNAddMessageActionStatus.m in Sources */, - A55A86EB22FD81E3002D0A72 /* PNFetchUsersResult.m in Sources */, - 79ACC3EE1C11BC4D0056523A /* PNReachability.m in Sources */, - A57A30BD238DC6B600DE8C68 /* PNAPNSNotificationPayload.m in Sources */, - 79ACC3EA1C11BC4D0056523A /* PubNub+History.m in Sources */, - 79ACC4171C11BC4D0056523A /* PNServiceData.m in Sources */, - 79ACC4101C11BC4D0056523A /* PNClientState.m in Sources */, - 79ACC40F1C11BC4D0056523A /* PNLeaveParser.m in Sources */, - A58975BD23005AAC0093BD9A /* PNManageMembershipsStatus.m in Sources */, - A55A86F922FD81E3002D0A72 /* PNFetchSpacesResult.m in Sources */, - 79ACC4061C11BC4D0056523A /* PNErrorParser.m in Sources */, - A55A87C422FD8272002D0A72 /* PNUpdateUserRequest.m in Sources */, - 793248691D874D9F00FBDF36 /* PNPublishSequence.m in Sources */, - 79ACC3FD1C11BC4D0056523A /* PNErrorStatus.m in Sources */, - 79ACC4201C11BC4D0056523A /* PNURLBuilder.m in Sources */, - A52DC1F12307E10B001F20B0 /* NSDateFormatter+PNCacheable.m in Sources */, - A56865E4230175EC0014E17C /* PNMembershipsParser.m in Sources */, - A5A7B0272349330F0060113B /* PNRemoveMessageActionRequest.m in Sources */, - 79ACC41F1C11BC4D0056523A /* PNSubscriber.m in Sources */, - 79ACC4151C11BC4D0056523A /* PNTimeResult.m in Sources */, - A58975AD230014300093BD9A /* PNFetchMembersAPICallBuilder.m in Sources */, - A55A870022FD81E3002D0A72 /* PNCreateSpaceStatus.m in Sources */, - A55A87D222FD8272002D0A72 /* PNCreateUserRequest.m in Sources */, - A55A885022FD8272002D0A72 /* PNFetchMembershipsRequest.m in Sources */, - A55A87F522FD8272002D0A72 /* PNCreateSpaceRequest.m in Sources */, - A57A3042238D59B500DE8C68 /* PNRemovePushNotificationsRequest.m in Sources */, - A58975DD23005BE60093BD9A /* PNMember.m in Sources */, - 79ACC4141C11BC4D0056523A /* PNTimeParser.m in Sources */, - 79A0D8D41DC230100039A264 /* PNPresenceAPICallBuilder.m in Sources */, - A55A884222FD8272002D0A72 /* PNBaseObjectsRequest.m in Sources */, - A55A87BD22FD8272002D0A72 /* PNManageUserDataRequest.m in Sources */, - A56865D4230173AA0014E17C /* PNObjectsDeleteParser.m in Sources */, - A56865A4230170690014E17C /* PNFetchUsersParser.m in Sources */, - A55A885E22FD8272002D0A72 /* PNManageMembersRequest.m in Sources */, - 79ACC4131C11BC4D0056523A /* PNURLRequest.m in Sources */, - A56865B4230172950014E17C /* PNFetchSpacesParser.m in Sources */, - A56865742300709F0014E17C /* PNFetchMembershipsResult.m in Sources */, - 79ACC3FE1C11BC4D0056523A /* PubNub+State.m in Sources */, - 79F857FD219640AA00BFD0B1 /* PNClientStateGetResult.m in Sources */, - 79ACC3F11C11BC4D0056523A /* PNDictionary.m in Sources */, - 79ACC4011C11BC4D0056523A /* PNHeartbeat.m in Sources */, - A55A86AE22FD817E002D0A72 /* PNUser.m in Sources */, - 79650C3E1E775EA100006F66 /* PNLockSupport.m in Sources */, - 79ACC3FC1C11BC4D0056523A /* PubNub+Time.m in Sources */, - A57A3049238D59B500DE8C68 /* PNAuditPushNotificationsRequest.m in Sources */, - 79ACC3F91C11BC4D0056523A /* PubNub+APNS.m in Sources */, - A55A888122FD8272002D0A72 /* PNObjectsPaginatedRequest.m in Sources */, - 79ACC3ED1C11BC4D0056523A /* PubNub+Core.m in Sources */, - A56865F4230176760014E17C /* PNMembersParser.m in Sources */, - A55A882D22FD8272002D0A72 /* PNManageSpaceDataRequest.m in Sources */, - 79A0D8FF1DC230560039A264 /* PNPublishAPICallBuilder.m in Sources */, - A55A869922FD80B9002D0A72 /* PNFetchSpacesAPICallBuilder.m in Sources */, - A5A7B0202349330F0060113B /* PNFetchMessageActionsRequest.m in Sources */, - 79A0D9041DC2305B0039A264 /* PNPublishSizeAPICallBuilder.m in Sources */, - 79AAC15C1C11BE77008D94A8 /* PubNub+FAB.m in Sources */, - 79F90F231FDEC1DD007132A3 /* PNPresenceHeartbeatAPICallBuilder.m in Sources */, - 79A0D8B01DC22FB50039A264 /* PNHistoryAPICallBuilder.m in Sources */, - 79E2D0F71C56434700BAA244 /* PNKeychain.m in Sources */, - 797D606E22D2E44000E64C94 /* PNSignalStatus.m in Sources */, - 79A3E433221569DA00F2ADB9 /* PNMessageCountParser.m in Sources */, - A57A30A4238D784A00DE8C68 /* PNBaseNotificationPayload.m in Sources */, - 79ACC41A1C11BC4D0056523A /* PNNetwork.m in Sources */, - A57A3074238D6BCC00DE8C68 /* PNFCMNotificationPayload.m in Sources */, - 79ACC4091C11BC4D0056523A /* PNChannel.m in Sources */, - 79A0D94C1DC230EA0039A264 /* PNStreamModificationAPICallBuilder.m in Sources */, - 79A0D8981DC22F7F0039A264 /* PNAPNSAuditAPICallBuilder.m in Sources */, - 7925DB921D3FFCAC00857C0D /* PNLLogger.m in Sources */, - 79ACC42A1C11BC4D0056523A /* PNResult.m in Sources */, - A55A862222FD80B9002D0A72 /* PNFetchUsersAPICallBuilder.m in Sources */, - A55A865322FD80B9002D0A72 /* PNUpdateSpaceAPICallBuilder.m in Sources */, - 7960B66E1F68123400FFAEBB /* PNDeleteMessageAPICallBuilder.m in Sources */, - A55A865A22FD80B9002D0A72 /* PNCreateSpaceAPICallBuilder.m in Sources */, - A57A3034238D59B500DE8C68 /* PNAddPushNotificationsRequest.m in Sources */, - A56865C4230173030014E17C /* PNSpaceDataChangeParser.m in Sources */, - A57A302D238D59B500DE8C68 /* PNBasePushNotificationsRequest.m in Sources */, - A5A7AFDF234932F30060113B /* PNAddMessageActionParser.m in Sources */, - 79ACC4251C11BC4D0056523A /* PNStatus.m in Sources */, - 79ACC41D1C11BC4D0056523A /* PNNumber.m in Sources */, - 79ACC3EC1C11BC4D0056523A /* PNString.m in Sources */, - 79ACC4261C11BC4D0056523A /* PNArray.m in Sources */, - 79A0D9291DC230A40039A264 /* PNStateModificationAPICallBuilder.m in Sources */, - A55A87D922FD8272002D0A72 /* PNFetchUsersRequest.m in Sources */, - 79ACC3F71C11BC4D0056523A /* PNJSON.m in Sources */, - 79A0D8E61DC2301E0039A264 /* PNPresenceHereNowAPICallBuilder.m in Sources */, - 79A0D91C1DC2309B0039A264 /* PNStateAPICallBuilder.m in Sources */, - 79ACC3F51C11BC4D0056523A /* PNGZIP.m in Sources */, - A55A884922FD8272002D0A72 /* PNManageMembershipsRequest.m in Sources */, - A55A877722FD8272002D0A72 /* PNRequest.m in Sources */, - 79ACC3EF1C11BC4D0056523A /* PNData.m in Sources */, - A55A87E722FD8272002D0A72 /* PNFetchSpaceRequest.m in Sources */, - 79ACC4191C11BC4D0056523A /* PNAES.m in Sources */, - 79A0D97D1DC231460039A264 /* PNUnsubscribeChannelsOrGroupsAPICallBuilder.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; 79CBB0391BD03D3F001FC34D /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -8122,7 +6040,7 @@ PRODUCT_BUNDLE_IDENTIFIER = "com.pubnub.pubnub-objc"; PRODUCT_NAME = PubNub; SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos macosx"; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; SWIFT_VERSION = 3.0; TVOS_DEPLOYMENT_TARGET = 10.0; WATCHOS_DEPLOYMENT_TARGET = 4.0; @@ -8151,7 +6069,7 @@ PRODUCT_BUNDLE_IDENTIFIER = "com.pubnub.pubnub-objc"; PRODUCT_NAME = PubNub; SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos macosx"; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; SWIFT_VERSION = 3.0; TVOS_DEPLOYMENT_TARGET = 10.0; WATCHOS_DEPLOYMENT_TARGET = 4.0; @@ -8235,7 +6153,7 @@ PUBLIC_HEADERS_FOLDER_PATH = Headers; SEPARATE_STRIP = NO; SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos macosx"; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; TVOS_DEPLOYMENT_TARGET = 10.0; WATCHOS_DEPLOYMENT_TARGET = 4.0; }; @@ -8260,7 +6178,7 @@ PUBLIC_HEADERS_FOLDER_PATH = Headers; SEPARATE_STRIP = NO; SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos macosx"; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; TVOS_DEPLOYMENT_TARGET = 10.0; WATCHOS_DEPLOYMENT_TARGET = 4.0; }; @@ -8277,7 +6195,7 @@ OTHER_CFLAGS = ""; PRODUCT_NAME = "Universal Static Framework"; SDKROOT = iphoneos; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos macosx"; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; TVOS_DEPLOYMENT_TARGET = 10.0; WATCHOS_DEPLOYMENT_TARGET = 4.0; }; @@ -8294,63 +6212,7 @@ OTHER_CFLAGS = ""; PRODUCT_NAME = "Universal Static Framework"; SDKROOT = iphoneos; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos macosx"; - TVOS_DEPLOYMENT_TARGET = 10.0; - WATCHOS_DEPLOYMENT_TARGET = 4.0; - }; - name = Release; - }; - 7988439F1C191579003E8948 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - BITCODE_GENERATION_MODE = bitcode; - DEFINES_MODULE = YES; - EXECUTABLE_EXTENSION = a; - EXECUTABLE_PREFIX = ""; - GCC_INLINES_ARE_PRIVATE_EXTERN = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "PN_STATIC_LIBRARY=1", - "FABRIC_SUPPORT=1", - "$(inherited)", - ); - GENERATE_MASTER_OBJECT_FILE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MACOSX_DEPLOYMENT_TARGET = 10.11; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = ""; - PRODUCT_NAME = PubNub; - PUBLIC_HEADERS_FOLDER_PATH = Headers; - SEPARATE_STRIP = YES; - SKIP_INSTALL = YES; - TVOS_DEPLOYMENT_TARGET = 10.0; - WATCHOS_DEPLOYMENT_TARGET = 4.0; - }; - name = Debug; - }; - 798843A01C191579003E8948 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - BITCODE_GENERATION_MODE = bitcode; - DEFINES_MODULE = YES; - EXECUTABLE_EXTENSION = a; - EXECUTABLE_PREFIX = ""; - GCC_INLINES_ARE_PRIVATE_EXTERN = YES; - GCC_PREPROCESSOR_DEFINITIONS = ( - "PN_STATIC_LIBRARY=1", - "FABRIC_SUPPORT=1", - ); - GENERATE_MASTER_OBJECT_FILE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MACOSX_DEPLOYMENT_TARGET = 10.11; - OTHER_CFLAGS = ""; - OTHER_LDFLAGS = ""; - PRODUCT_NAME = PubNub; - PUBLIC_HEADERS_FOLDER_PATH = Headers; - SEPARATE_STRIP = YES; - SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; TVOS_DEPLOYMENT_TARGET = 10.0; WATCHOS_DEPLOYMENT_TARGET = 4.0; }; @@ -8446,105 +6308,6 @@ }; name = Release; }; - 79ACC48D1C11BC4D0056523A /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - BITCODE_GENERATION_MODE = bitcode; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "FABRIC_SUPPORT=1", - "$(inherited)", - ); - INFOPLIST_FILE = "PubNub/PubNub-Fabric-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.11; - OTHER_CFLAGS = ""; - PRODUCT_BUNDLE_IDENTIFIER = "com.pubnub.pubnub-objc"; - PRODUCT_NAME = PubNub; - SEPARATE_STRIP = YES; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos macosx"; - TVOS_DEPLOYMENT_TARGET = 10.0; - WATCHOS_DEPLOYMENT_TARGET = 4.0; - }; - name = Debug; - }; - 79ACC48E1C11BC4D0056523A /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - BITCODE_GENERATION_MODE = bitcode; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; - COPY_PHASE_STRIP = YES; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - DEFINES_MODULE = YES; - DYLIB_COMPATIBILITY_VERSION = 1; - DYLIB_CURRENT_VERSION = 1; - DYLIB_INSTALL_NAME_BASE = "@rpath"; - GCC_PREPROCESSOR_DEFINITIONS = "FABRIC_SUPPORT=1"; - INFOPLIST_FILE = "PubNub/PubNub-Fabric-Info.plist"; - INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.11; - OTHER_CFLAGS = ""; - PRODUCT_BUNDLE_IDENTIFIER = "com.pubnub.pubnub-objc"; - PRODUCT_NAME = PubNub; - SEPARATE_STRIP = YES; - SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos macosx"; - TVOS_DEPLOYMENT_TARGET = 10.0; - WATCHOS_DEPLOYMENT_TARGET = 4.0; - }; - name = Release; - }; - 79ACC4941C11BC620056523A /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - BITCODE_GENERATION_MODE = bitcode; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "FABRIC_SUPPORT=1", - "$(inherited)", - ); - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MACOSX_DEPLOYMENT_TARGET = 10.11; - OTHER_CFLAGS = ""; - PRODUCT_NAME = "Universal Framework"; - SEPARATE_STRIP = YES; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos macosx"; - TVOS_DEPLOYMENT_TARGET = 10.0; - WATCHOS_DEPLOYMENT_TARGET = 4.0; - }; - name = Debug; - }; - 79ACC4951C11BC620056523A /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - APPLICATION_EXTENSION_API_ONLY = YES; - BITCODE_GENERATION_MODE = bitcode; - GCC_PREPROCESSOR_DEFINITIONS = "FABRIC_SUPPORT=1"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MACOSX_DEPLOYMENT_TARGET = 10.11; - OTHER_CFLAGS = ""; - PRODUCT_NAME = "Universal Framework"; - SEPARATE_STRIP = YES; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos macosx"; - TVOS_DEPLOYMENT_TARGET = 10.0; - WATCHOS_DEPLOYMENT_TARGET = 4.0; - }; - name = Release; - }; 79CBB0441BD03D3F001FC34D /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { @@ -8728,7 +6491,7 @@ MACOSX_DEPLOYMENT_TARGET = 10.11; OTHER_CFLAGS = ""; PRODUCT_NAME = "Universal Framework"; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos macosx"; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; TVOS_DEPLOYMENT_TARGET = 10.0; WATCHOS_DEPLOYMENT_TARGET = 4.0; }; @@ -8743,7 +6506,7 @@ MACOSX_DEPLOYMENT_TARGET = 10.11; OTHER_CFLAGS = ""; PRODUCT_NAME = "Universal Framework"; - SUPPORTED_PLATFORMS = "iphonesimulator iphoneos macosx"; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; TVOS_DEPLOYMENT_TARGET = 10.0; WATCHOS_DEPLOYMENT_TARGET = 4.0; }; @@ -8755,7 +6518,9 @@ COPY_PHASE_STRIP = NO; GCC_DYNAMIC_NO_PIC = NO; GCC_OPTIMIZATION_LEVEL = 0; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; PRODUCT_NAME = "Universal Framework"; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos macosx"; }; name = Debug; }; @@ -8764,7 +6529,9 @@ buildSettings = { COPY_PHASE_STRIP = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; PRODUCT_NAME = "Universal Framework"; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos macosx"; }; name = Release; }; @@ -8816,15 +6583,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 7988439E1C191579003E8948 /* Build configuration list for PBXNativeTarget "Static PubNub (Fabric)" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7988439F1C191579003E8948 /* Debug */, - 798843A01C191579003E8948 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; 79A8BCC11C58F93900015BDE /* Build configuration list for PBXNativeTarget "PubNub (tvOS)" */ = { isa = XCConfigurationList; buildConfigurations = ( @@ -8843,24 +6601,6 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; - 79ACC48C1C11BC4D0056523A /* Build configuration list for PBXNativeTarget "PubNub (Fabric)" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 79ACC48D1C11BC4D0056523A /* Debug */, - 79ACC48E1C11BC4D0056523A /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 79ACC4931C11BC620056523A /* Build configuration list for PBXAggregateTarget "XCFramework (Fabric)" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 79ACC4941C11BC620056523A /* Debug */, - 79ACC4951C11BC620056523A /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; 79CBB0381BD03D3F001FC34D /* Build configuration list for PBXProject "PubNub Framework" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/Framework/PubNub Framework.xcodeproj/xcshareddata/xcschemes/XCFramework (iOS).xcscheme b/Framework/PubNub Framework.xcodeproj/xcshareddata/xcschemes/XCFramework (iOS).xcscheme new file mode 100644 index 000000000..65235ab79 --- /dev/null +++ b/Framework/PubNub Framework.xcodeproj/xcshareddata/xcschemes/XCFramework (iOS).xcscheme @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Framework/PubNub Framework.xcodeproj/xcshareddata/xcschemes/XCFramework (tvOS).xcscheme b/Framework/PubNub Framework.xcodeproj/xcshareddata/xcschemes/XCFramework (tvOS).xcscheme new file mode 100644 index 000000000..4e2136afa --- /dev/null +++ b/Framework/PubNub Framework.xcodeproj/xcshareddata/xcschemes/XCFramework (tvOS).xcscheme @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Framework/PubNub/Info.plist b/Framework/PubNub/Info.plist index 22414105a..aa655752c 100644 --- a/Framework/PubNub/Info.plist +++ b/Framework/PubNub/Info.plist @@ -7,7 +7,7 @@ CFBundleExecutable PubNub CFBundleGetInfoString - 4.12.0 + 4.13.0 CFBundleIdentifier com.pubnub.pubnub-objc CFBundleInfoDictionaryVersion @@ -17,13 +17,13 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 4.12.0 + 4.13.0 CFBundleSignature ???? CFBundleVersion - 4.12.0 + 4.13.0 NSHumanReadableCopyright - © 2010 - 2019 PubNub, Inc. + © 2010 - 2020 PubNub, Inc. NSPrincipalClass diff --git a/Framework/PubNub/PubNub-Fabric-Info.plist b/Framework/PubNub/PubNub-Fabric-Info.plist deleted file mode 100644 index 22414105a..000000000 --- a/Framework/PubNub/PubNub-Fabric-Info.plist +++ /dev/null @@ -1,30 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - PubNub - CFBundleGetInfoString - 4.12.0 - CFBundleIdentifier - com.pubnub.pubnub-objc - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - PubNub - CFBundlePackageType - FMWK - CFBundleShortVersionString - 4.12.0 - CFBundleSignature - ???? - CFBundleVersion - 4.12.0 - NSHumanReadableCopyright - © 2010 - 2019 PubNub, Inc. - NSPrincipalClass - - - diff --git a/Framework/PubNub/PubNub-iOS-Info.plist b/Framework/PubNub/PubNub-iOS-Info.plist index 22414105a..aa655752c 100644 --- a/Framework/PubNub/PubNub-iOS-Info.plist +++ b/Framework/PubNub/PubNub-iOS-Info.plist @@ -7,7 +7,7 @@ CFBundleExecutable PubNub CFBundleGetInfoString - 4.12.0 + 4.13.0 CFBundleIdentifier com.pubnub.pubnub-objc CFBundleInfoDictionaryVersion @@ -17,13 +17,13 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 4.12.0 + 4.13.0 CFBundleSignature ???? CFBundleVersion - 4.12.0 + 4.13.0 NSHumanReadableCopyright - © 2010 - 2019 PubNub, Inc. + © 2010 - 2020 PubNub, Inc. NSPrincipalClass diff --git a/Framework/PubNub/PubNub-tvOS-Info.plist b/Framework/PubNub/PubNub-tvOS-Info.plist index 22414105a..aa655752c 100644 --- a/Framework/PubNub/PubNub-tvOS-Info.plist +++ b/Framework/PubNub/PubNub-tvOS-Info.plist @@ -7,7 +7,7 @@ CFBundleExecutable PubNub CFBundleGetInfoString - 4.12.0 + 4.13.0 CFBundleIdentifier com.pubnub.pubnub-objc CFBundleInfoDictionaryVersion @@ -17,13 +17,13 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 4.12.0 + 4.13.0 CFBundleSignature ???? CFBundleVersion - 4.12.0 + 4.13.0 NSHumanReadableCopyright - © 2010 - 2019 PubNub, Inc. + © 2010 - 2020 PubNub, Inc. NSPrincipalClass diff --git a/Framework/PubNub/PubNub-watchOS-Info.plist b/Framework/PubNub/PubNub-watchOS-Info.plist index 22414105a..aa655752c 100644 --- a/Framework/PubNub/PubNub-watchOS-Info.plist +++ b/Framework/PubNub/PubNub-watchOS-Info.plist @@ -7,7 +7,7 @@ CFBundleExecutable PubNub CFBundleGetInfoString - 4.12.0 + 4.13.0 CFBundleIdentifier com.pubnub.pubnub-objc CFBundleInfoDictionaryVersion @@ -17,13 +17,13 @@ CFBundlePackageType FMWK CFBundleShortVersionString - 4.12.0 + 4.13.0 CFBundleSignature ???? CFBundleVersion - 4.12.0 + 4.13.0 NSHumanReadableCopyright - © 2010 - 2019 PubNub, Inc. + © 2010 - 2020 PubNub, Inc. NSPrincipalClass diff --git a/Framework/PubNub/PubNub.h b/Framework/PubNub/PubNub.h index 9477f00b1..c695ff8a0 100644 --- a/Framework/PubNub/PubNub.h +++ b/Framework/PubNub/PubNub.h @@ -43,6 +43,7 @@ FOUNDATION_EXPORT const unsigned char PubNubVersionString[]; #import "PNServiceData.h" #import "PNErrorStatus.h" #import "PNTimeResult.h" +#import "PNKeychain.h" #import "PNResult.h" #import "PNStatus.h" diff --git a/Framework/scripts/build_xcframework.sh b/Framework/scripts/build_xcframework.sh index decabc695..02f645801 100644 --- a/Framework/scripts/build_xcframework.sh +++ b/Framework/scripts/build_xcframework.sh @@ -52,6 +52,7 @@ MACOS_FRAMEWORK_PATH="${MACOS_ARCHIVE_PATH}/Products/Library/Frameworks/PubNub.f DEVICE_FRAMEWORK_PATH="${DEVICE_ARCHIVE_PATH}/Products/Library/Frameworks/PubNub.framework" SIMULATOR_FRAMEWORK_PATH="${SIMULATOR_ARCHIVE_PATH}/Products/Library/Frameworks/PubNub.framework" XCFRAMEWORK_PATH="$PRODUCTS_PATH/PubNub.xcframework" +echo "[XCFramework] Archives path: $ARCHIVES_PATH" # Clean up framework build products repository. [[ -d "$PRODUCTS_PATH" ]] && rm -R "$PRODUCTS_PATH" @@ -68,6 +69,8 @@ xcodebuild archive \ ONLY_ACTIVE_ARCH=NO \ SUPPORTS_MACCATALYST=NO \ clean + +echo "[XCFramework] Archive has been created for '$DEVICE_SDK': $DEVICE_ARCHIVE_PATH" # Build framework for simulator xcodebuild archive \ @@ -83,18 +86,24 @@ xcodebuild archive \ SUPPORTS_MACCATALYST=NO \ clean +echo "[XCFramework] Archive has been created for '$SIMULATOR_SDK': $SIMULATOR_ARCHIVE_PATH" + # Build iOS for macOS framework if Catalyst support required. if [ "$BUILD_WITH_CATALYST_SUPPORT" == 1 ]; then + xcodebuild archive \ -scheme "${TARGET_NAME:2}" \ -sdk macosx \ -archivePath "$MACOS_ARCHIVE_PATH" \ -derivedDataPath "$DERIVED_DATA_PATH" \ + -destination 'platform=macOS,arch=x86_64,variant=Mac Catalyst' \ SKIP_INSTALL=NO \ BUILD_LIBRARIES_FOR_DISTRIBUTION=YES \ ONLY_ACTIVE_ARCH=NO \ SUPPORTS_MACCATALYST=YES \ clean + + echo "[XCFramework] Archive has been created for 'macosx': $MACOS_ARCHIVE_PATH" fi # Update modules map @@ -109,6 +118,8 @@ if [ "$BUILD_WITH_CATALYST_SUPPORT" == 0 ]; then -output "$XCFRAMEWORK_PATH" else write_module_map "$MACOS_FRAMEWORK_PATH/Modules/module.modulemap" + + echo "[XCFramework] Adding frameworks to XCFramework..." # Pack built device / simulator / Catalyst slices into XCFramework xcodebuild -create-xcframework \ @@ -116,4 +127,8 @@ else -framework "$SIMULATOR_FRAMEWORK_PATH" \ -framework "$MACOS_FRAMEWORK_PATH" \ -output "$XCFRAMEWORK_PATH" + + echo "[XCFramework] Frameworks added to XCFramework: $XCFRAMEWORK_PATH" fi + +rm -rf "$ARCHIVES_PATH" diff --git a/PubNub.podspec b/PubNub.podspec index a8368718e..13e41be98 100644 --- a/PubNub.podspec +++ b/PubNub.podspec @@ -9,7 +9,7 @@ Pod::Spec.new do |spec| spec.name = 'PubNub' - spec.version = '4.12.0' + spec.version = '4.13.0' spec.summary = 'The PubNub Real-Time Network. Build real-time apps quickly and scale them globally.' spec.homepage = 'https://github.com/pubnub/objective-c' diff --git a/PubNub/Core/PubNub+APNS.m b/PubNub/Core/PubNub+APNS.m index 11e6c2fd3..a7ef58f18 100644 --- a/PubNub/Core/PubNub+APNS.m +++ b/PubNub/Core/PubNub+APNS.m @@ -1,3 +1,4 @@ + /** * @author Serhii Mamontov * @version 4.12.0 diff --git a/PubNub/Core/PubNub+Core.m b/PubNub/Core/PubNub+Core.m index 22d5ebd68..fdaeb562d 100644 --- a/PubNub/Core/PubNub+Core.m +++ b/PubNub/Core/PubNub+Core.m @@ -287,10 +287,6 @@ - (instancetype)initWithConfiguration:(PNConfiguration *)configuration _callbackQueue = callbackQueue; _instanceID = [[[NSUUID UUID] UUIDString] copy]; - if (NSClassFromString(@"XCTestExpectation")) { - _instanceID = [@"58EB05C9-9DE4-4118-B5D7-EE059FBF19A9" copy]; - } - [self prepareNetworkManagers]; _subscriberManager = [PNSubscriber subscriberForClient:self]; diff --git a/PubNub/Core/PubNub+History.m b/PubNub/Core/PubNub+History.m index 2bfed808b..e4d6147d2 100644 --- a/PubNub/Core/PubNub+History.m +++ b/PubNub/Core/PubNub+History.m @@ -305,8 +305,8 @@ - (void)historyForChannel:(NSString *)channel limit:nil reverse:@NO includeTimeToken:@NO - includeMessageActions:@(shouldIncludeMetadata) - includeMetadata:@(shouldIncludeMessageActions) + includeMessageActions:@(shouldIncludeMessageActions) + includeMetadata:@(shouldIncludeMetadata) queryParameters:nil withCompletion:block]; diff --git a/PubNub/Core/PubNub+Objects.m b/PubNub/Core/PubNub+Objects.m index 25fcff71b..217c729c7 100644 --- a/PubNub/Core/PubNub+Objects.m +++ b/PubNub/Core/PubNub+Objects.m @@ -122,7 +122,9 @@ @implementation PubNub (Objects) NSNumber *limit = parameters[NSStringFromSelector(@selector(limit))] ?: @(100); PNFetchUsersRequest *request = [PNFetchUsersRequest new]; + request.filter = parameters[NSStringFromSelector(@selector(filter))]; request.start = parameters[NSStringFromSelector(@selector(start))]; + request.sort = parameters[NSStringFromSelector(@selector(sort))]; request.end = parameters[NSStringFromSelector(@selector(end))]; request.includeFields = includeFields.unsignedIntegerValue; request.includeCount = includeCount.boolValue; @@ -239,7 +241,9 @@ @implementation PubNub (Objects) NSNumber *limit = parameters[NSStringFromSelector(@selector(limit))] ?: @(100); PNFetchSpacesRequest *request = [PNFetchSpacesRequest new]; + request.filter = parameters[NSStringFromSelector(@selector(filter))]; request.start = parameters[NSStringFromSelector(@selector(start))]; + request.sort = parameters[NSStringFromSelector(@selector(sort))]; request.end = parameters[NSStringFromSelector(@selector(end))]; request.includeFields = includeFields.unsignedIntegerValue; request.includeCount = includeCount.boolValue; @@ -272,7 +276,9 @@ @implementation PubNub (Objects) request.updateSpaces = parameters[NSStringFromSelector(@selector(update))]; request.leaveSpaces = parameters[NSStringFromSelector(@selector(remove))]; request.joinSpaces = parameters[NSStringFromSelector(@selector(add))]; + request.filter = parameters[NSStringFromSelector(@selector(filter))]; request.start = parameters[NSStringFromSelector(@selector(start))]; + request.sort = parameters[NSStringFromSelector(@selector(sort))]; request.end = parameters[NSStringFromSelector(@selector(end))]; request.includeFields = includeFields.unsignedIntegerValue; request.includeCount = includeCount.boolValue; @@ -299,7 +305,9 @@ @implementation PubNub (Objects) NSString *userId = parameters[NSStringFromSelector(@selector(userId))]; PNFetchMembershipsRequest *request = [PNFetchMembershipsRequest requestWithUserID:userId]; + request.filter = parameters[NSStringFromSelector(@selector(filter))]; request.start = parameters[NSStringFromSelector(@selector(start))]; + request.sort = parameters[NSStringFromSelector(@selector(sort))]; request.end = parameters[NSStringFromSelector(@selector(end))]; request.includeFields = includeFields.unsignedIntegerValue; request.includeCount = includeCount.boolValue; @@ -329,7 +337,9 @@ @implementation PubNub (Objects) request.updateMembers = parameters[NSStringFromSelector(@selector(update))]; request.removeMembers = parameters[NSStringFromSelector(@selector(remove))]; request.addMembers = parameters[NSStringFromSelector(@selector(add))]; + request.filter = parameters[NSStringFromSelector(@selector(filter))]; request.start = parameters[NSStringFromSelector(@selector(start))]; + request.sort = parameters[NSStringFromSelector(@selector(sort))]; request.end = parameters[NSStringFromSelector(@selector(end))]; request.includeFields = includeFields.unsignedIntegerValue; request.includeCount = includeCount.boolValue; @@ -356,7 +366,9 @@ @implementation PubNub (Objects) NSString *spaceId = parameters[NSStringFromSelector(@selector(spaceId))]; PNFetchMembersRequest *request = [PNFetchMembersRequest requestWithSpaceID:spaceId]; + request.filter = parameters[NSStringFromSelector(@selector(filter))]; request.start = parameters[NSStringFromSelector(@selector(start))]; + request.sort = parameters[NSStringFromSelector(@selector(sort))]; request.end = parameters[NSStringFromSelector(@selector(end))]; request.includeFields = includeFields.unsignedIntegerValue; request.includeCount = includeCount.boolValue; diff --git a/PubNub/Core/PubNub+Presence.m b/PubNub/Core/PubNub+Presence.m index 23c4eb40c..030ca08e4 100644 --- a/PubNub/Core/PubNub+Presence.m +++ b/PubNub/Core/PubNub+Presence.m @@ -11,6 +11,7 @@ #import "PubNub+CorePrivate.h" #import "PNStatus+Private.h" #import "PNConfiguration.h" +#import "PNErrorStatus.h" #import "PNLogMacro.h" #import "PNHelpers.h" @@ -347,7 +348,30 @@ - (void)setConnected:(BOOL)connected withState:(NSDictionary *)states completionBlock:(PNStatusBlock)block { + PNErrorStatus *(^errorStatus)(PNStatusCategory) = ^(PNStatusCategory category) { + PNOperationType operation = connected ? PNHeartbeatOperation : PNUnsubscribeOperation; + PNErrorStatus *badRequestStatus = [PNErrorStatus statusForOperation:operation + category:category + withProcessingError:nil]; + + __weak __typeof(self) weakSelf = self; + badRequestStatus.retryBlock = ^{ + [weakSelf setConnected:connected + forChannels:channels + channelGroups:channelGroups + withState:states + completionBlock:block]; + }; + + [self appendClientInformation:badRequestStatus]; + + return badRequestStatus; + }; + if (!self.configuration.shouldManagePresenceListManually) { + PNErrorStatus *badRequestStatus = errorStatus(PNCancelledCategory); + + [self callBlock:block status:YES withResult:nil andStatus:badRequestStatus]; return; } @@ -382,6 +406,10 @@ - (void)setConnected:(BOOL)connected } }]; } + } else { + PNErrorStatus *badRequestStatus = errorStatus(PNBadRequestCategory); + + [self callBlock:block status:YES withResult:nil andStatus:badRequestStatus]; } } @@ -412,13 +440,11 @@ - (void)heartbeatWithCompletion:(PNStatusBlock)block { if (self.configuration.shouldManagePresenceListManually) { NSMutableArray *allObjects = [NSMutableArray arrayWithArray:channels]; [allObjects addObjectsFromArray:groups]; - NSMutableDictionary *filteredState = [(state ?: @{}) mutableCopy]; - NSMutableArray *stateKeys = [NSMutableArray arrayWithArray:state.allKeys]; - - [stateKeys removeObjectsInArray:allObjects]; - [filteredState removeObjectsForKeys:stateKeys]; - state = filteredState; + /** + * Keep state only for channels / groups specified during manual presence manipulation method. + */ + state = [state dictionaryWithValuesForKeys:allObjects]; } NSString *stateString = [PNJSON JSONStringFrom:state withError:nil]; diff --git a/PubNub/Core/PubNub+Publish.m b/PubNub/Core/PubNub+Publish.m index 9ef1c3315..6cf0a350e 100644 --- a/PubNub/Core/PubNub+Publish.m +++ b/PubNub/Core/PubNub+Publish.m @@ -593,6 +593,7 @@ - (void)publish:(id)message NSData *messageData = [messageForPublish dataUsingEncoding:NSUTF8StringEncoding]; NSData *compressedBody = [PNGZIP GZIPDeflatedData:messageData]; publishData = (compressedBody?: [@"" dataUsingEncoding:NSUTF8StringEncoding]); + parameters.POSTBodyCompressed = YES; parameters.HTTPMethod = @"POST"; } @@ -848,7 +849,8 @@ - (void)sizeOfMessage:(id)message PNRequestParameters *parameters = [self requestParametersForMessage:messageForPublish toChannel:channel compressed:compressMessage - storeInHistory:shouldStore ttl:ttl + storeInHistory:shouldStore + ttl:ttl replicate:replicate metadata:metadataForPublish sequenceNumber:nextSequenceNumber diff --git a/PubNub/Core/PubNub+State.m b/PubNub/Core/PubNub+State.m index d9c888763..5dda45bbe 100644 --- a/PubNub/Core/PubNub+State.m +++ b/PubNub/Core/PubNub+State.m @@ -168,10 +168,12 @@ - (void)setState:(NSDictionary *)state forUUID:(NSString *)uuid onChannel:(NSString *)channel withCompletion:(PNSetStateCompletionBlock)block { + + NSArray *channels = channel ? @[channel] : nil; [self setState:state forUUID:uuid - onChannels:@[channel] + onChannels:channels groups:nil withQueryParameters:nil completion:block]; @@ -181,11 +183,13 @@ - (void)setState:(NSDictionary *)state forUUID:(NSString *)uuid onChannelGroup:(NSString *)group withCompletion:(PNSetStateCompletionBlock)block { + + NSArray *groups = group ? @[group] : nil; [self setState:state forUUID:uuid onChannels:nil - groups:@[group] + groups:groups withQueryParameters:nil completion:block]; } @@ -198,7 +202,6 @@ - (void)setState:(nullable NSDictionary *)state completion:(PNSetStateCompletionBlock)block { dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); - uuid = uuid ?: self.configuration.uuid; __weak __typeof(self) weakSelf = self; if (@available(macOS 10.10, iOS 8.0, *)) { @@ -206,7 +209,29 @@ - (void)setState:(nullable NSDictionary *)state queue = dispatch_get_main_queue(); } } + + // State set retry block. + dispatch_block_t retryBlock = ^{ + [weakSelf setState:state + forUUID:uuid + onChannels:channels + groups:groups + withQueryParameters:queryParameters + completion:block]; + }; + + if ((!channels.count && !groups.count) || !uuid.length) { + PNErrorStatus *badRequestStatus = [PNErrorStatus statusForOperation:PNSetStateOperation + category:PNBadRequestCategory + withProcessingError:nil]; + badRequestStatus.retryBlock = retryBlock; + [self appendClientInformation:badRequestStatus]; + + [self callBlock:block status:YES withResult:nil andStatus:badRequestStatus]; + return; + } + dispatch_async(queue, ^{ __strong __typeof__(weakSelf) strongSelf = weakSelf; NSString *stateString = [PNJSON JSONStringFrom:state withError:NULL] ?: @"{}"; @@ -217,11 +242,7 @@ - (void)setState:(nullable NSDictionary *)state [parameters addQueryParameter:[PNString percentEscapedString:stateString] forFieldName:@"state"]; [parameters addQueryParameters:queryParameters]; - - if (uuid.length) { - [parameters addPathComponent:[PNString percentEscapedString:uuid] - forPlaceholder:@"{uuid}"]; - } + [parameters addPathComponent:[PNString percentEscapedString:uuid] forPlaceholder:@"{uuid}"]; if (groups.count) { [parameters addQueryParameter:[PNChannel namesForRequest:groups] @@ -241,14 +262,7 @@ - (void)setState:(nullable NSDictionary *)state completionBlock:^(PNStatus *status) { if (status.isError) { - status.retryBlock = ^{ - [weakSelf setState:state - forUUID:uuid - onChannels:channels - groups:groups - withQueryParameters:queryParameters - completion:block]; - }; + status.retryBlock = retryBlock; } [weakSelf handleSetStateStatus:(PNClientStateUpdateStatus *)status @@ -267,8 +281,10 @@ - (void)stateForUUID:(NSString *)uuid onChannel:(NSString *)channel withCompletion:(PNChannelStateCompletionBlock)block { + NSArray *channels = channel ? @[channel] : nil; + [self stateForUUID:uuid - onChannels:@[channel] + onChannels:channels groups:nil fromBuilder:NO withQueryParameters:nil @@ -278,10 +294,12 @@ - (void)stateForUUID:(NSString *)uuid - (void)stateForUUID:(NSString *)uuid onChannelGroup:(NSString *)group withCompletion:(PNChannelGroupStateCompletionBlock)block { + + NSArray *groups = group ? @[group] : nil; [self stateForUUID:uuid onChannels:nil - groups:@[group] + groups:groups fromBuilder:NO withQueryParameters:nil completion:block]; @@ -295,25 +313,44 @@ - (void)stateForUUID:(NSString *)uuid completion:(id)block { PNRequestParameters *parameters = [PNRequestParameters new]; - uuid = uuid ?: self.configuration.uuid; PNOperationType operation = PNGetStateOperation; + __weak __typeof(self) weakSelf = self; + + if (!apiCallBuilder) { + operation = groups.count ? PNStateForChannelGroupOperation : PNStateForChannelOperation; + } + + // State fetch retry block. + dispatch_block_t retryBlock = ^{ + [weakSelf stateForUUID:uuid + onChannels:channels + groups:groups + fromBuilder:apiCallBuilder + withQueryParameters:queryParameters + completion:block]; + }; + + if ((!channels.count && !groups.count) || !uuid.length) { + PNErrorStatus *badRequestStatus = [PNErrorStatus statusForOperation:operation + category:PNBadRequestCategory + withProcessingError:nil]; + + badRequestStatus.retryBlock = retryBlock; + [self appendClientInformation:badRequestStatus]; + + [self callBlock:block status:NO withResult:nil andStatus:badRequestStatus]; + return; + } [parameters addPathComponent:(channels.count ? [PNChannel namesForRequest:channels] : @",") forPlaceholder:@"{channel}"]; [parameters addQueryParameters:queryParameters]; - - if (uuid.length) { - [parameters addPathComponent:[PNString percentEscapedString:uuid] forPlaceholder:@"{uuid}"]; - } + [parameters addPathComponent:[PNString percentEscapedString:uuid] forPlaceholder:@"{uuid}"]; if (groups.count) { [parameters addQueryParameter:[PNChannel namesForRequest:groups] forFieldName:@"channel-group"]; } - - if (!apiCallBuilder) { - operation = groups.count ? PNStateForChannelGroupOperation : PNStateForChannelOperation; - } PNLogAPICall(self.logger, @" State request on %@%@ for %@.", (channels.count ? [NSString stringWithFormat:@" channels (%@)", @@ -323,20 +360,12 @@ - (void)stateForUUID:(NSString *)uuid [groups componentsJoinedByString:@","]] : @""), uuid); - __weak __typeof(self) weakSelf = self; [self processOperation:operation withParameters:parameters completionBlock:^(PNResult *result, PNStatus *status) { if (status.isError) { - status.retryBlock = ^{ - [weakSelf stateForUUID:uuid - onChannels:channels - groups:groups - fromBuilder:apiCallBuilder - withQueryParameters:queryParameters - completion:block]; - }; + status.retryBlock = retryBlock; } [weakSelf handleStateResult:(PNChannelClientStateResult *)result diff --git a/PubNub/Data/Builders/API Call/Objects/Membership/PNFetchMembersAPICallBuilder.h b/PubNub/Data/Builders/API Call/Objects/Membership/PNFetchMembersAPICallBuilder.h index fe6a54ef5..eb7fe4c24 100644 --- a/PubNub/Data/Builders/API Call/Objects/Membership/PNFetchMembersAPICallBuilder.h +++ b/PubNub/Data/Builders/API Call/Objects/Membership/PNFetchMembersAPICallBuilder.h @@ -27,6 +27,18 @@ NS_ASSUME_NONNULL_BEGIN */ @property (nonatomic, readonly, strong) PNFetchMembersAPICallBuilder * (^includeCount)(BOOL shouldIncludeCount); +/** + * @brief Results sorting order. + * + * @param sort List of criteria (name of field) which should be used for sorting in ascending order. + * To change sorting order, append \c :asc (for ascending) or \c :desc (descending) to field name. + * + * @return API call configuration builder. + * + * @since 4.13.0 + */ +@property (nonatomic, readonly, strong) PNFetchMembersAPICallBuilder * (^sort)(NSArray *sort); + /** * @brief Target \c space identifier. * @@ -36,6 +48,17 @@ NS_ASSUME_NONNULL_BEGIN */ @property (nonatomic, readonly, strong) PNFetchMembersAPICallBuilder * (^spaceId)(NSString *spaceId); +/** + * @brief Expression to filter out results basing on specified criteria. + * + * @param filter Members filter expression. + * + * @return API call configuration builder. + * + * @since 4.13.0 + */ +@property (nonatomic, readonly, strong) PNFetchMembersAPICallBuilder * (^filter)(NSString *filter); + /** * @brief Maximum number of \c members per fetched page. * diff --git a/PubNub/Data/Builders/API Call/Objects/Membership/PNFetchMembersAPICallBuilder.m b/PubNub/Data/Builders/API Call/Objects/Membership/PNFetchMembersAPICallBuilder.m index 4c6f6d11a..a5d05777e 100644 --- a/PubNub/Data/Builders/API Call/Objects/Membership/PNFetchMembersAPICallBuilder.m +++ b/PubNub/Data/Builders/API Call/Objects/Membership/PNFetchMembersAPICallBuilder.m @@ -34,6 +34,16 @@ @implementation PNFetchMembersAPICallBuilder }; } +- (PNFetchMembersAPICallBuilder * (^)(NSArray *sort))sort { + return ^PNFetchMembersAPICallBuilder * (NSArray *sort) { + if ([sort isKindOfClass:[NSArray class]] && sort.count) { + [self setValue:sort forParameter:NSStringFromSelector(_cmd)]; + } + + return self; + }; +} + - (PNFetchMembersAPICallBuilder * (^)(NSString *spaceId))spaceId { return ^PNFetchMembersAPICallBuilder * (NSString *spaceId) { if ([spaceId isKindOfClass:[NSString class]] && spaceId.length) { @@ -44,6 +54,16 @@ @implementation PNFetchMembersAPICallBuilder }; } +- (PNFetchMembersAPICallBuilder * (^)(NSString *filter))filter { + return ^PNFetchMembersAPICallBuilder * (NSString *filter) { + if ([filter isKindOfClass:[NSString class]] && filter.length) { + [self setValue:filter forParameter:NSStringFromSelector(_cmd)]; + } + + return self; + }; +} + - (PNFetchMembersAPICallBuilder * (^)(NSUInteger limit))limit { return ^PNFetchMembersAPICallBuilder * (NSUInteger limit) { [self setValue:@(limit) forParameter:NSStringFromSelector(_cmd)]; diff --git a/PubNub/Data/Builders/API Call/Objects/Membership/PNFetchMembershipsAPICallBuilder.h b/PubNub/Data/Builders/API Call/Objects/Membership/PNFetchMembershipsAPICallBuilder.h index 3234aee3a..0df5df58a 100644 --- a/PubNub/Data/Builders/API Call/Objects/Membership/PNFetchMembershipsAPICallBuilder.h +++ b/PubNub/Data/Builders/API Call/Objects/Membership/PNFetchMembershipsAPICallBuilder.h @@ -27,6 +27,29 @@ NS_ASSUME_NONNULL_BEGIN */ @property (nonatomic, readonly, strong) PNFetchMembershipsAPICallBuilder * (^includeCount)(BOOL shouldIncludeCount); +/** + * @brief Results sorting order. + * + * @param sort List of criteria (name of field) which should be used for sorting in ascending order. + * To change sorting order, append \c :asc (for ascending) or \c :desc (descending) to field name. + * + * @return API call configuration builder. + * + * @since 4.13.0 + */ +@property (nonatomic, readonly, strong) PNFetchMembershipsAPICallBuilder * (^sort)(NSArray *sort); + +/** + * @brief Expression to filter out results basing on specified criteria. + * + * @param filter Memberships filter expression. + * + * @return API call configuration builder. + * + * @since 4.13.0 + */ +@property (nonatomic, readonly, strong) PNFetchMembershipsAPICallBuilder * (^filter)(NSString *filter); + /** * @brief Target \c user identifier. * diff --git a/PubNub/Data/Builders/API Call/Objects/Membership/PNFetchMembershipsAPICallBuilder.m b/PubNub/Data/Builders/API Call/Objects/Membership/PNFetchMembershipsAPICallBuilder.m index 97f185b1d..468e30087 100644 --- a/PubNub/Data/Builders/API Call/Objects/Membership/PNFetchMembershipsAPICallBuilder.m +++ b/PubNub/Data/Builders/API Call/Objects/Membership/PNFetchMembershipsAPICallBuilder.m @@ -34,6 +34,26 @@ @implementation PNFetchMembershipsAPICallBuilder }; } +- (PNFetchMembershipsAPICallBuilder * (^)(NSArray *sort))sort { + return ^PNFetchMembershipsAPICallBuilder * (NSArray *sort) { + if ([sort isKindOfClass:[NSArray class]] && sort.count) { + [self setValue:sort forParameter:NSStringFromSelector(_cmd)]; + } + + return self; + }; +} + +- (PNFetchMembershipsAPICallBuilder * (^)(NSString *filter))filter { + return ^PNFetchMembershipsAPICallBuilder * (NSString *filter) { + if ([filter isKindOfClass:[NSString class]] && filter.length) { + [self setValue:filter forParameter:NSStringFromSelector(_cmd)]; + } + + return self; + }; +} + - (PNFetchMembershipsAPICallBuilder * (^)(NSString *userId))userId { return ^PNFetchMembershipsAPICallBuilder * (NSString *userId) { if ([userId isKindOfClass:[NSString class]] && userId.length) { diff --git a/PubNub/Data/Builders/API Call/Objects/Membership/PNManageMembersAPICallBuilder.h b/PubNub/Data/Builders/API Call/Objects/Membership/PNManageMembersAPICallBuilder.h index 06783223a..217ac565a 100644 --- a/PubNub/Data/Builders/API Call/Objects/Membership/PNManageMembersAPICallBuilder.h +++ b/PubNub/Data/Builders/API Call/Objects/Membership/PNManageMembersAPICallBuilder.h @@ -63,6 +63,18 @@ NS_ASSUME_NONNULL_BEGIN */ @property (nonatomic, readonly, strong) PNManageMembersAPICallBuilder * (^remove)(NSArray *users); +/** + * @brief Results sorting order. + * + * @param sort List of criteria (name of field) which should be used for sorting in ascending order. + * To change sorting order, append \c :asc (for ascending) or \c :desc (descending) to field name. + * + * @return API call configuration builder. + * + * @since 4.13.0 + */ +@property (nonatomic, readonly, strong) PNManageMembersAPICallBuilder * (^sort)(NSArray *sort); + /** * @brief Target \c space identifier. * @@ -72,6 +84,17 @@ NS_ASSUME_NONNULL_BEGIN */ @property (nonatomic, readonly, strong) PNManageMembersAPICallBuilder * (^spaceId)(NSString *spaceId); +/** + * @brief Expression to filter out results basing on specified criteria. + * + * @param filter Members filter expression. + * + * @return API call configuration builder. + * + * @since 4.13.0 + */ +@property (nonatomic, readonly, strong) PNManageMembersAPICallBuilder * (^filter)(NSString *filter); + /** * @brief Maximum number of \c members per fetched page. * diff --git a/PubNub/Data/Builders/API Call/Objects/Membership/PNManageMembersAPICallBuilder.m b/PubNub/Data/Builders/API Call/Objects/Membership/PNManageMembersAPICallBuilder.m index fc8f5f308..bead8013f 100644 --- a/PubNub/Data/Builders/API Call/Objects/Membership/PNManageMembersAPICallBuilder.m +++ b/PubNub/Data/Builders/API Call/Objects/Membership/PNManageMembersAPICallBuilder.m @@ -64,6 +64,16 @@ @implementation PNManageMembersAPICallBuilder }; } +- (PNManageMembersAPICallBuilder * (^)(NSArray *sort))sort { + return ^PNManageMembersAPICallBuilder * (NSArray *sort) { + if ([sort isKindOfClass:[NSArray class]] && sort.count) { + [self setValue:sort forParameter:NSStringFromSelector(_cmd)]; + } + + return self; + }; +} + - (PNManageMembersAPICallBuilder * (^)(NSString *spaceId))spaceId { return ^PNManageMembersAPICallBuilder * (NSString *spaceId) { if ([spaceId isKindOfClass:[NSString class]] && spaceId.length) { @@ -74,6 +84,16 @@ @implementation PNManageMembersAPICallBuilder }; } +- (PNManageMembersAPICallBuilder * (^)(NSString *filter))filter { + return ^PNManageMembersAPICallBuilder * (NSString *filter) { + if ([filter isKindOfClass:[NSString class]] && filter.length) { + [self setValue:filter forParameter:NSStringFromSelector(_cmd)]; + } + + return self; + }; +} + - (PNManageMembersAPICallBuilder * (^)(NSUInteger limit))limit { return ^PNManageMembersAPICallBuilder * (NSUInteger limit) { [self setValue:@(limit) forParameter:NSStringFromSelector(_cmd)]; diff --git a/PubNub/Data/Builders/API Call/Objects/Membership/PNManageMembershipsAPICallBuilder.h b/PubNub/Data/Builders/API Call/Objects/Membership/PNManageMembershipsAPICallBuilder.h index e30cb15c1..b2bac76df 100644 --- a/PubNub/Data/Builders/API Call/Objects/Membership/PNManageMembershipsAPICallBuilder.h +++ b/PubNub/Data/Builders/API Call/Objects/Membership/PNManageMembershipsAPICallBuilder.h @@ -73,6 +73,29 @@ NS_ASSUME_NONNULL_BEGIN */ @property (nonatomic, readonly, strong) PNManageMembershipsAPICallBuilder * (^remove)(NSArray *spaces); +/** + * @brief Results sorting order. + * + * @param sort List of criteria (name of field) which should be used for sorting in ascending order. + * To change sorting order, append \c :asc (for ascending) or \c :desc (descending) to field name. + * + * @return API call configuration builder. + * + * @since 4.13.0 + */ +@property (nonatomic, readonly, strong) PNManageMembershipsAPICallBuilder * (^sort)(NSArray *sort); + +/** + * @brief Expression to filter out results basing on specified criteria. + * + * @param filter Memberships filter expression. + * + * @return API call configuration builder. + * + * @since 4.13.0 + */ +@property (nonatomic, readonly, strong) PNManageMembershipsAPICallBuilder * (^filter)(NSString *filter); + /** * @brief Target \c user identifier. * diff --git a/PubNub/Data/Builders/API Call/Objects/Membership/PNManageMembershipsAPICallBuilder.m b/PubNub/Data/Builders/API Call/Objects/Membership/PNManageMembershipsAPICallBuilder.m index f7ee8742c..60aa2554a 100644 --- a/PubNub/Data/Builders/API Call/Objects/Membership/PNManageMembershipsAPICallBuilder.m +++ b/PubNub/Data/Builders/API Call/Objects/Membership/PNManageMembershipsAPICallBuilder.m @@ -64,6 +64,26 @@ @implementation PNManageMembershipsAPICallBuilder }; } +- (PNManageMembershipsAPICallBuilder * (^)(NSArray *sort))sort { + return ^PNManageMembershipsAPICallBuilder * (NSArray *sort) { + if ([sort isKindOfClass:[NSArray class]] && sort.count) { + [self setValue:sort forParameter:NSStringFromSelector(_cmd)]; + } + + return self; + }; +} + +- (PNManageMembershipsAPICallBuilder * (^)(NSString *filter))filter { + return ^PNManageMembershipsAPICallBuilder * (NSString *filter) { + if ([filter isKindOfClass:[NSString class]] && filter.length) { + [self setValue:filter forParameter:NSStringFromSelector(_cmd)]; + } + + return self; + }; +} + - (PNManageMembershipsAPICallBuilder * (^)(NSString *userId))userId { return ^PNManageMembershipsAPICallBuilder * (NSString *userId) { if ([userId isKindOfClass:[NSString class]] && userId.length) { diff --git a/PubNub/Data/Builders/API Call/Objects/Space/PNFetchSpacesAPICallBuilder.h b/PubNub/Data/Builders/API Call/Objects/Space/PNFetchSpacesAPICallBuilder.h index 7423fbe1a..194c281ba 100644 --- a/PubNub/Data/Builders/API Call/Objects/Space/PNFetchSpacesAPICallBuilder.h +++ b/PubNub/Data/Builders/API Call/Objects/Space/PNFetchSpacesAPICallBuilder.h @@ -37,6 +37,29 @@ NS_ASSUME_NONNULL_BEGIN */ @property (nonatomic, readonly, strong) PNFetchSpacesAPICallBuilder * (^includeCount)(BOOL shouldIncludeCount); +/** + * @brief Results sorting order. + * + * @param sort List of criteria (name of field) which should be used for sorting in ascending order. + * To change sorting order, append \c :asc (for ascending) or \c :desc (descending) to field name. + * + * @return API call configuration builder. + * + * @since 4.13.0 + */ +@property (nonatomic, readonly, strong) PNFetchSpacesAPICallBuilder * (^sort)(NSArray *sort); + +/** + * @brief Expression to filter out results basing on specified criteria. + * + * @param filter Spaces filter expression. + * + * @return API call configuration builder. + * + * @since 4.13.0 + */ +@property (nonatomic, readonly, strong) PNFetchSpacesAPICallBuilder * (^filter)(NSString *filter); + /** * @brief Maximum number of \c spaces per fetched page. * diff --git a/PubNub/Data/Builders/API Call/Objects/Space/PNFetchSpacesAPICallBuilder.m b/PubNub/Data/Builders/API Call/Objects/Space/PNFetchSpacesAPICallBuilder.m index 0ec43dad2..364d03b3d 100644 --- a/PubNub/Data/Builders/API Call/Objects/Space/PNFetchSpacesAPICallBuilder.m +++ b/PubNub/Data/Builders/API Call/Objects/Space/PNFetchSpacesAPICallBuilder.m @@ -34,6 +34,26 @@ @implementation PNFetchSpacesAPICallBuilder }; } +- (PNFetchSpacesAPICallBuilder * (^)(NSArray *sort))sort { + return ^PNFetchSpacesAPICallBuilder * (NSArray *sort) { + if ([sort isKindOfClass:[NSArray class]] && sort.count) { + [self setValue:sort forParameter:NSStringFromSelector(_cmd)]; + } + + return self; + }; +} + +- (PNFetchSpacesAPICallBuilder * (^)(NSString *filter))filter { + return ^PNFetchSpacesAPICallBuilder * (NSString *filter) { + if ([filter isKindOfClass:[NSString class]] && filter.length) { + [self setValue:filter forParameter:NSStringFromSelector(_cmd)]; + } + + return self; + }; +} + - (PNFetchSpacesAPICallBuilder * (^)(NSUInteger limit))limit { return ^PNFetchSpacesAPICallBuilder * (NSUInteger limit) { [self setValue:@(limit) forParameter:NSStringFromSelector(_cmd)]; diff --git a/PubNub/Data/Builders/API Call/Objects/User/PNFetchUsersAPICallBuilder.h b/PubNub/Data/Builders/API Call/Objects/User/PNFetchUsersAPICallBuilder.h index cf5c7c6c9..7b81cd3a6 100644 --- a/PubNub/Data/Builders/API Call/Objects/User/PNFetchUsersAPICallBuilder.h +++ b/PubNub/Data/Builders/API Call/Objects/User/PNFetchUsersAPICallBuilder.h @@ -37,6 +37,29 @@ NS_ASSUME_NONNULL_BEGIN */ @property (nonatomic, readonly, strong) PNFetchUsersAPICallBuilder * (^includeCount)(BOOL shouldIncludeCount); +/** + * @brief Results sorting order. + * + * @param sort List of criteria (name of field) which should be used for sorting in ascending order. + * To change sorting order, append \c :asc (for ascending) or \c :desc (descending) to field name. + * + * @return API call configuration builder. + * + * @since 4.13.0 + */ +@property (nonatomic, readonly, strong) PNFetchUsersAPICallBuilder * (^sort)(NSArray *sort); + +/** + * @brief Expression to filter out results basing on specified criteria. + * + * @param filter Users filter expression. + * + * @return API call configuration builder. + * + * @since 4.13.0 + */ +@property (nonatomic, readonly, strong) PNFetchUsersAPICallBuilder * (^filter)(NSString *filter); + /** * @brief Maximum number of \c users per fetched page. * diff --git a/PubNub/Data/Builders/API Call/Objects/User/PNFetchUsersAPICallBuilder.m b/PubNub/Data/Builders/API Call/Objects/User/PNFetchUsersAPICallBuilder.m index df29abcf7..18ab8f560 100644 --- a/PubNub/Data/Builders/API Call/Objects/User/PNFetchUsersAPICallBuilder.m +++ b/PubNub/Data/Builders/API Call/Objects/User/PNFetchUsersAPICallBuilder.m @@ -34,6 +34,26 @@ @implementation PNFetchUsersAPICallBuilder }; } +- (PNFetchUsersAPICallBuilder * (^)(NSArray *sort))sort { + return ^PNFetchUsersAPICallBuilder * (NSArray *sort) { + if ([sort isKindOfClass:[NSArray class]] && sort.count) { + [self setValue:sort forParameter:NSStringFromSelector(_cmd)]; + } + + return self; + }; +} + +- (PNFetchUsersAPICallBuilder * (^)(NSString *filter))filter { + return ^PNFetchUsersAPICallBuilder * (NSString *filter) { + if ([filter isKindOfClass:[NSString class]] && filter.length) { + [self setValue:filter forParameter:NSStringFromSelector(_cmd)]; + } + + return self; + }; +} + - (PNFetchUsersAPICallBuilder * (^)(NSUInteger limit))limit { return ^PNFetchUsersAPICallBuilder * (NSUInteger limit) { [self setValue:@(limit) forParameter:NSStringFromSelector(_cmd)]; diff --git a/PubNub/Data/Managers/PNSubscriber.h b/PubNub/Data/Managers/PNSubscriber.h index d80172e4c..77bdf2828 100644 --- a/PubNub/Data/Managers/PNSubscriber.h +++ b/PubNub/Data/Managers/PNSubscriber.h @@ -150,7 +150,7 @@ typedef void(^PNSubscriberCompletionBlock)(PNSubscribeStatus * _Nullable status) * @param timeToken Time from which client should try to catch up on messages. * @param state Client state which should be bound to channels on which client has been subscribed * or will subscribe now. - * @param queryParameters List arbitrary query paramters which should be sent along with original + * @param queryParameters List arbitrary query parameters which should be sent along with original * API call. * @param block Subscription completion block which is used to notify code. * @@ -165,14 +165,14 @@ typedef void(^PNSubscriberCompletionBlock)(PNSubscribeStatus * _Nullable status) * @brief Try restore subscription cycle by using \b 0 time token and if required try to catch up on * previous subscribe time token (basing on user configuration). * - * @param block Unsubscription completion block which is used to notify code. + * @param block Subscription completion block which is used to notify code. */ - (void)restoreSubscriptionCycleIfRequiredWithCompletion:(nullable PNSubscriberCompletionBlock)block; /** * @brief Continue subscription cycle using \c currentTimeToken value and channels, stored in cache. * - * @param block Unsubscription completion block which is used to notify code. + * @param block Subscription completion block which is used to notify code. */ - (void)continueSubscriptionCycleIfRequiredWithCompletion:(nullable PNSubscriberCompletionBlock)block; @@ -203,7 +203,7 @@ typedef void(^PNSubscriberCompletionBlock)(PNSubscribeStatus * _Nullable status) * @param channels List of channels from which client should unsubscribe. * @param groups List of channel groups from which client should unsubscribe. * @param shouldInformListener Whether listener should be informed at the end of operation or not. - * @param queryParameters List arbitrary query paramters which should be sent along with original + * @param queryParameters List arbitrary query parameters which should be sent along with original * API call. * @param block Unsubscription completion block which is used to notify code. * diff --git a/PubNub/Data/Managers/PNSubscriber.m b/PubNub/Data/Managers/PNSubscriber.m index 54f3db1f6..607686935 100644 --- a/PubNub/Data/Managers/PNSubscriber.m +++ b/PubNub/Data/Managers/PNSubscriber.m @@ -1,6 +1,6 @@ /** * @author Serhii Mamontov - * @copyright © 2010-2019 PubNub, Inc. + * @copyright © 2010-2020 PubNub, Inc. */ #import "PNSubscriber.h" #import "PNSubscribeStatus+Private.h" @@ -103,6 +103,13 @@ @interface PNSubscriber () */ @property (nonatomic, assign) BOOL mayRequireSubscriptionRestore; +/** + * @brief Whether subscriber recovers after network issues. + * + * @since 4.13.0 + */ +@property (nonatomic, assign) BOOL restoringAfterNetworkIssues; + /** * @brief Actual storage for list of channels on which client subscribed at this moment and listen * for updates from live feeds. @@ -122,7 +129,7 @@ @interface PNSubscriber () @property (nonatomic, strong) NSMutableSet *presenceChannelsSet; /** - * @brief Dictionary which is used in messages 'de-dupe' logic to prevent same messages or prsence + * @brief Dictionary which is used in messages 'de-dupe' logic to prevent same messages or presence * events delivering to objects event listeners. * * @since 4.5.8 @@ -231,7 +238,8 @@ - (instancetype)initForClient:(PubNub *)client; * * @since 4.5.15 */ -- (void)updateStateTo:(PNSubscriberState)state withStatus:(PNSubscribeStatus *)status +- (void)updateStateTo:(PNSubscriberState)state + withStatus:(PNSubscribeStatus *)status completion:(nullable void(^)(PNStatusCategory category))block; @@ -459,9 +467,9 @@ - (void)clearCacheFromMessagesNewerThan:(NSNumber *)timetoken; * * @param object Reference on object which client should try to store in cache. * @param size Maximum number of objects which can be stored in cache and used during messages - * de-dpublication process. + * de-duplication process. * - * @return \c YES in case if object successfuly stored in cache and object listeners should be + * @return \c YES in case if object successfully stored in cache and object listeners should be * notified about it. * * @since 4.5.8 @@ -496,6 +504,7 @@ - (void)appendSubscriberInformation:(PNStatus *)status; @implementation PNSubscriber +@synthesize restoringAfterNetworkIssues = _restoringAfterNetworkIssues; @synthesize retryTimer = _retryTimer; @synthesize overrideTimeToken = _overrideTimeToken; @synthesize currentTimeToken = _currentTimeToken; @@ -508,7 +517,6 @@ @implementation PNSubscriber #pragma mark - Information - (dispatch_source_t)retryTimer { - __block dispatch_source_t retryTimer = nil; pn_safe_property_read(self.resourceAccessQueue, ^{ @@ -519,7 +527,6 @@ - (dispatch_source_t)retryTimer { } - (void)setRetryTimer:(dispatch_source_t)retryTimer { - pn_safe_property_write(self.resourceAccessQueue, ^{ self->_retryTimer = retryTimer; }); @@ -528,14 +535,28 @@ - (void)setRetryTimer:(dispatch_source_t)retryTimer { #pragma mark - State Information and Manipulation -- (NSArray *)allObjects { +- (BOOL)restoringAfterNetworkIssues { + __block BOOL restoring = NO; + + pn_safe_property_read(self.resourceAccessQueue, ^{ + restoring = self->_restoringAfterNetworkIssues; + }); + return restoring; +} + +- (void)setRestoringAfterNetworkIssues:(BOOL)restoringAfterNetworkIssues { + pn_safe_property_write(self.resourceAccessQueue, ^{ + self->_restoringAfterNetworkIssues = restoringAfterNetworkIssues; + }); +} + +- (NSArray *)allObjects { return [[[self channels] arrayByAddingObjectsFromArray:[self presenceChannels]] arrayByAddingObjectsFromArray:[self channelGroups]]; } - (NSArray *)channels { - __block NSArray *channels = nil; pn_safe_property_read(self.resourceAccessQueue, ^{ @@ -546,7 +567,6 @@ - (void)setRetryTimer:(dispatch_source_t)retryTimer { } - (void)addChannels:(NSArray *)channels { - pn_safe_property_write(self.resourceAccessQueue, ^{ NSArray *channelsOnly = [PNChannel objectsWithOutPresenceFrom:channels]; @@ -561,7 +581,6 @@ - (void)addChannels:(NSArray *)channels { } - (void)removeChannels:(NSArray *)channels { - pn_safe_property_write(self.resourceAccessQueue, ^{ NSSet *channelsSet = [NSSet setWithArray:channels]; [self.presenceChannelsSet minusSet:channelsSet]; @@ -570,7 +589,6 @@ - (void)removeChannels:(NSArray *)channels { } - (NSArray *)channelGroups { - __block NSArray *channelGroups = nil; pn_safe_property_read(self.resourceAccessQueue, ^{ @@ -581,21 +599,18 @@ - (void)removeChannels:(NSArray *)channels { } - (void)addChannelGroups:(NSArray *)groups { - pn_safe_property_write(self.resourceAccessQueue, ^{ [self.channelGroupsSet addObjectsFromArray:groups]; }); } - (void)removeChannelGroups:(NSArray *)groups { - pn_safe_property_write(self.resourceAccessQueue, ^{ [self.channelGroupsSet minusSet:[NSSet setWithArray:groups]]; }); } - (NSArray *)presenceChannels { - __block NSArray *presenceChannels = nil; pn_safe_property_read(self.resourceAccessQueue, ^{ @@ -606,21 +621,18 @@ - (void)removeChannelGroups:(NSArray *)groups { } - (void)addPresenceChannels:(NSArray *)presenceChannels { - pn_safe_property_write(self.resourceAccessQueue, ^{ [self.presenceChannelsSet addObjectsFromArray:presenceChannels]; }); } - (void)removePresenceChannels:(NSArray *)presenceChannels { - pn_safe_property_write(self.resourceAccessQueue, ^{ [self.presenceChannelsSet minusSet:[NSSet setWithArray:presenceChannels]]; }); } - (NSNumber *)currentTimeToken { - __block NSNumber *currentTimeToken = nil; pn_safe_property_read(self.resourceAccessQueue, ^{ @@ -631,14 +643,12 @@ - (NSNumber *)currentTimeToken { } - (void)setCurrentTimeToken:(NSNumber *)currentTimeToken { - pn_safe_property_write(self.resourceAccessQueue, ^{ self->_currentTimeToken = currentTimeToken; }); } - (NSNumber *)lastTimeToken { - __block NSNumber *lastTimeToken = nil; pn_safe_property_read(self.resourceAccessQueue, ^{ @@ -649,14 +659,12 @@ - (NSNumber *)lastTimeToken { } - (void)setLastTimeToken:(NSNumber *)lastTimeToken { - pn_safe_property_write(self.resourceAccessQueue, ^{ self->_lastTimeToken = lastTimeToken; }); } - (NSNumber *)overrideTimeToken { - __block NSNumber *overrideTimeToken = nil; pn_safe_property_read(self.resourceAccessQueue, ^{ @@ -667,14 +675,12 @@ - (NSNumber *)overrideTimeToken { } - (void)setOverrideTimeToken:(NSNumber *)overrideTimeToken { - pn_safe_property_write(self.resourceAccessQueue, ^{ self->_overrideTimeToken = [PNNumber timeTokenFromNumber:overrideTimeToken]; }); } - (NSNumber *)currentTimeTokenRegion { - __block NSNumber *currentTimeTokenRegion = nil; pn_safe_property_read(self.resourceAccessQueue, ^{ @@ -685,14 +691,12 @@ - (NSNumber *)currentTimeTokenRegion { } - (void)setCurrentTimeTokenRegion:(NSNumber *)currentTimeTokenRegion { - pn_safe_property_write(self.resourceAccessQueue, ^{ self->_currentTimeTokenRegion = currentTimeTokenRegion; }); } - (NSNumber *)lastTimeTokenRegion { - __block NSNumber *lastTimeTokenRegion = nil; pn_safe_property_read(self.resourceAccessQueue, ^{ @@ -703,7 +707,6 @@ - (NSNumber *)lastTimeTokenRegion { } - (void)setLastTimeTokenRegion:(NSNumber *)lastTimeTokenRegion { - pn_safe_property_write(self.resourceAccessQueue, ^{ self->_lastTimeTokenRegion = lastTimeTokenRegion; }); @@ -720,7 +723,6 @@ - (void)updateStateTo:(PNSubscriberState)state PNSubscriberState currentState = self->_currentState; BOOL shouldHandleTransition = NO; - // Check whether transit to 'connected' state. if (targetState == PNConnectedSubscriberState) { self.mayRequireSubscriptionRestore = YES; category = PNConnectedCategory; @@ -742,45 +744,39 @@ - (void)updateStateTo:(PNSubscriberState)state category = PNReconnectedCategory; shouldHandleTransition = YES; } - } - // Check whether transit to 'disconnected' or 'unexpected disconnect' state. - else if (targetState == PNDisconnectedSubscriberState || - targetState == PNDisconnectedUnexpectedlySubscriberState) { + } else if (targetState == PNDisconnectedSubscriberState || + targetState == PNDisconnectedUnexpectedlySubscriberState) { - // Check whether client transit from 'connected' -> 'disconnected'/'unexpected disconnect' - // state. - // Also 'unexpected disconnect' -> 'disconnected' transition should be allowed for cases - // when used want to unsubscribe from channel(s) after network went down. + /** + * Check whether client transit from 'connected' -> 'disconnected'/'unexpected disconnect' state. + * Also 'unexpected disconnect' -> 'disconnected' transition should be allowed for cases + * when used want to unsubscribe from channel(s) after network went down. + */ shouldHandleTransition = (currentState == PNInitializedSubscriberState || currentState == PNConnectedSubscriberState || currentState == PNDisconnectedUnexpectedlySubscriberState); - // In case if subscription restore failed after precious unexpected disconnect we should - // handle it. + /** + * In case if subscription restore failed after precious unexpected disconnect we should handle it. + */ shouldHandleTransition = (shouldHandleTransition || (targetState == PNDisconnectedUnexpectedlySubscriberState && targetState == currentState)); category = ((targetState == PNDisconnectedSubscriberState) ? PNDisconnectedCategory : PNUnexpectedDisconnectCategory); self.mayRequireSubscriptionRestore = shouldHandleTransition; - } - // Check whether transit to 'access denied' state. - else if (targetState == PNAccessRightsErrorSubscriberState) { + } else if (targetState == PNAccessRightsErrorSubscriberState) { self.mayRequireSubscriptionRestore = NO; shouldHandleTransition = YES; category = PNAccessDeniedCategory; - } - // Check whether transit to 'malformed filter expression' state. - else if (targetState == PNMalformedFilterExpressionErrorSubscriberState) { + } else if (targetState == PNMalformedFilterExpressionErrorSubscriberState) { // Change state to 'Unexpected disconnect' targetState = PNDisconnectedUnexpectedlySubscriberState; self.mayRequireSubscriptionRestore = NO; shouldHandleTransition = YES; category = PNMalformedFilterExpressionCategory; - } - // Check whether transit to 'request URI too long' state. - else if (targetState == PNPNRequestURITooLongErrorSubscriberState) { + } else if (targetState == PNPNRequestURITooLongErrorSubscriberState) { // Change state to 'Unexpected disconnect' targetState = PNDisconnectedUnexpectedlySubscriberState; @@ -793,8 +789,9 @@ - (void)updateStateTo:(PNSubscriberState)state if (shouldHandleTransition) { self->_currentState = targetState; - // Build status object in case if update has been called as transition between two - // different states. + /** + * Build status object in case if update has been called as transition between two different states. + */ PNStatus *targetStatus = [(PNStatus *)status copy]; if (!targetStatus) { targetStatus = [PNStatus statusForOperation:PNSubscribeOperation @@ -803,16 +800,10 @@ - (void)updateStateTo:(PNSubscriberState)state [targetStatus updateCategory:category]; [self appendSubscriberInformation:targetStatus]; - // Silence static analyzer warnings. - // Code is aware about this case and at the end will simply call on 'nil' object - // method. In most cases if referenced object become 'nil' it mean what there is no - // more need in it and probably whole client instance has been deallocated. - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Warc-repeated-use-of-weak" + [self.client.listenersManager notifyWithBlock:^{ [self.client.listenersManager notifyStatusChange:(PNSubscribeStatus *)targetStatus]; }]; - #pragma clang diagnostic pop } else { category = (status ? status.category : PNUnknownCategory); } @@ -829,13 +820,10 @@ - (void)updateStateTo:(PNSubscriberState)state #pragma mark - Initialization and Configuration + (instancetype)subscriberForClient:(PubNub *)client { - return [[self alloc] initForClient:client]; } - (instancetype)initForClient:(PubNub *)client { - - // Check whether initialization was successful or not. if ((self = [super init])) { _client = client; [_client.logger enableLogLevel:PNAPICallLogLevel]; @@ -854,7 +842,6 @@ - (instancetype)initForClient:(PubNub *)client { } - (void)inheritStateFromSubscriber:(PNSubscriber *)subscriber { - _channelsSet = [subscriber.channelsSet mutableCopy]; _channelGroupsSet = [subscriber.channelGroupsSet mutableCopy]; _presenceChannelsSet = [subscriber.presenceChannelsSet mutableCopy]; @@ -876,7 +863,6 @@ - (void)inheritStateFromSubscriber:(PNSubscriber *)subscriber { #pragma mark - Filtering - (NSString *)filterExpression { - __block NSString *expression = nil; pn_safe_property_read(self.resourceAccessQueue, ^{ @@ -887,7 +873,6 @@ - (NSString *)filterExpression { } - (void)setFilterExpression:(NSString *)filterExpression { - pn_safe_property_write(self.resourceAccessQueue, ^{ self->_filterExpression = [filterExpression copy]; self->_escapedFilterExpression = (filterExpression ? [PNString percentEscapedString:filterExpression] @@ -896,7 +881,6 @@ - (void)setFilterExpression:(NSString *)filterExpression { } - (NSString *)escapedFilterExpression { - __block NSString *expression = nil; pn_safe_property_read(self.resourceAccessQueue, ^{ @@ -914,6 +898,8 @@ - (void)subscribeUsingTimeToken:(NSNumber *)timeToken queryParameters:(NSDictionary *)queryParameters completion:(PNSubscriberCompletionBlock)block { + self.restoringAfterNetworkIssues = NO; + [self subscribe:YES usingTimeToken:timeToken withState:state @@ -928,23 +914,24 @@ - (void)subscribe:(BOOL)initialSubscribe completion:(PNSubscriberCompletionBlock)block; { [self stopRetryTimer]; - - // Silence static analyzer warnings. - // Code is aware about this case and at the end will simply call on 'nil' object method. - // In most cases if referenced object become 'nil' it mean what there is no more need in - // it and probably whole client instance has been deallocated. + + /** + * Silence static analyzer warnings. + * Code is aware about this case and at the end will simply call on 'nil' object method. + * In most cases if referenced object become 'nil' it mean what there is no more need in + * it and probably whole client instance has been deallocated. + */ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Warc-repeated-use-of-weak" if ([self allObjects].count) { - // Storing time token override - self.overrideTimeToken = timeToken; - - // In case if block is passed, it mean what subscription has been requested by user or - // internal logic (like unsubscribe and re-subscribe on the rest of the channels/groups). + if (!self.restoringAfterNetworkIssues) { + self.overrideTimeToken = timeToken; + } + if (initialSubscribe) { - self.mayRequireSubscriptionRestore = NO; - pn_safe_property_write(self.resourceAccessQueue, ^{ + self.mayRequireSubscriptionRestore = NO; + if (self->_currentTimeToken && [self->_currentTimeToken compare:@0] != NSOrderedSame) { self->_lastTimeToken = self->_currentTimeToken; @@ -963,7 +950,6 @@ - (void)subscribe:(BOOL)initialSubscribe } PNRequestParameters *parameters = [self subscribeRequestParametersWithState:state]; - [parameters addQueryParameters:queryParameters]; if (initialSubscribe) { @@ -997,6 +983,8 @@ - (void)subscribe:(BOOL)initialSubscribe self->_currentTimeToken = @0; self->_lastTimeTokenRegion = @(-1); self->_currentTimeTokenRegion = @(-1); + self->_restoringAfterNetworkIssues = NO; + self->_overrideTimeToken = nil; }); if (block) { @@ -1011,6 +999,7 @@ - (void)subscribe:(BOOL)initialSubscribe [self.client cancelSubscribeOperations]; [status updateCategory:category]; + [self.client callBlock:nil status:YES withResult:nil andStatus:status]; }]; } @@ -1018,26 +1007,34 @@ - (void)subscribe:(BOOL)initialSubscribe } - (void)restoreSubscriptionCycleIfRequiredWithCompletion:(PNSubscriberCompletionBlock)block { - + __block BOOL shouldStopRetryTimer; __block BOOL shouldRestore; __block BOOL ableToRestore; + pn_safe_property_read(self.resourceAccessQueue, ^{ - shouldRestore = (self.currentState == PNDisconnectedUnexpectedlySubscriberState && - self.mayRequireSubscriptionRestore); + shouldStopRetryTimer = self.currentState == PNAccessRightsErrorSubscriberState; + shouldRestore = (shouldStopRetryTimer || + (self.currentState == PNDisconnectedUnexpectedlySubscriberState && + self.mayRequireSubscriptionRestore)); ableToRestore = ([self.channelsSet count] || [self.channelGroupsSet count] || [self.presenceChannelsSet count]); }); + if (shouldStopRetryTimer) { + [self stopRetryTimer]; + } + if (shouldRestore && ableToRestore) { - [self subscribeUsingTimeToken:nil withState:nil queryParameters:nil completion:block]; + self.restoringAfterNetworkIssues = YES; + + [self subscribe:YES usingTimeToken:nil withState:nil queryParameters:nil completion:block]; } else if (block) { block(nil); } } - (void)continueSubscriptionCycleIfRequiredWithCompletion:(PNSubscriberCompletionBlock)block { - [self subscribe:NO usingTimeToken:nil withState:nil queryParameters:nil completion:block]; } @@ -1083,10 +1080,12 @@ - (void)unsubscribeFromChannels:(NSArray *)channels subscribeOnRest:(BOOL)subscribeOnRestChannels completion:(nullable PNSubscriberCompletionBlock)block { - // Silence static analyzer warnings. - // Code is aware about this case and at the end will simply call on 'nil' object method. - // In most cases if referenced object become 'nil' it mean what there is no more need in - // it and probably whole client instance has been deallocated. + /** + * Silence static analyzer warnings. + * Code is aware about this case and at the end will simply call on 'nil' object method. + * In most cases if referenced object become 'nil' it mean what there is no more need in + * it and probably whole client instance has been deallocated. + */ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Warc-repeated-use-of-weak" [self.client.clientStateManager removeStateForObjects:channels]; @@ -1120,6 +1119,8 @@ - (void)unsubscribeFromChannels:(NSArray *)channels self->_currentTimeToken = @0; self->_lastTimeTokenRegion = @(-1); self->_currentTimeTokenRegion = @(-1); + self->_restoringAfterNetworkIssues = NO; + self->_overrideTimeToken = nil; }); } @@ -1157,15 +1158,23 @@ - (void)unsubscribeFromChannels:(NSArray *)channels void(^unsubscribeCompletionBlock)(PNStatus *) = ^(PNStatus *status1) { if (shouldInformListener) { - [weakSelf updateStateTo:PNDisconnectedSubscriberState - withStatus:(PNSubscribeStatus *)successStatus completion:updateCompletion]; + PNSubscriberState targetState = PNDisconnectedSubscriberState; + + if (status1.category == PNAccessDeniedCategory) { + targetState = PNAccessRightsErrorSubscriberState; + } + + [weakSelf updateStateTo:targetState + withStatus:(PNSubscribeStatus *)successStatus + completion:updateCompletion]; } else { updateCompletion(successStatus.category); } }; if (!self.client.configuration.shouldSuppressLeaveEvents) { - [self.client processOperation:PNUnsubscribeOperation withParameters:parameters + [self.client processOperation:PNUnsubscribeOperation + withParameters:parameters completionBlock:unsubscribeCompletionBlock]; } else { unsubscribeCompletionBlock(nil); @@ -1191,7 +1200,8 @@ - (void)unsubscribeFromChannels:(NSArray *)channels if (shouldInformListener) { [weakSelf updateStateTo:PNDisconnectedSubscriberState - withStatus:(PNSubscribeStatus *)successStatus completion:updateCompletion]; + withStatus:(PNSubscribeStatus *)successStatus + completion:updateCompletion]; } else { updateCompletion(successStatus.category); } @@ -1201,7 +1211,6 @@ - (void)unsubscribeFromChannels:(NSArray *)channels } - (void)startRetryTimer { - [self stopRetryTimer]; __weak __typeof(self) weakSelf = self; @@ -1220,7 +1229,6 @@ - (void)startRetryTimer { } - (void)stopRetryTimer { - dispatch_source_t timer = [self retryTimer]; if (timer != NULL && dispatch_source_testcancel(timer) == 0) { @@ -1234,7 +1242,6 @@ - (void)stopRetryTimer { #pragma mark - Handlers - (void)handleSubscriptionStatus:(PNSubscribeStatus *)status { - [self stopRetryTimer]; if (!status.isError && status.category != PNCancelledCategory) { @@ -1245,25 +1252,27 @@ - (void)handleSubscriptionStatus:(PNSubscribeStatus *)status { } - (void)handleSuccessSubscriptionStatus:(PNSubscribeStatus *)status { - - // Try fetch time token from passed result/status objects. BOOL isInitialSubscription = ([status.clientRequest.URL.query rangeOfString:@"tt=0"].location != NSNotFound); NSNumber *overrideTimeToken = self.overrideTimeToken; if (status.data.timetoken != nil && status.clientRequest.URL != nil) { - [self handleSubscription:isInitialSubscription timeToken:status.data.timetoken + [self handleSubscription:isInitialSubscription + timeToken:status.data.timetoken region:status.data.region]; } - [self handleLiveFeedEvents:status forInitialSubscription:isInitialSubscription + [self handleLiveFeedEvents:status + forInitialSubscription:isInitialSubscription overrideTimeToken:overrideTimeToken]; - // Because client received new event from service, it can restart reachability timer with - // new interval. + /** + * Because client received new event from service, it can restart reachability timer with new interval. + */ [self.client.heartbeatManager startHeartbeatIfRequired]; if (status.clientRequest.URL != nil && isInitialSubscription) { - [self updateStateTo:PNConnectedSubscriberState withStatus:status + [self updateStateTo:PNConnectedSubscriberState + withStatus:status completion:^(PNStatusCategory category) { [status updateCategory:category]; @@ -1276,27 +1285,19 @@ - (void)handleFailedSubscriptionStatus:(PNSubscribeStatus *)status { PNStatusCategory statusCategory = status.category; - // Silence static analyzer warnings. - // Code is aware about this case and at the end will simply call on 'nil' object method. - // In most cases if referenced object become 'nil' it mean what there is no more need in - // it and probably whole client instance has been deallocated. + /** + * Silence static analyzer warnings. + * Code is aware about this case and at the end will simply call on 'nil' object method. + * In most cases if referenced object become 'nil' it mean what there is no more need in + * it and probably whole client instance has been deallocated. + */ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Warc-repeated-use-of-weak" - // Looks like subscription request has been cancelled. - // Cancelling can happen because of: user changed subscriber sensitive configuration or - // another subscribe/unsubscribe request has been issued. if (statusCategory == PNCancelledCategory) { - - // Stop heartbeat for now and wait further actions. [self.client.heartbeatManager stopHeartbeatIfPossible]; - } - // Looks like processing failed because of another error. - // If there is another subscription/unsubscription operations is waiting client shouldn't - // handle this status yet. - else { - - // Check whether status category declare subscription retry or not. - if (statusCategory == PNAccessDeniedCategory || statusCategory == PNTimeoutCategory || + } else { + if (statusCategory == PNAccessDeniedCategory || + statusCategory == PNTimeoutCategory || statusCategory == PNMalformedFilterExpressionCategory || statusCategory == PNMalformedResponseCategory || statusCategory == PNRequestURITooLongCategory || @@ -1332,11 +1333,7 @@ - (void)handleFailedSubscriptionStatus:(PNSubscribeStatus *)status { } [self updateStateTo:subscriberState withStatus:status completion:nil]; - } - // Looks like client lost connection with internet or has any other connection - // related issues. - else { - + } else { ((PNStatus *)status).requireNetworkAvailabilityCheck = YES; ((PNStatus *)status).automaticallyRetry = YES; ((PNStatus *)status).retryCancelBlock = ^{ @@ -1344,15 +1341,14 @@ - (void)handleFailedSubscriptionStatus:(PNSubscribeStatus *)status { It handled by client configuration. */ }; pn_safe_property_write(self.resourceAccessQueue, ^{ - if (self.client.configuration.shouldTryCatchUpOnSubscriptionRestore) { - if (self->_currentTimeToken && [self->_currentTimeToken compare:@0] != NSOrderedSame) { self->_lastTimeToken = self->_currentTimeToken; self->_currentTimeToken = @0; - } + } + if (self->_currentTimeTokenRegion && [self->_currentTimeTokenRegion compare:@0] != NSOrderedSame && [self->_currentTimeTokenRegion compare:@(-1)] == NSOrderedDescending) { @@ -1360,41 +1356,44 @@ - (void)handleFailedSubscriptionStatus:(PNSubscribeStatus *)status { self->_lastTimeTokenRegion = self->_currentTimeTokenRegion; self->_currentTimeTokenRegion = @(-1); } - } - else { - + } else { self->_currentTimeToken = @0; self->_lastTimeToken = @0; self->_currentTimeTokenRegion = @(-1); self->_lastTimeTokenRegion = @(-1); } }); + [(PNStatus *)status updateCategory:PNUnexpectedDisconnectCategory]; [self.client.heartbeatManager stopHeartbeatIfPossible]; [self updateStateTo:PNDisconnectedUnexpectedlySubscriberState withStatus:status completion:nil]; } } + [self.client callBlock:nil status:YES withResult:nil andStatus:(PNStatus *)status]; #pragma clang diagnostic pop } -- (void)handleSubscription:(BOOL)initialSubscription timeToken:(NSNumber *)timeToken +- (void)handleSubscription:(BOOL)initialSubscription + timeToken:(NSNumber *)timeToken region:(NSNumber *)region { pn_safe_property_write(self.resourceAccessQueue, ^{ - // Whether new time token from response should be applied for next subscription cycle or - // not. + BOOL restoringAfterNetworkIssues = self->_restoringAfterNetworkIssues; + self->_restoringAfterNetworkIssues = NO; BOOL shouldAcceptNewTimeToken = YES; // Whether time token should be overridden despite subscription behaviour configuration. BOOL shouldOverrideTimeToken = (initialSubscription && self->_overrideTimeToken && [self->_overrideTimeToken compare:@0] != NSOrderedSame); - // Silence static analyzer warnings. - // Code is aware about this case and at the end will simply call on 'nil' object method. - // In most cases if referenced object become 'nil' it mean what there is no more need in - // it and probably whole client instance has been deallocated. + /** + * Silence static analyzer warnings. + * Code is aware about this case and at the end will simply call on 'nil' object method. + * In most cases if referenced object become 'nil' it mean what there is no more need in + * it and probably whole client instance has been deallocated. + */ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Warc-repeated-use-of-weak" if (initialSubscription) { @@ -1402,7 +1401,7 @@ - (void)handleSubscription:(BOOL)initialSubscription timeToken:(NSNumber *)timeT // case if there is a few more subscribe requests is waiting for their turn to be sent. BOOL shouldUseLastTimeToken = self.client.configuration.shouldKeepTimeTokenOnListChange; - if (!shouldUseLastTimeToken) { + if (!shouldUseLastTimeToken && restoringAfterNetworkIssues) { shouldUseLastTimeToken = self.client.configuration.shouldTryCatchUpOnSubscriptionRestore; } diff --git a/PubNub/Data/Managers/PNTelemetry.m b/PubNub/Data/Managers/PNTelemetry.m index cc14a684b..9e1174122 100644 --- a/PubNub/Data/Managers/PNTelemetry.m +++ b/PubNub/Data/Managers/PNTelemetry.m @@ -213,13 +213,17 @@ - (NSString *)endpointNameForOperation:(PNOperationType)operationType { NSString *operation = nil; switch (operationType) { - case PNPublishOperation: + case PNPublishOperation: operation = @"pub"; break; + case PNSignalOperation: + operation = @"sig"; + break; case PNHistoryOperation: case PNHistoryForChannelsOperation: case PNHistoryWithActionsOperation: case PNDeleteMessageOperation: + case PNMessageCountOperation: operation = @"hist"; break; case PNUnsubscribeOperation: diff --git a/PubNub/Data/PNConfiguration.m b/PubNub/Data/PNConfiguration.m index a535ae5d2..cadea4b74 100644 --- a/PubNub/Data/PNConfiguration.m +++ b/PubNub/Data/PNConfiguration.m @@ -141,16 +141,11 @@ - (instancetype)initWithPublishKey:(NSString *)publishKey subscribeKey:(NSString accessibilityTo:kSecAttrAccessibleAfterFirstUnlock]; - _deviceID = [[self uniqueDeviceIdentifier] copy]; - - if (NSClassFromString(@"XCTestExpectation")) { - _deviceID = [@"3650F534-FC54-4EE8-884C-EF1B83188BB7" copy]; - } - _origin = [kPNDefaultOrigin copy]; _publishKey = [publishKey copy]; _subscribeKey = [subscribeKey copy]; _uuid = [[self uniqueUserIdentifier] copy]; + _deviceID = [[self uniqueDeviceIdentifier] copy]; _subscribeMaximumIdleTime = kPNDefaultSubscribeMaximumIdleTime; _nonSubscribeRequestTimeout = kPNDefaultNonSubscribeRequestTimeout; _TLSEnabled = kPNDefaultIsTLSEnabled; diff --git a/PubNub/Misc/Helpers/PNDefines.h b/PubNub/Misc/Helpers/PNDefines.h index d9bd8ba4a..37c4ef2bd 100644 --- a/PubNub/Misc/Helpers/PNDefines.h +++ b/PubNub/Misc/Helpers/PNDefines.h @@ -45,4 +45,11 @@ #define PN_OS_UNFAIR_LOCK_AVAILABLE 0 #endif +#define PNWeakify(variable) __weak __typeof(variable) PNWeak_##variable = variable; +#define PNStrongify(variable) \ +_Pragma("clang diagnostic push") \ +_Pragma("clang diagnostic ignored \"-Wshadow\"") \ +__strong __typeof(variable) variable = PNWeak_##variable; \ +_Pragma("clang diagnostic pop") + #endif // PNDefines_h diff --git a/PubNub/Misc/PNConstants.h b/PubNub/Misc/PNConstants.h index d19a6f0cd..e2c81dbbc 100644 --- a/PubNub/Misc/PNConstants.h +++ b/PubNub/Misc/PNConstants.h @@ -15,14 +15,14 @@ #pragma mark General information constants // Stores client library version number -static NSString * const kPNLibraryVersion = @"4.12.0"; +static NSString * const kPNLibraryVersion = @"4.13.0"; // Stores information about SDK codebase -static NSString * const kPNCommit = @"527edf0d149ce120e63d76e3d52be0e64e63a8d6"; +static NSString * const kPNCommit = @"7415dab5abb8c5f83989c6bab4906f81002019b8"; /** - @brief Stores reference on unique identifier which is used to identify \b PubNub client among other - \b PubNub products. + @brief Stores reference on unique identifier which is used to identify  PubNub client among other +  PubNub products. @since 4.5.0 */ diff --git a/PubNub/Network/PNNetwork.m b/PubNub/Network/PNNetwork.m index 71367f359..34a5687ee 100644 --- a/PubNub/Network/PNNetwork.m +++ b/PubNub/Network/PNNetwork.m @@ -290,6 +290,7 @@ - (void)prepareRequiredParameters; * @param requestURL Reference on complete remote resource URL which should be used for request. * @param method Reference on string with HTTP method which should be used to send request. * @param postData Reference on data which should be sent as POST body (if passed). + * @param isDataCompressed Whether POST body has been compressed or not. * * @return Constructed and ready to use request object. * @@ -297,7 +298,8 @@ - (void)prepareRequiredParameters; */ - (NSURLRequest *)requestWithURL:(NSURL *)requestURL method:(NSString *)method - data:(NSData *)postData; + data:(NSData *)postData + compressed:(BOOL)isDataCompressed; /** * @brief Construct data task which should be used to process provided request. @@ -656,34 +658,24 @@ - (instancetype)initForClient:(PubNub *)client #pragma mark - Request helper - (void)appendRequiredParametersTo:(PNRequestParameters *)parameters { - [parameters addPathComponents:self.defaultPathComponents]; [parameters addQueryParameters:self.defaultQueryComponents]; if (parameters.shouldIncludeTelemetry) { [parameters addQueryParameters:[self.client.telemetryManager operationsLatencyForRequest]]; } - - static BOOL isTestEnvironment; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - isTestEnvironment = NSClassFromString(@"XCTestExpectation") != nil; - }); - - if (!isTestEnvironment) { - [parameters addQueryParameter:[[NSUUID UUID] UUIDString] forFieldName:@"requestid"]; - } + + [parameters addQueryParameter:[[NSUUID UUID] UUIDString] forFieldName:@"requestid"]; } - (void)prepareRequiredParameters { - _defaultPathComponents = @{@"{sub-key}": (self.configuration.subscribeKey?: @""), @"{pub-key}": (self.configuration.publishKey?: @"")}; NSMutableDictionary *queryComponents = [@{ @"uuid": [PNString percentEscapedString:(self.configuration.uuid?: @"")], @"deviceid": (self.configuration.deviceID?: @""), @"instanceid": self.client.instanceID, - @"pnsdk":[NSString stringWithFormat:@"PubNub-%@%%2F%@", kPNClientName, kPNLibraryVersion] + @"pnsdk":[NSString stringWithFormat:@"PubNFub-%@%%2F%@", kPNClientName, kPNLibraryVersion] } mutableCopy]; if (self.configuration.authKey.length) { @@ -695,7 +687,8 @@ - (void)prepareRequiredParameters { - (NSURLRequest *)requestWithURL:(NSURL *)requestURL method:(NSString *)method - data:(NSData *)postData { + data:(NSData *)postData + compressed:(BOOL)isDataCompressed { NSURL *fullURL = [NSURL URLWithString:requestURL.absoluteString relativeToURL:self.baseURL]; NSMutableURLRequest *httpRequest = [NSMutableURLRequest requestWithURL:fullURL]; @@ -708,10 +701,14 @@ - (NSURLRequest *)requestWithURL:(NSURL *)requestURL if (postData) { NSMutableDictionary *allHeaders = [httpRequest.allHTTPHeaderFields mutableCopy]; - [allHeaders addEntriesFromDictionary:@{@"Content-Encoding":@"gzip", - @"Content-Type":@"application/json;charset=UTF-8", + [allHeaders addEntriesFromDictionary:@{@"Content-Type":@"application/json;charset=UTF-8", @"Content-Length":[NSString stringWithFormat:@"%@", @(postData.length)]}]; + + if (isDataCompressed) { + allHeaders[@"Content-Encoding"] = @"gzip"; + } + httpRequest.allHTTPHeaderFields = allHeaders; [httpRequest setHTTPBody:postData]; } @@ -867,7 +864,8 @@ - (void)processOperation:(PNOperationType)operationType __weak __typeof(self) weakSelf = self; NSURLRequest *request = [self requestWithURL:requestURL method:parameters.HTTPMethod - data:data]; + data:data + compressed:parameters.isPOSTBodyCompressed]; NSURLSessionDataTask *task = [self dataTaskWithRequest:request forOperation:operationType success:^(NSURLSessionDataTask *completedTask, @@ -1030,7 +1028,8 @@ - (NSInteger)packetSizeForOperation:(PNOperationType)operationType if (requestURL) { NSURLRequest *request = [self requestWithURL:requestURL method:parameters.HTTPMethod - data:data]; + data:data + compressed:parameters.isPOSTBodyCompressed]; size = [PNURLRequest packetSizeForRequest:request]; } diff --git a/PubNub/Network/PNRequestParameters.h b/PubNub/Network/PNRequestParameters.h index cd1491fc9..e17deea86 100644 --- a/PubNub/Network/PNRequestParameters.h +++ b/PubNub/Network/PNRequestParameters.h @@ -38,10 +38,17 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic, readonly, assign, getter = shouldIncludeTelemetry) BOOL includeTelemetry; /** - * @brief Kkey/value pairs which should be expanded in query string. + * @brief Key/value pairs which should be expanded in query string. */ @property (nonatomic, nullable, readonly) NSDictionary *query; +/** + * @brief Whether passed request parameters represent compressed POST body or not. + * + * @since 4.13.0 + */ +@property (nonatomic, assign, getter=isPOSTBodyCompressed) BOOL POSTBodyCompressed; + #pragma mark - Path components manipulation diff --git a/PubNub/Network/Parsers/PNErrorParser.m b/PubNub/Network/Parsers/PNErrorParser.m index b1898bba1..23b289025 100644 --- a/PubNub/Network/Parsers/PNErrorParser.m +++ b/PubNub/Network/Parsers/PNErrorParser.m @@ -92,6 +92,11 @@ + (BOOL)requireAdditionalData { } processedResponse = errorData; + } else if ([response isKindOfClass:[NSArray class]]) { + // Signals API error handling. + if (((NSArray *)response).count == 3) { + processedResponse = @{ @"information": (NSArray *)response[1] }; + } } return processedResponse; diff --git a/PubNub/Network/Requests/Objects/PNBaseObjectsRequest.m b/PubNub/Network/Requests/Objects/PNBaseObjectsRequest.m index 4c5391285..059c0a5e3 100644 --- a/PubNub/Network/Requests/Objects/PNBaseObjectsRequest.m +++ b/PubNub/Network/Requests/Objects/PNBaseObjectsRequest.m @@ -157,11 +157,12 @@ - (void)addIncludedFields:(NSArray *)fields toRequest:(PNRequestParameters *)requestParameters { NSString *include = [requestParameters query][@"include"]; - NSMutableArray *includeFields = [[include componentsSeparatedByString:@","] ?: @[] mutableCopy]; + NSArray *existingFields = [include componentsSeparatedByString:@","] ?: @[]; + NSMutableSet *includeFields = [NSMutableSet setWithArray:existingFields]; [includeFields addObjectsFromArray:fields]; [requestParameters removeQueryParameterWithFieldName:@"include"]; - [requestParameters addQueryParameter:[includeFields componentsJoinedByString:@","] + [requestParameters addQueryParameter:[includeFields.allObjects componentsJoinedByString:@","] forFieldName:@"include"]; } diff --git a/PubNub/Network/Requests/Objects/PNObjectsPaginatedRequest.h b/PubNub/Network/Requests/Objects/PNObjectsPaginatedRequest.h index 9183f1815..45636e0f8 100644 --- a/PubNub/Network/Requests/Objects/PNObjectsPaginatedRequest.h +++ b/PubNub/Network/Requests/Objects/PNObjectsPaginatedRequest.h @@ -27,6 +27,23 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic, assign, getter = shouldIncludeCount) BOOL includeCount NS_SWIFT_NAME(includeCount); +/** + * @brief Results sorting order. + * + * @discussion List of criteria (name of field) which should be used for sorting in ascending order. + * To change sorting order, append \c :asc (for ascending) or \c :desc (descending) to field name. + * + * @since 4.13.0 + */ +@property (nonatomic, nullable, strong) NSArray *sort; + +/** + * @brief Expression to filter out results basing on specified criteria. + * + * @since 4.13.0 + */ +@property (nonatomic, nullable, copy) NSString *filter; + /** * @brief Previously-returned cursor bookmark for fetching the next page. */ diff --git a/PubNub/Network/Requests/Objects/PNObjectsPaginatedRequest.m b/PubNub/Network/Requests/Objects/PNObjectsPaginatedRequest.m index 4603f64d0..2a97a078d 100644 --- a/PubNub/Network/Requests/Objects/PNObjectsPaginatedRequest.m +++ b/PubNub/Network/Requests/Objects/PNObjectsPaginatedRequest.m @@ -6,6 +6,7 @@ */ #import "PNObjectsPaginatedRequest.h" #import "PNRequest+Private.h" +#import "PNHelpers.h" #pragma mark Interface implementation @@ -25,6 +26,22 @@ - (PNRequestParameters *)requestParameters { if (self.limit > 0) { [parameters addQueryParameter:@(self.limit).stringValue forFieldName:@"limit"]; } + + if (self.sort.count > 0) { + NSMutableArray *percentEncodedSort = [NSMutableArray new]; + + for (NSString *criteria in self.sort) { + [percentEncodedSort addObject:[PNString percentEscapedString:criteria]]; + } + + [parameters addQueryParameter:[percentEncodedSort componentsJoinedByString:@","] + forFieldName:@"sort"]; + } + + if (self.filter.length > 0) { + [parameters addQueryParameter:[PNString percentEscapedString:self.filter] + forFieldName:@"filter"]; + } if (self.start.length) { [parameters addQueryParameter:self.start forFieldName:@"start"]; diff --git a/PubNub/Network/Requests/Push Notifications/PNBasePushNotificationsRequest.m b/PubNub/Network/Requests/Push Notifications/PNBasePushNotificationsRequest.m index 55242f88e..eb6ca6d15 100644 --- a/PubNub/Network/Requests/Push Notifications/PNBasePushNotificationsRequest.m +++ b/PubNub/Network/Requests/Push Notifications/PNBasePushNotificationsRequest.m @@ -82,7 +82,7 @@ - (PNRequestParameters *)requestParameters { if (self.pushType == PNAPNS2Push) { NSString *environment = self.environment == PNAPNSDevelopment ? @"development" : @"production"; - NSString *topic = self.topic ?: NSBundle.mainBundle.bundleIdentifier; + NSString *topic = self.topic.length ? self.topic : NSBundle.mainBundle.bundleIdentifier; [parameters addQueryParameter:environment forFieldName:@"environment"]; [parameters addQueryParameter:topic forFieldName:@"topic"]; diff --git a/README.md b/README.md index 28a264103..79f83c292 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# PubNub 4.12.0 for iOS 9+ +# PubNub 4.13.0 for iOS 9+ [![Twitter](https://img.shields.io/badge/twitter-%40PubNub-blue.svg?style=flat)](https://twitter.com/PubNub) [![Twitter Releases](https://img.shields.io/badge/twitter-%40PubNubRelease-blue.svg?style=flat)](https://twitter.com/PubNubRelease) [![License](https://img.shields.io/github/license/pubnub/objective-c.svg?style=flat)](https://img.shields.io/github/license/pubnub/objective-c.svg) @@ -6,7 +6,7 @@ [![Carthage compatible](https://img.shields.io/badge/Carthage-compatible-4BC51D.svg?style=flat)](https://github.com/Carthage/Carthage) [![Platform](https://img.shields.io/cocoapods/p/PubNub.svg?style=flat)](https://img.shields.io/cocoapods/p/PubNub.svg) [![Docs Coverage](https://img.shields.io/cocoapods/metrics/doc-percent/PubNub.svg?style=flat)](https://img.shields.io/cocoapods/metrics/doc-percent/PubNub.svg) -[![Build Status](https://img.shields.io/travis/pubnub/objective-c/master.svg?style=flat)](https://travis-ci.org/pubnub/objective-c) +[![Build Status](https://travis-ci.org/pubnub/objective-c?branch=master)](https://travis-ci.org/pubnub/objective-c) ## Please direct all Support Questions and Concerns to Support@PubNub.com ## Complete Docs Check out our [official docs page](http://www.pubnub.com/docs/ios-objective-c/pubnub-objective-c-sdk-v4) diff --git a/Rakefile b/Rakefile deleted file mode 100644 index f9fef935f..000000000 --- a/Rakefile +++ /dev/null @@ -1,152 +0,0 @@ -include FileUtils::Verbose -require 'json' - -namespace :test do - - task :prepare do - puts 'Start' - end - - desc "Run the PubNub Tests for iOS" - task :ios => :prepare do - destinations = get_sims_for_run('iOS') - final_exit_status = 0 - destinations.each { |destination| - puts '**********************************' - puts destination - puts '**********************************' - sleep(5) - run_tests('iOS Tests (ObjC)', 'iphonesimulator', destination) - tests_failed('iOS') unless $?.success? - } - end - - desc "Run the PubNub Tests for watchOS" - task :watchos => :prepare do - destinations = get_sims_for_run('watchOS') - final_exit_status = 0 - destinations.each { |destination| - puts '**********************************' - puts destination - puts '**********************************' - sleep(5) - run_tests('watchOS Tests (ObjC)', 'watchsimulator', destination) - tests_failed('watchOS') unless $?.success? - } - end - - desc "Run the PubNub Tests for tvOS" - task :tvos => :prepare do - destinations = get_sims_for_run('tvOS') - final_exit_status = 0 - destinations.each { |destination| - puts '**********************************' - puts destination - puts '**********************************' - sleep(5) - run_tests('tvOS Tests (ObjC)', 'appletvsimulator', destination) - tests_failed('tvOS') unless $?.success? - } - end - - desc "Run the PubNub Tests for Mac OS X" - task :osx => :prepare do - run_tests('OSX Tests (ObjC)', 'macosx', 'platform=OS X,arch=x86_64') - tests_failed('OSX') unless $?.success? - end -end - -desc "Run the PubNub Tests for iOS & Mac OS X" -task :test do - Rake::Task['test:ios'].invoke - # Rake::Task['test:watchos'].invoke - Rake::Task['test:tvos'].invoke - Rake::Task['test:osx'].invoke if is_mavericks_or_above -end - -task :default => 'test' - - -private - -def run_tests(scheme, sdk, destination) - sim_destination = "-destination \'#{destination}\'" - sh("xcodebuild -workspace PubNub.xcworkspace -scheme '#{scheme}' -sdk '#{sdk}' #{sim_destination} -configuration 'Release' clean test | xcpretty -tc ; exit ${PIPESTATUS[0]}") rescue nil -end - -def is_mavericks_or_above - osx_version = `sw_vers -productVersion`.chomp - Gem::Version.new(osx_version) >= Gem::Version.new('10.9') -end - -def tests_failed(platform) - puts red("#{platform} unit tests failed") - exit $?.exitstatus -end - -def red(string) - "\033[0;31m! #{string} \033[0m" -end - -def get_sims_for_run(platform) - simulators = get_simulators platform - destinations = Array.new - simulators.each { |runtime, available_simulators| - available_simulators.each { |simulator| - destinations.push("platform=#{platform} Simulator,OS=#{runtime},name=#{simulator}") - } - } - return destinations -end - -def get_simulators(platform) - minimum_runtime_versions = {'iOS' => '9.0', 'watchOS' => '2.0', 'tvOS' => '9.1'} - return get_simulators_by_platform(platform, minimum_runtime_versions[platform]) -end - -def get_simulators_by_platform(platform, minimum_supported_runtime) - devices = JSON.parse(`xcrun simctl list -j`) - simulators = Hash.new - devices['devices'].each { |os, simulators_list| - if os.start_with?(platform) - runtime = os.split(' ')[1] - next if Gem::Version.new(runtime) < Gem::Version.new(minimum_supported_runtime) - simulators[runtime] = Array.new unless simulators.key?(runtime) - simulators_list.each { |simulator| - next unless simulator['availability'] == '(available)' && !simulator['name'].start_with?('Resizable') - simulators[runtime] << simulator['name'] - } - simulators[runtime].uniq! - end - } - puts "Test targets for #{platform}\n#{test_targets_info_table(simulators, platform)}" - simulators -end - -def test_targets_info_table(sim, platform) - index_col_name = 'Target name / runtime' - runtimes = sim.keys.sort! { |x, y| Gem::Version.new(x) <=> Gem::Version.new(y) } - runtime_names = runtimes.map { |runtime| "#{platform} #{runtime}" } - names = (sim.values.flatten.uniq || sim.values.flatten).sort_by!(&:length) - name_col_width = (Array.new(names) << index_col_name).sort_by(&:length).last.length + 2 - runtime_col_width = runtime_names.sort_by(&:length).last.length + 2 - column_names = runtime_names.insert(0, index_col_name) - separator = '+' - column_names.each_index { |index| - separator << ''.ljust((index == 0 ? name_col_width : runtime_col_width), '-') << ((index == column_names.length - 1) ? "+\n" : '+') - } - table = separator.dup - rows = names.insert(0, index_col_name) - rows.map! { |value| - is_header = value == rows.first - row = '|' - column_names.each_index { |index| - col_value = (value == rows.first ? column_names[index] : (index == 0 ? value : sim[runtimes[index-1]].include?(value) ? '+' : '-')) - left_offset = (((index == 0 ? name_col_width : runtime_col_width) - col_value.length) * 0.5).round - right_offset = (index == 0 ? name_col_width : runtime_col_width) - col_value.length - left_offset - row << ''.ljust(left_offset, ' ') << col_value << ''.ljust(right_offset, ' ') << ((index == column_names.length - 1) ? "|\n" : '|') - } - row - } - table << rows.join("#{separator}") << separator -end diff --git a/Support/Fabric/Headers/FABAttributes.h b/Support/Fabric/Headers/FABAttributes.h deleted file mode 100644 index e35f9ce37..000000000 --- a/Support/Fabric/Headers/FABAttributes.h +++ /dev/null @@ -1,60 +0,0 @@ -// -// FABAttributes.h -// Fabric -// -// Copyright (C) 2015 Twitter, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -#pragma once - -#define FAB_UNAVAILABLE(x) __attribute__((unavailable(x))) - -#if __has_feature(nullability) - #define fab_nullable nullable - #define fab_nonnull nonnull - #define fab_null_unspecified null_unspecified - #define fab_null_resettable null_resettable - #define __fab_nullable __nullable - #define __fab_nonnull __nonnull - #define __fab_null_unspecified __null_unspecified -#else - #define fab_nullable - #define fab_nonnull - #define fab_null_unspecified - #define fab_null_resettable - #define __fab_nullable - #define __fab_nonnull - #define __fab_null_unspecified -#endif - -#ifndef NS_ASSUME_NONNULL_BEGIN - #define NS_ASSUME_NONNULL_BEGIN -#endif - -#ifndef NS_ASSUME_NONNULL_END - #define NS_ASSUME_NONNULL_END -#endif - - -/** - * The following macros are defined here to provide - * backwards compatability. If you are still using - * them you should migrate to the new versions that - * are defined above. - */ -#define FAB_NONNULL __fab_nonnull -#define FAB_NULLABLE __fab_nullable -#define FAB_START_NONNULL NS_ASSUME_NONNULL_BEGIN -#define FAB_END_NONNULL NS_ASSUME_NONNULL_END diff --git a/Support/Fabric/Headers/FABKitProtocol.h b/Support/Fabric/Headers/FABKitProtocol.h deleted file mode 100644 index f24ab4bd0..000000000 --- a/Support/Fabric/Headers/FABKitProtocol.h +++ /dev/null @@ -1,59 +0,0 @@ -// -// FABKitProtocol.h -// Fabric -// -// Copyright (C) 2015 Twitter, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -#import - -/** - * Protocol that a class in a Fabric Kit must conform to to provide information to Fabric at runtime. - */ -@protocol FABKit - -@required - -/** - * Required. The globally unique identifier of the Kit. - * We encourage the use of reverse-DNS notation. - * Example: @"io.fabric.sdk.ios" - */ -+ (NSString *)bundleIdentifier; - -/** - * Required. Must return the current version of the Kit that is being used at runtime. - * We encourage the use of semantic versioning (http://semver.org/), without prefixing the version with a "v". - * This is commonly referred to as the "marketing version". - * Example: @"1.2.3" - */ -+ (NSString *)kitDisplayVersion; - -@optional - -/** - * The build version of the kit. Should be monotonically increasing and unique. - * Example: 137 - */ -+ (NSString *)kitBuildVersion; - -/** - * Perform any necessary initialization. - * This method will be invoked on the Kit when the user calls +[Fabric initializeKits]. - * @note This method being called does not necessarily imply that the developer has started using the Kit yet. - */ -+ (void)initializeIfNeeded; - -@end diff --git a/Support/Fabric/Headers/Fabric+FABKits.h b/Support/Fabric/Headers/Fabric+FABKits.h deleted file mode 100644 index 5493ceb73..000000000 --- a/Support/Fabric/Headers/Fabric+FABKits.h +++ /dev/null @@ -1,38 +0,0 @@ -// -// Fabric+FABKits.h -// Fabric -// -// Copyright (C) 2015 Twitter, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -#import "Fabric.h" - -@protocol FABKit; -// Use this category for methods that kits can call on Fabric. -@interface Fabric (FABKits) - -/** - * Returns a dictionary containing the kit configuration info for the provided kit. - * The configuration information is parsed from the application's Info.plist. This - * method is primarily intended to be used by kits to retrieve their configuration. - * - * @param kitClass The class of the kit whose configuration should be returned. - * It should conform to the FABKit protocol. - * - * @return A dictionary containing kit specific configuration information or nil if none exists. - */ -+ (fab_nonnull NSDictionary *)configurationDictionaryForKitClass:(fab_nonnull Class)kitClass; - -@end diff --git a/Support/Fabric/Headers/Fabric.h b/Support/Fabric/Headers/Fabric.h deleted file mode 100644 index f3c2425ff..000000000 --- a/Support/Fabric/Headers/Fabric.h +++ /dev/null @@ -1,67 +0,0 @@ -// -// Fabric.h -// Fabric -// -// Copyright (C) 2015 Twitter, Inc. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. -// - -#import -#import "FABAttributes.h" - -NS_ASSUME_NONNULL_BEGIN - -/** - * Fabric Base. Coordinates configuration and starts all provided kits. - */ -@interface Fabric : NSObject - -/** - * Initialize Fabric and all provided kits. Call this method within your App Delegate's `application:didFinishLaunchingWithOptions:` and provide the kits you wish to use. - * - * For example, in Objective-C: - * - * `[Fabric with:@[[Crashlytics class], [Twitter class], [Digits class], [MoPub class]]];` - * - * Swift: - * - * `Fabric.with([Crashlytics.self(), Twitter.self(), Digits.self(), MoPub.self()])` - * - * Only the first call to this method is honored. Subsequent calls are no-ops. - * - * @param kitClasses An array of kit Class objects - * - * @return Returns the shared Fabric instance. In most cases this can be ignored. - */ -+ (instancetype)with:(NSArray *)kitClasses; - -/** - * Returns the Fabric singleton object. - */ -+ (instancetype)sharedSDK; - -/** - * This BOOL enables or disables debug logging, such as kit version information. The default value is NO. - */ -@property (nonatomic, assign) BOOL debug; - -/** - * Unavailable. Use `+sharedSDK` to retrieve the shared Fabric instance. - */ -- (id)init FAB_UNAVAILABLE("Use +sharedSDK to retrieve the shared Fabric instance."); - -@end - -NS_ASSUME_NONNULL_END - diff --git a/Support/Fabric/Headers/PubNub.h b/Support/Fabric/Headers/PubNub.h deleted file mode 100644 index e105eedcf..000000000 --- a/Support/Fabric/Headers/PubNub.h +++ /dev/null @@ -1,69 +0,0 @@ -/** - * @author Serhii Mamontov - * @version 4.10.1 - * @since 4.8.4 - * @copyright © 2010-2019 PubNub, Inc. - */ -#import - - -//! Project version number for PubNub. -FOUNDATION_EXPORT double PubNubVersionNumber; - -//! Project version string for PubNub. -FOUNDATION_EXPORT const unsigned char PubNubVersionString[]; - - -// Protocols -#import "PNObjectEventListener.h" - -// Categories -#import "NSURLSessionConfiguration+PNConfiguration.h" - -// Data objects -#import "PNPresenceChannelGroupHereNowResult.h" -#import "PNChannelGroupClientStateResult.h" -#import "PNPresenceChannelHereNowResult.h" -#import "PNPresenceGlobalHereNowResult.h" -#import "PNChannelGroupChannelsResult.h" -#import "PNAPNSEnabledChannelsResult.h" -#import "PNChannelClientStateResult.h" -#import "PNClientStateUpdateStatus.h" -#import "PNPresenceWhereNowResult.h" -#import "PNAcknowledgmentStatus.h" -#import "PNClientStateGetResult.h" -#import "PNChannelGroupsResult.h" -#import "PNMessageCountResult.h" -#import "PNClientInformation.h" -#import "PNSubscriberResults.h" -#import "PNSubscribeStatus.h" -#import "PNPublishStatus.h" -#import "PNHistoryResult.h" -#import "PNSignalStatus.h" -#import "PNServiceData.h" -#import "PNErrorStatus.h" -#import "PNTimeResult.h" -#import "PNResult.h" -#import "PNStatus.h" - -// API -#import "PubNub+Core.h" -#import "PubNub+ChannelGroup.h" -#import "PubNub+Subscribe.h" -#import "PNConfiguration.h" -#import "PubNub+Presence.h" -#import "PubNub+Publish.h" -#import "PubNub+History.h" -#import "PubNub+Objects.h" -#import "PubNub+State.h" -#import "PNErrorCodes.h" -#import "PNStructures.h" -#import "PubNub+APNS.h" -#import "PubNub+Time.h" -#import "PNLLogger.h" -#import "PNResult.h" -#import "PNStatus.h" -#import "PNAES.h" - -// Fabric -#import "PubNub+FAB.h" diff --git a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step1/Podfile b/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step1/Podfile deleted file mode 100644 index 282a2f6c8..000000000 --- a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step1/Podfile +++ /dev/null @@ -1,20 +0,0 @@ -source 'git@github.com:parfeon/pubnub-private-pods-repo.git' -source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '8.0' -use_frameworks! -pod "PubNubBridge" - -post_install do |installer_representation| - installer_representation.pods_project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings['GCC_INSTRUMENT_PROGRAM_FLOW_ARCS'] = 'NO' - config.build_settings['GCC_GENERATE_TEST_COVERAGE_FILES'] = 'NO' - if target.name == "CocoaLumberjack" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - if target.name == "OHHTTPStubs" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - end - end -end \ No newline at end of file diff --git a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step1/PushNotificationsFeatureObjC.xcodeproj/project.pbxproj b/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step1/PushNotificationsFeatureObjC.xcodeproj/project.pbxproj deleted file mode 100644 index b0d975d26..000000000 --- a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step1/PushNotificationsFeatureObjC.xcodeproj/project.pbxproj +++ /dev/null @@ -1,346 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 79ADF8F61BACA96100D00123 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 79ADF8F51BACA96100D00123 /* main.m */; }; - 79ADF8F91BACA96100D00123 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 79ADF8F81BACA96100D00123 /* AppDelegate.m */; }; - BAA3754EE60C61CA6E0A130D /* Pods.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E46A9A750EA65BBE6B2577DD /* Pods.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 1A72204E6C2889FD8B15A53D /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; - 79ADF8F11BACA96100D00123 /* PushNotificationsFeatureObjC.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PushNotificationsFeatureObjC.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 79ADF8F51BACA96100D00123 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 79ADF8F71BACA96100D00123 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; - 79ADF8F81BACA96100D00123 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - 79ADF9051BACA96100D00123 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 9F3DD27990C36C7C315A0A62 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; - E46A9A750EA65BBE6B2577DD /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 79ADF8EE1BACA96100D00123 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - BAA3754EE60C61CA6E0A130D /* Pods.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 79ADF8E81BACA96100D00123 = { - isa = PBXGroup; - children = ( - 79ADF8F31BACA96100D00123 /* PushNotificationsFeatureObjC */, - 79ADF8F21BACA96100D00123 /* Products */, - 96AFF50667FE99308081F5B5 /* Pods */, - F1EB74A08A2AC4A57B8C0B9D /* Frameworks */, - ); - sourceTree = ""; - }; - 79ADF8F21BACA96100D00123 /* Products */ = { - isa = PBXGroup; - children = ( - 79ADF8F11BACA96100D00123 /* PushNotificationsFeatureObjC.app */, - ); - name = Products; - sourceTree = ""; - }; - 79ADF8F31BACA96100D00123 /* PushNotificationsFeatureObjC */ = { - isa = PBXGroup; - children = ( - 79ADF8F71BACA96100D00123 /* AppDelegate.h */, - 79ADF8F81BACA96100D00123 /* AppDelegate.m */, - 79ADF9051BACA96100D00123 /* Info.plist */, - 79ADF8F41BACA96100D00123 /* Supporting Files */, - ); - path = PushNotificationsFeatureObjC; - sourceTree = ""; - }; - 79ADF8F41BACA96100D00123 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 79ADF8F51BACA96100D00123 /* main.m */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - 96AFF50667FE99308081F5B5 /* Pods */ = { - isa = PBXGroup; - children = ( - 9F3DD27990C36C7C315A0A62 /* Pods.debug.xcconfig */, - 1A72204E6C2889FD8B15A53D /* Pods.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; - F1EB74A08A2AC4A57B8C0B9D /* Frameworks */ = { - isa = PBXGroup; - children = ( - E46A9A750EA65BBE6B2577DD /* Pods.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 79ADF8F01BACA96100D00123 /* PushNotificationsFeatureObjC */ = { - isa = PBXNativeTarget; - buildConfigurationList = 79ADF9081BACA96100D00123 /* Build configuration list for PBXNativeTarget "PushNotificationsFeatureObjC" */; - buildPhases = ( - D715506243642E0A5EDB4B16 /* Check Pods Manifest.lock */, - 79ADF8ED1BACA96100D00123 /* Sources */, - 79ADF8EE1BACA96100D00123 /* Frameworks */, - 79ADF8EF1BACA96100D00123 /* Resources */, - 3FBB322D3F3693DF1D4D807F /* Embed Pods Frameworks */, - F99CCC026037CF973693720E /* Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = PushNotificationsFeatureObjC; - productName = PushNotificationsFeatureObjC; - productReference = 79ADF8F11BACA96100D00123 /* PushNotificationsFeatureObjC.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 79ADF8E91BACA96100D00123 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0700; - ORGANIZATIONNAME = PubNub; - TargetAttributes = { - 79ADF8F01BACA96100D00123 = { - CreatedOnToolsVersion = 7.0; - }; - }; - }; - buildConfigurationList = 79ADF8EC1BACA96100D00123 /* Build configuration list for PBXProject "PushNotificationsFeatureObjC" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 79ADF8E81BACA96100D00123; - productRefGroup = 79ADF8F21BACA96100D00123 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 79ADF8F01BACA96100D00123 /* PushNotificationsFeatureObjC */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 79ADF8EF1BACA96100D00123 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 3FBB322D3F3693DF1D4D807F /* Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - D715506243642E0A5EDB4B16 /* Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - F99CCC026037CF973693720E /* Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 79ADF8ED1BACA96100D00123 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 79ADF8F91BACA96100D00123 /* AppDelegate.m in Sources */, - 79ADF8F61BACA96100D00123 /* main.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 79ADF9061BACA96100D00123 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - }; - name = Debug; - }; - 79ADF9071BACA96100D00123 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 79ADF9091BACA96100D00123 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9F3DD27990C36C7C315A0A62 /* Pods.debug.xcconfig */; - buildSettings = { - INFOPLIST_FILE = PushNotificationsFeatureObjC/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.PushNotificationsFeatureObjC; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 79ADF90A1BACA96100D00123 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 1A72204E6C2889FD8B15A53D /* Pods.release.xcconfig */; - buildSettings = { - INFOPLIST_FILE = PushNotificationsFeatureObjC/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.PushNotificationsFeatureObjC; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 79ADF8EC1BACA96100D00123 /* Build configuration list for PBXProject "PushNotificationsFeatureObjC" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 79ADF9061BACA96100D00123 /* Debug */, - 79ADF9071BACA96100D00123 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 79ADF9081BACA96100D00123 /* Build configuration list for PBXNativeTarget "PushNotificationsFeatureObjC" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 79ADF9091BACA96100D00123 /* Debug */, - 79ADF90A1BACA96100D00123 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 79ADF8E91BACA96100D00123 /* Project object */; -} diff --git a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step1/PushNotificationsFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step1/PushNotificationsFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 4ce60ceb4..000000000 --- a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step1/PushNotificationsFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step1/PushNotificationsFeatureObjC/AppDelegate.h b/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step1/PushNotificationsFeatureObjC/AppDelegate.h deleted file mode 100644 index 20e76883b..000000000 --- a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step1/PushNotificationsFeatureObjC/AppDelegate.h +++ /dev/null @@ -1,13 +0,0 @@ -#import - - -/** - @author Sergey Mamontov - @copyright © 2009-2015 PubNub, Inc. - */ -@interface AppDelegate : UIResponder - -@property (strong, nonatomic) UIWindow *window; - -@end - diff --git a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step1/PushNotificationsFeatureObjC/AppDelegate.m b/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step1/PushNotificationsFeatureObjC/AppDelegate.m deleted file mode 100644 index 28e3925ed..000000000 --- a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step1/PushNotificationsFeatureObjC/AppDelegate.m +++ /dev/null @@ -1,42 +0,0 @@ -/*fabric:start-text*/ -// Register the application for remote push notifications and handle registration request results. -/*fabric:end-text*/ -/** - @author Sergey Mamontov - @copyright © 2009-2015 PubNub, Inc. - */ -/*fabric:start-code*/ -#import "AppDelegate.h" - - -@implementation AppDelegate - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { - - /*fabric:start-highlight*/ - UIUserNotificationType types = (UIUserNotificationTypeBadge | UIUserNotificationTypeSound | - UIUserNotificationTypeAlert); - UIUserNotificationSettings *mySettings = [UIUserNotificationSettings settingsForTypes:types categories:nil]; - - // In iOS 8, this is when the user receives a system prompt for notifications in your app - [[UIApplication sharedApplication] registerUserNotificationSettings:mySettings]; - [[UIApplication sharedApplication] registerForRemoteNotifications]; - /*fabric:end-highlight*/ - - return YES; -} - -/*fabric:start-highlight*/ -- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { - - // We have our devide push token now. -} - -- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error { - - // Something went wrong and you better to look into error description. -} -/*fabric:end-highlight*/ - -@end -/*fabric:end-code*/ diff --git a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step1/PushNotificationsFeatureObjC/Info.plist b/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step1/PushNotificationsFeatureObjC/Info.plist deleted file mode 100644 index fb4115c84..000000000 --- a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step1/PushNotificationsFeatureObjC/Info.plist +++ /dev/null @@ -1,36 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step1/PushNotificationsFeatureObjC/main.m b/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step1/PushNotificationsFeatureObjC/main.m deleted file mode 100644 index f48f588b5..000000000 --- a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step1/PushNotificationsFeatureObjC/main.m +++ /dev/null @@ -1,16 +0,0 @@ -// -// main.m -// PushNotificationsFeatureObjC -// -// Created by Sergey Mamontov on 9/18/15. -// Copyright © 2015 PubNub. All rights reserved. -// - -#import -#import "AppDelegate.h" - -int main(int argc, char * argv[]) { - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); - } -} diff --git a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step2/Podfile b/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step2/Podfile deleted file mode 100644 index 282a2f6c8..000000000 --- a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step2/Podfile +++ /dev/null @@ -1,20 +0,0 @@ -source 'git@github.com:parfeon/pubnub-private-pods-repo.git' -source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '8.0' -use_frameworks! -pod "PubNubBridge" - -post_install do |installer_representation| - installer_representation.pods_project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings['GCC_INSTRUMENT_PROGRAM_FLOW_ARCS'] = 'NO' - config.build_settings['GCC_GENERATE_TEST_COVERAGE_FILES'] = 'NO' - if target.name == "CocoaLumberjack" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - if target.name == "OHHTTPStubs" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - end - end -end \ No newline at end of file diff --git a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step2/PushNotificationsFeatureObjC.xcodeproj/project.pbxproj b/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step2/PushNotificationsFeatureObjC.xcodeproj/project.pbxproj deleted file mode 100644 index b0d975d26..000000000 --- a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step2/PushNotificationsFeatureObjC.xcodeproj/project.pbxproj +++ /dev/null @@ -1,346 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 79ADF8F61BACA96100D00123 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 79ADF8F51BACA96100D00123 /* main.m */; }; - 79ADF8F91BACA96100D00123 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 79ADF8F81BACA96100D00123 /* AppDelegate.m */; }; - BAA3754EE60C61CA6E0A130D /* Pods.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E46A9A750EA65BBE6B2577DD /* Pods.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 1A72204E6C2889FD8B15A53D /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; - 79ADF8F11BACA96100D00123 /* PushNotificationsFeatureObjC.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PushNotificationsFeatureObjC.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 79ADF8F51BACA96100D00123 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 79ADF8F71BACA96100D00123 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; - 79ADF8F81BACA96100D00123 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - 79ADF9051BACA96100D00123 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 9F3DD27990C36C7C315A0A62 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; - E46A9A750EA65BBE6B2577DD /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 79ADF8EE1BACA96100D00123 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - BAA3754EE60C61CA6E0A130D /* Pods.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 79ADF8E81BACA96100D00123 = { - isa = PBXGroup; - children = ( - 79ADF8F31BACA96100D00123 /* PushNotificationsFeatureObjC */, - 79ADF8F21BACA96100D00123 /* Products */, - 96AFF50667FE99308081F5B5 /* Pods */, - F1EB74A08A2AC4A57B8C0B9D /* Frameworks */, - ); - sourceTree = ""; - }; - 79ADF8F21BACA96100D00123 /* Products */ = { - isa = PBXGroup; - children = ( - 79ADF8F11BACA96100D00123 /* PushNotificationsFeatureObjC.app */, - ); - name = Products; - sourceTree = ""; - }; - 79ADF8F31BACA96100D00123 /* PushNotificationsFeatureObjC */ = { - isa = PBXGroup; - children = ( - 79ADF8F71BACA96100D00123 /* AppDelegate.h */, - 79ADF8F81BACA96100D00123 /* AppDelegate.m */, - 79ADF9051BACA96100D00123 /* Info.plist */, - 79ADF8F41BACA96100D00123 /* Supporting Files */, - ); - path = PushNotificationsFeatureObjC; - sourceTree = ""; - }; - 79ADF8F41BACA96100D00123 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 79ADF8F51BACA96100D00123 /* main.m */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - 96AFF50667FE99308081F5B5 /* Pods */ = { - isa = PBXGroup; - children = ( - 9F3DD27990C36C7C315A0A62 /* Pods.debug.xcconfig */, - 1A72204E6C2889FD8B15A53D /* Pods.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; - F1EB74A08A2AC4A57B8C0B9D /* Frameworks */ = { - isa = PBXGroup; - children = ( - E46A9A750EA65BBE6B2577DD /* Pods.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 79ADF8F01BACA96100D00123 /* PushNotificationsFeatureObjC */ = { - isa = PBXNativeTarget; - buildConfigurationList = 79ADF9081BACA96100D00123 /* Build configuration list for PBXNativeTarget "PushNotificationsFeatureObjC" */; - buildPhases = ( - D715506243642E0A5EDB4B16 /* Check Pods Manifest.lock */, - 79ADF8ED1BACA96100D00123 /* Sources */, - 79ADF8EE1BACA96100D00123 /* Frameworks */, - 79ADF8EF1BACA96100D00123 /* Resources */, - 3FBB322D3F3693DF1D4D807F /* Embed Pods Frameworks */, - F99CCC026037CF973693720E /* Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = PushNotificationsFeatureObjC; - productName = PushNotificationsFeatureObjC; - productReference = 79ADF8F11BACA96100D00123 /* PushNotificationsFeatureObjC.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 79ADF8E91BACA96100D00123 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0700; - ORGANIZATIONNAME = PubNub; - TargetAttributes = { - 79ADF8F01BACA96100D00123 = { - CreatedOnToolsVersion = 7.0; - }; - }; - }; - buildConfigurationList = 79ADF8EC1BACA96100D00123 /* Build configuration list for PBXProject "PushNotificationsFeatureObjC" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 79ADF8E81BACA96100D00123; - productRefGroup = 79ADF8F21BACA96100D00123 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 79ADF8F01BACA96100D00123 /* PushNotificationsFeatureObjC */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 79ADF8EF1BACA96100D00123 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 3FBB322D3F3693DF1D4D807F /* Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - D715506243642E0A5EDB4B16 /* Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - F99CCC026037CF973693720E /* Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 79ADF8ED1BACA96100D00123 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 79ADF8F91BACA96100D00123 /* AppDelegate.m in Sources */, - 79ADF8F61BACA96100D00123 /* main.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 79ADF9061BACA96100D00123 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - }; - name = Debug; - }; - 79ADF9071BACA96100D00123 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 79ADF9091BACA96100D00123 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9F3DD27990C36C7C315A0A62 /* Pods.debug.xcconfig */; - buildSettings = { - INFOPLIST_FILE = PushNotificationsFeatureObjC/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.PushNotificationsFeatureObjC; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 79ADF90A1BACA96100D00123 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 1A72204E6C2889FD8B15A53D /* Pods.release.xcconfig */; - buildSettings = { - INFOPLIST_FILE = PushNotificationsFeatureObjC/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.PushNotificationsFeatureObjC; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 79ADF8EC1BACA96100D00123 /* Build configuration list for PBXProject "PushNotificationsFeatureObjC" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 79ADF9061BACA96100D00123 /* Debug */, - 79ADF9071BACA96100D00123 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 79ADF9081BACA96100D00123 /* Build configuration list for PBXNativeTarget "PushNotificationsFeatureObjC" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 79ADF9091BACA96100D00123 /* Debug */, - 79ADF90A1BACA96100D00123 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 79ADF8E91BACA96100D00123 /* Project object */; -} diff --git a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step2/PushNotificationsFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step2/PushNotificationsFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 4ce60ceb4..000000000 --- a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step2/PushNotificationsFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step2/PushNotificationsFeatureObjC/AppDelegate.h b/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step2/PushNotificationsFeatureObjC/AppDelegate.h deleted file mode 100644 index 20e76883b..000000000 --- a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step2/PushNotificationsFeatureObjC/AppDelegate.h +++ /dev/null @@ -1,13 +0,0 @@ -#import - - -/** - @author Sergey Mamontov - @copyright © 2009-2015 PubNub, Inc. - */ -@interface AppDelegate : UIResponder - -@property (strong, nonatomic) UIWindow *window; - -@end - diff --git a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step2/PushNotificationsFeatureObjC/AppDelegate.m b/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step2/PushNotificationsFeatureObjC/AppDelegate.m deleted file mode 100644 index 5e08abea4..000000000 --- a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step2/PushNotificationsFeatureObjC/AppDelegate.m +++ /dev/null @@ -1,69 +0,0 @@ -/*fabric:start-text*/ -// Initialize the PubNub client and enable push notifications on channels to receive updates while the application is inactive. -/*fabric:end-text*/ -/** - @author Sergey Mamontov - @copyright © 2009-2015 PubNub, Inc. - */ -/*fabric:start-code*/ -#import "AppDelegate.h" -/*fabric:start-highlight*/ -#import -#import -/*fabric:end-highlight*/ - - -@interface AppDelegate () - -/*fabric:start-highlight*/ -@property (nonatomic, strong) PubNub *client; -/*fabric:end-highlight*/ - -@end - - -@implementation AppDelegate - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { - - /*fabric:start-highlight*/ - self.client = [PubNub client]; - /*fabric:end-highlight*/ - UIUserNotificationType types = (UIUserNotificationTypeBadge | UIUserNotificationTypeSound | - UIUserNotificationTypeAlert); - UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:types categories:nil]; - [[UIApplication sharedApplication] registerUserNotificationSettings:settings]; - [[UIApplication sharedApplication] registerForRemoteNotifications]; - - return YES; -} - -- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken { - - /*fabric:start-highlight*/ - [self.client addPushNotificationsOnChannels:@[@"announcements"] withDevicePushToken:deviceToken - andCompletion:^(PNAcknowledgmentStatus *status) { - - // Check whether request successfully completed or not. - if (!status.isError) { - - // Handle successful push notification enabling on passed channels. - } - // Request processing failed. - else { - - // Handle modification error. Check 'category' property to find out possible issue because - // of which request did fail. - // - // Request can be resent using: [status retry]; - } - }]; - /*fabric:end-highlight*/ -} - -- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error { - -} - -@end -/*fabric:end-code*/ diff --git a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step2/PushNotificationsFeatureObjC/Info.plist b/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step2/PushNotificationsFeatureObjC/Info.plist deleted file mode 100644 index fb4115c84..000000000 --- a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step2/PushNotificationsFeatureObjC/Info.plist +++ /dev/null @@ -1,36 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step2/PushNotificationsFeatureObjC/main.m b/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step2/PushNotificationsFeatureObjC/main.m deleted file mode 100644 index f48f588b5..000000000 --- a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureObjC/Step2/PushNotificationsFeatureObjC/main.m +++ /dev/null @@ -1,16 +0,0 @@ -// -// main.m -// PushNotificationsFeatureObjC -// -// Created by Sergey Mamontov on 9/18/15. -// Copyright © 2015 PubNub. All rights reserved. -// - -#import -#import "AppDelegate.h" - -int main(int argc, char * argv[]) { - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); - } -} diff --git a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureSwift/Step1/Podfile b/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureSwift/Step1/Podfile deleted file mode 100644 index 282a2f6c8..000000000 --- a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureSwift/Step1/Podfile +++ /dev/null @@ -1,20 +0,0 @@ -source 'git@github.com:parfeon/pubnub-private-pods-repo.git' -source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '8.0' -use_frameworks! -pod "PubNubBridge" - -post_install do |installer_representation| - installer_representation.pods_project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings['GCC_INSTRUMENT_PROGRAM_FLOW_ARCS'] = 'NO' - config.build_settings['GCC_GENERATE_TEST_COVERAGE_FILES'] = 'NO' - if target.name == "CocoaLumberjack" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - if target.name == "OHHTTPStubs" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - end - end -end \ No newline at end of file diff --git a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureSwift/Step1/PushNotificationsFeatureSwift.xcodeproj/project.pbxproj b/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureSwift/Step1/PushNotificationsFeatureSwift.xcodeproj/project.pbxproj deleted file mode 100644 index e45606cf9..000000000 --- a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureSwift/Step1/PushNotificationsFeatureSwift.xcodeproj/project.pbxproj +++ /dev/null @@ -1,333 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 79ADF9181BACAC7000D00123 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79ADF9171BACAC7000D00123 /* AppDelegate.swift */; }; - D97C2E8BAB1602BF60C1B415 /* Pods.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 27FEC4F1597107477E2FE61A /* Pods.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 27FEC4F1597107477E2FE61A /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 754A7F3A3B365E07256EC148 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; - 79ADF9141BACAC7000D00123 /* PushNotificationsFeatureSwift.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PushNotificationsFeatureSwift.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 79ADF9171BACAC7000D00123 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 79ADF9231BACAC7000D00123 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - B42D2E56CE460EEE457EEC96 /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 79ADF9111BACAC7000D00123 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - D97C2E8BAB1602BF60C1B415 /* Pods.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 4EEDD561BB97D3A3BEB4470B /* Pods */ = { - isa = PBXGroup; - children = ( - 754A7F3A3B365E07256EC148 /* Pods.debug.xcconfig */, - B42D2E56CE460EEE457EEC96 /* Pods.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; - 79ADF90B1BACAC7000D00123 = { - isa = PBXGroup; - children = ( - 79ADF9161BACAC7000D00123 /* PushNotificationsFeatureSwift */, - 79ADF9151BACAC7000D00123 /* Products */, - 4EEDD561BB97D3A3BEB4470B /* Pods */, - F3442ACB510D5AAFF5D1E6BC /* Frameworks */, - ); - sourceTree = ""; - }; - 79ADF9151BACAC7000D00123 /* Products */ = { - isa = PBXGroup; - children = ( - 79ADF9141BACAC7000D00123 /* PushNotificationsFeatureSwift.app */, - ); - name = Products; - sourceTree = ""; - }; - 79ADF9161BACAC7000D00123 /* PushNotificationsFeatureSwift */ = { - isa = PBXGroup; - children = ( - 79ADF9171BACAC7000D00123 /* AppDelegate.swift */, - 79ADF9231BACAC7000D00123 /* Info.plist */, - ); - path = PushNotificationsFeatureSwift; - sourceTree = ""; - }; - F3442ACB510D5AAFF5D1E6BC /* Frameworks */ = { - isa = PBXGroup; - children = ( - 27FEC4F1597107477E2FE61A /* Pods.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 79ADF9131BACAC7000D00123 /* PushNotificationsFeatureSwift */ = { - isa = PBXNativeTarget; - buildConfigurationList = 79ADF9261BACAC7000D00123 /* Build configuration list for PBXNativeTarget "PushNotificationsFeatureSwift" */; - buildPhases = ( - 39CB8C89B19E461D17437BF2 /* Check Pods Manifest.lock */, - 79ADF9101BACAC7000D00123 /* Sources */, - 79ADF9111BACAC7000D00123 /* Frameworks */, - 79ADF9121BACAC7000D00123 /* Resources */, - B3EC2136075659B52AEC7DF6 /* Embed Pods Frameworks */, - 44B3153CEEFCF3FBBA5A681F /* Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = PushNotificationsFeatureSwift; - productName = PushNotificationsFeatureSwift; - productReference = 79ADF9141BACAC7000D00123 /* PushNotificationsFeatureSwift.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 79ADF90C1BACAC7000D00123 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0700; - ORGANIZATIONNAME = PubNub; - TargetAttributes = { - 79ADF9131BACAC7000D00123 = { - CreatedOnToolsVersion = 7.0; - }; - }; - }; - buildConfigurationList = 79ADF90F1BACAC7000D00123 /* Build configuration list for PBXProject "PushNotificationsFeatureSwift" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 79ADF90B1BACAC7000D00123; - productRefGroup = 79ADF9151BACAC7000D00123 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 79ADF9131BACAC7000D00123 /* PushNotificationsFeatureSwift */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 79ADF9121BACAC7000D00123 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 39CB8C89B19E461D17437BF2 /* Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - 44B3153CEEFCF3FBBA5A681F /* Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - B3EC2136075659B52AEC7DF6 /* Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 79ADF9101BACAC7000D00123 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 79ADF9181BACAC7000D00123 /* AppDelegate.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 79ADF9241BACAC7000D00123 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 79ADF9251BACAC7000D00123 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 79ADF9271BACAC7000D00123 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 754A7F3A3B365E07256EC148 /* Pods.debug.xcconfig */; - buildSettings = { - INFOPLIST_FILE = PushNotificationsFeatureSwift/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.PushNotificationsFeatureSwift; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 79ADF9281BACAC7000D00123 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = B42D2E56CE460EEE457EEC96 /* Pods.release.xcconfig */; - buildSettings = { - INFOPLIST_FILE = PushNotificationsFeatureSwift/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.PushNotificationsFeatureSwift; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 79ADF90F1BACAC7000D00123 /* Build configuration list for PBXProject "PushNotificationsFeatureSwift" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 79ADF9241BACAC7000D00123 /* Debug */, - 79ADF9251BACAC7000D00123 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 79ADF9261BACAC7000D00123 /* Build configuration list for PBXNativeTarget "PushNotificationsFeatureSwift" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 79ADF9271BACAC7000D00123 /* Debug */, - 79ADF9281BACAC7000D00123 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 79ADF90C1BACAC7000D00123 /* Project object */; -} diff --git a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureSwift/Step1/PushNotificationsFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureSwift/Step1/PushNotificationsFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 9c1e8f699..000000000 --- a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureSwift/Step1/PushNotificationsFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureSwift/Step1/PushNotificationsFeatureSwift/AppDelegate.swift b/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureSwift/Step1/PushNotificationsFeatureSwift/AppDelegate.swift deleted file mode 100644 index 06d50eb62..000000000 --- a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureSwift/Step1/PushNotificationsFeatureSwift/AppDelegate.swift +++ /dev/null @@ -1,41 +0,0 @@ -/*fabric:start-text*/ -// Register the application for remote push notifications and handle registration request results. -/*fabric:end-text*/ -/** -@author Sergey Mamontov -@copyright © 2009-2015 PubNub, Inc. -*/ -/*fabric:start-code*/ -import UIKit - - -@UIApplicationMain -class AppDelegate: UIResponder, UIApplicationDelegate { - - var window: UIWindow? - - func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { - - /*fabric:start-highlight*/ - let settings = UIUserNotificationSettings(forTypes: [.Badge, .Sound, .Alert], categories: nil) - UIApplication.sharedApplication().registerUserNotificationSettings(settings) - UIApplication.sharedApplication().registerForRemoteNotifications() - /*fabric:end-highlight*/ - - return true - } - - /*fabric:start-highlight*/ - func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) { - - // We have our devide push token now. - } - - func application(application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: NSError) { - - // Something went wrong and you better to look into error description. - } - /*fabric:end-highlight*/ -} -/*fabric:end-code*/ - diff --git a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureSwift/Step1/PushNotificationsFeatureSwift/Info.plist b/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureSwift/Step1/PushNotificationsFeatureSwift/Info.plist deleted file mode 100644 index fb4115c84..000000000 --- a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureSwift/Step1/PushNotificationsFeatureSwift/Info.plist +++ /dev/null @@ -1,36 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureSwift/Step2/Podfile b/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureSwift/Step2/Podfile deleted file mode 100644 index 282a2f6c8..000000000 --- a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureSwift/Step2/Podfile +++ /dev/null @@ -1,20 +0,0 @@ -source 'git@github.com:parfeon/pubnub-private-pods-repo.git' -source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '8.0' -use_frameworks! -pod "PubNubBridge" - -post_install do |installer_representation| - installer_representation.pods_project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings['GCC_INSTRUMENT_PROGRAM_FLOW_ARCS'] = 'NO' - config.build_settings['GCC_GENERATE_TEST_COVERAGE_FILES'] = 'NO' - if target.name == "CocoaLumberjack" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - if target.name == "OHHTTPStubs" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - end - end -end \ No newline at end of file diff --git a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureSwift/Step2/PushNotificationsFeatureSwift.xcodeproj/project.pbxproj b/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureSwift/Step2/PushNotificationsFeatureSwift.xcodeproj/project.pbxproj deleted file mode 100644 index e45606cf9..000000000 --- a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureSwift/Step2/PushNotificationsFeatureSwift.xcodeproj/project.pbxproj +++ /dev/null @@ -1,333 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 79ADF9181BACAC7000D00123 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79ADF9171BACAC7000D00123 /* AppDelegate.swift */; }; - D97C2E8BAB1602BF60C1B415 /* Pods.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 27FEC4F1597107477E2FE61A /* Pods.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 27FEC4F1597107477E2FE61A /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 754A7F3A3B365E07256EC148 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; - 79ADF9141BACAC7000D00123 /* PushNotificationsFeatureSwift.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PushNotificationsFeatureSwift.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 79ADF9171BACAC7000D00123 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 79ADF9231BACAC7000D00123 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - B42D2E56CE460EEE457EEC96 /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 79ADF9111BACAC7000D00123 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - D97C2E8BAB1602BF60C1B415 /* Pods.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 4EEDD561BB97D3A3BEB4470B /* Pods */ = { - isa = PBXGroup; - children = ( - 754A7F3A3B365E07256EC148 /* Pods.debug.xcconfig */, - B42D2E56CE460EEE457EEC96 /* Pods.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; - 79ADF90B1BACAC7000D00123 = { - isa = PBXGroup; - children = ( - 79ADF9161BACAC7000D00123 /* PushNotificationsFeatureSwift */, - 79ADF9151BACAC7000D00123 /* Products */, - 4EEDD561BB97D3A3BEB4470B /* Pods */, - F3442ACB510D5AAFF5D1E6BC /* Frameworks */, - ); - sourceTree = ""; - }; - 79ADF9151BACAC7000D00123 /* Products */ = { - isa = PBXGroup; - children = ( - 79ADF9141BACAC7000D00123 /* PushNotificationsFeatureSwift.app */, - ); - name = Products; - sourceTree = ""; - }; - 79ADF9161BACAC7000D00123 /* PushNotificationsFeatureSwift */ = { - isa = PBXGroup; - children = ( - 79ADF9171BACAC7000D00123 /* AppDelegate.swift */, - 79ADF9231BACAC7000D00123 /* Info.plist */, - ); - path = PushNotificationsFeatureSwift; - sourceTree = ""; - }; - F3442ACB510D5AAFF5D1E6BC /* Frameworks */ = { - isa = PBXGroup; - children = ( - 27FEC4F1597107477E2FE61A /* Pods.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 79ADF9131BACAC7000D00123 /* PushNotificationsFeatureSwift */ = { - isa = PBXNativeTarget; - buildConfigurationList = 79ADF9261BACAC7000D00123 /* Build configuration list for PBXNativeTarget "PushNotificationsFeatureSwift" */; - buildPhases = ( - 39CB8C89B19E461D17437BF2 /* Check Pods Manifest.lock */, - 79ADF9101BACAC7000D00123 /* Sources */, - 79ADF9111BACAC7000D00123 /* Frameworks */, - 79ADF9121BACAC7000D00123 /* Resources */, - B3EC2136075659B52AEC7DF6 /* Embed Pods Frameworks */, - 44B3153CEEFCF3FBBA5A681F /* Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = PushNotificationsFeatureSwift; - productName = PushNotificationsFeatureSwift; - productReference = 79ADF9141BACAC7000D00123 /* PushNotificationsFeatureSwift.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 79ADF90C1BACAC7000D00123 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0700; - ORGANIZATIONNAME = PubNub; - TargetAttributes = { - 79ADF9131BACAC7000D00123 = { - CreatedOnToolsVersion = 7.0; - }; - }; - }; - buildConfigurationList = 79ADF90F1BACAC7000D00123 /* Build configuration list for PBXProject "PushNotificationsFeatureSwift" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 79ADF90B1BACAC7000D00123; - productRefGroup = 79ADF9151BACAC7000D00123 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 79ADF9131BACAC7000D00123 /* PushNotificationsFeatureSwift */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 79ADF9121BACAC7000D00123 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 39CB8C89B19E461D17437BF2 /* Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - 44B3153CEEFCF3FBBA5A681F /* Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - B3EC2136075659B52AEC7DF6 /* Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 79ADF9101BACAC7000D00123 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 79ADF9181BACAC7000D00123 /* AppDelegate.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 79ADF9241BACAC7000D00123 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 79ADF9251BACAC7000D00123 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 79ADF9271BACAC7000D00123 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 754A7F3A3B365E07256EC148 /* Pods.debug.xcconfig */; - buildSettings = { - INFOPLIST_FILE = PushNotificationsFeatureSwift/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.PushNotificationsFeatureSwift; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 79ADF9281BACAC7000D00123 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = B42D2E56CE460EEE457EEC96 /* Pods.release.xcconfig */; - buildSettings = { - INFOPLIST_FILE = PushNotificationsFeatureSwift/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.PushNotificationsFeatureSwift; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 79ADF90F1BACAC7000D00123 /* Build configuration list for PBXProject "PushNotificationsFeatureSwift" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 79ADF9241BACAC7000D00123 /* Debug */, - 79ADF9251BACAC7000D00123 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 79ADF9261BACAC7000D00123 /* Build configuration list for PBXNativeTarget "PushNotificationsFeatureSwift" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 79ADF9271BACAC7000D00123 /* Debug */, - 79ADF9281BACAC7000D00123 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 79ADF90C1BACAC7000D00123 /* Project object */; -} diff --git a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureSwift/Step2/PushNotificationsFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureSwift/Step2/PushNotificationsFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 9c1e8f699..000000000 --- a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureSwift/Step2/PushNotificationsFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureSwift/Step2/PushNotificationsFeatureSwift/AppDelegate.swift b/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureSwift/Step2/PushNotificationsFeatureSwift/AppDelegate.swift deleted file mode 100644 index 6749b1b75..000000000 --- a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureSwift/Step2/PushNotificationsFeatureSwift/AppDelegate.swift +++ /dev/null @@ -1,64 +0,0 @@ -/*fabric:start-text*/ -// Initialize the PubNub client and enable push notifications on channels to receive updates while the application is inactive. -/*fabric:end-text*/ -/** -@author Sergey Mamontov -@copyright © 2009-2015 PubNub, Inc. -*/ -/*fabric:start-code*/ -import UIKit -/*fabric:start-highlight*/ -import PubNub -import PubNubBridge -/*fabric:end-highlight*/ - - -@UIApplicationMain -class AppDelegate: UIResponder, UIApplicationDelegate { - - var window: UIWindow? - /*fabric:start-highlight*/ - var client: PubNub? - /*fabric:end-highlight*/ - - func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { - - /*fabric:start-highlight*/ - self.client = PubNub.client() - /*fabric:end-highlight*/ - let settings = UIUserNotificationSettings(forTypes: [.Badge, .Sound, .Alert], categories: nil) - UIApplication.sharedApplication().registerUserNotificationSettings(settings) - UIApplication.sharedApplication().registerForRemoteNotifications() - - return true - } - - func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) { - - /*fabric:start-highlight*/ - self.client?.addPushNotificationsOnChannels(["announcements"], withDevicePushToken: deviceToken, - andCompletion: { (status) -> Void in - - if !status.error { - - // Handle successful push notification enabling on passed channels. - } - else { - - // Handle modification error. Check 'category' property - // to find out possible reason because of which request did fail. - // Review 'errorData' property (which has PNErrorData data type) of status - // object to get additional information about issue. - // - // Request can be resent using: status.retry() - } - }) - /*fabric:end-highlight*/ - } - - func application(application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: NSError) { - - } -} -/*fabric:end-code*/ - diff --git a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureSwift/Step2/PushNotificationsFeatureSwift/Info.plist b/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureSwift/Step2/PushNotificationsFeatureSwift/Info.plist deleted file mode 100644 index fb4115c84..000000000 --- a/Support/Fabric/doc-sources/Features/APNS/PushNotificationsFeatureSwift/Step2/PushNotificationsFeatureSwift/Info.plist +++ /dev/null @@ -1,36 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step1/DataStreamControllerFeatureObjC.xcodeproj/project.pbxproj b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step1/DataStreamControllerFeatureObjC.xcodeproj/project.pbxproj deleted file mode 100644 index 014f71da4..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step1/DataStreamControllerFeatureObjC.xcodeproj/project.pbxproj +++ /dev/null @@ -1,346 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 7902D89C1BAD6CD300AA1341 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 7902D89B1BAD6CD300AA1341 /* main.m */; }; - 7902D89F1BAD6CD300AA1341 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7902D89E1BAD6CD300AA1341 /* AppDelegate.m */; }; - F1AA48F2859E596E74686C33 /* Pods.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3442E2BB85BFAC3D6C24CD7 /* Pods.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 5EBD6480B46142E2BC9177F3 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; - 7902D8971BAD6CD300AA1341 /* DataStreamControllerFeatureObjC.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DataStreamControllerFeatureObjC.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 7902D89B1BAD6CD300AA1341 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 7902D89D1BAD6CD300AA1341 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; - 7902D89E1BAD6CD300AA1341 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - 7902D8AB1BAD6CD300AA1341 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - A3442E2BB85BFAC3D6C24CD7 /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - FFE694099BE9F8D12120A000 /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 7902D8941BAD6CD300AA1341 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - F1AA48F2859E596E74686C33 /* Pods.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 4616D2438A093C10463535C8 /* Frameworks */ = { - isa = PBXGroup; - children = ( - A3442E2BB85BFAC3D6C24CD7 /* Pods.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 7902D88E1BAD6CD300AA1341 = { - isa = PBXGroup; - children = ( - 7902D8991BAD6CD300AA1341 /* DataStreamControllerFeatureObjC */, - 7902D8981BAD6CD300AA1341 /* Products */, - A45E685880ECD5546F525141 /* Pods */, - 4616D2438A093C10463535C8 /* Frameworks */, - ); - sourceTree = ""; - }; - 7902D8981BAD6CD300AA1341 /* Products */ = { - isa = PBXGroup; - children = ( - 7902D8971BAD6CD300AA1341 /* DataStreamControllerFeatureObjC.app */, - ); - name = Products; - sourceTree = ""; - }; - 7902D8991BAD6CD300AA1341 /* DataStreamControllerFeatureObjC */ = { - isa = PBXGroup; - children = ( - 7902D89D1BAD6CD300AA1341 /* AppDelegate.h */, - 7902D89E1BAD6CD300AA1341 /* AppDelegate.m */, - 7902D8AB1BAD6CD300AA1341 /* Info.plist */, - 7902D89A1BAD6CD300AA1341 /* Supporting Files */, - ); - path = DataStreamControllerFeatureObjC; - sourceTree = ""; - }; - 7902D89A1BAD6CD300AA1341 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 7902D89B1BAD6CD300AA1341 /* main.m */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - A45E685880ECD5546F525141 /* Pods */ = { - isa = PBXGroup; - children = ( - 5EBD6480B46142E2BC9177F3 /* Pods.debug.xcconfig */, - FFE694099BE9F8D12120A000 /* Pods.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 7902D8961BAD6CD300AA1341 /* DataStreamControllerFeatureObjC */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7902D8AE1BAD6CD300AA1341 /* Build configuration list for PBXNativeTarget "DataStreamControllerFeatureObjC" */; - buildPhases = ( - 5B896DFEFDF879349EBB6232 /* Check Pods Manifest.lock */, - 7902D8931BAD6CD300AA1341 /* Sources */, - 7902D8941BAD6CD300AA1341 /* Frameworks */, - 7902D8951BAD6CD300AA1341 /* Resources */, - B986EACEB3C88D4463A523A1 /* Embed Pods Frameworks */, - 9AC7C17619CF5B5626B96125 /* Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = DataStreamControllerFeatureObjC; - productName = DataStreamControllerFeatureObjC; - productReference = 7902D8971BAD6CD300AA1341 /* DataStreamControllerFeatureObjC.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 7902D88F1BAD6CD300AA1341 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0700; - ORGANIZATIONNAME = PubNub; - TargetAttributes = { - 7902D8961BAD6CD300AA1341 = { - CreatedOnToolsVersion = 7.0; - }; - }; - }; - buildConfigurationList = 7902D8921BAD6CD300AA1341 /* Build configuration list for PBXProject "DataStreamControllerFeatureObjC" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 7902D88E1BAD6CD300AA1341; - productRefGroup = 7902D8981BAD6CD300AA1341 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 7902D8961BAD6CD300AA1341 /* DataStreamControllerFeatureObjC */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 7902D8951BAD6CD300AA1341 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 5B896DFEFDF879349EBB6232 /* Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - 9AC7C17619CF5B5626B96125 /* Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - B986EACEB3C88D4463A523A1 /* Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 7902D8931BAD6CD300AA1341 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 7902D89F1BAD6CD300AA1341 /* AppDelegate.m in Sources */, - 7902D89C1BAD6CD300AA1341 /* main.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 7902D8AC1BAD6CD300AA1341 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - }; - name = Debug; - }; - 7902D8AD1BAD6CD300AA1341 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 7902D8AF1BAD6CD300AA1341 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 5EBD6480B46142E2BC9177F3 /* Pods.debug.xcconfig */; - buildSettings = { - INFOPLIST_FILE = DataStreamControllerFeatureObjC/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.DataStreamControllerFeatureObjC; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 7902D8B01BAD6CD300AA1341 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FFE694099BE9F8D12120A000 /* Pods.release.xcconfig */; - buildSettings = { - INFOPLIST_FILE = DataStreamControllerFeatureObjC/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.DataStreamControllerFeatureObjC; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 7902D8921BAD6CD300AA1341 /* Build configuration list for PBXProject "DataStreamControllerFeatureObjC" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7902D8AC1BAD6CD300AA1341 /* Debug */, - 7902D8AD1BAD6CD300AA1341 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 7902D8AE1BAD6CD300AA1341 /* Build configuration list for PBXNativeTarget "DataStreamControllerFeatureObjC" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7902D8AF1BAD6CD300AA1341 /* Debug */, - 7902D8B01BAD6CD300AA1341 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 7902D88F1BAD6CD300AA1341 /* Project object */; -} diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step1/DataStreamControllerFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step1/DataStreamControllerFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index fb87d9846..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step1/DataStreamControllerFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step1/DataStreamControllerFeatureObjC/AppDelegate.h b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step1/DataStreamControllerFeatureObjC/AppDelegate.h deleted file mode 100644 index 20e76883b..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step1/DataStreamControllerFeatureObjC/AppDelegate.h +++ /dev/null @@ -1,13 +0,0 @@ -#import - - -/** - @author Sergey Mamontov - @copyright © 2009-2015 PubNub, Inc. - */ -@interface AppDelegate : UIResponder - -@property (strong, nonatomic) UIWindow *window; - -@end - diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step1/DataStreamControllerFeatureObjC/AppDelegate.m b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step1/DataStreamControllerFeatureObjC/AppDelegate.m deleted file mode 100644 index 19ad744f6..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step1/DataStreamControllerFeatureObjC/AppDelegate.m +++ /dev/null @@ -1,41 +0,0 @@ -/*fabric:start-text*/ -// Configure the client and channel group with set of channels. -/*fabric:end-text*/ -/** - @author Sergey Mamontov - @copyright © 2009-2015 PubNub, Inc. - */ -/*fabric:start-code*/ -#import "AppDelegate.h" -/*fabric:start-highlight*/ -#import -#import -/*fabric:end-highlight*/ - - -@interface AppDelegate () - -/*fabric:start-highlight*/ -@property (nonatomic, strong) PubNub *client; -/*fabric:end-highlight*/ - -@end - - -@implementation AppDelegate - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { - - /*fabric:start-highlight*/ - self.client = [PubNub client]; - [self.client addChannels:@[@"announcements", @"lobby"] toGroup:@"tradeshow" - withCompletion:^(PNAcknowledgmentStatus *status) { - - }]; - /*fabric:end-highlight*/ - - return YES; -} - -@end -/*fabric:end-code*/ diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step1/DataStreamControllerFeatureObjC/Info.plist b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step1/DataStreamControllerFeatureObjC/Info.plist deleted file mode 100644 index fb4115c84..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step1/DataStreamControllerFeatureObjC/Info.plist +++ /dev/null @@ -1,36 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step1/DataStreamControllerFeatureObjC/main.m b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step1/DataStreamControllerFeatureObjC/main.m deleted file mode 100644 index 1bac403cf..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step1/DataStreamControllerFeatureObjC/main.m +++ /dev/null @@ -1,16 +0,0 @@ -// -// main.m -// DataStreamControllerFeatureObjC -// -// Created by Sergey Mamontov on 9/19/15. -// Copyright © 2015 PubNub. All rights reserved. -// - -#import -#import "AppDelegate.h" - -int main(int argc, char * argv[]) { - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); - } -} diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step1/Podfile b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step1/Podfile deleted file mode 100644 index 282a2f6c8..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step1/Podfile +++ /dev/null @@ -1,20 +0,0 @@ -source 'git@github.com:parfeon/pubnub-private-pods-repo.git' -source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '8.0' -use_frameworks! -pod "PubNubBridge" - -post_install do |installer_representation| - installer_representation.pods_project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings['GCC_INSTRUMENT_PROGRAM_FLOW_ARCS'] = 'NO' - config.build_settings['GCC_GENERATE_TEST_COVERAGE_FILES'] = 'NO' - if target.name == "CocoaLumberjack" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - if target.name == "OHHTTPStubs" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - end - end -end \ No newline at end of file diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step2/DataStreamControllerFeatureObjC.xcodeproj/project.pbxproj b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step2/DataStreamControllerFeatureObjC.xcodeproj/project.pbxproj deleted file mode 100644 index 014f71da4..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step2/DataStreamControllerFeatureObjC.xcodeproj/project.pbxproj +++ /dev/null @@ -1,346 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 7902D89C1BAD6CD300AA1341 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 7902D89B1BAD6CD300AA1341 /* main.m */; }; - 7902D89F1BAD6CD300AA1341 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7902D89E1BAD6CD300AA1341 /* AppDelegate.m */; }; - F1AA48F2859E596E74686C33 /* Pods.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3442E2BB85BFAC3D6C24CD7 /* Pods.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 5EBD6480B46142E2BC9177F3 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; - 7902D8971BAD6CD300AA1341 /* DataStreamControllerFeatureObjC.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DataStreamControllerFeatureObjC.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 7902D89B1BAD6CD300AA1341 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 7902D89D1BAD6CD300AA1341 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; - 7902D89E1BAD6CD300AA1341 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - 7902D8AB1BAD6CD300AA1341 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - A3442E2BB85BFAC3D6C24CD7 /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - FFE694099BE9F8D12120A000 /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 7902D8941BAD6CD300AA1341 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - F1AA48F2859E596E74686C33 /* Pods.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 4616D2438A093C10463535C8 /* Frameworks */ = { - isa = PBXGroup; - children = ( - A3442E2BB85BFAC3D6C24CD7 /* Pods.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 7902D88E1BAD6CD300AA1341 = { - isa = PBXGroup; - children = ( - 7902D8991BAD6CD300AA1341 /* DataStreamControllerFeatureObjC */, - 7902D8981BAD6CD300AA1341 /* Products */, - A45E685880ECD5546F525141 /* Pods */, - 4616D2438A093C10463535C8 /* Frameworks */, - ); - sourceTree = ""; - }; - 7902D8981BAD6CD300AA1341 /* Products */ = { - isa = PBXGroup; - children = ( - 7902D8971BAD6CD300AA1341 /* DataStreamControllerFeatureObjC.app */, - ); - name = Products; - sourceTree = ""; - }; - 7902D8991BAD6CD300AA1341 /* DataStreamControllerFeatureObjC */ = { - isa = PBXGroup; - children = ( - 7902D89D1BAD6CD300AA1341 /* AppDelegate.h */, - 7902D89E1BAD6CD300AA1341 /* AppDelegate.m */, - 7902D8AB1BAD6CD300AA1341 /* Info.plist */, - 7902D89A1BAD6CD300AA1341 /* Supporting Files */, - ); - path = DataStreamControllerFeatureObjC; - sourceTree = ""; - }; - 7902D89A1BAD6CD300AA1341 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 7902D89B1BAD6CD300AA1341 /* main.m */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - A45E685880ECD5546F525141 /* Pods */ = { - isa = PBXGroup; - children = ( - 5EBD6480B46142E2BC9177F3 /* Pods.debug.xcconfig */, - FFE694099BE9F8D12120A000 /* Pods.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 7902D8961BAD6CD300AA1341 /* DataStreamControllerFeatureObjC */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7902D8AE1BAD6CD300AA1341 /* Build configuration list for PBXNativeTarget "DataStreamControllerFeatureObjC" */; - buildPhases = ( - 5B896DFEFDF879349EBB6232 /* Check Pods Manifest.lock */, - 7902D8931BAD6CD300AA1341 /* Sources */, - 7902D8941BAD6CD300AA1341 /* Frameworks */, - 7902D8951BAD6CD300AA1341 /* Resources */, - B986EACEB3C88D4463A523A1 /* Embed Pods Frameworks */, - 9AC7C17619CF5B5626B96125 /* Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = DataStreamControllerFeatureObjC; - productName = DataStreamControllerFeatureObjC; - productReference = 7902D8971BAD6CD300AA1341 /* DataStreamControllerFeatureObjC.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 7902D88F1BAD6CD300AA1341 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0700; - ORGANIZATIONNAME = PubNub; - TargetAttributes = { - 7902D8961BAD6CD300AA1341 = { - CreatedOnToolsVersion = 7.0; - }; - }; - }; - buildConfigurationList = 7902D8921BAD6CD300AA1341 /* Build configuration list for PBXProject "DataStreamControllerFeatureObjC" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 7902D88E1BAD6CD300AA1341; - productRefGroup = 7902D8981BAD6CD300AA1341 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 7902D8961BAD6CD300AA1341 /* DataStreamControllerFeatureObjC */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 7902D8951BAD6CD300AA1341 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 5B896DFEFDF879349EBB6232 /* Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - 9AC7C17619CF5B5626B96125 /* Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - B986EACEB3C88D4463A523A1 /* Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 7902D8931BAD6CD300AA1341 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 7902D89F1BAD6CD300AA1341 /* AppDelegate.m in Sources */, - 7902D89C1BAD6CD300AA1341 /* main.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 7902D8AC1BAD6CD300AA1341 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - }; - name = Debug; - }; - 7902D8AD1BAD6CD300AA1341 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 7902D8AF1BAD6CD300AA1341 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 5EBD6480B46142E2BC9177F3 /* Pods.debug.xcconfig */; - buildSettings = { - INFOPLIST_FILE = DataStreamControllerFeatureObjC/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.DataStreamControllerFeatureObjC; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 7902D8B01BAD6CD300AA1341 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FFE694099BE9F8D12120A000 /* Pods.release.xcconfig */; - buildSettings = { - INFOPLIST_FILE = DataStreamControllerFeatureObjC/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.DataStreamControllerFeatureObjC; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 7902D8921BAD6CD300AA1341 /* Build configuration list for PBXProject "DataStreamControllerFeatureObjC" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7902D8AC1BAD6CD300AA1341 /* Debug */, - 7902D8AD1BAD6CD300AA1341 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 7902D8AE1BAD6CD300AA1341 /* Build configuration list for PBXNativeTarget "DataStreamControllerFeatureObjC" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7902D8AF1BAD6CD300AA1341 /* Debug */, - 7902D8B01BAD6CD300AA1341 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 7902D88F1BAD6CD300AA1341 /* Project object */; -} diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step2/DataStreamControllerFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step2/DataStreamControllerFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index fb87d9846..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step2/DataStreamControllerFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step2/DataStreamControllerFeatureObjC/AppDelegate.h b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step2/DataStreamControllerFeatureObjC/AppDelegate.h deleted file mode 100644 index 20e76883b..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step2/DataStreamControllerFeatureObjC/AppDelegate.h +++ /dev/null @@ -1,13 +0,0 @@ -#import - - -/** - @author Sergey Mamontov - @copyright © 2009-2015 PubNub, Inc. - */ -@interface AppDelegate : UIResponder - -@property (strong, nonatomic) UIWindow *window; - -@end - diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step2/DataStreamControllerFeatureObjC/AppDelegate.m b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step2/DataStreamControllerFeatureObjC/AppDelegate.m deleted file mode 100644 index d7e73a5f6..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step2/DataStreamControllerFeatureObjC/AppDelegate.m +++ /dev/null @@ -1,56 +0,0 @@ -/*fabric:start-text*/ -// To receive messages from the channel group, subscribe to the channel group created in the previous step. -/*fabric:end-text*/ -/** - @author Sergey Mamontov - @copyright © 2009-2015 PubNub, Inc. - */ -/*fabric:start-code*/ -#import "AppDelegate.h" -#import -#import - - -@interface AppDelegate () - -@property (nonatomic, strong) PubNub *client; - -@end - - -@implementation AppDelegate - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { - - /*fabric:start-highlight*/ - __weak __typeof(self) weakSelf = self; - /*fabric:end-highlight*/ - self.client = [PubNub client]; - [self.client addChannels:@[@"announcements", @"lobby"] toGroup:@"tradeshow" - withCompletion:^(PNAcknowledgmentStatus *status) { - - /*fabric:start-highlight*/ - __strong __typeof(self) strongSelf = weakSelf; - - // Check whether request successfully completed or not. - if (!status.isError) { - - [strongSelf.client addListener:strongSelf]; - [strongSelf.client subscribeToChannelGroups:@[@"tradeshow"] withPresence:NO]; - } - // Request processing failed. - else { - - // Handle channels list modification for group error. Check 'category' property to find out - // possible issue because of which request did fail. - // - // Request can be resent using: [status retry]; - } - /*fabric:end-highlight*/ - }]; - - return YES; -} - -@end -/*fabric:end-code*/ diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step2/DataStreamControllerFeatureObjC/Info.plist b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step2/DataStreamControllerFeatureObjC/Info.plist deleted file mode 100644 index fb4115c84..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step2/DataStreamControllerFeatureObjC/Info.plist +++ /dev/null @@ -1,36 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step2/DataStreamControllerFeatureObjC/main.m b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step2/DataStreamControllerFeatureObjC/main.m deleted file mode 100644 index 1bac403cf..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step2/DataStreamControllerFeatureObjC/main.m +++ /dev/null @@ -1,16 +0,0 @@ -// -// main.m -// DataStreamControllerFeatureObjC -// -// Created by Sergey Mamontov on 9/19/15. -// Copyright © 2015 PubNub. All rights reserved. -// - -#import -#import "AppDelegate.h" - -int main(int argc, char * argv[]) { - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); - } -} diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step2/Podfile b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step2/Podfile deleted file mode 100644 index 282a2f6c8..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step2/Podfile +++ /dev/null @@ -1,20 +0,0 @@ -source 'git@github.com:parfeon/pubnub-private-pods-repo.git' -source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '8.0' -use_frameworks! -pod "PubNubBridge" - -post_install do |installer_representation| - installer_representation.pods_project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings['GCC_INSTRUMENT_PROGRAM_FLOW_ARCS'] = 'NO' - config.build_settings['GCC_GENERATE_TEST_COVERAGE_FILES'] = 'NO' - if target.name == "CocoaLumberjack" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - if target.name == "OHHTTPStubs" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - end - end -end \ No newline at end of file diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step3/DataStreamControllerFeatureObjC.xcodeproj/project.pbxproj b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step3/DataStreamControllerFeatureObjC.xcodeproj/project.pbxproj deleted file mode 100644 index 014f71da4..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step3/DataStreamControllerFeatureObjC.xcodeproj/project.pbxproj +++ /dev/null @@ -1,346 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 7902D89C1BAD6CD300AA1341 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 7902D89B1BAD6CD300AA1341 /* main.m */; }; - 7902D89F1BAD6CD300AA1341 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7902D89E1BAD6CD300AA1341 /* AppDelegate.m */; }; - F1AA48F2859E596E74686C33 /* Pods.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3442E2BB85BFAC3D6C24CD7 /* Pods.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 5EBD6480B46142E2BC9177F3 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; - 7902D8971BAD6CD300AA1341 /* DataStreamControllerFeatureObjC.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DataStreamControllerFeatureObjC.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 7902D89B1BAD6CD300AA1341 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 7902D89D1BAD6CD300AA1341 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; - 7902D89E1BAD6CD300AA1341 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - 7902D8AB1BAD6CD300AA1341 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - A3442E2BB85BFAC3D6C24CD7 /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - FFE694099BE9F8D12120A000 /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 7902D8941BAD6CD300AA1341 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - F1AA48F2859E596E74686C33 /* Pods.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 4616D2438A093C10463535C8 /* Frameworks */ = { - isa = PBXGroup; - children = ( - A3442E2BB85BFAC3D6C24CD7 /* Pods.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 7902D88E1BAD6CD300AA1341 = { - isa = PBXGroup; - children = ( - 7902D8991BAD6CD300AA1341 /* DataStreamControllerFeatureObjC */, - 7902D8981BAD6CD300AA1341 /* Products */, - A45E685880ECD5546F525141 /* Pods */, - 4616D2438A093C10463535C8 /* Frameworks */, - ); - sourceTree = ""; - }; - 7902D8981BAD6CD300AA1341 /* Products */ = { - isa = PBXGroup; - children = ( - 7902D8971BAD6CD300AA1341 /* DataStreamControllerFeatureObjC.app */, - ); - name = Products; - sourceTree = ""; - }; - 7902D8991BAD6CD300AA1341 /* DataStreamControllerFeatureObjC */ = { - isa = PBXGroup; - children = ( - 7902D89D1BAD6CD300AA1341 /* AppDelegate.h */, - 7902D89E1BAD6CD300AA1341 /* AppDelegate.m */, - 7902D8AB1BAD6CD300AA1341 /* Info.plist */, - 7902D89A1BAD6CD300AA1341 /* Supporting Files */, - ); - path = DataStreamControllerFeatureObjC; - sourceTree = ""; - }; - 7902D89A1BAD6CD300AA1341 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 7902D89B1BAD6CD300AA1341 /* main.m */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - A45E685880ECD5546F525141 /* Pods */ = { - isa = PBXGroup; - children = ( - 5EBD6480B46142E2BC9177F3 /* Pods.debug.xcconfig */, - FFE694099BE9F8D12120A000 /* Pods.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 7902D8961BAD6CD300AA1341 /* DataStreamControllerFeatureObjC */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7902D8AE1BAD6CD300AA1341 /* Build configuration list for PBXNativeTarget "DataStreamControllerFeatureObjC" */; - buildPhases = ( - 5B896DFEFDF879349EBB6232 /* Check Pods Manifest.lock */, - 7902D8931BAD6CD300AA1341 /* Sources */, - 7902D8941BAD6CD300AA1341 /* Frameworks */, - 7902D8951BAD6CD300AA1341 /* Resources */, - B986EACEB3C88D4463A523A1 /* Embed Pods Frameworks */, - 9AC7C17619CF5B5626B96125 /* Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = DataStreamControllerFeatureObjC; - productName = DataStreamControllerFeatureObjC; - productReference = 7902D8971BAD6CD300AA1341 /* DataStreamControllerFeatureObjC.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 7902D88F1BAD6CD300AA1341 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0700; - ORGANIZATIONNAME = PubNub; - TargetAttributes = { - 7902D8961BAD6CD300AA1341 = { - CreatedOnToolsVersion = 7.0; - }; - }; - }; - buildConfigurationList = 7902D8921BAD6CD300AA1341 /* Build configuration list for PBXProject "DataStreamControllerFeatureObjC" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 7902D88E1BAD6CD300AA1341; - productRefGroup = 7902D8981BAD6CD300AA1341 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 7902D8961BAD6CD300AA1341 /* DataStreamControllerFeatureObjC */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 7902D8951BAD6CD300AA1341 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 5B896DFEFDF879349EBB6232 /* Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - 9AC7C17619CF5B5626B96125 /* Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - B986EACEB3C88D4463A523A1 /* Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 7902D8931BAD6CD300AA1341 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 7902D89F1BAD6CD300AA1341 /* AppDelegate.m in Sources */, - 7902D89C1BAD6CD300AA1341 /* main.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 7902D8AC1BAD6CD300AA1341 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - }; - name = Debug; - }; - 7902D8AD1BAD6CD300AA1341 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 7902D8AF1BAD6CD300AA1341 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 5EBD6480B46142E2BC9177F3 /* Pods.debug.xcconfig */; - buildSettings = { - INFOPLIST_FILE = DataStreamControllerFeatureObjC/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.DataStreamControllerFeatureObjC; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 7902D8B01BAD6CD300AA1341 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FFE694099BE9F8D12120A000 /* Pods.release.xcconfig */; - buildSettings = { - INFOPLIST_FILE = DataStreamControllerFeatureObjC/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.DataStreamControllerFeatureObjC; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 7902D8921BAD6CD300AA1341 /* Build configuration list for PBXProject "DataStreamControllerFeatureObjC" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7902D8AC1BAD6CD300AA1341 /* Debug */, - 7902D8AD1BAD6CD300AA1341 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 7902D8AE1BAD6CD300AA1341 /* Build configuration list for PBXNativeTarget "DataStreamControllerFeatureObjC" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7902D8AF1BAD6CD300AA1341 /* Debug */, - 7902D8B01BAD6CD300AA1341 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 7902D88F1BAD6CD300AA1341 /* Project object */; -} diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step3/DataStreamControllerFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step3/DataStreamControllerFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index fb87d9846..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step3/DataStreamControllerFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step3/DataStreamControllerFeatureObjC/AppDelegate.h b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step3/DataStreamControllerFeatureObjC/AppDelegate.h deleted file mode 100644 index 20e76883b..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step3/DataStreamControllerFeatureObjC/AppDelegate.h +++ /dev/null @@ -1,13 +0,0 @@ -#import - - -/** - @author Sergey Mamontov - @copyright © 2009-2015 PubNub, Inc. - */ -@interface AppDelegate : UIResponder - -@property (strong, nonatomic) UIWindow *window; - -@end - diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step3/DataStreamControllerFeatureObjC/AppDelegate.m b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step3/DataStreamControllerFeatureObjC/AppDelegate.m deleted file mode 100644 index 5606073f6..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step3/DataStreamControllerFeatureObjC/AppDelegate.m +++ /dev/null @@ -1,80 +0,0 @@ -/*fabric:start-text*/ -// It is always a good idea to add a subscription status handling callback to know when a subscription process completed or stumbled on an unexpected disconnection. -/*fabric:end-text*/ -/** - @author Sergey Mamontov - @copyright © 2009-2015 PubNub, Inc. - */ -/*fabric:start-code*/ -#import "AppDelegate.h" -#import -#import - - -/*fabric:start-highlight*/ -@interface AppDelegate () -/*fabric:end-highlight*/ - -@property (nonatomic, strong) PubNub *client; - -@end - - -@implementation AppDelegate - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { - - __weak __typeof(self) weakSelf = self; - self.client = [PubNub client]; - [self.client addChannels:@[@"announcements", @"lobby"] toGroup:@"tradeshow" - withCompletion:^(PNAcknowledgmentStatus *status) { - - __strong __typeof(self) strongSelf = weakSelf; - - // Check whether request successfully completed or not. - if (!status.isError) { - - [strongSelf.client addListener:strongSelf]; - [strongSelf.client subscribeToChannelGroups:@[@"tradeshow"] withPresence:NO]; - } - // Request processing failed. - else { - } - }]; - - return YES; -} - -/*fabric:start-highlight*/ -- (void)client:(PubNub *)client didReceiveStatus:(PNSubscribeStatus *)status { - - if (status.category == PNUnexpectedDisconnectCategory) { - - // This event happens when radio / connectivity is lost - } - else if (status.category == PNConnectedCategory) { - - // Connect event. You can do stuff like publish, and know you'll get it. - // Or just use the connected event to confirm you are subscribed for - // UI / internal notifications, etc - } - else if (status.category == PNReconnectedCategory) { - - // Happens as part of our regular operation. This event happens when - // radio / connectivity is lost, then regained. - } - else if (status.category == PNDisconnectedCategory) { - - // Disconnection event. After this moment any messages from unsubscribed channel - // won't reach this callback. - } - else if (status.category == PNDecryptionErrorCategory) { - - // Handle messsage decryption error. Probably client configured to - // encrypt messages and on live data feed it received plain text. - } -} -/*fabric:end-highlight*/ - -@end -/*fabric:end-code*/ diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step3/DataStreamControllerFeatureObjC/Info.plist b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step3/DataStreamControllerFeatureObjC/Info.plist deleted file mode 100644 index fb4115c84..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step3/DataStreamControllerFeatureObjC/Info.plist +++ /dev/null @@ -1,36 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step3/DataStreamControllerFeatureObjC/main.m b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step3/DataStreamControllerFeatureObjC/main.m deleted file mode 100644 index 1bac403cf..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step3/DataStreamControllerFeatureObjC/main.m +++ /dev/null @@ -1,16 +0,0 @@ -// -// main.m -// DataStreamControllerFeatureObjC -// -// Created by Sergey Mamontov on 9/19/15. -// Copyright © 2015 PubNub. All rights reserved. -// - -#import -#import "AppDelegate.h" - -int main(int argc, char * argv[]) { - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); - } -} diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step3/Podfile b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step3/Podfile deleted file mode 100644 index 282a2f6c8..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step3/Podfile +++ /dev/null @@ -1,20 +0,0 @@ -source 'git@github.com:parfeon/pubnub-private-pods-repo.git' -source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '8.0' -use_frameworks! -pod "PubNubBridge" - -post_install do |installer_representation| - installer_representation.pods_project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings['GCC_INSTRUMENT_PROGRAM_FLOW_ARCS'] = 'NO' - config.build_settings['GCC_GENERATE_TEST_COVERAGE_FILES'] = 'NO' - if target.name == "CocoaLumberjack" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - if target.name == "OHHTTPStubs" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - end - end -end \ No newline at end of file diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step4/DataStreamControllerFeatureObjC.xcodeproj/project.pbxproj b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step4/DataStreamControllerFeatureObjC.xcodeproj/project.pbxproj deleted file mode 100644 index 014f71da4..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step4/DataStreamControllerFeatureObjC.xcodeproj/project.pbxproj +++ /dev/null @@ -1,346 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 7902D89C1BAD6CD300AA1341 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 7902D89B1BAD6CD300AA1341 /* main.m */; }; - 7902D89F1BAD6CD300AA1341 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7902D89E1BAD6CD300AA1341 /* AppDelegate.m */; }; - F1AA48F2859E596E74686C33 /* Pods.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3442E2BB85BFAC3D6C24CD7 /* Pods.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 5EBD6480B46142E2BC9177F3 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; - 7902D8971BAD6CD300AA1341 /* DataStreamControllerFeatureObjC.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DataStreamControllerFeatureObjC.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 7902D89B1BAD6CD300AA1341 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 7902D89D1BAD6CD300AA1341 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; - 7902D89E1BAD6CD300AA1341 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - 7902D8AB1BAD6CD300AA1341 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - A3442E2BB85BFAC3D6C24CD7 /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - FFE694099BE9F8D12120A000 /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 7902D8941BAD6CD300AA1341 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - F1AA48F2859E596E74686C33 /* Pods.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 4616D2438A093C10463535C8 /* Frameworks */ = { - isa = PBXGroup; - children = ( - A3442E2BB85BFAC3D6C24CD7 /* Pods.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 7902D88E1BAD6CD300AA1341 = { - isa = PBXGroup; - children = ( - 7902D8991BAD6CD300AA1341 /* DataStreamControllerFeatureObjC */, - 7902D8981BAD6CD300AA1341 /* Products */, - A45E685880ECD5546F525141 /* Pods */, - 4616D2438A093C10463535C8 /* Frameworks */, - ); - sourceTree = ""; - }; - 7902D8981BAD6CD300AA1341 /* Products */ = { - isa = PBXGroup; - children = ( - 7902D8971BAD6CD300AA1341 /* DataStreamControllerFeatureObjC.app */, - ); - name = Products; - sourceTree = ""; - }; - 7902D8991BAD6CD300AA1341 /* DataStreamControllerFeatureObjC */ = { - isa = PBXGroup; - children = ( - 7902D89D1BAD6CD300AA1341 /* AppDelegate.h */, - 7902D89E1BAD6CD300AA1341 /* AppDelegate.m */, - 7902D8AB1BAD6CD300AA1341 /* Info.plist */, - 7902D89A1BAD6CD300AA1341 /* Supporting Files */, - ); - path = DataStreamControllerFeatureObjC; - sourceTree = ""; - }; - 7902D89A1BAD6CD300AA1341 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 7902D89B1BAD6CD300AA1341 /* main.m */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - A45E685880ECD5546F525141 /* Pods */ = { - isa = PBXGroup; - children = ( - 5EBD6480B46142E2BC9177F3 /* Pods.debug.xcconfig */, - FFE694099BE9F8D12120A000 /* Pods.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 7902D8961BAD6CD300AA1341 /* DataStreamControllerFeatureObjC */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7902D8AE1BAD6CD300AA1341 /* Build configuration list for PBXNativeTarget "DataStreamControllerFeatureObjC" */; - buildPhases = ( - 5B896DFEFDF879349EBB6232 /* Check Pods Manifest.lock */, - 7902D8931BAD6CD300AA1341 /* Sources */, - 7902D8941BAD6CD300AA1341 /* Frameworks */, - 7902D8951BAD6CD300AA1341 /* Resources */, - B986EACEB3C88D4463A523A1 /* Embed Pods Frameworks */, - 9AC7C17619CF5B5626B96125 /* Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = DataStreamControllerFeatureObjC; - productName = DataStreamControllerFeatureObjC; - productReference = 7902D8971BAD6CD300AA1341 /* DataStreamControllerFeatureObjC.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 7902D88F1BAD6CD300AA1341 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0700; - ORGANIZATIONNAME = PubNub; - TargetAttributes = { - 7902D8961BAD6CD300AA1341 = { - CreatedOnToolsVersion = 7.0; - }; - }; - }; - buildConfigurationList = 7902D8921BAD6CD300AA1341 /* Build configuration list for PBXProject "DataStreamControllerFeatureObjC" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 7902D88E1BAD6CD300AA1341; - productRefGroup = 7902D8981BAD6CD300AA1341 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 7902D8961BAD6CD300AA1341 /* DataStreamControllerFeatureObjC */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 7902D8951BAD6CD300AA1341 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 5B896DFEFDF879349EBB6232 /* Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - 9AC7C17619CF5B5626B96125 /* Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - B986EACEB3C88D4463A523A1 /* Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 7902D8931BAD6CD300AA1341 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 7902D89F1BAD6CD300AA1341 /* AppDelegate.m in Sources */, - 7902D89C1BAD6CD300AA1341 /* main.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 7902D8AC1BAD6CD300AA1341 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - }; - name = Debug; - }; - 7902D8AD1BAD6CD300AA1341 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 7902D8AF1BAD6CD300AA1341 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 5EBD6480B46142E2BC9177F3 /* Pods.debug.xcconfig */; - buildSettings = { - INFOPLIST_FILE = DataStreamControllerFeatureObjC/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.DataStreamControllerFeatureObjC; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 7902D8B01BAD6CD300AA1341 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = FFE694099BE9F8D12120A000 /* Pods.release.xcconfig */; - buildSettings = { - INFOPLIST_FILE = DataStreamControllerFeatureObjC/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.DataStreamControllerFeatureObjC; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 7902D8921BAD6CD300AA1341 /* Build configuration list for PBXProject "DataStreamControllerFeatureObjC" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7902D8AC1BAD6CD300AA1341 /* Debug */, - 7902D8AD1BAD6CD300AA1341 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 7902D8AE1BAD6CD300AA1341 /* Build configuration list for PBXNativeTarget "DataStreamControllerFeatureObjC" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7902D8AF1BAD6CD300AA1341 /* Debug */, - 7902D8B01BAD6CD300AA1341 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 7902D88F1BAD6CD300AA1341 /* Project object */; -} diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step4/DataStreamControllerFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step4/DataStreamControllerFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index fb87d9846..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step4/DataStreamControllerFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step4/DataStreamControllerFeatureObjC/AppDelegate.h b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step4/DataStreamControllerFeatureObjC/AppDelegate.h deleted file mode 100644 index 20e76883b..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step4/DataStreamControllerFeatureObjC/AppDelegate.h +++ /dev/null @@ -1,13 +0,0 @@ -#import - - -/** - @author Sergey Mamontov - @copyright © 2009-2015 PubNub, Inc. - */ -@interface AppDelegate : UIResponder - -@property (strong, nonatomic) UIWindow *window; - -@end - diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step4/DataStreamControllerFeatureObjC/AppDelegate.m b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step4/DataStreamControllerFeatureObjC/AppDelegate.m deleted file mode 100644 index 7ae86ccce..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step4/DataStreamControllerFeatureObjC/AppDelegate.m +++ /dev/null @@ -1,81 +0,0 @@ -/*fabric:start-text*/ -// To handle real-time messages from a subscribed channel group (subscribed on in previous steps), add a message handling callback. -/*fabric:end-text*/ -/** - @author Sergey Mamontov - @copyright © 2009-2015 PubNub, Inc. - */ -/*fabric:start-code*/ -#import "AppDelegate.h" -#import -#import - - -@interface AppDelegate () - -@property (nonatomic, strong) PubNub *client; - -@end - - -@implementation AppDelegate - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { - - __weak __typeof(self) weakSelf = self; - self.client = [PubNub client]; - [self.client addChannels:@[@"announcements", @"lobby"] toGroup:@"tradeshow" - withCompletion:^(PNAcknowledgmentStatus *status) { - - __strong __typeof(self) strongSelf = weakSelf; - - // Check whether request successfully completed or not. - if (!status.isError) { - - [strongSelf.client addListener:strongSelf]; - [strongSelf.client subscribeToChannelGroups:@[@"tradeshow"] withPresence:NO]; - } - // Request processing failed. - else { - } - }]; - - return YES; -} - -- (void)client:(PubNub *)client didReceiveStatus:(PNSubscribeStatus *)status { - - if (status.category == PNUnexpectedDisconnectCategory) { - } - else if (status.category == PNConnectedCategory) { - } - else if (status.category == PNReconnectedCategory) { - } - else if (status.category == PNDisconnectedCategory) { - } - else if (status.category == PNDecryptionErrorCategory) { - } -} - -/*fabric:start-highlight*/ -- (void)client:(PubNub *)client didReceiveMessage:(PNMessageResult *)message { - - // Handle new message stored in message.data.message - if (message.data.actualChannel != nil) { - - // Message has been received on channel group stored in - // message.data.subscribedChannel - } - else { - - // Message has been received on channel stored in - // message.data.subscribedChannel - } - - NSLog(@"Received message: %@ on channel %@ at %@", message.data.message, - (message.data.actualChannel?: message.data.subscribedChannel), message.data.timetoken); -} -/*fabric:end-highlight*/ - -@end -/*fabric:end-code*/ diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step4/DataStreamControllerFeatureObjC/Info.plist b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step4/DataStreamControllerFeatureObjC/Info.plist deleted file mode 100644 index fb4115c84..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step4/DataStreamControllerFeatureObjC/Info.plist +++ /dev/null @@ -1,36 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step4/DataStreamControllerFeatureObjC/main.m b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step4/DataStreamControllerFeatureObjC/main.m deleted file mode 100644 index 1bac403cf..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step4/DataStreamControllerFeatureObjC/main.m +++ /dev/null @@ -1,16 +0,0 @@ -// -// main.m -// DataStreamControllerFeatureObjC -// -// Created by Sergey Mamontov on 9/19/15. -// Copyright © 2015 PubNub. All rights reserved. -// - -#import -#import "AppDelegate.h" - -int main(int argc, char * argv[]) { - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); - } -} diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step4/Podfile b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step4/Podfile deleted file mode 100644 index 282a2f6c8..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureObjC/Step4/Podfile +++ /dev/null @@ -1,20 +0,0 @@ -source 'git@github.com:parfeon/pubnub-private-pods-repo.git' -source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '8.0' -use_frameworks! -pod "PubNubBridge" - -post_install do |installer_representation| - installer_representation.pods_project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings['GCC_INSTRUMENT_PROGRAM_FLOW_ARCS'] = 'NO' - config.build_settings['GCC_GENERATE_TEST_COVERAGE_FILES'] = 'NO' - if target.name == "CocoaLumberjack" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - if target.name == "OHHTTPStubs" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - end - end -end \ No newline at end of file diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step1/DataStreamControllerFeatureSwift.xcodeproj/project.pbxproj b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step1/DataStreamControllerFeatureSwift.xcodeproj/project.pbxproj deleted file mode 100644 index afe283b2b..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step1/DataStreamControllerFeatureSwift.xcodeproj/project.pbxproj +++ /dev/null @@ -1,333 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 3782E2EE7E795E718B10BED2 /* Pods.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 92266E42E8345C10123CBF92 /* Pods.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; - 7902D8BE1BAD718B00AA1341 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7902D8BD1BAD718B00AA1341 /* AppDelegate.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 44273F4BF5202F534F32DD34 /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; - 7902D8BA1BAD718B00AA1341 /* DataStreamControllerFeatureSwift.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DataStreamControllerFeatureSwift.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 7902D8BD1BAD718B00AA1341 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 7902D8C91BAD718B00AA1341 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 92266E42E8345C10123CBF92 /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 9A2940386038B91A1CA77244 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 7902D8B71BAD718B00AA1341 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 3782E2EE7E795E718B10BED2 /* Pods.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 7902D8B11BAD718B00AA1341 = { - isa = PBXGroup; - children = ( - 7902D8BC1BAD718B00AA1341 /* DataStreamControllerFeatureSwift */, - 7902D8BB1BAD718B00AA1341 /* Products */, - DEA3794159A04289DABB65AD /* Pods */, - 816E487C0D900552872B57A4 /* Frameworks */, - ); - sourceTree = ""; - }; - 7902D8BB1BAD718B00AA1341 /* Products */ = { - isa = PBXGroup; - children = ( - 7902D8BA1BAD718B00AA1341 /* DataStreamControllerFeatureSwift.app */, - ); - name = Products; - sourceTree = ""; - }; - 7902D8BC1BAD718B00AA1341 /* DataStreamControllerFeatureSwift */ = { - isa = PBXGroup; - children = ( - 7902D8BD1BAD718B00AA1341 /* AppDelegate.swift */, - 7902D8C91BAD718B00AA1341 /* Info.plist */, - ); - path = DataStreamControllerFeatureSwift; - sourceTree = ""; - }; - 816E487C0D900552872B57A4 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 92266E42E8345C10123CBF92 /* Pods.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - DEA3794159A04289DABB65AD /* Pods */ = { - isa = PBXGroup; - children = ( - 9A2940386038B91A1CA77244 /* Pods.debug.xcconfig */, - 44273F4BF5202F534F32DD34 /* Pods.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 7902D8B91BAD718B00AA1341 /* DataStreamControllerFeatureSwift */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7902D8CC1BAD718B00AA1341 /* Build configuration list for PBXNativeTarget "DataStreamControllerFeatureSwift" */; - buildPhases = ( - 0BE18B1EC02A29FA768D7C1A /* Check Pods Manifest.lock */, - 7902D8B61BAD718B00AA1341 /* Sources */, - 7902D8B71BAD718B00AA1341 /* Frameworks */, - 7902D8B81BAD718B00AA1341 /* Resources */, - 0255B09E28D0CC0AFE10E818 /* Embed Pods Frameworks */, - E69736F191479F62B1F87B62 /* Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = DataStreamControllerFeatureSwift; - productName = DataStreamControllerFeatureSwift; - productReference = 7902D8BA1BAD718B00AA1341 /* DataStreamControllerFeatureSwift.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 7902D8B21BAD718B00AA1341 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0700; - ORGANIZATIONNAME = PubNub; - TargetAttributes = { - 7902D8B91BAD718B00AA1341 = { - CreatedOnToolsVersion = 7.0; - }; - }; - }; - buildConfigurationList = 7902D8B51BAD718B00AA1341 /* Build configuration list for PBXProject "DataStreamControllerFeatureSwift" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 7902D8B11BAD718B00AA1341; - productRefGroup = 7902D8BB1BAD718B00AA1341 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 7902D8B91BAD718B00AA1341 /* DataStreamControllerFeatureSwift */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 7902D8B81BAD718B00AA1341 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 0255B09E28D0CC0AFE10E818 /* Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 0BE18B1EC02A29FA768D7C1A /* Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - E69736F191479F62B1F87B62 /* Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 7902D8B61BAD718B00AA1341 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 7902D8BE1BAD718B00AA1341 /* AppDelegate.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 7902D8CA1BAD718B00AA1341 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 7902D8CB1BAD718B00AA1341 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 7902D8CD1BAD718B00AA1341 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9A2940386038B91A1CA77244 /* Pods.debug.xcconfig */; - buildSettings = { - INFOPLIST_FILE = DataStreamControllerFeatureSwift/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.DataStreamControllerFeatureSwift; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 7902D8CE1BAD718B00AA1341 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 44273F4BF5202F534F32DD34 /* Pods.release.xcconfig */; - buildSettings = { - INFOPLIST_FILE = DataStreamControllerFeatureSwift/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.DataStreamControllerFeatureSwift; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 7902D8B51BAD718B00AA1341 /* Build configuration list for PBXProject "DataStreamControllerFeatureSwift" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7902D8CA1BAD718B00AA1341 /* Debug */, - 7902D8CB1BAD718B00AA1341 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 7902D8CC1BAD718B00AA1341 /* Build configuration list for PBXNativeTarget "DataStreamControllerFeatureSwift" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7902D8CD1BAD718B00AA1341 /* Debug */, - 7902D8CE1BAD718B00AA1341 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 7902D8B21BAD718B00AA1341 /* Project object */; -} diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step1/DataStreamControllerFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step1/DataStreamControllerFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index e201f188c..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step1/DataStreamControllerFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step1/DataStreamControllerFeatureSwift/AppDelegate.swift b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step1/DataStreamControllerFeatureSwift/AppDelegate.swift deleted file mode 100644 index 8c844fc95..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step1/DataStreamControllerFeatureSwift/AppDelegate.swift +++ /dev/null @@ -1,38 +0,0 @@ -/*fabric:start-text*/ -// Configure the client and channel group with set of channels. -/*fabric:end-text*/ -/** -@author Sergey Mamontov -@copyright © 2009-2015 PubNub, Inc. -*/ -/*fabric:start-code*/ -import UIKit -/*fabric:start-highlight*/ -import PubNub -import PubNubBridge -/*fabric:end-highlight*/ - - -@UIApplicationMain -class AppDelegate: UIResponder, UIApplicationDelegate { - - var window: UIWindow? - /*fabric:start-highlight*/ - var client: PubNub? - /*fabric:end-highlight*/ - - func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { - - /*fabric:start-highlight*/ - self.client = PubNub.client() - self.client?.addChannels(["announcements", "lobby"], toGroup: "tradeshow", - withCompletion: {[weak self] (status) -> Void in - - }) - /*fabric:end-highlight*/ - - return true - } -} -/*fabric:end-code*/ - diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step1/DataStreamControllerFeatureSwift/Info.plist b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step1/DataStreamControllerFeatureSwift/Info.plist deleted file mode 100644 index fb4115c84..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step1/DataStreamControllerFeatureSwift/Info.plist +++ /dev/null @@ -1,36 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step1/Podfile b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step1/Podfile deleted file mode 100644 index 282a2f6c8..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step1/Podfile +++ /dev/null @@ -1,20 +0,0 @@ -source 'git@github.com:parfeon/pubnub-private-pods-repo.git' -source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '8.0' -use_frameworks! -pod "PubNubBridge" - -post_install do |installer_representation| - installer_representation.pods_project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings['GCC_INSTRUMENT_PROGRAM_FLOW_ARCS'] = 'NO' - config.build_settings['GCC_GENERATE_TEST_COVERAGE_FILES'] = 'NO' - if target.name == "CocoaLumberjack" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - if target.name == "OHHTTPStubs" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - end - end -end \ No newline at end of file diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step2/DataStreamControllerFeatureSwift.xcodeproj/project.pbxproj b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step2/DataStreamControllerFeatureSwift.xcodeproj/project.pbxproj deleted file mode 100644 index afe283b2b..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step2/DataStreamControllerFeatureSwift.xcodeproj/project.pbxproj +++ /dev/null @@ -1,333 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 3782E2EE7E795E718B10BED2 /* Pods.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 92266E42E8345C10123CBF92 /* Pods.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; - 7902D8BE1BAD718B00AA1341 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7902D8BD1BAD718B00AA1341 /* AppDelegate.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 44273F4BF5202F534F32DD34 /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; - 7902D8BA1BAD718B00AA1341 /* DataStreamControllerFeatureSwift.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DataStreamControllerFeatureSwift.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 7902D8BD1BAD718B00AA1341 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 7902D8C91BAD718B00AA1341 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 92266E42E8345C10123CBF92 /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 9A2940386038B91A1CA77244 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 7902D8B71BAD718B00AA1341 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 3782E2EE7E795E718B10BED2 /* Pods.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 7902D8B11BAD718B00AA1341 = { - isa = PBXGroup; - children = ( - 7902D8BC1BAD718B00AA1341 /* DataStreamControllerFeatureSwift */, - 7902D8BB1BAD718B00AA1341 /* Products */, - DEA3794159A04289DABB65AD /* Pods */, - 816E487C0D900552872B57A4 /* Frameworks */, - ); - sourceTree = ""; - }; - 7902D8BB1BAD718B00AA1341 /* Products */ = { - isa = PBXGroup; - children = ( - 7902D8BA1BAD718B00AA1341 /* DataStreamControllerFeatureSwift.app */, - ); - name = Products; - sourceTree = ""; - }; - 7902D8BC1BAD718B00AA1341 /* DataStreamControllerFeatureSwift */ = { - isa = PBXGroup; - children = ( - 7902D8BD1BAD718B00AA1341 /* AppDelegate.swift */, - 7902D8C91BAD718B00AA1341 /* Info.plist */, - ); - path = DataStreamControllerFeatureSwift; - sourceTree = ""; - }; - 816E487C0D900552872B57A4 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 92266E42E8345C10123CBF92 /* Pods.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - DEA3794159A04289DABB65AD /* Pods */ = { - isa = PBXGroup; - children = ( - 9A2940386038B91A1CA77244 /* Pods.debug.xcconfig */, - 44273F4BF5202F534F32DD34 /* Pods.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 7902D8B91BAD718B00AA1341 /* DataStreamControllerFeatureSwift */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7902D8CC1BAD718B00AA1341 /* Build configuration list for PBXNativeTarget "DataStreamControllerFeatureSwift" */; - buildPhases = ( - 0BE18B1EC02A29FA768D7C1A /* Check Pods Manifest.lock */, - 7902D8B61BAD718B00AA1341 /* Sources */, - 7902D8B71BAD718B00AA1341 /* Frameworks */, - 7902D8B81BAD718B00AA1341 /* Resources */, - 0255B09E28D0CC0AFE10E818 /* Embed Pods Frameworks */, - E69736F191479F62B1F87B62 /* Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = DataStreamControllerFeatureSwift; - productName = DataStreamControllerFeatureSwift; - productReference = 7902D8BA1BAD718B00AA1341 /* DataStreamControllerFeatureSwift.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 7902D8B21BAD718B00AA1341 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0700; - ORGANIZATIONNAME = PubNub; - TargetAttributes = { - 7902D8B91BAD718B00AA1341 = { - CreatedOnToolsVersion = 7.0; - }; - }; - }; - buildConfigurationList = 7902D8B51BAD718B00AA1341 /* Build configuration list for PBXProject "DataStreamControllerFeatureSwift" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 7902D8B11BAD718B00AA1341; - productRefGroup = 7902D8BB1BAD718B00AA1341 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 7902D8B91BAD718B00AA1341 /* DataStreamControllerFeatureSwift */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 7902D8B81BAD718B00AA1341 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 0255B09E28D0CC0AFE10E818 /* Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 0BE18B1EC02A29FA768D7C1A /* Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - E69736F191479F62B1F87B62 /* Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 7902D8B61BAD718B00AA1341 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 7902D8BE1BAD718B00AA1341 /* AppDelegate.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 7902D8CA1BAD718B00AA1341 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 7902D8CB1BAD718B00AA1341 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 7902D8CD1BAD718B00AA1341 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9A2940386038B91A1CA77244 /* Pods.debug.xcconfig */; - buildSettings = { - INFOPLIST_FILE = DataStreamControllerFeatureSwift/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.DataStreamControllerFeatureSwift; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 7902D8CE1BAD718B00AA1341 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 44273F4BF5202F534F32DD34 /* Pods.release.xcconfig */; - buildSettings = { - INFOPLIST_FILE = DataStreamControllerFeatureSwift/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.DataStreamControllerFeatureSwift; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 7902D8B51BAD718B00AA1341 /* Build configuration list for PBXProject "DataStreamControllerFeatureSwift" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7902D8CA1BAD718B00AA1341 /* Debug */, - 7902D8CB1BAD718B00AA1341 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 7902D8CC1BAD718B00AA1341 /* Build configuration list for PBXNativeTarget "DataStreamControllerFeatureSwift" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7902D8CD1BAD718B00AA1341 /* Debug */, - 7902D8CE1BAD718B00AA1341 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 7902D8B21BAD718B00AA1341 /* Project object */; -} diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step2/DataStreamControllerFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step2/DataStreamControllerFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index e201f188c..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step2/DataStreamControllerFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step2/DataStreamControllerFeatureSwift/AppDelegate.swift b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step2/DataStreamControllerFeatureSwift/AppDelegate.swift deleted file mode 100644 index 65d382162..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step2/DataStreamControllerFeatureSwift/AppDelegate.swift +++ /dev/null @@ -1,52 +0,0 @@ -/*fabric:start-text*/ -// To receive messages from the channel group, subscribe to the channel group created in the previous step. -/*fabric:end-text*/ -/** -@author Sergey Mamontov -@copyright © 2009-2015 PubNub, Inc. -*/ -/*fabric:start-code*/ -import UIKit -import PubNub -import PubNubBridge - - -@UIApplicationMain -class AppDelegate: UIResponder, UIApplicationDelegate { - - var window: UIWindow? - var client: PubNub? - - func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { - - self.client = PubNub.client() - self.client?.addChannels(["announcements", "lobby"], toGroup: "tradeshow", - withCompletion: {[weak self] (status) -> Void in - - /*fabric:start-highlight*/ - // Check whether request successfully completed or not. - if !status.error { - - withExtendedLifetime(self) { - - self!.client?.addListener(self!) - self!.client?.subscribeToChannelGroups(["tradeshow"], withPresence: false) - } - } - else { - - // Handle channels list modification for group error. Check 'category' property - // to find out possible reason because of which request did fail. - // Review 'errorData' property (which has PNErrorData data type) of status - // object to get additional information about issue. - // - // Request can be resent using: status.retry() - } - /*fabric:end-highlight*/ - }) - - return true - } -} -/*fabric:end-code*/ - diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step2/DataStreamControllerFeatureSwift/Info.plist b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step2/DataStreamControllerFeatureSwift/Info.plist deleted file mode 100644 index fb4115c84..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step2/DataStreamControllerFeatureSwift/Info.plist +++ /dev/null @@ -1,36 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step2/Podfile b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step2/Podfile deleted file mode 100644 index 282a2f6c8..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step2/Podfile +++ /dev/null @@ -1,20 +0,0 @@ -source 'git@github.com:parfeon/pubnub-private-pods-repo.git' -source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '8.0' -use_frameworks! -pod "PubNubBridge" - -post_install do |installer_representation| - installer_representation.pods_project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings['GCC_INSTRUMENT_PROGRAM_FLOW_ARCS'] = 'NO' - config.build_settings['GCC_GENERATE_TEST_COVERAGE_FILES'] = 'NO' - if target.name == "CocoaLumberjack" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - if target.name == "OHHTTPStubs" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - end - end -end \ No newline at end of file diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step3/DataStreamControllerFeatureSwift.xcodeproj/project.pbxproj b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step3/DataStreamControllerFeatureSwift.xcodeproj/project.pbxproj deleted file mode 100644 index afe283b2b..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step3/DataStreamControllerFeatureSwift.xcodeproj/project.pbxproj +++ /dev/null @@ -1,333 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 3782E2EE7E795E718B10BED2 /* Pods.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 92266E42E8345C10123CBF92 /* Pods.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; - 7902D8BE1BAD718B00AA1341 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7902D8BD1BAD718B00AA1341 /* AppDelegate.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 44273F4BF5202F534F32DD34 /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; - 7902D8BA1BAD718B00AA1341 /* DataStreamControllerFeatureSwift.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DataStreamControllerFeatureSwift.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 7902D8BD1BAD718B00AA1341 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 7902D8C91BAD718B00AA1341 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 92266E42E8345C10123CBF92 /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 9A2940386038B91A1CA77244 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 7902D8B71BAD718B00AA1341 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 3782E2EE7E795E718B10BED2 /* Pods.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 7902D8B11BAD718B00AA1341 = { - isa = PBXGroup; - children = ( - 7902D8BC1BAD718B00AA1341 /* DataStreamControllerFeatureSwift */, - 7902D8BB1BAD718B00AA1341 /* Products */, - DEA3794159A04289DABB65AD /* Pods */, - 816E487C0D900552872B57A4 /* Frameworks */, - ); - sourceTree = ""; - }; - 7902D8BB1BAD718B00AA1341 /* Products */ = { - isa = PBXGroup; - children = ( - 7902D8BA1BAD718B00AA1341 /* DataStreamControllerFeatureSwift.app */, - ); - name = Products; - sourceTree = ""; - }; - 7902D8BC1BAD718B00AA1341 /* DataStreamControllerFeatureSwift */ = { - isa = PBXGroup; - children = ( - 7902D8BD1BAD718B00AA1341 /* AppDelegate.swift */, - 7902D8C91BAD718B00AA1341 /* Info.plist */, - ); - path = DataStreamControllerFeatureSwift; - sourceTree = ""; - }; - 816E487C0D900552872B57A4 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 92266E42E8345C10123CBF92 /* Pods.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - DEA3794159A04289DABB65AD /* Pods */ = { - isa = PBXGroup; - children = ( - 9A2940386038B91A1CA77244 /* Pods.debug.xcconfig */, - 44273F4BF5202F534F32DD34 /* Pods.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 7902D8B91BAD718B00AA1341 /* DataStreamControllerFeatureSwift */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7902D8CC1BAD718B00AA1341 /* Build configuration list for PBXNativeTarget "DataStreamControllerFeatureSwift" */; - buildPhases = ( - 0BE18B1EC02A29FA768D7C1A /* Check Pods Manifest.lock */, - 7902D8B61BAD718B00AA1341 /* Sources */, - 7902D8B71BAD718B00AA1341 /* Frameworks */, - 7902D8B81BAD718B00AA1341 /* Resources */, - 0255B09E28D0CC0AFE10E818 /* Embed Pods Frameworks */, - E69736F191479F62B1F87B62 /* Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = DataStreamControllerFeatureSwift; - productName = DataStreamControllerFeatureSwift; - productReference = 7902D8BA1BAD718B00AA1341 /* DataStreamControllerFeatureSwift.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 7902D8B21BAD718B00AA1341 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0700; - ORGANIZATIONNAME = PubNub; - TargetAttributes = { - 7902D8B91BAD718B00AA1341 = { - CreatedOnToolsVersion = 7.0; - }; - }; - }; - buildConfigurationList = 7902D8B51BAD718B00AA1341 /* Build configuration list for PBXProject "DataStreamControllerFeatureSwift" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 7902D8B11BAD718B00AA1341; - productRefGroup = 7902D8BB1BAD718B00AA1341 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 7902D8B91BAD718B00AA1341 /* DataStreamControllerFeatureSwift */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 7902D8B81BAD718B00AA1341 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 0255B09E28D0CC0AFE10E818 /* Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 0BE18B1EC02A29FA768D7C1A /* Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - E69736F191479F62B1F87B62 /* Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 7902D8B61BAD718B00AA1341 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 7902D8BE1BAD718B00AA1341 /* AppDelegate.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 7902D8CA1BAD718B00AA1341 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 7902D8CB1BAD718B00AA1341 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 7902D8CD1BAD718B00AA1341 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9A2940386038B91A1CA77244 /* Pods.debug.xcconfig */; - buildSettings = { - INFOPLIST_FILE = DataStreamControllerFeatureSwift/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.DataStreamControllerFeatureSwift; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 7902D8CE1BAD718B00AA1341 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 44273F4BF5202F534F32DD34 /* Pods.release.xcconfig */; - buildSettings = { - INFOPLIST_FILE = DataStreamControllerFeatureSwift/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.DataStreamControllerFeatureSwift; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 7902D8B51BAD718B00AA1341 /* Build configuration list for PBXProject "DataStreamControllerFeatureSwift" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7902D8CA1BAD718B00AA1341 /* Debug */, - 7902D8CB1BAD718B00AA1341 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 7902D8CC1BAD718B00AA1341 /* Build configuration list for PBXNativeTarget "DataStreamControllerFeatureSwift" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7902D8CD1BAD718B00AA1341 /* Debug */, - 7902D8CE1BAD718B00AA1341 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 7902D8B21BAD718B00AA1341 /* Project object */; -} diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step3/DataStreamControllerFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step3/DataStreamControllerFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index e201f188c..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step3/DataStreamControllerFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step3/DataStreamControllerFeatureSwift/AppDelegate.swift b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step3/DataStreamControllerFeatureSwift/AppDelegate.swift deleted file mode 100644 index 4d0ab9679..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step3/DataStreamControllerFeatureSwift/AppDelegate.swift +++ /dev/null @@ -1,76 +0,0 @@ -/*fabric:start-text*/ -// It is always a good idea to add a subscription status handling callback to know when a subscription process completed or stumbled on an unexpected disconnection. -/*fabric:end-text*/ -/** -@author Sergey Mamontov -@copyright © 2009-2015 PubNub, Inc. -*/ -/*fabric:start-code*/ -import UIKit -import PubNub -import PubNubBridge - - -@UIApplicationMain -/*fabric:start-highlight*/ -class AppDelegate: UIResponder, UIApplicationDelegate, PNObjectEventListener { -/*fabric:end-highlight*/ - - var window: UIWindow? - var client: PubNub? - - func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { - - self.client = PubNub.client() - self.client?.addChannels(["announcements", "lobby"], toGroup: "tradeshow", - withCompletion: {[weak self] (status) -> Void in - - // Check whether request successfully completed or not. - if !status.error { - - withExtendedLifetime(self) { - - self!.client?.addListener(self!) - self!.client?.subscribeToChannelGroups(["tradeshow"], withPresence: false) - } - } - else { - } - }) - - return true - } - - /*fabric:start-highlight*/ - func client(client: PubNub!, didReceiveStatus status: PNSubscribeStatus!) { - - if status.category == .PNUnexpectedDisconnectCategory { - - // This event happens when radio / connectivity is lost - } - else if status.category == .PNConnectedCategory { - - // Connect event. You can do stuff like publish, and know you'll get it. - // Or just use the connected event to confirm you are subscribed for - // UI / internal notifications, etc - } - else if status.category == .PNReconnectedCategory { - - // Happens as part of our regular operation. This event happens when - // radio / connectivity is lost, then regained. - } - else if status.category == .PNDisconnectedCategory { - - // Disconnection event. After this moment any messages from unsubscribed channel - // won't reach this callback. - } - else if status.category == .PNDecryptionErrorCategory { - - // Handle messsage decryption error. Probably client configured to - // encrypt messages and on live data feed it received plain text. - } - } - /*fabric:end-highlight*/ -} -/*fabric:end-code*/ - diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step3/DataStreamControllerFeatureSwift/Info.plist b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step3/DataStreamControllerFeatureSwift/Info.plist deleted file mode 100644 index fb4115c84..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step3/DataStreamControllerFeatureSwift/Info.plist +++ /dev/null @@ -1,36 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step3/Podfile b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step3/Podfile deleted file mode 100644 index 282a2f6c8..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step3/Podfile +++ /dev/null @@ -1,20 +0,0 @@ -source 'git@github.com:parfeon/pubnub-private-pods-repo.git' -source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '8.0' -use_frameworks! -pod "PubNubBridge" - -post_install do |installer_representation| - installer_representation.pods_project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings['GCC_INSTRUMENT_PROGRAM_FLOW_ARCS'] = 'NO' - config.build_settings['GCC_GENERATE_TEST_COVERAGE_FILES'] = 'NO' - if target.name == "CocoaLumberjack" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - if target.name == "OHHTTPStubs" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - end - end -end \ No newline at end of file diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step4/DataStreamControllerFeatureSwift.xcodeproj/project.pbxproj b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step4/DataStreamControllerFeatureSwift.xcodeproj/project.pbxproj deleted file mode 100644 index afe283b2b..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step4/DataStreamControllerFeatureSwift.xcodeproj/project.pbxproj +++ /dev/null @@ -1,333 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 3782E2EE7E795E718B10BED2 /* Pods.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 92266E42E8345C10123CBF92 /* Pods.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; - 7902D8BE1BAD718B00AA1341 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7902D8BD1BAD718B00AA1341 /* AppDelegate.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 44273F4BF5202F534F32DD34 /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; - 7902D8BA1BAD718B00AA1341 /* DataStreamControllerFeatureSwift.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = DataStreamControllerFeatureSwift.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 7902D8BD1BAD718B00AA1341 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 7902D8C91BAD718B00AA1341 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 92266E42E8345C10123CBF92 /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 9A2940386038B91A1CA77244 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 7902D8B71BAD718B00AA1341 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 3782E2EE7E795E718B10BED2 /* Pods.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 7902D8B11BAD718B00AA1341 = { - isa = PBXGroup; - children = ( - 7902D8BC1BAD718B00AA1341 /* DataStreamControllerFeatureSwift */, - 7902D8BB1BAD718B00AA1341 /* Products */, - DEA3794159A04289DABB65AD /* Pods */, - 816E487C0D900552872B57A4 /* Frameworks */, - ); - sourceTree = ""; - }; - 7902D8BB1BAD718B00AA1341 /* Products */ = { - isa = PBXGroup; - children = ( - 7902D8BA1BAD718B00AA1341 /* DataStreamControllerFeatureSwift.app */, - ); - name = Products; - sourceTree = ""; - }; - 7902D8BC1BAD718B00AA1341 /* DataStreamControllerFeatureSwift */ = { - isa = PBXGroup; - children = ( - 7902D8BD1BAD718B00AA1341 /* AppDelegate.swift */, - 7902D8C91BAD718B00AA1341 /* Info.plist */, - ); - path = DataStreamControllerFeatureSwift; - sourceTree = ""; - }; - 816E487C0D900552872B57A4 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 92266E42E8345C10123CBF92 /* Pods.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - DEA3794159A04289DABB65AD /* Pods */ = { - isa = PBXGroup; - children = ( - 9A2940386038B91A1CA77244 /* Pods.debug.xcconfig */, - 44273F4BF5202F534F32DD34 /* Pods.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 7902D8B91BAD718B00AA1341 /* DataStreamControllerFeatureSwift */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7902D8CC1BAD718B00AA1341 /* Build configuration list for PBXNativeTarget "DataStreamControllerFeatureSwift" */; - buildPhases = ( - 0BE18B1EC02A29FA768D7C1A /* Check Pods Manifest.lock */, - 7902D8B61BAD718B00AA1341 /* Sources */, - 7902D8B71BAD718B00AA1341 /* Frameworks */, - 7902D8B81BAD718B00AA1341 /* Resources */, - 0255B09E28D0CC0AFE10E818 /* Embed Pods Frameworks */, - E69736F191479F62B1F87B62 /* Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = DataStreamControllerFeatureSwift; - productName = DataStreamControllerFeatureSwift; - productReference = 7902D8BA1BAD718B00AA1341 /* DataStreamControllerFeatureSwift.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 7902D8B21BAD718B00AA1341 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0700; - ORGANIZATIONNAME = PubNub; - TargetAttributes = { - 7902D8B91BAD718B00AA1341 = { - CreatedOnToolsVersion = 7.0; - }; - }; - }; - buildConfigurationList = 7902D8B51BAD718B00AA1341 /* Build configuration list for PBXProject "DataStreamControllerFeatureSwift" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 7902D8B11BAD718B00AA1341; - productRefGroup = 7902D8BB1BAD718B00AA1341 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 7902D8B91BAD718B00AA1341 /* DataStreamControllerFeatureSwift */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 7902D8B81BAD718B00AA1341 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 0255B09E28D0CC0AFE10E818 /* Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - 0BE18B1EC02A29FA768D7C1A /* Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - E69736F191479F62B1F87B62 /* Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 7902D8B61BAD718B00AA1341 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 7902D8BE1BAD718B00AA1341 /* AppDelegate.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 7902D8CA1BAD718B00AA1341 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 7902D8CB1BAD718B00AA1341 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 7902D8CD1BAD718B00AA1341 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9A2940386038B91A1CA77244 /* Pods.debug.xcconfig */; - buildSettings = { - INFOPLIST_FILE = DataStreamControllerFeatureSwift/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.DataStreamControllerFeatureSwift; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 7902D8CE1BAD718B00AA1341 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 44273F4BF5202F534F32DD34 /* Pods.release.xcconfig */; - buildSettings = { - INFOPLIST_FILE = DataStreamControllerFeatureSwift/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.DataStreamControllerFeatureSwift; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 7902D8B51BAD718B00AA1341 /* Build configuration list for PBXProject "DataStreamControllerFeatureSwift" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7902D8CA1BAD718B00AA1341 /* Debug */, - 7902D8CB1BAD718B00AA1341 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 7902D8CC1BAD718B00AA1341 /* Build configuration list for PBXNativeTarget "DataStreamControllerFeatureSwift" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7902D8CD1BAD718B00AA1341 /* Debug */, - 7902D8CE1BAD718B00AA1341 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 7902D8B21BAD718B00AA1341 /* Project object */; -} diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step4/DataStreamControllerFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step4/DataStreamControllerFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index e201f188c..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step4/DataStreamControllerFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step4/DataStreamControllerFeatureSwift/AppDelegate.swift b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step4/DataStreamControllerFeatureSwift/AppDelegate.swift deleted file mode 100644 index c59fd6735..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step4/DataStreamControllerFeatureSwift/AppDelegate.swift +++ /dev/null @@ -1,78 +0,0 @@ -/*fabric:start-text*/ -// To handle real-time messages from a subscribed channel group (subscribed on in previous steps), add a message handling callback. -/*fabric:end-text*/ -/** -@author Sergey Mamontov -@copyright © 2009-2015 PubNub, Inc. -*/ -/*fabric:start-code*/ -import UIKit -import PubNub -import PubNubBridge - - -@UIApplicationMain -class AppDelegate: UIResponder, UIApplicationDelegate, PNObjectEventListener { - - var window: UIWindow? - var client: PubNub? - - func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { - - self.client = PubNub.client() - self.client?.addChannels(["announcements", "lobby"], toGroup: "tradeshow", - withCompletion: {[weak self] (status) -> Void in - - // Check whether request successfully completed or not. - if !status.error { - - withExtendedLifetime(self) { - - self!.client?.addListener(self!) - self!.client?.subscribeToChannelGroups(["tradeshow"], withPresence: false) - } - } - else { - } - }) - - return true - } - - func client(client: PubNub!, didReceiveStatus status: PNSubscribeStatus!) { - - if status.category == .PNUnexpectedDisconnectCategory { - } - else if status.category == .PNConnectedCategory { - } - else if status.category == .PNReconnectedCategory { - } - else if status.category == .PNDisconnectedCategory { - } - else if status.category == .PNDecryptionErrorCategory { - } - } - - /*fabric:start-highlight*/ - func client(client: PubNub!, didReceiveMessage message: PNMessageResult!) { - - // Handle new message stored in message.data.message - if message.data.actualChannel != nil { - - // Message has been received on channel group stored in - // message.data.subscribedChannel - } - else { - - // Message has been received on channel stored in - // message.data.subscribedChannel - } - - print("Received message: \(message.data.message) on channel " + - "\((message.data.actualChannel ?? message.data.subscribedChannel)!) at " + - "\(message.data.timetoken)") - } - /*fabric:end-highlight*/ -} -/*fabric:end-code*/ - diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step4/DataStreamControllerFeatureSwift/Info.plist b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step4/DataStreamControllerFeatureSwift/Info.plist deleted file mode 100644 index fb4115c84..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step4/DataStreamControllerFeatureSwift/Info.plist +++ /dev/null @@ -1,36 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step4/Podfile b/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step4/Podfile deleted file mode 100644 index 282a2f6c8..000000000 --- a/Support/Fabric/doc-sources/Features/DataStreamController/DataStreamControllerFeatureSwift/Step4/Podfile +++ /dev/null @@ -1,20 +0,0 @@ -source 'git@github.com:parfeon/pubnub-private-pods-repo.git' -source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '8.0' -use_frameworks! -pod "PubNubBridge" - -post_install do |installer_representation| - installer_representation.pods_project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings['GCC_INSTRUMENT_PROGRAM_FLOW_ARCS'] = 'NO' - config.build_settings['GCC_GENERATE_TEST_COVERAGE_FILES'] = 'NO' - if target.name == "CocoaLumberjack" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - if target.name == "OHHTTPStubs" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - end - end -end \ No newline at end of file diff --git a/Support/Fabric/doc-sources/Features/History/ChannelHistoryFeatureObjC/ChannelHistoryFeatureObjC.xcodeproj/project.pbxproj b/Support/Fabric/doc-sources/Features/History/ChannelHistoryFeatureObjC/ChannelHistoryFeatureObjC.xcodeproj/project.pbxproj deleted file mode 100644 index 8f8bb9300..000000000 --- a/Support/Fabric/doc-sources/Features/History/ChannelHistoryFeatureObjC/ChannelHistoryFeatureObjC.xcodeproj/project.pbxproj +++ /dev/null @@ -1,346 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 603FCD4838315342C3635D4C /* Pods.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4D5C5529BE96FE22A16E2D0C /* Pods.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; - 79ADF8B51BACA18000D00123 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 79ADF8B41BACA18000D00123 /* main.m */; }; - 79ADF8B81BACA18000D00123 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 79ADF8B71BACA18000D00123 /* AppDelegate.m */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 4D5C5529BE96FE22A16E2D0C /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 79ADF8B01BACA18000D00123 /* ChannelHistoryFeatureObjC.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ChannelHistoryFeatureObjC.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 79ADF8B41BACA18000D00123 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 79ADF8B61BACA18000D00123 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; - 79ADF8B71BACA18000D00123 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - 79ADF8C41BACA18000D00123 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 7E2869151961D755C513BAA8 /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; - AC3DB215EC0F03C1269D4156 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 79ADF8AD1BACA18000D00123 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 603FCD4838315342C3635D4C /* Pods.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 4FB46F09709857911B9386C1 /* Pods */ = { - isa = PBXGroup; - children = ( - AC3DB215EC0F03C1269D4156 /* Pods.debug.xcconfig */, - 7E2869151961D755C513BAA8 /* Pods.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; - 6BB3EB65E11F46CDDBDB60D7 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 4D5C5529BE96FE22A16E2D0C /* Pods.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 79ADF8A71BACA18000D00123 = { - isa = PBXGroup; - children = ( - 79ADF8B21BACA18000D00123 /* ChannelHistoryFeatureObjC */, - 79ADF8B11BACA18000D00123 /* Products */, - 4FB46F09709857911B9386C1 /* Pods */, - 6BB3EB65E11F46CDDBDB60D7 /* Frameworks */, - ); - sourceTree = ""; - }; - 79ADF8B11BACA18000D00123 /* Products */ = { - isa = PBXGroup; - children = ( - 79ADF8B01BACA18000D00123 /* ChannelHistoryFeatureObjC.app */, - ); - name = Products; - sourceTree = ""; - }; - 79ADF8B21BACA18000D00123 /* ChannelHistoryFeatureObjC */ = { - isa = PBXGroup; - children = ( - 79ADF8B61BACA18000D00123 /* AppDelegate.h */, - 79ADF8B71BACA18000D00123 /* AppDelegate.m */, - 79ADF8C41BACA18000D00123 /* Info.plist */, - 79ADF8B31BACA18000D00123 /* Supporting Files */, - ); - path = ChannelHistoryFeatureObjC; - sourceTree = ""; - }; - 79ADF8B31BACA18000D00123 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 79ADF8B41BACA18000D00123 /* main.m */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 79ADF8AF1BACA18000D00123 /* ChannelHistoryFeatureObjC */ = { - isa = PBXNativeTarget; - buildConfigurationList = 79ADF8C71BACA18000D00123 /* Build configuration list for PBXNativeTarget "ChannelHistoryFeatureObjC" */; - buildPhases = ( - AF745FC30960D0F3320F5983 /* Check Pods Manifest.lock */, - 79ADF8AC1BACA18000D00123 /* Sources */, - 79ADF8AD1BACA18000D00123 /* Frameworks */, - 79ADF8AE1BACA18000D00123 /* Resources */, - 840202A384B2A22EC72408E4 /* Embed Pods Frameworks */, - 149234C77B341CE36F5053DC /* Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = ChannelHistoryFeatureObjC; - productName = ChannelHistoryFeatureObjC; - productReference = 79ADF8B01BACA18000D00123 /* ChannelHistoryFeatureObjC.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 79ADF8A81BACA18000D00123 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0700; - ORGANIZATIONNAME = PubNub; - TargetAttributes = { - 79ADF8AF1BACA18000D00123 = { - CreatedOnToolsVersion = 7.0; - }; - }; - }; - buildConfigurationList = 79ADF8AB1BACA18000D00123 /* Build configuration list for PBXProject "ChannelHistoryFeatureObjC" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 79ADF8A71BACA18000D00123; - productRefGroup = 79ADF8B11BACA18000D00123 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 79ADF8AF1BACA18000D00123 /* ChannelHistoryFeatureObjC */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 79ADF8AE1BACA18000D00123 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 149234C77B341CE36F5053DC /* Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - 840202A384B2A22EC72408E4 /* Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - AF745FC30960D0F3320F5983 /* Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 79ADF8AC1BACA18000D00123 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 79ADF8B81BACA18000D00123 /* AppDelegate.m in Sources */, - 79ADF8B51BACA18000D00123 /* main.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 79ADF8C51BACA18000D00123 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - }; - name = Debug; - }; - 79ADF8C61BACA18000D00123 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 79ADF8C81BACA18000D00123 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = AC3DB215EC0F03C1269D4156 /* Pods.debug.xcconfig */; - buildSettings = { - INFOPLIST_FILE = ChannelHistoryFeatureObjC/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.ChannelHistoryFeatureObjC; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 79ADF8C91BACA18000D00123 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 7E2869151961D755C513BAA8 /* Pods.release.xcconfig */; - buildSettings = { - INFOPLIST_FILE = ChannelHistoryFeatureObjC/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.ChannelHistoryFeatureObjC; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 79ADF8AB1BACA18000D00123 /* Build configuration list for PBXProject "ChannelHistoryFeatureObjC" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 79ADF8C51BACA18000D00123 /* Debug */, - 79ADF8C61BACA18000D00123 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 79ADF8C71BACA18000D00123 /* Build configuration list for PBXNativeTarget "ChannelHistoryFeatureObjC" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 79ADF8C81BACA18000D00123 /* Debug */, - 79ADF8C91BACA18000D00123 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 79ADF8A81BACA18000D00123 /* Project object */; -} diff --git a/Support/Fabric/doc-sources/Features/History/ChannelHistoryFeatureObjC/ChannelHistoryFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Support/Fabric/doc-sources/Features/History/ChannelHistoryFeatureObjC/ChannelHistoryFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index bcd2f2fed..000000000 --- a/Support/Fabric/doc-sources/Features/History/ChannelHistoryFeatureObjC/ChannelHistoryFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Support/Fabric/doc-sources/Features/History/ChannelHistoryFeatureObjC/ChannelHistoryFeatureObjC/AppDelegate.h b/Support/Fabric/doc-sources/Features/History/ChannelHistoryFeatureObjC/ChannelHistoryFeatureObjC/AppDelegate.h deleted file mode 100644 index 20e76883b..000000000 --- a/Support/Fabric/doc-sources/Features/History/ChannelHistoryFeatureObjC/ChannelHistoryFeatureObjC/AppDelegate.h +++ /dev/null @@ -1,13 +0,0 @@ -#import - - -/** - @author Sergey Mamontov - @copyright © 2009-2015 PubNub, Inc. - */ -@interface AppDelegate : UIResponder - -@property (strong, nonatomic) UIWindow *window; - -@end - diff --git a/Support/Fabric/doc-sources/Features/History/ChannelHistoryFeatureObjC/ChannelHistoryFeatureObjC/AppDelegate.m b/Support/Fabric/doc-sources/Features/History/ChannelHistoryFeatureObjC/ChannelHistoryFeatureObjC/AppDelegate.m deleted file mode 100644 index 7d2f96002..000000000 --- a/Support/Fabric/doc-sources/Features/History/ChannelHistoryFeatureObjC/ChannelHistoryFeatureObjC/AppDelegate.m +++ /dev/null @@ -1,56 +0,0 @@ -/*fabric:start-text*/ -// If the storage and history feature is enabled, you can use this snippet to retrieve previously published messages from storage. -/*fabric:end-text*/ -/** - @author Sergey Mamontov - @copyright © 2009-2015 PubNub, Inc. - */ -/*fabric:start-code*/ -#import "AppDelegate.h" -/*fabric:start-highlight*/ -#import -#import -/*fabric:end-highlight*/ - - -@interface AppDelegate () - -/*fabric:start-highlight*/ -@property (nonatomic, strong) PubNub *client; -/*fabric:end-highlight*/ - -@end - - -@implementation AppDelegate - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { - - /*fabric:start-highlight*/ - self.client = [PubNub client]; - [self.client historyForChannel:@"lobby" withCompletion:^(PNHistoryResult *result, PNErrorStatus *status) { - - // Check whether request successfully completed or not. - if (!status.isError) { - - // Handle downloaded history using: - // result.data.start - oldest message time stamp in response - // result.data.end - newest message time stamp in response - // result.data.messages - list of messages - } - // Request processing failed. - else { - - // Handle message history download error. Check 'category' property to find out possible - // issue because of which request did fail. - // - // Request can be resent using: [status retry]; - } - }]; - /*fabric:end-highlight*/ - - return YES; -} - -@end -/*fabric:end-code*/ diff --git a/Support/Fabric/doc-sources/Features/History/ChannelHistoryFeatureObjC/ChannelHistoryFeatureObjC/Info.plist b/Support/Fabric/doc-sources/Features/History/ChannelHistoryFeatureObjC/ChannelHistoryFeatureObjC/Info.plist deleted file mode 100644 index fb4115c84..000000000 --- a/Support/Fabric/doc-sources/Features/History/ChannelHistoryFeatureObjC/ChannelHistoryFeatureObjC/Info.plist +++ /dev/null @@ -1,36 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/Support/Fabric/doc-sources/Features/History/ChannelHistoryFeatureObjC/ChannelHistoryFeatureObjC/main.m b/Support/Fabric/doc-sources/Features/History/ChannelHistoryFeatureObjC/ChannelHistoryFeatureObjC/main.m deleted file mode 100644 index fa0e16f89..000000000 --- a/Support/Fabric/doc-sources/Features/History/ChannelHistoryFeatureObjC/ChannelHistoryFeatureObjC/main.m +++ /dev/null @@ -1,16 +0,0 @@ -// -// main.m -// ChannelHistoryFeatureObjC -// -// Created by Sergey Mamontov on 9/18/15. -// Copyright © 2015 PubNub. All rights reserved. -// - -#import -#import "AppDelegate.h" - -int main(int argc, char * argv[]) { - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); - } -} diff --git a/Support/Fabric/doc-sources/Features/History/ChannelHistoryFeatureObjC/Podfile b/Support/Fabric/doc-sources/Features/History/ChannelHistoryFeatureObjC/Podfile deleted file mode 100644 index 282a2f6c8..000000000 --- a/Support/Fabric/doc-sources/Features/History/ChannelHistoryFeatureObjC/Podfile +++ /dev/null @@ -1,20 +0,0 @@ -source 'git@github.com:parfeon/pubnub-private-pods-repo.git' -source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '8.0' -use_frameworks! -pod "PubNubBridge" - -post_install do |installer_representation| - installer_representation.pods_project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings['GCC_INSTRUMENT_PROGRAM_FLOW_ARCS'] = 'NO' - config.build_settings['GCC_GENERATE_TEST_COVERAGE_FILES'] = 'NO' - if target.name == "CocoaLumberjack" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - if target.name == "OHHTTPStubs" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - end - end -end \ No newline at end of file diff --git a/Support/Fabric/doc-sources/Features/History/ChannelHistoryFeatureSwift/ChannelHistoryFeatureSwift.xcodeproj/project.pbxproj b/Support/Fabric/doc-sources/Features/History/ChannelHistoryFeatureSwift/ChannelHistoryFeatureSwift.xcodeproj/project.pbxproj deleted file mode 100644 index 0e2d375f0..000000000 --- a/Support/Fabric/doc-sources/Features/History/ChannelHistoryFeatureSwift/ChannelHistoryFeatureSwift.xcodeproj/project.pbxproj +++ /dev/null @@ -1,333 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 79ADF8D71BACA74200D00123 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79ADF8D61BACA74200D00123 /* AppDelegate.swift */; }; - AB3D50E67EE5DBB57A65FB06 /* Pods.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4F9BF4E1FF177374924B29E4 /* Pods.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 35840301C7D752922BB48529 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; - 4F9BF4E1FF177374924B29E4 /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 79ADF8D31BACA74200D00123 /* ChannelHistoryFeatureSwift.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ChannelHistoryFeatureSwift.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 79ADF8D61BACA74200D00123 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 79ADF8E21BACA74200D00123 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - B774BC27E9779B86ABBF8C21 /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 79ADF8D01BACA74200D00123 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - AB3D50E67EE5DBB57A65FB06 /* Pods.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 1BF68ECF2D1465A8409D9D3F /* Frameworks */ = { - isa = PBXGroup; - children = ( - 4F9BF4E1FF177374924B29E4 /* Pods.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 41F9727EC44198D6F271F0B5 /* Pods */ = { - isa = PBXGroup; - children = ( - 35840301C7D752922BB48529 /* Pods.debug.xcconfig */, - B774BC27E9779B86ABBF8C21 /* Pods.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; - 79ADF8CA1BACA74200D00123 = { - isa = PBXGroup; - children = ( - 79ADF8D51BACA74200D00123 /* ChannelHistoryFeatureSwift */, - 79ADF8D41BACA74200D00123 /* Products */, - 41F9727EC44198D6F271F0B5 /* Pods */, - 1BF68ECF2D1465A8409D9D3F /* Frameworks */, - ); - sourceTree = ""; - }; - 79ADF8D41BACA74200D00123 /* Products */ = { - isa = PBXGroup; - children = ( - 79ADF8D31BACA74200D00123 /* ChannelHistoryFeatureSwift.app */, - ); - name = Products; - sourceTree = ""; - }; - 79ADF8D51BACA74200D00123 /* ChannelHistoryFeatureSwift */ = { - isa = PBXGroup; - children = ( - 79ADF8D61BACA74200D00123 /* AppDelegate.swift */, - 79ADF8E21BACA74200D00123 /* Info.plist */, - ); - path = ChannelHistoryFeatureSwift; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 79ADF8D21BACA74200D00123 /* ChannelHistoryFeatureSwift */ = { - isa = PBXNativeTarget; - buildConfigurationList = 79ADF8E51BACA74200D00123 /* Build configuration list for PBXNativeTarget "ChannelHistoryFeatureSwift" */; - buildPhases = ( - F2CF655EAFBCB428308D7461 /* Check Pods Manifest.lock */, - 79ADF8CF1BACA74200D00123 /* Sources */, - 79ADF8D01BACA74200D00123 /* Frameworks */, - 79ADF8D11BACA74200D00123 /* Resources */, - 73E4CDB550965DC29799016C /* Embed Pods Frameworks */, - D5C865D1CC47A952851126AD /* Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = ChannelHistoryFeatureSwift; - productName = ChannelHistoryFeatureSwift; - productReference = 79ADF8D31BACA74200D00123 /* ChannelHistoryFeatureSwift.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 79ADF8CB1BACA74200D00123 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0700; - ORGANIZATIONNAME = PubNub; - TargetAttributes = { - 79ADF8D21BACA74200D00123 = { - CreatedOnToolsVersion = 7.0; - }; - }; - }; - buildConfigurationList = 79ADF8CE1BACA74200D00123 /* Build configuration list for PBXProject "ChannelHistoryFeatureSwift" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 79ADF8CA1BACA74200D00123; - productRefGroup = 79ADF8D41BACA74200D00123 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 79ADF8D21BACA74200D00123 /* ChannelHistoryFeatureSwift */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 79ADF8D11BACA74200D00123 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 73E4CDB550965DC29799016C /* Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - D5C865D1CC47A952851126AD /* Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - F2CF655EAFBCB428308D7461 /* Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 79ADF8CF1BACA74200D00123 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 79ADF8D71BACA74200D00123 /* AppDelegate.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 79ADF8E31BACA74200D00123 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 79ADF8E41BACA74200D00123 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 79ADF8E61BACA74200D00123 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 35840301C7D752922BB48529 /* Pods.debug.xcconfig */; - buildSettings = { - INFOPLIST_FILE = ChannelHistoryFeatureSwift/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.ChannelHistoryFeatureSwift; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 79ADF8E71BACA74200D00123 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = B774BC27E9779B86ABBF8C21 /* Pods.release.xcconfig */; - buildSettings = { - INFOPLIST_FILE = ChannelHistoryFeatureSwift/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.ChannelHistoryFeatureSwift; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 79ADF8CE1BACA74200D00123 /* Build configuration list for PBXProject "ChannelHistoryFeatureSwift" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 79ADF8E31BACA74200D00123 /* Debug */, - 79ADF8E41BACA74200D00123 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 79ADF8E51BACA74200D00123 /* Build configuration list for PBXNativeTarget "ChannelHistoryFeatureSwift" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 79ADF8E61BACA74200D00123 /* Debug */, - 79ADF8E71BACA74200D00123 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 79ADF8CB1BACA74200D00123 /* Project object */; -} diff --git a/Support/Fabric/doc-sources/Features/History/ChannelHistoryFeatureSwift/ChannelHistoryFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Support/Fabric/doc-sources/Features/History/ChannelHistoryFeatureSwift/ChannelHistoryFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 96d08b22a..000000000 --- a/Support/Fabric/doc-sources/Features/History/ChannelHistoryFeatureSwift/ChannelHistoryFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Support/Fabric/doc-sources/Features/History/ChannelHistoryFeatureSwift/ChannelHistoryFeatureSwift/AppDelegate.swift b/Support/Fabric/doc-sources/Features/History/ChannelHistoryFeatureSwift/ChannelHistoryFeatureSwift/AppDelegate.swift deleted file mode 100644 index a2c6ee973..000000000 --- a/Support/Fabric/doc-sources/Features/History/ChannelHistoryFeatureSwift/ChannelHistoryFeatureSwift/AppDelegate.swift +++ /dev/null @@ -1,52 +0,0 @@ -/*fabric:start-text*/ -// If the storage and history feature is enabled, you can use this snippet to retrieve previously published messages from storage. -/*fabric:end-text*/ -/** -@author Sergey Mamontov -@copyright © 2009-2015 PubNub, Inc. -*/ -/*fabric:start-code*/ -import UIKit -/*fabric:start-highlight*/ -import PubNub -import PubNubBridge -/*fabric:end-highlight*/ - - -@UIApplicationMain -class AppDelegate: UIResponder, UIApplicationDelegate { - - var window: UIWindow? - /*fabric:start-highlight*/ - var client: PubNub? - /*fabric:end-highlight*/ - - func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { - - /*fabric:start-highlight*/ - self.client = PubNub.client() - self.client?.historyForChannel("lobby", withCompletion: { (result, status) -> Void in - - if status == nil { - - // Handle downloaded history using: - // result.data.start - oldest message time stamp in response - // result.data.end - newest message time stamp in response - // result.data.messages - list of messages - } - else { - - // Handle message history download error. Check 'category' property - // to find out possible reason because of which request did fail. - // Review 'errorData' property (which has PNErrorData data type) of status - // object to get additional information about issue. - // - // Request can be resent using: status.retry() - } - }) - /*fabric:end-highlight*/ - - return true - } -} -/*fabric:end-code*/ diff --git a/Support/Fabric/doc-sources/Features/History/ChannelHistoryFeatureSwift/ChannelHistoryFeatureSwift/Info.plist b/Support/Fabric/doc-sources/Features/History/ChannelHistoryFeatureSwift/ChannelHistoryFeatureSwift/Info.plist deleted file mode 100644 index fb4115c84..000000000 --- a/Support/Fabric/doc-sources/Features/History/ChannelHistoryFeatureSwift/ChannelHistoryFeatureSwift/Info.plist +++ /dev/null @@ -1,36 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/Support/Fabric/doc-sources/Features/History/ChannelHistoryFeatureSwift/Podfile b/Support/Fabric/doc-sources/Features/History/ChannelHistoryFeatureSwift/Podfile deleted file mode 100644 index 282a2f6c8..000000000 --- a/Support/Fabric/doc-sources/Features/History/ChannelHistoryFeatureSwift/Podfile +++ /dev/null @@ -1,20 +0,0 @@ -source 'git@github.com:parfeon/pubnub-private-pods-repo.git' -source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '8.0' -use_frameworks! -pod "PubNubBridge" - -post_install do |installer_representation| - installer_representation.pods_project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings['GCC_INSTRUMENT_PROGRAM_FLOW_ARCS'] = 'NO' - config.build_settings['GCC_GENERATE_TEST_COVERAGE_FILES'] = 'NO' - if target.name == "CocoaLumberjack" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - if target.name == "OHHTTPStubs" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - end - end -end \ No newline at end of file diff --git a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step1/Podfile b/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step1/Podfile deleted file mode 100644 index 282a2f6c8..000000000 --- a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step1/Podfile +++ /dev/null @@ -1,20 +0,0 @@ -source 'git@github.com:parfeon/pubnub-private-pods-repo.git' -source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '8.0' -use_frameworks! -pod "PubNubBridge" - -post_install do |installer_representation| - installer_representation.pods_project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings['GCC_INSTRUMENT_PROGRAM_FLOW_ARCS'] = 'NO' - config.build_settings['GCC_GENERATE_TEST_COVERAGE_FILES'] = 'NO' - if target.name == "CocoaLumberjack" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - if target.name == "OHHTTPStubs" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - end - end -end \ No newline at end of file diff --git a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step1/PresenceFeatureObjC.xcodeproj/project.pbxproj b/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step1/PresenceFeatureObjC.xcodeproj/project.pbxproj deleted file mode 100644 index fa4d2ec12..000000000 --- a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step1/PresenceFeatureObjC.xcodeproj/project.pbxproj +++ /dev/null @@ -1,346 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 073AD3356345A7068AC5B4E2 /* Pods.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BB60BA2BC7034BF64184A31A /* Pods.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; - 79ADF9371BACB03D00D00123 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 79ADF9361BACB03D00D00123 /* main.m */; }; - 79ADF93A1BACB03D00D00123 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 79ADF9391BACB03D00D00123 /* AppDelegate.m */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 274420A0BEE1C22C22CF282F /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; - 79ADF9321BACB03D00D00123 /* PresenceFeatureObjC.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PresenceFeatureObjC.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 79ADF9361BACB03D00D00123 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 79ADF9381BACB03D00D00123 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; - 79ADF9391BACB03D00D00123 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - 79ADF9461BACB03D00D00123 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 9A8C4898DA9B4DD8712E51F9 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; - BB60BA2BC7034BF64184A31A /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 79ADF92F1BACB03D00D00123 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 073AD3356345A7068AC5B4E2 /* Pods.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 4436528DB4C226CEC68C8BEC /* Pods */ = { - isa = PBXGroup; - children = ( - 9A8C4898DA9B4DD8712E51F9 /* Pods.debug.xcconfig */, - 274420A0BEE1C22C22CF282F /* Pods.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; - 4863ACCC4867CC83C0F723B8 /* Frameworks */ = { - isa = PBXGroup; - children = ( - BB60BA2BC7034BF64184A31A /* Pods.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 79ADF9291BACB03D00D00123 = { - isa = PBXGroup; - children = ( - 79ADF9341BACB03D00D00123 /* PresenceFeatureObjC */, - 79ADF9331BACB03D00D00123 /* Products */, - 4436528DB4C226CEC68C8BEC /* Pods */, - 4863ACCC4867CC83C0F723B8 /* Frameworks */, - ); - sourceTree = ""; - }; - 79ADF9331BACB03D00D00123 /* Products */ = { - isa = PBXGroup; - children = ( - 79ADF9321BACB03D00D00123 /* PresenceFeatureObjC.app */, - ); - name = Products; - sourceTree = ""; - }; - 79ADF9341BACB03D00D00123 /* PresenceFeatureObjC */ = { - isa = PBXGroup; - children = ( - 79ADF9381BACB03D00D00123 /* AppDelegate.h */, - 79ADF9391BACB03D00D00123 /* AppDelegate.m */, - 79ADF9461BACB03D00D00123 /* Info.plist */, - 79ADF9351BACB03D00D00123 /* Supporting Files */, - ); - path = PresenceFeatureObjC; - sourceTree = ""; - }; - 79ADF9351BACB03D00D00123 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 79ADF9361BACB03D00D00123 /* main.m */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 79ADF9311BACB03D00D00123 /* PresenceFeatureObjC */ = { - isa = PBXNativeTarget; - buildConfigurationList = 79ADF9491BACB03D00D00123 /* Build configuration list for PBXNativeTarget "PresenceFeatureObjC" */; - buildPhases = ( - 14905351F928B475F4EDFADE /* Check Pods Manifest.lock */, - 79ADF92E1BACB03D00D00123 /* Sources */, - 79ADF92F1BACB03D00D00123 /* Frameworks */, - 79ADF9301BACB03D00D00123 /* Resources */, - AAA155E906D1ACBD2E8142D8 /* Embed Pods Frameworks */, - 868CFF2A6D074B316F3E3404 /* Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = PresenceFeatureObjC; - productName = PresenceFeatureObjC; - productReference = 79ADF9321BACB03D00D00123 /* PresenceFeatureObjC.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 79ADF92A1BACB03D00D00123 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0700; - ORGANIZATIONNAME = PubNub; - TargetAttributes = { - 79ADF9311BACB03D00D00123 = { - CreatedOnToolsVersion = 7.0; - }; - }; - }; - buildConfigurationList = 79ADF92D1BACB03D00D00123 /* Build configuration list for PBXProject "PresenceFeatureObjC" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 79ADF9291BACB03D00D00123; - productRefGroup = 79ADF9331BACB03D00D00123 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 79ADF9311BACB03D00D00123 /* PresenceFeatureObjC */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 79ADF9301BACB03D00D00123 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 14905351F928B475F4EDFADE /* Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - 868CFF2A6D074B316F3E3404 /* Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - AAA155E906D1ACBD2E8142D8 /* Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 79ADF92E1BACB03D00D00123 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 79ADF93A1BACB03D00D00123 /* AppDelegate.m in Sources */, - 79ADF9371BACB03D00D00123 /* main.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 79ADF9471BACB03D00D00123 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - }; - name = Debug; - }; - 79ADF9481BACB03D00D00123 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 79ADF94A1BACB03D00D00123 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9A8C4898DA9B4DD8712E51F9 /* Pods.debug.xcconfig */; - buildSettings = { - INFOPLIST_FILE = PresenceFeatureObjC/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.PresenceFeatureObjC; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 79ADF94B1BACB03D00D00123 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 274420A0BEE1C22C22CF282F /* Pods.release.xcconfig */; - buildSettings = { - INFOPLIST_FILE = PresenceFeatureObjC/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.PresenceFeatureObjC; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 79ADF92D1BACB03D00D00123 /* Build configuration list for PBXProject "PresenceFeatureObjC" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 79ADF9471BACB03D00D00123 /* Debug */, - 79ADF9481BACB03D00D00123 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 79ADF9491BACB03D00D00123 /* Build configuration list for PBXNativeTarget "PresenceFeatureObjC" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 79ADF94A1BACB03D00D00123 /* Debug */, - 79ADF94B1BACB03D00D00123 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 79ADF92A1BACB03D00D00123 /* Project object */; -} diff --git a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step1/PresenceFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step1/PresenceFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 3dc009bcd..000000000 --- a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step1/PresenceFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step1/PresenceFeatureObjC/AppDelegate.h b/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step1/PresenceFeatureObjC/AppDelegate.h deleted file mode 100644 index 20e76883b..000000000 --- a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step1/PresenceFeatureObjC/AppDelegate.h +++ /dev/null @@ -1,13 +0,0 @@ -#import - - -/** - @author Sergey Mamontov - @copyright © 2009-2015 PubNub, Inc. - */ -@interface AppDelegate : UIResponder - -@property (strong, nonatomic) UIWindow *window; - -@end - diff --git a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step1/PresenceFeatureObjC/AppDelegate.m b/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step1/PresenceFeatureObjC/AppDelegate.m deleted file mode 100644 index 2b06d0eb3..000000000 --- a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step1/PresenceFeatureObjC/AppDelegate.m +++ /dev/null @@ -1,39 +0,0 @@ -/*fabric:start-text*/ -// To receive presence events from other users in real-time, subscribe to the associated presence channels. -/*fabric:end-text*/ -/** - @author Sergey Mamontov - @copyright © 2009-2015 PubNub, Inc. - */ -/*fabric:start-code*/ -#import "AppDelegate.h" -/*fabric:start-highlight*/ -#import -#import -/*fabric:end-highlight*/ - - -@interface AppDelegate () - -/*fabric:start-highlight*/ -@property (nonatomic, strong) PubNub *client; -/*fabric:end-highlight*/ - -@end - - -@implementation AppDelegate - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { - - /*fabric:start-highlight*/ - self.client = [PubNub client]; - [self.client addListener:self]; - [self.client subscribeToPresenceChannels:@[@"lobby"]]; - /*fabric:end-highlight*/ - - return YES; -} - -@end -/*fabric:end-code*/ diff --git a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step1/PresenceFeatureObjC/Info.plist b/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step1/PresenceFeatureObjC/Info.plist deleted file mode 100644 index fb4115c84..000000000 --- a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step1/PresenceFeatureObjC/Info.plist +++ /dev/null @@ -1,36 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step1/PresenceFeatureObjC/main.m b/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step1/PresenceFeatureObjC/main.m deleted file mode 100644 index 29264be54..000000000 --- a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step1/PresenceFeatureObjC/main.m +++ /dev/null @@ -1,16 +0,0 @@ -// -// main.m -// PresenceFeatureObjC -// -// Created by Sergey Mamontov on 9/18/15. -// Copyright © 2015 PubNub. All rights reserved. -// - -#import -#import "AppDelegate.h" - -int main(int argc, char * argv[]) { - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); - } -} diff --git a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step2/Podfile b/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step2/Podfile deleted file mode 100644 index 282a2f6c8..000000000 --- a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step2/Podfile +++ /dev/null @@ -1,20 +0,0 @@ -source 'git@github.com:parfeon/pubnub-private-pods-repo.git' -source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '8.0' -use_frameworks! -pod "PubNubBridge" - -post_install do |installer_representation| - installer_representation.pods_project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings['GCC_INSTRUMENT_PROGRAM_FLOW_ARCS'] = 'NO' - config.build_settings['GCC_GENERATE_TEST_COVERAGE_FILES'] = 'NO' - if target.name == "CocoaLumberjack" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - if target.name == "OHHTTPStubs" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - end - end -end \ No newline at end of file diff --git a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step2/PresenceFeatureObjC.xcodeproj/project.pbxproj b/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step2/PresenceFeatureObjC.xcodeproj/project.pbxproj deleted file mode 100644 index fa4d2ec12..000000000 --- a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step2/PresenceFeatureObjC.xcodeproj/project.pbxproj +++ /dev/null @@ -1,346 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 073AD3356345A7068AC5B4E2 /* Pods.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BB60BA2BC7034BF64184A31A /* Pods.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; - 79ADF9371BACB03D00D00123 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 79ADF9361BACB03D00D00123 /* main.m */; }; - 79ADF93A1BACB03D00D00123 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 79ADF9391BACB03D00D00123 /* AppDelegate.m */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 274420A0BEE1C22C22CF282F /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; - 79ADF9321BACB03D00D00123 /* PresenceFeatureObjC.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PresenceFeatureObjC.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 79ADF9361BACB03D00D00123 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 79ADF9381BACB03D00D00123 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; - 79ADF9391BACB03D00D00123 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - 79ADF9461BACB03D00D00123 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 9A8C4898DA9B4DD8712E51F9 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; - BB60BA2BC7034BF64184A31A /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 79ADF92F1BACB03D00D00123 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 073AD3356345A7068AC5B4E2 /* Pods.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 4436528DB4C226CEC68C8BEC /* Pods */ = { - isa = PBXGroup; - children = ( - 9A8C4898DA9B4DD8712E51F9 /* Pods.debug.xcconfig */, - 274420A0BEE1C22C22CF282F /* Pods.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; - 4863ACCC4867CC83C0F723B8 /* Frameworks */ = { - isa = PBXGroup; - children = ( - BB60BA2BC7034BF64184A31A /* Pods.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 79ADF9291BACB03D00D00123 = { - isa = PBXGroup; - children = ( - 79ADF9341BACB03D00D00123 /* PresenceFeatureObjC */, - 79ADF9331BACB03D00D00123 /* Products */, - 4436528DB4C226CEC68C8BEC /* Pods */, - 4863ACCC4867CC83C0F723B8 /* Frameworks */, - ); - sourceTree = ""; - }; - 79ADF9331BACB03D00D00123 /* Products */ = { - isa = PBXGroup; - children = ( - 79ADF9321BACB03D00D00123 /* PresenceFeatureObjC.app */, - ); - name = Products; - sourceTree = ""; - }; - 79ADF9341BACB03D00D00123 /* PresenceFeatureObjC */ = { - isa = PBXGroup; - children = ( - 79ADF9381BACB03D00D00123 /* AppDelegate.h */, - 79ADF9391BACB03D00D00123 /* AppDelegate.m */, - 79ADF9461BACB03D00D00123 /* Info.plist */, - 79ADF9351BACB03D00D00123 /* Supporting Files */, - ); - path = PresenceFeatureObjC; - sourceTree = ""; - }; - 79ADF9351BACB03D00D00123 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 79ADF9361BACB03D00D00123 /* main.m */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 79ADF9311BACB03D00D00123 /* PresenceFeatureObjC */ = { - isa = PBXNativeTarget; - buildConfigurationList = 79ADF9491BACB03D00D00123 /* Build configuration list for PBXNativeTarget "PresenceFeatureObjC" */; - buildPhases = ( - 14905351F928B475F4EDFADE /* Check Pods Manifest.lock */, - 79ADF92E1BACB03D00D00123 /* Sources */, - 79ADF92F1BACB03D00D00123 /* Frameworks */, - 79ADF9301BACB03D00D00123 /* Resources */, - AAA155E906D1ACBD2E8142D8 /* Embed Pods Frameworks */, - 868CFF2A6D074B316F3E3404 /* Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = PresenceFeatureObjC; - productName = PresenceFeatureObjC; - productReference = 79ADF9321BACB03D00D00123 /* PresenceFeatureObjC.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 79ADF92A1BACB03D00D00123 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0700; - ORGANIZATIONNAME = PubNub; - TargetAttributes = { - 79ADF9311BACB03D00D00123 = { - CreatedOnToolsVersion = 7.0; - }; - }; - }; - buildConfigurationList = 79ADF92D1BACB03D00D00123 /* Build configuration list for PBXProject "PresenceFeatureObjC" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 79ADF9291BACB03D00D00123; - productRefGroup = 79ADF9331BACB03D00D00123 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 79ADF9311BACB03D00D00123 /* PresenceFeatureObjC */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 79ADF9301BACB03D00D00123 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 14905351F928B475F4EDFADE /* Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - 868CFF2A6D074B316F3E3404 /* Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - AAA155E906D1ACBD2E8142D8 /* Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 79ADF92E1BACB03D00D00123 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 79ADF93A1BACB03D00D00123 /* AppDelegate.m in Sources */, - 79ADF9371BACB03D00D00123 /* main.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 79ADF9471BACB03D00D00123 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - }; - name = Debug; - }; - 79ADF9481BACB03D00D00123 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 79ADF94A1BACB03D00D00123 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9A8C4898DA9B4DD8712E51F9 /* Pods.debug.xcconfig */; - buildSettings = { - INFOPLIST_FILE = PresenceFeatureObjC/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.PresenceFeatureObjC; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 79ADF94B1BACB03D00D00123 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 274420A0BEE1C22C22CF282F /* Pods.release.xcconfig */; - buildSettings = { - INFOPLIST_FILE = PresenceFeatureObjC/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.PresenceFeatureObjC; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 79ADF92D1BACB03D00D00123 /* Build configuration list for PBXProject "PresenceFeatureObjC" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 79ADF9471BACB03D00D00123 /* Debug */, - 79ADF9481BACB03D00D00123 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 79ADF9491BACB03D00D00123 /* Build configuration list for PBXNativeTarget "PresenceFeatureObjC" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 79ADF94A1BACB03D00D00123 /* Debug */, - 79ADF94B1BACB03D00D00123 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 79ADF92A1BACB03D00D00123 /* Project object */; -} diff --git a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step2/PresenceFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step2/PresenceFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 3dc009bcd..000000000 --- a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step2/PresenceFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step2/PresenceFeatureObjC/AppDelegate.h b/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step2/PresenceFeatureObjC/AppDelegate.h deleted file mode 100644 index 20e76883b..000000000 --- a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step2/PresenceFeatureObjC/AppDelegate.h +++ /dev/null @@ -1,13 +0,0 @@ -#import - - -/** - @author Sergey Mamontov - @copyright © 2009-2015 PubNub, Inc. - */ -@interface AppDelegate : UIResponder - -@property (strong, nonatomic) UIWindow *window; - -@end - diff --git a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step2/PresenceFeatureObjC/AppDelegate.m b/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step2/PresenceFeatureObjC/AppDelegate.m deleted file mode 100644 index 9c231b4da..000000000 --- a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step2/PresenceFeatureObjC/AppDelegate.m +++ /dev/null @@ -1,66 +0,0 @@ -/*fabric:start-text*/ -// It is always a good idea to add a subscription/connection status handling callback to know when the subscription process completed or stumbled on an unexpected disconnection. -/*fabric:end-text*/ -/** - @author Sergey Mamontov - @copyright © 2009-2015 PubNub, Inc. - */ -/*fabric:start-code*/ -#import "AppDelegate.h" -#import -#import - - -/*fabric:start-highlight*/ -@interface AppDelegate () -/*fabric:end-highlight*/ - -@property (nonatomic, strong) PubNub *client; - -@end - - -@implementation AppDelegate - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { - - self.client = [PubNub client]; - [self.client addListener:self]; - [self.client subscribeToPresenceChannels:@[@"lobby"]]; - - return YES; -} - -/*fabric:start-highlight*/ -- (void)client:(PubNub *)client didReceiveStatus:(PNSubscribeStatus *)status { - - if (status.category == PNUnexpectedDisconnectCategory) { - - // This event happens when radio / connectivity is lost - } - else if (status.category == PNConnectedCategory) { - - // Connect event. You can do stuff like publish, and know you'll get it. - // Or just use the connected event to confirm you are subscribed for - // UI / internal notifications, etc - } - else if (status.category == PNReconnectedCategory) { - - // Happens as part of our regular operation. This event happens when - // radio / connectivity is lost, then regained. - } - else if (status.category == PNDisconnectedCategory) { - - // Disconnection event. After this moment any messages from unsubscribed channel - // won't reach this callback. - } - else if (status.category == PNDecryptionErrorCategory) { - - // Handle messsage decryption error. Probably client configured to - // encrypt messages and on live data feed it received plain text. - } -} -/*fabric:end-highlight*/ - -@end -/*fabric:end-code*/ diff --git a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step2/PresenceFeatureObjC/Info.plist b/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step2/PresenceFeatureObjC/Info.plist deleted file mode 100644 index fb4115c84..000000000 --- a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step2/PresenceFeatureObjC/Info.plist +++ /dev/null @@ -1,36 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step2/PresenceFeatureObjC/main.m b/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step2/PresenceFeatureObjC/main.m deleted file mode 100644 index 29264be54..000000000 --- a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step2/PresenceFeatureObjC/main.m +++ /dev/null @@ -1,16 +0,0 @@ -// -// main.m -// PresenceFeatureObjC -// -// Created by Sergey Mamontov on 9/18/15. -// Copyright © 2015 PubNub. All rights reserved. -// - -#import -#import "AppDelegate.h" - -int main(int argc, char * argv[]) { - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); - } -} diff --git a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step3/Podfile b/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step3/Podfile deleted file mode 100644 index 282a2f6c8..000000000 --- a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step3/Podfile +++ /dev/null @@ -1,20 +0,0 @@ -source 'git@github.com:parfeon/pubnub-private-pods-repo.git' -source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '8.0' -use_frameworks! -pod "PubNubBridge" - -post_install do |installer_representation| - installer_representation.pods_project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings['GCC_INSTRUMENT_PROGRAM_FLOW_ARCS'] = 'NO' - config.build_settings['GCC_GENERATE_TEST_COVERAGE_FILES'] = 'NO' - if target.name == "CocoaLumberjack" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - if target.name == "OHHTTPStubs" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - end - end -end \ No newline at end of file diff --git a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step3/PresenceFeatureObjC.xcodeproj/project.pbxproj b/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step3/PresenceFeatureObjC.xcodeproj/project.pbxproj deleted file mode 100644 index fa4d2ec12..000000000 --- a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step3/PresenceFeatureObjC.xcodeproj/project.pbxproj +++ /dev/null @@ -1,346 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 073AD3356345A7068AC5B4E2 /* Pods.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BB60BA2BC7034BF64184A31A /* Pods.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; - 79ADF9371BACB03D00D00123 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 79ADF9361BACB03D00D00123 /* main.m */; }; - 79ADF93A1BACB03D00D00123 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 79ADF9391BACB03D00D00123 /* AppDelegate.m */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 274420A0BEE1C22C22CF282F /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; - 79ADF9321BACB03D00D00123 /* PresenceFeatureObjC.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PresenceFeatureObjC.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 79ADF9361BACB03D00D00123 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 79ADF9381BACB03D00D00123 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; - 79ADF9391BACB03D00D00123 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - 79ADF9461BACB03D00D00123 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 9A8C4898DA9B4DD8712E51F9 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; - BB60BA2BC7034BF64184A31A /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 79ADF92F1BACB03D00D00123 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 073AD3356345A7068AC5B4E2 /* Pods.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 4436528DB4C226CEC68C8BEC /* Pods */ = { - isa = PBXGroup; - children = ( - 9A8C4898DA9B4DD8712E51F9 /* Pods.debug.xcconfig */, - 274420A0BEE1C22C22CF282F /* Pods.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; - 4863ACCC4867CC83C0F723B8 /* Frameworks */ = { - isa = PBXGroup; - children = ( - BB60BA2BC7034BF64184A31A /* Pods.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 79ADF9291BACB03D00D00123 = { - isa = PBXGroup; - children = ( - 79ADF9341BACB03D00D00123 /* PresenceFeatureObjC */, - 79ADF9331BACB03D00D00123 /* Products */, - 4436528DB4C226CEC68C8BEC /* Pods */, - 4863ACCC4867CC83C0F723B8 /* Frameworks */, - ); - sourceTree = ""; - }; - 79ADF9331BACB03D00D00123 /* Products */ = { - isa = PBXGroup; - children = ( - 79ADF9321BACB03D00D00123 /* PresenceFeatureObjC.app */, - ); - name = Products; - sourceTree = ""; - }; - 79ADF9341BACB03D00D00123 /* PresenceFeatureObjC */ = { - isa = PBXGroup; - children = ( - 79ADF9381BACB03D00D00123 /* AppDelegate.h */, - 79ADF9391BACB03D00D00123 /* AppDelegate.m */, - 79ADF9461BACB03D00D00123 /* Info.plist */, - 79ADF9351BACB03D00D00123 /* Supporting Files */, - ); - path = PresenceFeatureObjC; - sourceTree = ""; - }; - 79ADF9351BACB03D00D00123 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 79ADF9361BACB03D00D00123 /* main.m */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 79ADF9311BACB03D00D00123 /* PresenceFeatureObjC */ = { - isa = PBXNativeTarget; - buildConfigurationList = 79ADF9491BACB03D00D00123 /* Build configuration list for PBXNativeTarget "PresenceFeatureObjC" */; - buildPhases = ( - 14905351F928B475F4EDFADE /* Check Pods Manifest.lock */, - 79ADF92E1BACB03D00D00123 /* Sources */, - 79ADF92F1BACB03D00D00123 /* Frameworks */, - 79ADF9301BACB03D00D00123 /* Resources */, - AAA155E906D1ACBD2E8142D8 /* Embed Pods Frameworks */, - 868CFF2A6D074B316F3E3404 /* Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = PresenceFeatureObjC; - productName = PresenceFeatureObjC; - productReference = 79ADF9321BACB03D00D00123 /* PresenceFeatureObjC.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 79ADF92A1BACB03D00D00123 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0700; - ORGANIZATIONNAME = PubNub; - TargetAttributes = { - 79ADF9311BACB03D00D00123 = { - CreatedOnToolsVersion = 7.0; - }; - }; - }; - buildConfigurationList = 79ADF92D1BACB03D00D00123 /* Build configuration list for PBXProject "PresenceFeatureObjC" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 79ADF9291BACB03D00D00123; - productRefGroup = 79ADF9331BACB03D00D00123 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 79ADF9311BACB03D00D00123 /* PresenceFeatureObjC */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 79ADF9301BACB03D00D00123 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 14905351F928B475F4EDFADE /* Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - 868CFF2A6D074B316F3E3404 /* Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - AAA155E906D1ACBD2E8142D8 /* Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 79ADF92E1BACB03D00D00123 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 79ADF93A1BACB03D00D00123 /* AppDelegate.m in Sources */, - 79ADF9371BACB03D00D00123 /* main.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 79ADF9471BACB03D00D00123 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - }; - name = Debug; - }; - 79ADF9481BACB03D00D00123 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 79ADF94A1BACB03D00D00123 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 9A8C4898DA9B4DD8712E51F9 /* Pods.debug.xcconfig */; - buildSettings = { - INFOPLIST_FILE = PresenceFeatureObjC/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.PresenceFeatureObjC; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 79ADF94B1BACB03D00D00123 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 274420A0BEE1C22C22CF282F /* Pods.release.xcconfig */; - buildSettings = { - INFOPLIST_FILE = PresenceFeatureObjC/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.PresenceFeatureObjC; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 79ADF92D1BACB03D00D00123 /* Build configuration list for PBXProject "PresenceFeatureObjC" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 79ADF9471BACB03D00D00123 /* Debug */, - 79ADF9481BACB03D00D00123 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 79ADF9491BACB03D00D00123 /* Build configuration list for PBXNativeTarget "PresenceFeatureObjC" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 79ADF94A1BACB03D00D00123 /* Debug */, - 79ADF94B1BACB03D00D00123 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 79ADF92A1BACB03D00D00123 /* Project object */; -} diff --git a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step3/PresenceFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step3/PresenceFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 3dc009bcd..000000000 --- a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step3/PresenceFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step3/PresenceFeatureObjC/AppDelegate.h b/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step3/PresenceFeatureObjC/AppDelegate.h deleted file mode 100644 index 20e76883b..000000000 --- a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step3/PresenceFeatureObjC/AppDelegate.h +++ /dev/null @@ -1,13 +0,0 @@ -#import - - -/** - @author Sergey Mamontov - @copyright © 2009-2015 PubNub, Inc. - */ -@interface AppDelegate : UIResponder - -@property (strong, nonatomic) UIWindow *window; - -@end - diff --git a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step3/PresenceFeatureObjC/AppDelegate.m b/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step3/PresenceFeatureObjC/AppDelegate.m deleted file mode 100644 index 2f55fcd00..000000000 --- a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step3/PresenceFeatureObjC/AppDelegate.m +++ /dev/null @@ -1,79 +0,0 @@ -/*fabric:start-text*/ -// To handle real-time presence events on subscribed channels, add a presence event handling callback. -/*fabric:end-text*/ -/** - @author Sergey Mamontov - @copyright © 2009-2015 PubNub, Inc. - */ -/*fabric:start-code*/ -#import "AppDelegate.h" -#import -#import - - -@interface AppDelegate () - -@property (nonatomic, strong) PubNub *client; - -@end - - -@implementation AppDelegate - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { - - self.client = [PubNub client]; - [self.client addListener:self]; - [self.client subscribeToPresenceChannels:@[@"lobby"]]; - - return YES; -} - -- (void)client:(PubNub *)client didReceiveStatus:(PNSubscribeStatus *)status { - - if (status.category == PNUnexpectedDisconnectCategory) { - } - else if (status.category == PNConnectedCategory) { - } - else if (status.category == PNReconnectedCategory) { - } - else if (status.category == PNDisconnectedCategory) { - } - else if (status.category == PNDecryptionErrorCategory) { - } -} - -/*fabric:start-highlight*/ -- (void)client:(PubNub *)client didReceivePresenceEvent:(PNPresenceEventResult *)event { - - // Handle presence event event.data.presenceEvent (one of: join, leave, timeout, - // state-change). - if (event.data.actualChannel != nil) { - - // Presence event has been received on channel group stored in - // event.data.subscribedChannel - } - else { - - // Presence event has been received on channel stored in - // event.data.subscribedChannel - } - - if (![event.data.presenceEvent isEqualToString:@"state-change"]) { - - NSLog(@"%@ \"%@'ed\" at: %@ on %@ (Occupancy: %@)", - event.data.presence.uuid, event.data.presenceEvent, event.data.presence.timetoken, - (event.data.actualChannel?: event.data.subscribedChannel), - event.data.presence.occupancy); - } - else { - - NSLog(@"%@ changed state at: %@ on %@ to:\n%@", event.data.presence.uuid, - event.data.presence.timetoken, - (event.data.actualChannel?: event.data.subscribedChannel), event.data.presence.state); - } -} -/*fabric:end-highlight*/ - -@end -/*fabric:end-code*/ diff --git a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step3/PresenceFeatureObjC/Info.plist b/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step3/PresenceFeatureObjC/Info.plist deleted file mode 100644 index fb4115c84..000000000 --- a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step3/PresenceFeatureObjC/Info.plist +++ /dev/null @@ -1,36 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step3/PresenceFeatureObjC/main.m b/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step3/PresenceFeatureObjC/main.m deleted file mode 100644 index 29264be54..000000000 --- a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureObjC/Step3/PresenceFeatureObjC/main.m +++ /dev/null @@ -1,16 +0,0 @@ -// -// main.m -// PresenceFeatureObjC -// -// Created by Sergey Mamontov on 9/18/15. -// Copyright © 2015 PubNub. All rights reserved. -// - -#import -#import "AppDelegate.h" - -int main(int argc, char * argv[]) { - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); - } -} diff --git a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step1/Podfile b/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step1/Podfile deleted file mode 100644 index 282a2f6c8..000000000 --- a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step1/Podfile +++ /dev/null @@ -1,20 +0,0 @@ -source 'git@github.com:parfeon/pubnub-private-pods-repo.git' -source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '8.0' -use_frameworks! -pod "PubNubBridge" - -post_install do |installer_representation| - installer_representation.pods_project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings['GCC_INSTRUMENT_PROGRAM_FLOW_ARCS'] = 'NO' - config.build_settings['GCC_GENERATE_TEST_COVERAGE_FILES'] = 'NO' - if target.name == "CocoaLumberjack" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - if target.name == "OHHTTPStubs" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - end - end -end \ No newline at end of file diff --git a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step1/PresenceFeatureSwift.xcodeproj/project.pbxproj b/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step1/PresenceFeatureSwift.xcodeproj/project.pbxproj deleted file mode 100644 index 26b1fd6f1..000000000 --- a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step1/PresenceFeatureSwift.xcodeproj/project.pbxproj +++ /dev/null @@ -1,333 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 461A28A510BCBB5F8F3627E4 /* Pods.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EE4E0D33B629D90C99709089 /* Pods.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; - 79ADF9591BACB0E600D00123 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79ADF9581BACB0E600D00123 /* AppDelegate.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 14AEACD65251FEFD825BEB30 /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; - 1FE165A39F82B3EFBD6579DA /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; - 79ADF9551BACB0E600D00123 /* PresenceFeatureSwift.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PresenceFeatureSwift.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 79ADF9581BACB0E600D00123 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 79ADF9641BACB0E600D00123 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - EE4E0D33B629D90C99709089 /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 79ADF9521BACB0E600D00123 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 461A28A510BCBB5F8F3627E4 /* Pods.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 5F55B2004005F780F13D3571 /* Pods */ = { - isa = PBXGroup; - children = ( - 1FE165A39F82B3EFBD6579DA /* Pods.debug.xcconfig */, - 14AEACD65251FEFD825BEB30 /* Pods.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; - 79ADF94C1BACB0E600D00123 = { - isa = PBXGroup; - children = ( - 79ADF9571BACB0E600D00123 /* PresenceFeatureSwift */, - 79ADF9561BACB0E600D00123 /* Products */, - 5F55B2004005F780F13D3571 /* Pods */, - 79E8422CBB73ABB3EC59A5C5 /* Frameworks */, - ); - sourceTree = ""; - }; - 79ADF9561BACB0E600D00123 /* Products */ = { - isa = PBXGroup; - children = ( - 79ADF9551BACB0E600D00123 /* PresenceFeatureSwift.app */, - ); - name = Products; - sourceTree = ""; - }; - 79ADF9571BACB0E600D00123 /* PresenceFeatureSwift */ = { - isa = PBXGroup; - children = ( - 79ADF9581BACB0E600D00123 /* AppDelegate.swift */, - 79ADF9641BACB0E600D00123 /* Info.plist */, - ); - path = PresenceFeatureSwift; - sourceTree = ""; - }; - 79E8422CBB73ABB3EC59A5C5 /* Frameworks */ = { - isa = PBXGroup; - children = ( - EE4E0D33B629D90C99709089 /* Pods.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 79ADF9541BACB0E600D00123 /* PresenceFeatureSwift */ = { - isa = PBXNativeTarget; - buildConfigurationList = 79ADF9671BACB0E600D00123 /* Build configuration list for PBXNativeTarget "PresenceFeatureSwift" */; - buildPhases = ( - C267C543EAF45CA917D90577 /* Check Pods Manifest.lock */, - 79ADF9511BACB0E600D00123 /* Sources */, - 79ADF9521BACB0E600D00123 /* Frameworks */, - 79ADF9531BACB0E600D00123 /* Resources */, - B302C3CA0D64178902F511F8 /* Embed Pods Frameworks */, - DA0E19BDF59CAEFB4EE7C1C5 /* Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = PresenceFeatureSwift; - productName = PresenceFeatureSwift; - productReference = 79ADF9551BACB0E600D00123 /* PresenceFeatureSwift.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 79ADF94D1BACB0E600D00123 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0700; - ORGANIZATIONNAME = PubNub; - TargetAttributes = { - 79ADF9541BACB0E600D00123 = { - CreatedOnToolsVersion = 7.0; - }; - }; - }; - buildConfigurationList = 79ADF9501BACB0E600D00123 /* Build configuration list for PBXProject "PresenceFeatureSwift" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 79ADF94C1BACB0E600D00123; - productRefGroup = 79ADF9561BACB0E600D00123 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 79ADF9541BACB0E600D00123 /* PresenceFeatureSwift */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 79ADF9531BACB0E600D00123 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - B302C3CA0D64178902F511F8 /* Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - C267C543EAF45CA917D90577 /* Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - DA0E19BDF59CAEFB4EE7C1C5 /* Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 79ADF9511BACB0E600D00123 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 79ADF9591BACB0E600D00123 /* AppDelegate.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 79ADF9651BACB0E600D00123 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 79ADF9661BACB0E600D00123 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 79ADF9681BACB0E600D00123 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 1FE165A39F82B3EFBD6579DA /* Pods.debug.xcconfig */; - buildSettings = { - INFOPLIST_FILE = PresenceFeatureSwift/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.PresenceFeatureSwift; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 79ADF9691BACB0E600D00123 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 14AEACD65251FEFD825BEB30 /* Pods.release.xcconfig */; - buildSettings = { - INFOPLIST_FILE = PresenceFeatureSwift/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.PresenceFeatureSwift; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 79ADF9501BACB0E600D00123 /* Build configuration list for PBXProject "PresenceFeatureSwift" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 79ADF9651BACB0E600D00123 /* Debug */, - 79ADF9661BACB0E600D00123 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 79ADF9671BACB0E600D00123 /* Build configuration list for PBXNativeTarget "PresenceFeatureSwift" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 79ADF9681BACB0E600D00123 /* Debug */, - 79ADF9691BACB0E600D00123 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 79ADF94D1BACB0E600D00123 /* Project object */; -} diff --git a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step1/PresenceFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step1/PresenceFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 884410c6f..000000000 --- a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step1/PresenceFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step1/PresenceFeatureSwift/AppDelegate.swift b/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step1/PresenceFeatureSwift/AppDelegate.swift deleted file mode 100644 index b8693f8b0..000000000 --- a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step1/PresenceFeatureSwift/AppDelegate.swift +++ /dev/null @@ -1,36 +0,0 @@ -/*fabric:start-text*/ -// To receive presence events from other users in real-time, subscribe to the associated presence channels. -/*fabric:end-text*/ -/** -@author Sergey Mamontov -@copyright © 2009-2015 PubNub, Inc. -*/ -/*fabric:start-code*/ -import UIKit -/*fabric:start-highlight*/ -import PubNub -import PubNubBridge -/*fabric:end-highlight*/ - - -@UIApplicationMain -class AppDelegate: UIResponder, UIApplicationDelegate { - - var window: UIWindow? - /*fabric:start-highlight*/ - var client: PubNub? - /*fabric:end-highlight*/ - - func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { - - /*fabric:start-highlight*/ - self.client = PubNub.client() - self.client?.addListener(self) - self.client?.subscribeToPresenceChannels(["lobby"]) - /*fabric:end-highlight*/ - - return true - } -} -/*fabric:end-code*/ - diff --git a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step1/PresenceFeatureSwift/Info.plist b/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step1/PresenceFeatureSwift/Info.plist deleted file mode 100644 index fb4115c84..000000000 --- a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step1/PresenceFeatureSwift/Info.plist +++ /dev/null @@ -1,36 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step2/Podfile b/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step2/Podfile deleted file mode 100644 index 282a2f6c8..000000000 --- a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step2/Podfile +++ /dev/null @@ -1,20 +0,0 @@ -source 'git@github.com:parfeon/pubnub-private-pods-repo.git' -source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '8.0' -use_frameworks! -pod "PubNubBridge" - -post_install do |installer_representation| - installer_representation.pods_project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings['GCC_INSTRUMENT_PROGRAM_FLOW_ARCS'] = 'NO' - config.build_settings['GCC_GENERATE_TEST_COVERAGE_FILES'] = 'NO' - if target.name == "CocoaLumberjack" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - if target.name == "OHHTTPStubs" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - end - end -end \ No newline at end of file diff --git a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step2/PresenceFeatureSwift.xcodeproj/project.pbxproj b/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step2/PresenceFeatureSwift.xcodeproj/project.pbxproj deleted file mode 100644 index 26b1fd6f1..000000000 --- a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step2/PresenceFeatureSwift.xcodeproj/project.pbxproj +++ /dev/null @@ -1,333 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 461A28A510BCBB5F8F3627E4 /* Pods.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EE4E0D33B629D90C99709089 /* Pods.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; - 79ADF9591BACB0E600D00123 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79ADF9581BACB0E600D00123 /* AppDelegate.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 14AEACD65251FEFD825BEB30 /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; - 1FE165A39F82B3EFBD6579DA /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; - 79ADF9551BACB0E600D00123 /* PresenceFeatureSwift.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PresenceFeatureSwift.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 79ADF9581BACB0E600D00123 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 79ADF9641BACB0E600D00123 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - EE4E0D33B629D90C99709089 /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 79ADF9521BACB0E600D00123 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 461A28A510BCBB5F8F3627E4 /* Pods.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 5F55B2004005F780F13D3571 /* Pods */ = { - isa = PBXGroup; - children = ( - 1FE165A39F82B3EFBD6579DA /* Pods.debug.xcconfig */, - 14AEACD65251FEFD825BEB30 /* Pods.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; - 79ADF94C1BACB0E600D00123 = { - isa = PBXGroup; - children = ( - 79ADF9571BACB0E600D00123 /* PresenceFeatureSwift */, - 79ADF9561BACB0E600D00123 /* Products */, - 5F55B2004005F780F13D3571 /* Pods */, - 79E8422CBB73ABB3EC59A5C5 /* Frameworks */, - ); - sourceTree = ""; - }; - 79ADF9561BACB0E600D00123 /* Products */ = { - isa = PBXGroup; - children = ( - 79ADF9551BACB0E600D00123 /* PresenceFeatureSwift.app */, - ); - name = Products; - sourceTree = ""; - }; - 79ADF9571BACB0E600D00123 /* PresenceFeatureSwift */ = { - isa = PBXGroup; - children = ( - 79ADF9581BACB0E600D00123 /* AppDelegate.swift */, - 79ADF9641BACB0E600D00123 /* Info.plist */, - ); - path = PresenceFeatureSwift; - sourceTree = ""; - }; - 79E8422CBB73ABB3EC59A5C5 /* Frameworks */ = { - isa = PBXGroup; - children = ( - EE4E0D33B629D90C99709089 /* Pods.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 79ADF9541BACB0E600D00123 /* PresenceFeatureSwift */ = { - isa = PBXNativeTarget; - buildConfigurationList = 79ADF9671BACB0E600D00123 /* Build configuration list for PBXNativeTarget "PresenceFeatureSwift" */; - buildPhases = ( - C267C543EAF45CA917D90577 /* Check Pods Manifest.lock */, - 79ADF9511BACB0E600D00123 /* Sources */, - 79ADF9521BACB0E600D00123 /* Frameworks */, - 79ADF9531BACB0E600D00123 /* Resources */, - B302C3CA0D64178902F511F8 /* Embed Pods Frameworks */, - DA0E19BDF59CAEFB4EE7C1C5 /* Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = PresenceFeatureSwift; - productName = PresenceFeatureSwift; - productReference = 79ADF9551BACB0E600D00123 /* PresenceFeatureSwift.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 79ADF94D1BACB0E600D00123 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0700; - ORGANIZATIONNAME = PubNub; - TargetAttributes = { - 79ADF9541BACB0E600D00123 = { - CreatedOnToolsVersion = 7.0; - }; - }; - }; - buildConfigurationList = 79ADF9501BACB0E600D00123 /* Build configuration list for PBXProject "PresenceFeatureSwift" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 79ADF94C1BACB0E600D00123; - productRefGroup = 79ADF9561BACB0E600D00123 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 79ADF9541BACB0E600D00123 /* PresenceFeatureSwift */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 79ADF9531BACB0E600D00123 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - B302C3CA0D64178902F511F8 /* Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - C267C543EAF45CA917D90577 /* Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - DA0E19BDF59CAEFB4EE7C1C5 /* Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 79ADF9511BACB0E600D00123 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 79ADF9591BACB0E600D00123 /* AppDelegate.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 79ADF9651BACB0E600D00123 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 79ADF9661BACB0E600D00123 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 79ADF9681BACB0E600D00123 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 1FE165A39F82B3EFBD6579DA /* Pods.debug.xcconfig */; - buildSettings = { - INFOPLIST_FILE = PresenceFeatureSwift/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.PresenceFeatureSwift; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 79ADF9691BACB0E600D00123 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 14AEACD65251FEFD825BEB30 /* Pods.release.xcconfig */; - buildSettings = { - INFOPLIST_FILE = PresenceFeatureSwift/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.PresenceFeatureSwift; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 79ADF9501BACB0E600D00123 /* Build configuration list for PBXProject "PresenceFeatureSwift" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 79ADF9651BACB0E600D00123 /* Debug */, - 79ADF9661BACB0E600D00123 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 79ADF9671BACB0E600D00123 /* Build configuration list for PBXNativeTarget "PresenceFeatureSwift" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 79ADF9681BACB0E600D00123 /* Debug */, - 79ADF9691BACB0E600D00123 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 79ADF94D1BACB0E600D00123 /* Project object */; -} diff --git a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step2/PresenceFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step2/PresenceFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 884410c6f..000000000 --- a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step2/PresenceFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step2/PresenceFeatureSwift/AppDelegate.swift b/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step2/PresenceFeatureSwift/AppDelegate.swift deleted file mode 100644 index 4d97d1ebc..000000000 --- a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step2/PresenceFeatureSwift/AppDelegate.swift +++ /dev/null @@ -1,58 +0,0 @@ -/*fabric:start-text*/ -// It is always a good idea to add a subscription/connection status handling callback to know when the subscription process completed or stumbled on an unexpected disconnection. -/*fabric:end-text*/ -/** -@author Sergey Mamontov -@copyright © 2009-2015 PubNub, Inc. -*/ -/*fabric:start-code*/ -import UIKit -import PubNub -import PubNubBridge - - -@UIApplicationMain -/*fabric:start-highlight*/ -class AppDelegate: UIResponder, UIApplicationDelegate, PNObjectEventListener { -/*fabric:end-highlight*/ - - var window: UIWindow? - var client: PubNub? - - func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { - - self.client = PubNub.client() - self.client?.addListener(self) - self.client?.subscribeToPresenceChannels(["lobby"]) - - return true - } - - /*fabric:start-highlight*/ - func client(client: PubNub!, didReceiveStatus status: PNSubscribeStatus!) { - - if status.category == .PNUnexpectedDisconnectCategory { - - // This event happens when radio / connectivity is lost - } - else if status.category == .PNConnectedCategory { - - // Connect event. You can do stuff like publish, and know you'll get it. - // Or just use the connected event to confirm you are subscribed for - // UI / internal notifications, etc - } - else if status.category == .PNReconnectedCategory { - - // Happens as part of our regular operation. This event happens when - // radio / connectivity is lost, then regained. - } - else if status.category == .PNDecryptionErrorCategory { - - // Handle messsage decryption error. Probably client configured to - // encrypt messages and on live data feed it received plain text. - } - } - /*fabric:end-highlight*/ -} -/*fabric:end-code*/ - diff --git a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step2/PresenceFeatureSwift/Info.plist b/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step2/PresenceFeatureSwift/Info.plist deleted file mode 100644 index fb4115c84..000000000 --- a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step2/PresenceFeatureSwift/Info.plist +++ /dev/null @@ -1,36 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step3/Podfile b/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step3/Podfile deleted file mode 100644 index 282a2f6c8..000000000 --- a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step3/Podfile +++ /dev/null @@ -1,20 +0,0 @@ -source 'git@github.com:parfeon/pubnub-private-pods-repo.git' -source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '8.0' -use_frameworks! -pod "PubNubBridge" - -post_install do |installer_representation| - installer_representation.pods_project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings['GCC_INSTRUMENT_PROGRAM_FLOW_ARCS'] = 'NO' - config.build_settings['GCC_GENERATE_TEST_COVERAGE_FILES'] = 'NO' - if target.name == "CocoaLumberjack" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - if target.name == "OHHTTPStubs" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - end - end -end \ No newline at end of file diff --git a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step3/PresenceFeatureSwift.xcodeproj/project.pbxproj b/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step3/PresenceFeatureSwift.xcodeproj/project.pbxproj deleted file mode 100644 index 26b1fd6f1..000000000 --- a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step3/PresenceFeatureSwift.xcodeproj/project.pbxproj +++ /dev/null @@ -1,333 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 461A28A510BCBB5F8F3627E4 /* Pods.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = EE4E0D33B629D90C99709089 /* Pods.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; - 79ADF9591BACB0E600D00123 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 79ADF9581BACB0E600D00123 /* AppDelegate.swift */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 14AEACD65251FEFD825BEB30 /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; - 1FE165A39F82B3EFBD6579DA /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; - 79ADF9551BACB0E600D00123 /* PresenceFeatureSwift.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PresenceFeatureSwift.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 79ADF9581BACB0E600D00123 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 79ADF9641BACB0E600D00123 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - EE4E0D33B629D90C99709089 /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 79ADF9521BACB0E600D00123 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 461A28A510BCBB5F8F3627E4 /* Pods.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 5F55B2004005F780F13D3571 /* Pods */ = { - isa = PBXGroup; - children = ( - 1FE165A39F82B3EFBD6579DA /* Pods.debug.xcconfig */, - 14AEACD65251FEFD825BEB30 /* Pods.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; - 79ADF94C1BACB0E600D00123 = { - isa = PBXGroup; - children = ( - 79ADF9571BACB0E600D00123 /* PresenceFeatureSwift */, - 79ADF9561BACB0E600D00123 /* Products */, - 5F55B2004005F780F13D3571 /* Pods */, - 79E8422CBB73ABB3EC59A5C5 /* Frameworks */, - ); - sourceTree = ""; - }; - 79ADF9561BACB0E600D00123 /* Products */ = { - isa = PBXGroup; - children = ( - 79ADF9551BACB0E600D00123 /* PresenceFeatureSwift.app */, - ); - name = Products; - sourceTree = ""; - }; - 79ADF9571BACB0E600D00123 /* PresenceFeatureSwift */ = { - isa = PBXGroup; - children = ( - 79ADF9581BACB0E600D00123 /* AppDelegate.swift */, - 79ADF9641BACB0E600D00123 /* Info.plist */, - ); - path = PresenceFeatureSwift; - sourceTree = ""; - }; - 79E8422CBB73ABB3EC59A5C5 /* Frameworks */ = { - isa = PBXGroup; - children = ( - EE4E0D33B629D90C99709089 /* Pods.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 79ADF9541BACB0E600D00123 /* PresenceFeatureSwift */ = { - isa = PBXNativeTarget; - buildConfigurationList = 79ADF9671BACB0E600D00123 /* Build configuration list for PBXNativeTarget "PresenceFeatureSwift" */; - buildPhases = ( - C267C543EAF45CA917D90577 /* Check Pods Manifest.lock */, - 79ADF9511BACB0E600D00123 /* Sources */, - 79ADF9521BACB0E600D00123 /* Frameworks */, - 79ADF9531BACB0E600D00123 /* Resources */, - B302C3CA0D64178902F511F8 /* Embed Pods Frameworks */, - DA0E19BDF59CAEFB4EE7C1C5 /* Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = PresenceFeatureSwift; - productName = PresenceFeatureSwift; - productReference = 79ADF9551BACB0E600D00123 /* PresenceFeatureSwift.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 79ADF94D1BACB0E600D00123 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0700; - ORGANIZATIONNAME = PubNub; - TargetAttributes = { - 79ADF9541BACB0E600D00123 = { - CreatedOnToolsVersion = 7.0; - }; - }; - }; - buildConfigurationList = 79ADF9501BACB0E600D00123 /* Build configuration list for PBXProject "PresenceFeatureSwift" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 79ADF94C1BACB0E600D00123; - productRefGroup = 79ADF9561BACB0E600D00123 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 79ADF9541BACB0E600D00123 /* PresenceFeatureSwift */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 79ADF9531BACB0E600D00123 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - B302C3CA0D64178902F511F8 /* Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - C267C543EAF45CA917D90577 /* Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - DA0E19BDF59CAEFB4EE7C1C5 /* Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 79ADF9511BACB0E600D00123 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 79ADF9591BACB0E600D00123 /* AppDelegate.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 79ADF9651BACB0E600D00123 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 79ADF9661BACB0E600D00123 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 79ADF9681BACB0E600D00123 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 1FE165A39F82B3EFBD6579DA /* Pods.debug.xcconfig */; - buildSettings = { - INFOPLIST_FILE = PresenceFeatureSwift/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.PresenceFeatureSwift; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 79ADF9691BACB0E600D00123 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 14AEACD65251FEFD825BEB30 /* Pods.release.xcconfig */; - buildSettings = { - INFOPLIST_FILE = PresenceFeatureSwift/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.PresenceFeatureSwift; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 79ADF9501BACB0E600D00123 /* Build configuration list for PBXProject "PresenceFeatureSwift" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 79ADF9651BACB0E600D00123 /* Debug */, - 79ADF9661BACB0E600D00123 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 79ADF9671BACB0E600D00123 /* Build configuration list for PBXNativeTarget "PresenceFeatureSwift" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 79ADF9681BACB0E600D00123 /* Debug */, - 79ADF9691BACB0E600D00123 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 79ADF94D1BACB0E600D00123 /* Project object */; -} diff --git a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step3/PresenceFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step3/PresenceFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 884410c6f..000000000 --- a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step3/PresenceFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step3/PresenceFeatureSwift/AppDelegate.swift b/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step3/PresenceFeatureSwift/AppDelegate.swift deleted file mode 100644 index 2c6ba4531..000000000 --- a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step3/PresenceFeatureSwift/AppDelegate.swift +++ /dev/null @@ -1,75 +0,0 @@ -/*fabric:start-text*/ -// To handle real-time presence events on subscribed channels, add a presence event handling callback. -/*fabric:end-text*/ -/** -@author Sergey Mamontov -@copyright © 2009-2015 PubNub, Inc. -*/ -/*fabric:start-code*/ -import UIKit -import PubNub -import PubNubBridge - - -@UIApplicationMain -class AppDelegate: UIResponder, UIApplicationDelegate, PNObjectEventListener { - - var window: UIWindow? - var client: PubNub? - - func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { - - self.client = PubNub.client() - self.client?.addListener(self) - self.client?.subscribeToPresenceChannels(["lobby"]) - - return true - } - - func client(client: PubNub!, didReceiveStatus status: PNSubscribeStatus!) { - - if status.category == .PNUnexpectedDisconnectCategory { - } - else if status.category == .PNConnectedCategory { - } - else if status.category == .PNReconnectedCategory { - } - else if status.category == .PNDecryptionErrorCategory { - } - } - - /*fabric:start-highlight*/ - func client(client: PubNub!, didReceivePresenceEvent event: PNPresenceEventResult!) { - - // Handle presence event event.data.presenceEvent (one of: join, leave, timeout, - // state-change). - if event.data.actualChannel != nil { - - // Presence event has been received on channel group stored in - // event.data.subscribedChannel - } - else { - - // Presence event has been received on channel stored in - // event.data.subscribedChannel - } - - if event.data.presenceEvent != "state-change" { - - println("\(event.data.presence.uuid) \"\(event.data.presenceEvent)'ed\"\n" + - "at: \(event.data.presence.timetoken) " + - "on \((event.data.actualChannel ?? event.data.subscribedChannel)!) " + - "(Occupancy: \(event.data.presence.occupancy))"); - } - else { - - println("\(event.data.presence.uuid) changed state at: " + - "\(event.data.presence.timetoken) " + - "on \((event.data.actualChannel ?? event.data.subscribedChannel)!) to:\n" + - "\(event.data.presence.state)"); - } - } - /*fabric:end-highlight*/ -} -/*fabric:end-code*/ - diff --git a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step3/PresenceFeatureSwift/Info.plist b/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step3/PresenceFeatureSwift/Info.plist deleted file mode 100644 index fb4115c84..000000000 --- a/Support/Fabric/doc-sources/Features/Presence/PresenceFeatureSwift/Step3/PresenceFeatureSwift/Info.plist +++ /dev/null @@ -1,36 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/Support/Fabric/doc-sources/Features/PublishMessage/PublishMessageFeatureObjC/Podfile b/Support/Fabric/doc-sources/Features/PublishMessage/PublishMessageFeatureObjC/Podfile deleted file mode 100644 index 282a2f6c8..000000000 --- a/Support/Fabric/doc-sources/Features/PublishMessage/PublishMessageFeatureObjC/Podfile +++ /dev/null @@ -1,20 +0,0 @@ -source 'git@github.com:parfeon/pubnub-private-pods-repo.git' -source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '8.0' -use_frameworks! -pod "PubNubBridge" - -post_install do |installer_representation| - installer_representation.pods_project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings['GCC_INSTRUMENT_PROGRAM_FLOW_ARCS'] = 'NO' - config.build_settings['GCC_GENERATE_TEST_COVERAGE_FILES'] = 'NO' - if target.name == "CocoaLumberjack" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - if target.name == "OHHTTPStubs" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - end - end -end \ No newline at end of file diff --git a/Support/Fabric/doc-sources/Features/PublishMessage/PublishMessageFeatureObjC/PublishMessageFeatureObjC.xcodeproj/project.pbxproj b/Support/Fabric/doc-sources/Features/PublishMessage/PublishMessageFeatureObjC/PublishMessageFeatureObjC.xcodeproj/project.pbxproj deleted file mode 100644 index 49c74410c..000000000 --- a/Support/Fabric/doc-sources/Features/PublishMessage/PublishMessageFeatureObjC/PublishMessageFeatureObjC.xcodeproj/project.pbxproj +++ /dev/null @@ -1,346 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 799322B71BAC300900522937 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 799322B61BAC300900522937 /* main.m */; }; - 799322BA1BAC300900522937 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 799322B91BAC300900522937 /* AppDelegate.m */; }; - DE03A7D62A24E72367E5D838 /* Pods.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 522C0D442E764B53B0C64F1C /* Pods.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 4F2F718A48DF2DD1F6439A0B /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; - 522C0D442E764B53B0C64F1C /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 799322B21BAC300900522937 /* PublishMessageFeatureObjC.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PublishMessageFeatureObjC.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 799322B61BAC300900522937 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 799322B81BAC300900522937 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; - 799322B91BAC300900522937 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - 799322C61BAC300900522937 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - E88D5D1A4F3B192FB9C4E26A /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 799322AF1BAC300900522937 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - DE03A7D62A24E72367E5D838 /* Pods.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 263CE5CBA010D5EB20B69353 /* Pods */ = { - isa = PBXGroup; - children = ( - E88D5D1A4F3B192FB9C4E26A /* Pods.debug.xcconfig */, - 4F2F718A48DF2DD1F6439A0B /* Pods.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; - 4CB9E4EA61D5DDB87C0C54E1 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 522C0D442E764B53B0C64F1C /* Pods.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 799322A91BAC300900522937 = { - isa = PBXGroup; - children = ( - 799322B41BAC300900522937 /* PublishMessageFeatureObjC */, - 799322B31BAC300900522937 /* Products */, - 263CE5CBA010D5EB20B69353 /* Pods */, - 4CB9E4EA61D5DDB87C0C54E1 /* Frameworks */, - ); - sourceTree = ""; - }; - 799322B31BAC300900522937 /* Products */ = { - isa = PBXGroup; - children = ( - 799322B21BAC300900522937 /* PublishMessageFeatureObjC.app */, - ); - name = Products; - sourceTree = ""; - }; - 799322B41BAC300900522937 /* PublishMessageFeatureObjC */ = { - isa = PBXGroup; - children = ( - 799322B81BAC300900522937 /* AppDelegate.h */, - 799322B91BAC300900522937 /* AppDelegate.m */, - 799322C61BAC300900522937 /* Info.plist */, - 799322B51BAC300900522937 /* Supporting Files */, - ); - path = PublishMessageFeatureObjC; - sourceTree = ""; - }; - 799322B51BAC300900522937 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 799322B61BAC300900522937 /* main.m */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 799322B11BAC300900522937 /* PublishMessageFeatureObjC */ = { - isa = PBXNativeTarget; - buildConfigurationList = 799322C91BAC300900522937 /* Build configuration list for PBXNativeTarget "PublishMessageFeatureObjC" */; - buildPhases = ( - C542B2414D4226DAED00A75C /* Check Pods Manifest.lock */, - 799322AE1BAC300900522937 /* Sources */, - 799322AF1BAC300900522937 /* Frameworks */, - 799322B01BAC300900522937 /* Resources */, - CD55EDFBD1C94A30BCA8F477 /* Embed Pods Frameworks */, - 395FA6AB7478D0E97D47B370 /* Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = PublishMessageFeatureObjC; - productName = PublishMessageFeatureObjC; - productReference = 799322B21BAC300900522937 /* PublishMessageFeatureObjC.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 799322AA1BAC300900522937 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0700; - ORGANIZATIONNAME = PubNub; - TargetAttributes = { - 799322B11BAC300900522937 = { - CreatedOnToolsVersion = 7.0; - }; - }; - }; - buildConfigurationList = 799322AD1BAC300900522937 /* Build configuration list for PBXProject "PublishMessageFeatureObjC" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 799322A91BAC300900522937; - productRefGroup = 799322B31BAC300900522937 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 799322B11BAC300900522937 /* PublishMessageFeatureObjC */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 799322B01BAC300900522937 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 395FA6AB7478D0E97D47B370 /* Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - C542B2414D4226DAED00A75C /* Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - CD55EDFBD1C94A30BCA8F477 /* Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 799322AE1BAC300900522937 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 799322BA1BAC300900522937 /* AppDelegate.m in Sources */, - 799322B71BAC300900522937 /* main.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 799322C71BAC300900522937 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - }; - name = Debug; - }; - 799322C81BAC300900522937 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 799322CA1BAC300900522937 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = E88D5D1A4F3B192FB9C4E26A /* Pods.debug.xcconfig */; - buildSettings = { - INFOPLIST_FILE = PublishMessageFeatureObjC/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.PublishMessageFeatureObjC; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 799322CB1BAC300900522937 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 4F2F718A48DF2DD1F6439A0B /* Pods.release.xcconfig */; - buildSettings = { - INFOPLIST_FILE = PublishMessageFeatureObjC/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.PublishMessageFeatureObjC; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 799322AD1BAC300900522937 /* Build configuration list for PBXProject "PublishMessageFeatureObjC" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 799322C71BAC300900522937 /* Debug */, - 799322C81BAC300900522937 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 799322C91BAC300900522937 /* Build configuration list for PBXNativeTarget "PublishMessageFeatureObjC" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 799322CA1BAC300900522937 /* Debug */, - 799322CB1BAC300900522937 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 799322AA1BAC300900522937 /* Project object */; -} diff --git a/Support/Fabric/doc-sources/Features/PublishMessage/PublishMessageFeatureObjC/PublishMessageFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Support/Fabric/doc-sources/Features/PublishMessage/PublishMessageFeatureObjC/PublishMessageFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 304a31c5b..000000000 --- a/Support/Fabric/doc-sources/Features/PublishMessage/PublishMessageFeatureObjC/PublishMessageFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Support/Fabric/doc-sources/Features/PublishMessage/PublishMessageFeatureObjC/PublishMessageFeatureObjC/AppDelegate.h b/Support/Fabric/doc-sources/Features/PublishMessage/PublishMessageFeatureObjC/PublishMessageFeatureObjC/AppDelegate.h deleted file mode 100644 index 13c641d42..000000000 --- a/Support/Fabric/doc-sources/Features/PublishMessage/PublishMessageFeatureObjC/PublishMessageFeatureObjC/AppDelegate.h +++ /dev/null @@ -1,12 +0,0 @@ -#import - - -/** - @author Sergey Mamontov - @copyright © 2009-2015 PubNub, Inc. - */ -@interface AppDelegate : UIResponder - -@property (strong, nonatomic) UIWindow *window; - -@end diff --git a/Support/Fabric/doc-sources/Features/PublishMessage/PublishMessageFeatureObjC/PublishMessageFeatureObjC/AppDelegate.m b/Support/Fabric/doc-sources/Features/PublishMessage/PublishMessageFeatureObjC/PublishMessageFeatureObjC/AppDelegate.m deleted file mode 100644 index 2bfbc3061..000000000 --- a/Support/Fabric/doc-sources/Features/PublishMessage/PublishMessageFeatureObjC/PublishMessageFeatureObjC/AppDelegate.m +++ /dev/null @@ -1,55 +0,0 @@ -/*fabric:start-text*/ -// Publishing a JSON object to a channel is really easy. Here is an an example to get you started. -/*fabric:end-text*/ -/** - @author Sergey Mamontov - @copyright © 2009-2015 PubNub, Inc. - */ -/*fabric:start-code*/ -#import "AppDelegate.h" -/*fabric:start-highlight*/ -#import -#import -/*fabric:end-highlight*/ - - -@interface AppDelegate () - -/*fabric:start-highlight*/ -@property (nonatomic, strong) PubNub *client; -/*fabric:end-highlight*/ - -@end - - -@implementation AppDelegate - -- (BOOL) application:(UIApplication *)application - didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { - - /*fabric:start-highlight*/ - self.client = [PubNub client]; - [self.client publish:@{@"announcement": @"Welcome to PubNub!"} - toChannel:@"announcements" withCompletion:^(PNPublishStatus *status) { - - // Check whether request successfully completed or not. - if (!status.isError) { - - // Message successfully published to specified channel. - } - // Request processing failed. - else { - - // Handle message publish error. Check 'category' property to find out possible issue - // because of which request did fail. - // - // Request can be resent using: [status retry]; - } - }]; - /*fabric:end-highlight*/ - - return YES; -} - -@end -/*fabric:end-code*/ diff --git a/Support/Fabric/doc-sources/Features/PublishMessage/PublishMessageFeatureObjC/PublishMessageFeatureObjC/Info.plist b/Support/Fabric/doc-sources/Features/PublishMessage/PublishMessageFeatureObjC/PublishMessageFeatureObjC/Info.plist deleted file mode 100644 index a8a64dabe..000000000 --- a/Support/Fabric/doc-sources/Features/PublishMessage/PublishMessageFeatureObjC/PublishMessageFeatureObjC/Info.plist +++ /dev/null @@ -1,34 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - - - diff --git a/Support/Fabric/doc-sources/Features/PublishMessage/PublishMessageFeatureObjC/PublishMessageFeatureObjC/main.m b/Support/Fabric/doc-sources/Features/PublishMessage/PublishMessageFeatureObjC/PublishMessageFeatureObjC/main.m deleted file mode 100644 index 2832d3b54..000000000 --- a/Support/Fabric/doc-sources/Features/PublishMessage/PublishMessageFeatureObjC/PublishMessageFeatureObjC/main.m +++ /dev/null @@ -1,16 +0,0 @@ -// -// main.m -// PublishMessageFeatureObjC -// -// Created by Sergey Mamontov on 9/18/15. -// Copyright © 2015 PubNub. All rights reserved. -// - -#import -#import "AppDelegate.h" - -int main(int argc, char * argv[]) { - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); - } -} diff --git a/Support/Fabric/doc-sources/Features/PublishMessage/PublishMessageFeatureSwift/Podfile b/Support/Fabric/doc-sources/Features/PublishMessage/PublishMessageFeatureSwift/Podfile deleted file mode 100644 index 282a2f6c8..000000000 --- a/Support/Fabric/doc-sources/Features/PublishMessage/PublishMessageFeatureSwift/Podfile +++ /dev/null @@ -1,20 +0,0 @@ -source 'git@github.com:parfeon/pubnub-private-pods-repo.git' -source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '8.0' -use_frameworks! -pod "PubNubBridge" - -post_install do |installer_representation| - installer_representation.pods_project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings['GCC_INSTRUMENT_PROGRAM_FLOW_ARCS'] = 'NO' - config.build_settings['GCC_GENERATE_TEST_COVERAGE_FILES'] = 'NO' - if target.name == "CocoaLumberjack" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - if target.name == "OHHTTPStubs" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - end - end -end \ No newline at end of file diff --git a/Support/Fabric/doc-sources/Features/PublishMessage/PublishMessageFeatureSwift/PublishMessageFeatureSwift.xcodeproj/project.pbxproj b/Support/Fabric/doc-sources/Features/PublishMessage/PublishMessageFeatureSwift/PublishMessageFeatureSwift.xcodeproj/project.pbxproj deleted file mode 100644 index 4551ca057..000000000 --- a/Support/Fabric/doc-sources/Features/PublishMessage/PublishMessageFeatureSwift/PublishMessageFeatureSwift.xcodeproj/project.pbxproj +++ /dev/null @@ -1,333 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 799322D91BAC341E00522937 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 799322D81BAC341E00522937 /* AppDelegate.swift */; }; - C9ACEE00C5949BFEDC59622C /* Pods.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A1BB8F3C8B58D11DB11280C2 /* Pods.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 3C281443F927955243E7C26D /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; - 799322D51BAC341E00522937 /* PublishMessageFeatureSwift.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PublishMessageFeatureSwift.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 799322D81BAC341E00522937 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 799322E41BAC341E00522937 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - A1BB8F3C8B58D11DB11280C2 /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - F8D64CFD45A8FEEAD0B83C73 /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 799322D21BAC341E00522937 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - C9ACEE00C5949BFEDC59622C /* Pods.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 388F54016C91F730CBD65902 /* Pods */ = { - isa = PBXGroup; - children = ( - F8D64CFD45A8FEEAD0B83C73 /* Pods.debug.xcconfig */, - 3C281443F927955243E7C26D /* Pods.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; - 799322CC1BAC341E00522937 = { - isa = PBXGroup; - children = ( - 799322D71BAC341E00522937 /* PublishMessageFeatureSwift */, - 799322D61BAC341E00522937 /* Products */, - 388F54016C91F730CBD65902 /* Pods */, - 82D468494E14CCE4F09CC186 /* Frameworks */, - ); - sourceTree = ""; - }; - 799322D61BAC341E00522937 /* Products */ = { - isa = PBXGroup; - children = ( - 799322D51BAC341E00522937 /* PublishMessageFeatureSwift.app */, - ); - name = Products; - sourceTree = ""; - }; - 799322D71BAC341E00522937 /* PublishMessageFeatureSwift */ = { - isa = PBXGroup; - children = ( - 799322D81BAC341E00522937 /* AppDelegate.swift */, - 799322E41BAC341E00522937 /* Info.plist */, - ); - path = PublishMessageFeatureSwift; - sourceTree = ""; - }; - 82D468494E14CCE4F09CC186 /* Frameworks */ = { - isa = PBXGroup; - children = ( - A1BB8F3C8B58D11DB11280C2 /* Pods.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 799322D41BAC341E00522937 /* PublishMessageFeatureSwift */ = { - isa = PBXNativeTarget; - buildConfigurationList = 799322E71BAC341E00522937 /* Build configuration list for PBXNativeTarget "PublishMessageFeatureSwift" */; - buildPhases = ( - 48DD71D22AFF46178CD98870 /* Check Pods Manifest.lock */, - 799322D11BAC341E00522937 /* Sources */, - 799322D21BAC341E00522937 /* Frameworks */, - 799322D31BAC341E00522937 /* Resources */, - 6E5516729C600CCC2015471D /* Embed Pods Frameworks */, - C18E4160F633E0D3C34F9BF5 /* Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = PublishMessageFeatureSwift; - productName = PublishMessageFeatureSwift; - productReference = 799322D51BAC341E00522937 /* PublishMessageFeatureSwift.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 799322CD1BAC341E00522937 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0700; - ORGANIZATIONNAME = PubNub; - TargetAttributes = { - 799322D41BAC341E00522937 = { - CreatedOnToolsVersion = 7.0; - }; - }; - }; - buildConfigurationList = 799322D01BAC341E00522937 /* Build configuration list for PBXProject "PublishMessageFeatureSwift" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 799322CC1BAC341E00522937; - productRefGroup = 799322D61BAC341E00522937 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 799322D41BAC341E00522937 /* PublishMessageFeatureSwift */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 799322D31BAC341E00522937 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 48DD71D22AFF46178CD98870 /* Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; - 6E5516729C600CCC2015471D /* Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - C18E4160F633E0D3C34F9BF5 /* Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 799322D11BAC341E00522937 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 799322D91BAC341E00522937 /* AppDelegate.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 799322E51BAC341E00522937 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 799322E61BAC341E00522937 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 799322E81BAC341E00522937 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = F8D64CFD45A8FEEAD0B83C73 /* Pods.debug.xcconfig */; - buildSettings = { - INFOPLIST_FILE = PublishMessageFeatureSwift/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.PublishMessageFeatureSwift; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 799322E91BAC341E00522937 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 3C281443F927955243E7C26D /* Pods.release.xcconfig */; - buildSettings = { - INFOPLIST_FILE = PublishMessageFeatureSwift/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.PublishMessageFeatureSwift; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 799322D01BAC341E00522937 /* Build configuration list for PBXProject "PublishMessageFeatureSwift" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 799322E51BAC341E00522937 /* Debug */, - 799322E61BAC341E00522937 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 799322E71BAC341E00522937 /* Build configuration list for PBXNativeTarget "PublishMessageFeatureSwift" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 799322E81BAC341E00522937 /* Debug */, - 799322E91BAC341E00522937 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 799322CD1BAC341E00522937 /* Project object */; -} diff --git a/Support/Fabric/doc-sources/Features/PublishMessage/PublishMessageFeatureSwift/PublishMessageFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Support/Fabric/doc-sources/Features/PublishMessage/PublishMessageFeatureSwift/PublishMessageFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 7f9cc1fe8..000000000 --- a/Support/Fabric/doc-sources/Features/PublishMessage/PublishMessageFeatureSwift/PublishMessageFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Support/Fabric/doc-sources/Features/PublishMessage/PublishMessageFeatureSwift/PublishMessageFeatureSwift/AppDelegate.swift b/Support/Fabric/doc-sources/Features/PublishMessage/PublishMessageFeatureSwift/PublishMessageFeatureSwift/AppDelegate.swift deleted file mode 100644 index bbb0d13b8..000000000 --- a/Support/Fabric/doc-sources/Features/PublishMessage/PublishMessageFeatureSwift/PublishMessageFeatureSwift/AppDelegate.swift +++ /dev/null @@ -1,50 +0,0 @@ -/*fabric:start-text*/ -// Publishing a JSON object to a channel is really easy. Here is an an example to get you started. -/*fabric:end-text*/ -/** - @author Sergey Mamontov - @copyright © 2009-2015 PubNub, Inc. - */ -/*fabric:start-code*/ -import UIKit -/*fabric:start-highlight*/ -import PubNub -import PubNubBridge -/*fabric:end-highlight*/ - - -@UIApplicationMain -class AppDelegate: UIResponder, UIApplicationDelegate { - - var window: UIWindow? - /*fabric:start-highlight*/ - var client: PubNub? - /*fabric:end-highlight*/ - - func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { - - /*fabric:start-highlight*/ - self.client = PubNub.client() - self.client?.publish(["announcement": "Welcome to PubNub!"], toChannel: "announcements", withCompletion: { (status) -> Void in - - if !status.error { - - // Message successfully published to specified channel. - } - else{ - - // Handle message publish error. Check 'category' property - // to find out possible reason because of which request did fail. - // Review 'errorData' property (which has PNErrorData data type) of status - // object to get additional information about the issue. - // - // Request can be resent using: status.retry() - } - }) - /*fabric:end-highlight*/ - - return true - } -} -/*fabric:end-code*/ - diff --git a/Support/Fabric/doc-sources/Features/PublishMessage/PublishMessageFeatureSwift/PublishMessageFeatureSwift/Info.plist b/Support/Fabric/doc-sources/Features/PublishMessage/PublishMessageFeatureSwift/PublishMessageFeatureSwift/Info.plist deleted file mode 100644 index a8a64dabe..000000000 --- a/Support/Fabric/doc-sources/Features/PublishMessage/PublishMessageFeatureSwift/PublishMessageFeatureSwift/Info.plist +++ /dev/null @@ -1,34 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - - - diff --git a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step1/Podfile b/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step1/Podfile deleted file mode 100644 index 282a2f6c8..000000000 --- a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step1/Podfile +++ /dev/null @@ -1,20 +0,0 @@ -source 'git@github.com:parfeon/pubnub-private-pods-repo.git' -source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '8.0' -use_frameworks! -pod "PubNubBridge" - -post_install do |installer_representation| - installer_representation.pods_project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings['GCC_INSTRUMENT_PROGRAM_FLOW_ARCS'] = 'NO' - config.build_settings['GCC_GENERATE_TEST_COVERAGE_FILES'] = 'NO' - if target.name == "CocoaLumberjack" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - if target.name == "OHHTTPStubs" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - end - end -end \ No newline at end of file diff --git a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step1/SubscribeToChannelFeatureObjC.xcodeproj/project.pbxproj b/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step1/SubscribeToChannelFeatureObjC.xcodeproj/project.pbxproj deleted file mode 100644 index 2fb666104..000000000 --- a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step1/SubscribeToChannelFeatureObjC.xcodeproj/project.pbxproj +++ /dev/null @@ -1,346 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 6D609990619C40092F4ECEAF /* Pods.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 867FBEE37AD53487D4C335A6 /* Pods.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; - 799322F81BAC81E600522937 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 799322F71BAC81E600522937 /* main.m */; }; - 799322FB1BAC81E600522937 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 799322FA1BAC81E600522937 /* AppDelegate.m */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 799322F31BAC81E600522937 /* SubscribeToChannelFeatureObjC.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SubscribeToChannelFeatureObjC.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 799322F71BAC81E600522937 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 799322F91BAC81E600522937 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; - 799322FA1BAC81E600522937 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - 799323071BAC81E600522937 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 867FBEE37AD53487D4C335A6 /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - A315E873EEF02FFA681CD6CF /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; - C232C9356FEB47A8ED3A2A4B /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 799322F01BAC81E600522937 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 6D609990619C40092F4ECEAF /* Pods.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 36F3FE04F7E5DDB8D84CBB2E /* Pods */ = { - isa = PBXGroup; - children = ( - A315E873EEF02FFA681CD6CF /* Pods.debug.xcconfig */, - C232C9356FEB47A8ED3A2A4B /* Pods.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; - 787EA41BE6A62BC1F022336C /* Frameworks */ = { - isa = PBXGroup; - children = ( - 867FBEE37AD53487D4C335A6 /* Pods.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 799322EA1BAC81E600522937 = { - isa = PBXGroup; - children = ( - 799322F51BAC81E600522937 /* SubscribeToChannelFeatureObjC */, - 799322F41BAC81E600522937 /* Products */, - 36F3FE04F7E5DDB8D84CBB2E /* Pods */, - 787EA41BE6A62BC1F022336C /* Frameworks */, - ); - sourceTree = ""; - }; - 799322F41BAC81E600522937 /* Products */ = { - isa = PBXGroup; - children = ( - 799322F31BAC81E600522937 /* SubscribeToChannelFeatureObjC.app */, - ); - name = Products; - sourceTree = ""; - }; - 799322F51BAC81E600522937 /* SubscribeToChannelFeatureObjC */ = { - isa = PBXGroup; - children = ( - 799322F91BAC81E600522937 /* AppDelegate.h */, - 799322FA1BAC81E600522937 /* AppDelegate.m */, - 799323071BAC81E600522937 /* Info.plist */, - 799322F61BAC81E600522937 /* Supporting Files */, - ); - path = SubscribeToChannelFeatureObjC; - sourceTree = ""; - }; - 799322F61BAC81E600522937 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 799322F71BAC81E600522937 /* main.m */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 799322F21BAC81E600522937 /* SubscribeToChannelFeatureObjC */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7993230A1BAC81E600522937 /* Build configuration list for PBXNativeTarget "SubscribeToChannelFeatureObjC" */; - buildPhases = ( - CC4DA27593A1A84CB1A717C2 /* Check Pods Manifest.lock */, - 799322EF1BAC81E600522937 /* Sources */, - 799322F01BAC81E600522937 /* Frameworks */, - 799322F11BAC81E600522937 /* Resources */, - 9B86A03314B77339831BFA79 /* Embed Pods Frameworks */, - B59AF02280E14BC94B392305 /* Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = SubscribeToChannelFeatureObjC; - productName = SubscribeToChannelFeatureObjC; - productReference = 799322F31BAC81E600522937 /* SubscribeToChannelFeatureObjC.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 799322EB1BAC81E600522937 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0700; - ORGANIZATIONNAME = PubNub; - TargetAttributes = { - 799322F21BAC81E600522937 = { - CreatedOnToolsVersion = 7.0; - }; - }; - }; - buildConfigurationList = 799322EE1BAC81E600522937 /* Build configuration list for PBXProject "SubscribeToChannelFeatureObjC" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 799322EA1BAC81E600522937; - productRefGroup = 799322F41BAC81E600522937 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 799322F21BAC81E600522937 /* SubscribeToChannelFeatureObjC */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 799322F11BAC81E600522937 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 9B86A03314B77339831BFA79 /* Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - B59AF02280E14BC94B392305 /* Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - CC4DA27593A1A84CB1A717C2 /* Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 799322EF1BAC81E600522937 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 799322FB1BAC81E600522937 /* AppDelegate.m in Sources */, - 799322F81BAC81E600522937 /* main.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 799323081BAC81E600522937 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - }; - name = Debug; - }; - 799323091BAC81E600522937 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 7993230B1BAC81E600522937 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = A315E873EEF02FFA681CD6CF /* Pods.debug.xcconfig */; - buildSettings = { - INFOPLIST_FILE = SubscribeToChannelFeatureObjC/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.SubscribeToChannelFeatureObjC; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 7993230C1BAC81E600522937 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = C232C9356FEB47A8ED3A2A4B /* Pods.release.xcconfig */; - buildSettings = { - INFOPLIST_FILE = SubscribeToChannelFeatureObjC/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.SubscribeToChannelFeatureObjC; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 799322EE1BAC81E600522937 /* Build configuration list for PBXProject "SubscribeToChannelFeatureObjC" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 799323081BAC81E600522937 /* Debug */, - 799323091BAC81E600522937 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 7993230A1BAC81E600522937 /* Build configuration list for PBXNativeTarget "SubscribeToChannelFeatureObjC" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7993230B1BAC81E600522937 /* Debug */, - 7993230C1BAC81E600522937 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 799322EB1BAC81E600522937 /* Project object */; -} diff --git a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step1/SubscribeToChannelFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step1/SubscribeToChannelFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index fbbb30bac..000000000 --- a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step1/SubscribeToChannelFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step1/SubscribeToChannelFeatureObjC/AppDelegate.h b/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step1/SubscribeToChannelFeatureObjC/AppDelegate.h deleted file mode 100644 index 13c641d42..000000000 --- a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step1/SubscribeToChannelFeatureObjC/AppDelegate.h +++ /dev/null @@ -1,12 +0,0 @@ -#import - - -/** - @author Sergey Mamontov - @copyright © 2009-2015 PubNub, Inc. - */ -@interface AppDelegate : UIResponder - -@property (strong, nonatomic) UIWindow *window; - -@end diff --git a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step1/SubscribeToChannelFeatureObjC/AppDelegate.m b/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step1/SubscribeToChannelFeatureObjC/AppDelegate.m deleted file mode 100644 index f03fe45b6..000000000 --- a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step1/SubscribeToChannelFeatureObjC/AppDelegate.m +++ /dev/null @@ -1,39 +0,0 @@ -/*fabric:start-text*/ -// To receive messages from other users in real-time, you must subscribe to the desired channels first. -/*fabric:end-text*/ -/** - @author Sergey Mamontov - @copyright © 2009-2015 PubNub, Inc. - */ -/*fabric:start-code*/ -#import "AppDelegate.h" -/*fabric:start-highlight*/ -#import -#import -/*fabric:end-highlight*/ - - -@interface AppDelegate () - -/*fabric:start-highlight*/ -@property (nonatomic, strong) PubNub *client; -/*fabric:end-highlight*/ - -@end - - -@implementation AppDelegate - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { - - /*fabric:start-highlight*/ - self.client = [PubNub client]; - [self.client addListener:self]; - [self.client subscribeToChannels:@[@"announcements", @"lobby"] withPresence:NO]; - /*fabric:end-highlight*/ - - return YES; -} - -@end -/*fabric:end-code*/ diff --git a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step1/SubscribeToChannelFeatureObjC/Info.plist b/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step1/SubscribeToChannelFeatureObjC/Info.plist deleted file mode 100644 index fb4115c84..000000000 --- a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step1/SubscribeToChannelFeatureObjC/Info.plist +++ /dev/null @@ -1,36 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step1/SubscribeToChannelFeatureObjC/main.m b/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step1/SubscribeToChannelFeatureObjC/main.m deleted file mode 100644 index 2eeb00841..000000000 --- a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step1/SubscribeToChannelFeatureObjC/main.m +++ /dev/null @@ -1,16 +0,0 @@ -// -// main.m -// SubscribeToChannelFeatureObjC -// -// Created by Sergey Mamontov on 9/18/15. -// Copyright © 2015 PubNub. All rights reserved. -// - -#import -#import "AppDelegate.h" - -int main(int argc, char * argv[]) { - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); - } -} diff --git a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step2/Podfile b/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step2/Podfile deleted file mode 100644 index 282a2f6c8..000000000 --- a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step2/Podfile +++ /dev/null @@ -1,20 +0,0 @@ -source 'git@github.com:parfeon/pubnub-private-pods-repo.git' -source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '8.0' -use_frameworks! -pod "PubNubBridge" - -post_install do |installer_representation| - installer_representation.pods_project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings['GCC_INSTRUMENT_PROGRAM_FLOW_ARCS'] = 'NO' - config.build_settings['GCC_GENERATE_TEST_COVERAGE_FILES'] = 'NO' - if target.name == "CocoaLumberjack" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - if target.name == "OHHTTPStubs" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - end - end -end \ No newline at end of file diff --git a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step2/SubscribeToChannelFeatureObjC.xcodeproj/project.pbxproj b/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step2/SubscribeToChannelFeatureObjC.xcodeproj/project.pbxproj deleted file mode 100644 index 2fb666104..000000000 --- a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step2/SubscribeToChannelFeatureObjC.xcodeproj/project.pbxproj +++ /dev/null @@ -1,346 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 6D609990619C40092F4ECEAF /* Pods.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 867FBEE37AD53487D4C335A6 /* Pods.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; - 799322F81BAC81E600522937 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 799322F71BAC81E600522937 /* main.m */; }; - 799322FB1BAC81E600522937 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 799322FA1BAC81E600522937 /* AppDelegate.m */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 799322F31BAC81E600522937 /* SubscribeToChannelFeatureObjC.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SubscribeToChannelFeatureObjC.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 799322F71BAC81E600522937 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 799322F91BAC81E600522937 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; - 799322FA1BAC81E600522937 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - 799323071BAC81E600522937 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 867FBEE37AD53487D4C335A6 /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - A315E873EEF02FFA681CD6CF /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; - C232C9356FEB47A8ED3A2A4B /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 799322F01BAC81E600522937 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 6D609990619C40092F4ECEAF /* Pods.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 36F3FE04F7E5DDB8D84CBB2E /* Pods */ = { - isa = PBXGroup; - children = ( - A315E873EEF02FFA681CD6CF /* Pods.debug.xcconfig */, - C232C9356FEB47A8ED3A2A4B /* Pods.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; - 787EA41BE6A62BC1F022336C /* Frameworks */ = { - isa = PBXGroup; - children = ( - 867FBEE37AD53487D4C335A6 /* Pods.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 799322EA1BAC81E600522937 = { - isa = PBXGroup; - children = ( - 799322F51BAC81E600522937 /* SubscribeToChannelFeatureObjC */, - 799322F41BAC81E600522937 /* Products */, - 36F3FE04F7E5DDB8D84CBB2E /* Pods */, - 787EA41BE6A62BC1F022336C /* Frameworks */, - ); - sourceTree = ""; - }; - 799322F41BAC81E600522937 /* Products */ = { - isa = PBXGroup; - children = ( - 799322F31BAC81E600522937 /* SubscribeToChannelFeatureObjC.app */, - ); - name = Products; - sourceTree = ""; - }; - 799322F51BAC81E600522937 /* SubscribeToChannelFeatureObjC */ = { - isa = PBXGroup; - children = ( - 799322F91BAC81E600522937 /* AppDelegate.h */, - 799322FA1BAC81E600522937 /* AppDelegate.m */, - 799323071BAC81E600522937 /* Info.plist */, - 799322F61BAC81E600522937 /* Supporting Files */, - ); - path = SubscribeToChannelFeatureObjC; - sourceTree = ""; - }; - 799322F61BAC81E600522937 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 799322F71BAC81E600522937 /* main.m */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 799322F21BAC81E600522937 /* SubscribeToChannelFeatureObjC */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7993230A1BAC81E600522937 /* Build configuration list for PBXNativeTarget "SubscribeToChannelFeatureObjC" */; - buildPhases = ( - CC4DA27593A1A84CB1A717C2 /* Check Pods Manifest.lock */, - 799322EF1BAC81E600522937 /* Sources */, - 799322F01BAC81E600522937 /* Frameworks */, - 799322F11BAC81E600522937 /* Resources */, - 9B86A03314B77339831BFA79 /* Embed Pods Frameworks */, - B59AF02280E14BC94B392305 /* Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = SubscribeToChannelFeatureObjC; - productName = SubscribeToChannelFeatureObjC; - productReference = 799322F31BAC81E600522937 /* SubscribeToChannelFeatureObjC.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 799322EB1BAC81E600522937 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0700; - ORGANIZATIONNAME = PubNub; - TargetAttributes = { - 799322F21BAC81E600522937 = { - CreatedOnToolsVersion = 7.0; - }; - }; - }; - buildConfigurationList = 799322EE1BAC81E600522937 /* Build configuration list for PBXProject "SubscribeToChannelFeatureObjC" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 799322EA1BAC81E600522937; - productRefGroup = 799322F41BAC81E600522937 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 799322F21BAC81E600522937 /* SubscribeToChannelFeatureObjC */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 799322F11BAC81E600522937 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 9B86A03314B77339831BFA79 /* Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - B59AF02280E14BC94B392305 /* Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - CC4DA27593A1A84CB1A717C2 /* Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 799322EF1BAC81E600522937 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 799322FB1BAC81E600522937 /* AppDelegate.m in Sources */, - 799322F81BAC81E600522937 /* main.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 799323081BAC81E600522937 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - }; - name = Debug; - }; - 799323091BAC81E600522937 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 7993230B1BAC81E600522937 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = A315E873EEF02FFA681CD6CF /* Pods.debug.xcconfig */; - buildSettings = { - INFOPLIST_FILE = SubscribeToChannelFeatureObjC/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.SubscribeToChannelFeatureObjC; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 7993230C1BAC81E600522937 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = C232C9356FEB47A8ED3A2A4B /* Pods.release.xcconfig */; - buildSettings = { - INFOPLIST_FILE = SubscribeToChannelFeatureObjC/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.SubscribeToChannelFeatureObjC; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 799322EE1BAC81E600522937 /* Build configuration list for PBXProject "SubscribeToChannelFeatureObjC" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 799323081BAC81E600522937 /* Debug */, - 799323091BAC81E600522937 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 7993230A1BAC81E600522937 /* Build configuration list for PBXNativeTarget "SubscribeToChannelFeatureObjC" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7993230B1BAC81E600522937 /* Debug */, - 7993230C1BAC81E600522937 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 799322EB1BAC81E600522937 /* Project object */; -} diff --git a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step2/SubscribeToChannelFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step2/SubscribeToChannelFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index fbbb30bac..000000000 --- a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step2/SubscribeToChannelFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step2/SubscribeToChannelFeatureObjC/AppDelegate.h b/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step2/SubscribeToChannelFeatureObjC/AppDelegate.h deleted file mode 100644 index 13c641d42..000000000 --- a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step2/SubscribeToChannelFeatureObjC/AppDelegate.h +++ /dev/null @@ -1,12 +0,0 @@ -#import - - -/** - @author Sergey Mamontov - @copyright © 2009-2015 PubNub, Inc. - */ -@interface AppDelegate : UIResponder - -@property (strong, nonatomic) UIWindow *window; - -@end diff --git a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step2/SubscribeToChannelFeatureObjC/AppDelegate.m b/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step2/SubscribeToChannelFeatureObjC/AppDelegate.m deleted file mode 100644 index f736c39d2..000000000 --- a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step2/SubscribeToChannelFeatureObjC/AppDelegate.m +++ /dev/null @@ -1,66 +0,0 @@ -/*fabric:start-text*/ -// It is always a good idea to add a subscription/connection status handling callback to know when the subscription process completed or stumbled on an unexpected disconnection. -/*fabric:end-text*/ -/** - @author Sergey Mamontov - @copyright © 2009-2015 PubNub, Inc. - */ -/*fabric:start-code*/ -#import "AppDelegate.h" -#import -#import - - -/*fabric:start-highlight*/ -@interface AppDelegate () -/*fabric:end-highlight*/ - -@property (nonatomic, strong) PubNub *client; - -@end - - -@implementation AppDelegate - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { - - self.client = [PubNub client]; - [self.client addListener:self]; - [self.client subscribeToChannels:@[@"announcements", @"lobby"] withPresence:NO]; - - return YES; -} - -/*fabric:start-highlight*/ -- (void)client:(PubNub *)client didReceiveStatus:(PNSubscribeStatus *)status { - - if (status.category == PNUnexpectedDisconnectCategory) { - - // This event happens when radio / connectivity is lost - } - else if (status.category == PNConnectedCategory) { - - // Connect event. You can do stuff like publish, and know you'll get it. - // Or just use the connected event to confirm you are subscribed for - // UI / internal notifications, etc - } - else if (status.category == PNReconnectedCategory) { - - // Happens as part of our regular operation. This event happens when - // radio / connectivity is lost, then regained. - } - else if (status.category == PNDisconnectedCategory) { - - // Disconnection event. After this moment any messages from unsubscribed channel - // won't reach this callback. - } - else if (status.category == PNDecryptionErrorCategory) { - - // Handle messsage decryption error. Probably client configured to - // encrypt messages and on live data feed it received plain text. - } -} -/*fabric:end-highlight*/ - -@end -/*fabric:end-code*/ diff --git a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step2/SubscribeToChannelFeatureObjC/Info.plist b/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step2/SubscribeToChannelFeatureObjC/Info.plist deleted file mode 100644 index fb4115c84..000000000 --- a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step2/SubscribeToChannelFeatureObjC/Info.plist +++ /dev/null @@ -1,36 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step2/SubscribeToChannelFeatureObjC/main.m b/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step2/SubscribeToChannelFeatureObjC/main.m deleted file mode 100644 index 2eeb00841..000000000 --- a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step2/SubscribeToChannelFeatureObjC/main.m +++ /dev/null @@ -1,16 +0,0 @@ -// -// main.m -// SubscribeToChannelFeatureObjC -// -// Created by Sergey Mamontov on 9/18/15. -// Copyright © 2015 PubNub. All rights reserved. -// - -#import -#import "AppDelegate.h" - -int main(int argc, char * argv[]) { - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); - } -} diff --git a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step3/Podfile b/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step3/Podfile deleted file mode 100644 index 282a2f6c8..000000000 --- a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step3/Podfile +++ /dev/null @@ -1,20 +0,0 @@ -source 'git@github.com:parfeon/pubnub-private-pods-repo.git' -source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '8.0' -use_frameworks! -pod "PubNubBridge" - -post_install do |installer_representation| - installer_representation.pods_project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings['GCC_INSTRUMENT_PROGRAM_FLOW_ARCS'] = 'NO' - config.build_settings['GCC_GENERATE_TEST_COVERAGE_FILES'] = 'NO' - if target.name == "CocoaLumberjack" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - if target.name == "OHHTTPStubs" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - end - end -end \ No newline at end of file diff --git a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step3/SubscribeToChannelFeatureObjC.xcodeproj/project.pbxproj b/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step3/SubscribeToChannelFeatureObjC.xcodeproj/project.pbxproj deleted file mode 100644 index 96632949e..000000000 --- a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step3/SubscribeToChannelFeatureObjC.xcodeproj/project.pbxproj +++ /dev/null @@ -1,348 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 6D609990619C40092F4ECEAF /* Pods.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 867FBEE37AD53487D4C335A6 /* Pods.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; - 799322F81BAC81E600522937 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 799322F71BAC81E600522937 /* main.m */; }; - 799322FB1BAC81E600522937 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 799322FA1BAC81E600522937 /* AppDelegate.m */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 799322F31BAC81E600522937 /* SubscribeToChannelFeatureObjC.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SubscribeToChannelFeatureObjC.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 799322F71BAC81E600522937 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 799322F91BAC81E600522937 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; - 799322FA1BAC81E600522937 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; - 799323071BAC81E600522937 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 867FBEE37AD53487D4C335A6 /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - A315E873EEF02FFA681CD6CF /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; - C232C9356FEB47A8ED3A2A4B /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 799322F01BAC81E600522937 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 6D609990619C40092F4ECEAF /* Pods.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 36F3FE04F7E5DDB8D84CBB2E /* Pods */ = { - isa = PBXGroup; - children = ( - A315E873EEF02FFA681CD6CF /* Pods.debug.xcconfig */, - C232C9356FEB47A8ED3A2A4B /* Pods.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; - 787EA41BE6A62BC1F022336C /* Frameworks */ = { - isa = PBXGroup; - children = ( - 867FBEE37AD53487D4C335A6 /* Pods.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 799322EA1BAC81E600522937 = { - isa = PBXGroup; - children = ( - 799322F51BAC81E600522937 /* SubscribeToChannelFeatureObjC */, - 799322F41BAC81E600522937 /* Products */, - 36F3FE04F7E5DDB8D84CBB2E /* Pods */, - 787EA41BE6A62BC1F022336C /* Frameworks */, - ); - sourceTree = ""; - }; - 799322F41BAC81E600522937 /* Products */ = { - isa = PBXGroup; - children = ( - 799322F31BAC81E600522937 /* SubscribeToChannelFeatureObjC.app */, - ); - name = Products; - sourceTree = ""; - }; - 799322F51BAC81E600522937 /* SubscribeToChannelFeatureObjC */ = { - isa = PBXGroup; - children = ( - 799322F91BAC81E600522937 /* AppDelegate.h */, - 799322FA1BAC81E600522937 /* AppDelegate.m */, - 799323071BAC81E600522937 /* Info.plist */, - 799322F61BAC81E600522937 /* Supporting Files */, - ); - path = SubscribeToChannelFeatureObjC; - sourceTree = ""; - }; - 799322F61BAC81E600522937 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - 799322F71BAC81E600522937 /* main.m */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 799322F21BAC81E600522937 /* SubscribeToChannelFeatureObjC */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7993230A1BAC81E600522937 /* Build configuration list for PBXNativeTarget "SubscribeToChannelFeatureObjC" */; - buildPhases = ( - CC4DA27593A1A84CB1A717C2 /* Check Pods Manifest.lock */, - 799322EF1BAC81E600522937 /* Sources */, - 799322F01BAC81E600522937 /* Frameworks */, - 799322F11BAC81E600522937 /* Resources */, - 9B86A03314B77339831BFA79 /* Embed Pods Frameworks */, - B59AF02280E14BC94B392305 /* Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = SubscribeToChannelFeatureObjC; - productName = SubscribeToChannelFeatureObjC; - productReference = 799322F31BAC81E600522937 /* SubscribeToChannelFeatureObjC.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 799322EB1BAC81E600522937 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0700; - ORGANIZATIONNAME = PubNub; - TargetAttributes = { - 799322F21BAC81E600522937 = { - CreatedOnToolsVersion = 7.0; - }; - }; - }; - buildConfigurationList = 799322EE1BAC81E600522937 /* Build configuration list for PBXProject "SubscribeToChannelFeatureObjC" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 799322EA1BAC81E600522937; - productRefGroup = 799322F41BAC81E600522937 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 799322F21BAC81E600522937 /* SubscribeToChannelFeatureObjC */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 799322F11BAC81E600522937 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 9B86A03314B77339831BFA79 /* Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - B59AF02280E14BC94B392305 /* Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - CC4DA27593A1A84CB1A717C2 /* Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 799322EF1BAC81E600522937 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 799322FB1BAC81E600522937 /* AppDelegate.m in Sources */, - 799322F81BAC81E600522937 /* main.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 799323081BAC81E600522937 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - }; - name = Debug; - }; - 799323091BAC81E600522937 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 7993230B1BAC81E600522937 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = A315E873EEF02FFA681CD6CF /* Pods.debug.xcconfig */; - buildSettings = { - INFOPLIST_FILE = SubscribeToChannelFeatureObjC/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.SubscribeToChannelFeatureObjC; - PRODUCT_NAME = "$(TARGET_NAME)"; - TARGETED_DEVICE_FAMILY = 1; - }; - name = Debug; - }; - 7993230C1BAC81E600522937 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = C232C9356FEB47A8ED3A2A4B /* Pods.release.xcconfig */; - buildSettings = { - INFOPLIST_FILE = SubscribeToChannelFeatureObjC/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.SubscribeToChannelFeatureObjC; - PRODUCT_NAME = "$(TARGET_NAME)"; - TARGETED_DEVICE_FAMILY = 1; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 799322EE1BAC81E600522937 /* Build configuration list for PBXProject "SubscribeToChannelFeatureObjC" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 799323081BAC81E600522937 /* Debug */, - 799323091BAC81E600522937 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 7993230A1BAC81E600522937 /* Build configuration list for PBXNativeTarget "SubscribeToChannelFeatureObjC" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7993230B1BAC81E600522937 /* Debug */, - 7993230C1BAC81E600522937 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 799322EB1BAC81E600522937 /* Project object */; -} diff --git a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step3/SubscribeToChannelFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step3/SubscribeToChannelFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index fbbb30bac..000000000 --- a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step3/SubscribeToChannelFeatureObjC.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step3/SubscribeToChannelFeatureObjC/AppDelegate.h b/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step3/SubscribeToChannelFeatureObjC/AppDelegate.h deleted file mode 100644 index 13c641d42..000000000 --- a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step3/SubscribeToChannelFeatureObjC/AppDelegate.h +++ /dev/null @@ -1,12 +0,0 @@ -#import - - -/** - @author Sergey Mamontov - @copyright © 2009-2015 PubNub, Inc. - */ -@interface AppDelegate : UIResponder - -@property (strong, nonatomic) UIWindow *window; - -@end diff --git a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step3/SubscribeToChannelFeatureObjC/AppDelegate.m b/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step3/SubscribeToChannelFeatureObjC/AppDelegate.m deleted file mode 100644 index 4de79d0ab..000000000 --- a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step3/SubscribeToChannelFeatureObjC/AppDelegate.m +++ /dev/null @@ -1,67 +0,0 @@ -/*fabric:start-text*/ -// To handle messages from the previous subscribe steps, add a message handling callback. -/*fabric:end-text*/ -/** - @author Sergey Mamontov - @copyright © 2009-2015 PubNub, Inc. - */ -/*fabric:start-code*/ -#import "AppDelegate.h" -#import -#import - - -@interface AppDelegate () - -@property (nonatomic, strong) PubNub *client; - -@end - - -@implementation AppDelegate - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { - - self.client = [PubNub client]; - [self.client addListener:self]; - [self.client subscribeToChannels:@[@"announcements", @"lobby"] withPresence:NO]; - - return YES; -} - -- (void)client:(PubNub *)client didReceiveStatus:(PNSubscribeStatus *)status { - - if (status.category == PNUnexpectedDisconnectCategory) { - } - else if (status.category == PNConnectedCategory) { - } - else if (status.category == PNReconnectedCategory) { - } - else if (status.category == PNDisconnectedCategory) { - } - else if (status.category == PNDecryptionErrorCategory) { - } -} - -/*fabric:start-highlight*/ -- (void)client:(PubNub *)client didReceiveMessage:(PNMessageResult *)message { - - // Handle new message stored in message.data.message - if (message.data.actualChannel != nil) { - - // Message has been received on channel group stored in - // message.data.subscribedChannel - } - else { - - // Message has been received on channel stored in - // message.data.subscribedChannel - } - - NSLog(@"Received message: %@ on channel %@ at %@", message.data.message, - (message.data.actualChannel?: message.data.subscribedChannel), message.data.timetoken); -} -/*fabric:end-highlight*/ - -@end -/*fabric:end-code*/ diff --git a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step3/SubscribeToChannelFeatureObjC/Info.plist b/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step3/SubscribeToChannelFeatureObjC/Info.plist deleted file mode 100644 index fb4115c84..000000000 --- a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step3/SubscribeToChannelFeatureObjC/Info.plist +++ /dev/null @@ -1,36 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step3/SubscribeToChannelFeatureObjC/main.m b/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step3/SubscribeToChannelFeatureObjC/main.m deleted file mode 100644 index 2eeb00841..000000000 --- a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step3/SubscribeToChannelFeatureObjC/main.m +++ /dev/null @@ -1,16 +0,0 @@ -// -// main.m -// SubscribeToChannelFeatureObjC -// -// Created by Sergey Mamontov on 9/18/15. -// Copyright © 2015 PubNub. All rights reserved. -// - -#import -#import "AppDelegate.h" - -int main(int argc, char * argv[]) { - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); - } -} diff --git a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step1/Podfile b/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step1/Podfile deleted file mode 100644 index 282a2f6c8..000000000 --- a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step1/Podfile +++ /dev/null @@ -1,20 +0,0 @@ -source 'git@github.com:parfeon/pubnub-private-pods-repo.git' -source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '8.0' -use_frameworks! -pod "PubNubBridge" - -post_install do |installer_representation| - installer_representation.pods_project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings['GCC_INSTRUMENT_PROGRAM_FLOW_ARCS'] = 'NO' - config.build_settings['GCC_GENERATE_TEST_COVERAGE_FILES'] = 'NO' - if target.name == "CocoaLumberjack" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - if target.name == "OHHTTPStubs" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - end - end -end \ No newline at end of file diff --git a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step1/SubscribeToChannelFeatureSwift.xcodeproj/project.pbxproj b/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step1/SubscribeToChannelFeatureSwift.xcodeproj/project.pbxproj deleted file mode 100644 index 0aeb7f6e2..000000000 --- a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step1/SubscribeToChannelFeatureSwift.xcodeproj/project.pbxproj +++ /dev/null @@ -1,333 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 7993231D1BAC8C7200522937 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7993231C1BAC8C7200522937 /* AppDelegate.swift */; }; - 7C85D456A54842A8593AFFB3 /* Pods.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 13723C7A1690A2B19828C46B /* Pods.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 13723C7A1690A2B19828C46B /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 799323191BAC8C7200522937 /* SubscribeToChannelFeatureSwift.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SubscribeToChannelFeatureSwift.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 7993231C1BAC8C7200522937 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 799323281BAC8C7200522937 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - C5051FE6D4FCA1437C71DFB5 /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; - CE71E103C6C9613FC5EF533D /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 799323161BAC8C7200522937 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 7C85D456A54842A8593AFFB3 /* Pods.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 08B4FF294F70DA17DE901661 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 13723C7A1690A2B19828C46B /* Pods.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 1FF7CA714D1A55F036A2266A /* Pods */ = { - isa = PBXGroup; - children = ( - CE71E103C6C9613FC5EF533D /* Pods.debug.xcconfig */, - C5051FE6D4FCA1437C71DFB5 /* Pods.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; - 799323101BAC8C7200522937 = { - isa = PBXGroup; - children = ( - 7993231B1BAC8C7200522937 /* SubscribeToChannelFeatureSwift */, - 7993231A1BAC8C7200522937 /* Products */, - 1FF7CA714D1A55F036A2266A /* Pods */, - 08B4FF294F70DA17DE901661 /* Frameworks */, - ); - sourceTree = ""; - }; - 7993231A1BAC8C7200522937 /* Products */ = { - isa = PBXGroup; - children = ( - 799323191BAC8C7200522937 /* SubscribeToChannelFeatureSwift.app */, - ); - name = Products; - sourceTree = ""; - }; - 7993231B1BAC8C7200522937 /* SubscribeToChannelFeatureSwift */ = { - isa = PBXGroup; - children = ( - 7993231C1BAC8C7200522937 /* AppDelegate.swift */, - 799323281BAC8C7200522937 /* Info.plist */, - ); - path = SubscribeToChannelFeatureSwift; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 799323181BAC8C7200522937 /* SubscribeToChannelFeatureSwift */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7993232B1BAC8C7200522937 /* Build configuration list for PBXNativeTarget "SubscribeToChannelFeatureSwift" */; - buildPhases = ( - F7D63C6B2F37774238D745E6 /* Check Pods Manifest.lock */, - 799323151BAC8C7200522937 /* Sources */, - 799323161BAC8C7200522937 /* Frameworks */, - 799323171BAC8C7200522937 /* Resources */, - A3A292FF12CE22FE5A459161 /* Embed Pods Frameworks */, - 39070B90A910ECB72A1F5090 /* Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = SubscribeToChannelFeatureSwift; - productName = SubscribeToChannelFeatureSwift; - productReference = 799323191BAC8C7200522937 /* SubscribeToChannelFeatureSwift.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 799323111BAC8C7200522937 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0700; - ORGANIZATIONNAME = PubNub; - TargetAttributes = { - 799323181BAC8C7200522937 = { - CreatedOnToolsVersion = 7.0; - }; - }; - }; - buildConfigurationList = 799323141BAC8C7200522937 /* Build configuration list for PBXProject "SubscribeToChannelFeatureSwift" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 799323101BAC8C7200522937; - productRefGroup = 7993231A1BAC8C7200522937 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 799323181BAC8C7200522937 /* SubscribeToChannelFeatureSwift */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 799323171BAC8C7200522937 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 39070B90A910ECB72A1F5090 /* Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - A3A292FF12CE22FE5A459161 /* Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - F7D63C6B2F37774238D745E6 /* Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 799323151BAC8C7200522937 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 7993231D1BAC8C7200522937 /* AppDelegate.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 799323291BAC8C7200522937 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 7993232A1BAC8C7200522937 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 7993232C1BAC8C7200522937 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = CE71E103C6C9613FC5EF533D /* Pods.debug.xcconfig */; - buildSettings = { - INFOPLIST_FILE = SubscribeToChannelFeatureSwift/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.SubscribeToChannelFeatureSwift; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 7993232D1BAC8C7200522937 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = C5051FE6D4FCA1437C71DFB5 /* Pods.release.xcconfig */; - buildSettings = { - INFOPLIST_FILE = SubscribeToChannelFeatureSwift/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.SubscribeToChannelFeatureSwift; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 799323141BAC8C7200522937 /* Build configuration list for PBXProject "SubscribeToChannelFeatureSwift" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 799323291BAC8C7200522937 /* Debug */, - 7993232A1BAC8C7200522937 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 7993232B1BAC8C7200522937 /* Build configuration list for PBXNativeTarget "SubscribeToChannelFeatureSwift" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7993232C1BAC8C7200522937 /* Debug */, - 7993232D1BAC8C7200522937 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 799323111BAC8C7200522937 /* Project object */; -} diff --git a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step1/SubscribeToChannelFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step1/SubscribeToChannelFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 3b92fcaad..000000000 --- a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step1/SubscribeToChannelFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step1/SubscribeToChannelFeatureSwift/AppDelegate.swift b/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step1/SubscribeToChannelFeatureSwift/AppDelegate.swift deleted file mode 100644 index b2af3bd5b..000000000 --- a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step1/SubscribeToChannelFeatureSwift/AppDelegate.swift +++ /dev/null @@ -1,36 +0,0 @@ -/*fabric:start-text*/ -// To receive messages from other users in real-time, you must subscribe to the desired channels first. -/*fabric:end-text*/ -/** - @author Sergey Mamontov - @copyright © 2009-2015 PubNub, Inc. - */ -/*fabric:start-code*/ -import UIKit -/*fabric:start-highlight*/ -import PubNub -import PubNubBridge -/*fabric:end-highlight*/ - - -@UIApplicationMain -class AppDelegate: UIResponder, UIApplicationDelegate { - - var window: UIWindow? - /*fabric:start-highlight*/ - var client: PubNub? - /*fabric:end-highlight*/ - - func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { - - /*fabric:start-highlight*/ - self.client = PubNub.client() - self.client?.addListener(self) - self.client?.subscribeToChannels(["lobby"], withPresence: false) - /*fabric:end-highlight*/ - - return true - } -} -/*fabric:end-code*/ - diff --git a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step1/SubscribeToChannelFeatureSwift/Info.plist b/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step1/SubscribeToChannelFeatureSwift/Info.plist deleted file mode 100644 index fb4115c84..000000000 --- a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step1/SubscribeToChannelFeatureSwift/Info.plist +++ /dev/null @@ -1,36 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step2/Podfile b/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step2/Podfile deleted file mode 100644 index 282a2f6c8..000000000 --- a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step2/Podfile +++ /dev/null @@ -1,20 +0,0 @@ -source 'git@github.com:parfeon/pubnub-private-pods-repo.git' -source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '8.0' -use_frameworks! -pod "PubNubBridge" - -post_install do |installer_representation| - installer_representation.pods_project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings['GCC_INSTRUMENT_PROGRAM_FLOW_ARCS'] = 'NO' - config.build_settings['GCC_GENERATE_TEST_COVERAGE_FILES'] = 'NO' - if target.name == "CocoaLumberjack" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - if target.name == "OHHTTPStubs" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - end - end -end \ No newline at end of file diff --git a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step2/SubscribeToChannelFeatureSwift.xcodeproj/project.pbxproj b/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step2/SubscribeToChannelFeatureSwift.xcodeproj/project.pbxproj deleted file mode 100644 index 0aeb7f6e2..000000000 --- a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step2/SubscribeToChannelFeatureSwift.xcodeproj/project.pbxproj +++ /dev/null @@ -1,333 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 7993231D1BAC8C7200522937 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7993231C1BAC8C7200522937 /* AppDelegate.swift */; }; - 7C85D456A54842A8593AFFB3 /* Pods.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 13723C7A1690A2B19828C46B /* Pods.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 13723C7A1690A2B19828C46B /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 799323191BAC8C7200522937 /* SubscribeToChannelFeatureSwift.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SubscribeToChannelFeatureSwift.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 7993231C1BAC8C7200522937 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 799323281BAC8C7200522937 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - C5051FE6D4FCA1437C71DFB5 /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; - CE71E103C6C9613FC5EF533D /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 799323161BAC8C7200522937 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 7C85D456A54842A8593AFFB3 /* Pods.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 08B4FF294F70DA17DE901661 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 13723C7A1690A2B19828C46B /* Pods.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 1FF7CA714D1A55F036A2266A /* Pods */ = { - isa = PBXGroup; - children = ( - CE71E103C6C9613FC5EF533D /* Pods.debug.xcconfig */, - C5051FE6D4FCA1437C71DFB5 /* Pods.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; - 799323101BAC8C7200522937 = { - isa = PBXGroup; - children = ( - 7993231B1BAC8C7200522937 /* SubscribeToChannelFeatureSwift */, - 7993231A1BAC8C7200522937 /* Products */, - 1FF7CA714D1A55F036A2266A /* Pods */, - 08B4FF294F70DA17DE901661 /* Frameworks */, - ); - sourceTree = ""; - }; - 7993231A1BAC8C7200522937 /* Products */ = { - isa = PBXGroup; - children = ( - 799323191BAC8C7200522937 /* SubscribeToChannelFeatureSwift.app */, - ); - name = Products; - sourceTree = ""; - }; - 7993231B1BAC8C7200522937 /* SubscribeToChannelFeatureSwift */ = { - isa = PBXGroup; - children = ( - 7993231C1BAC8C7200522937 /* AppDelegate.swift */, - 799323281BAC8C7200522937 /* Info.plist */, - ); - path = SubscribeToChannelFeatureSwift; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 799323181BAC8C7200522937 /* SubscribeToChannelFeatureSwift */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7993232B1BAC8C7200522937 /* Build configuration list for PBXNativeTarget "SubscribeToChannelFeatureSwift" */; - buildPhases = ( - F7D63C6B2F37774238D745E6 /* Check Pods Manifest.lock */, - 799323151BAC8C7200522937 /* Sources */, - 799323161BAC8C7200522937 /* Frameworks */, - 799323171BAC8C7200522937 /* Resources */, - A3A292FF12CE22FE5A459161 /* Embed Pods Frameworks */, - 39070B90A910ECB72A1F5090 /* Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = SubscribeToChannelFeatureSwift; - productName = SubscribeToChannelFeatureSwift; - productReference = 799323191BAC8C7200522937 /* SubscribeToChannelFeatureSwift.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 799323111BAC8C7200522937 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0700; - ORGANIZATIONNAME = PubNub; - TargetAttributes = { - 799323181BAC8C7200522937 = { - CreatedOnToolsVersion = 7.0; - }; - }; - }; - buildConfigurationList = 799323141BAC8C7200522937 /* Build configuration list for PBXProject "SubscribeToChannelFeatureSwift" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 799323101BAC8C7200522937; - productRefGroup = 7993231A1BAC8C7200522937 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 799323181BAC8C7200522937 /* SubscribeToChannelFeatureSwift */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 799323171BAC8C7200522937 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 39070B90A910ECB72A1F5090 /* Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - A3A292FF12CE22FE5A459161 /* Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - F7D63C6B2F37774238D745E6 /* Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 799323151BAC8C7200522937 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 7993231D1BAC8C7200522937 /* AppDelegate.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 799323291BAC8C7200522937 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 7993232A1BAC8C7200522937 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 7993232C1BAC8C7200522937 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = CE71E103C6C9613FC5EF533D /* Pods.debug.xcconfig */; - buildSettings = { - INFOPLIST_FILE = SubscribeToChannelFeatureSwift/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.SubscribeToChannelFeatureSwift; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 7993232D1BAC8C7200522937 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = C5051FE6D4FCA1437C71DFB5 /* Pods.release.xcconfig */; - buildSettings = { - INFOPLIST_FILE = SubscribeToChannelFeatureSwift/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.SubscribeToChannelFeatureSwift; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 799323141BAC8C7200522937 /* Build configuration list for PBXProject "SubscribeToChannelFeatureSwift" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 799323291BAC8C7200522937 /* Debug */, - 7993232A1BAC8C7200522937 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 7993232B1BAC8C7200522937 /* Build configuration list for PBXNativeTarget "SubscribeToChannelFeatureSwift" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7993232C1BAC8C7200522937 /* Debug */, - 7993232D1BAC8C7200522937 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 799323111BAC8C7200522937 /* Project object */; -} diff --git a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step2/SubscribeToChannelFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step2/SubscribeToChannelFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 3b92fcaad..000000000 --- a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step2/SubscribeToChannelFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step2/SubscribeToChannelFeatureSwift/AppDelegate.swift b/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step2/SubscribeToChannelFeatureSwift/AppDelegate.swift deleted file mode 100644 index 49a8947f2..000000000 --- a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step2/SubscribeToChannelFeatureSwift/AppDelegate.swift +++ /dev/null @@ -1,63 +0,0 @@ -/*fabric:start-text*/ -// It is always a good idea to add a subscription/connection status handling callback to know when the subscription process completed or stumbled on an unexpected disconnection. -/*fabric:end-text*/ -/** - @author Sergey Mamontov - @copyright © 2009-2015 PubNub, Inc. - */ -/*fabric:start-code*/ -import UIKit -import PubNub -import PubNubBridge - - -@UIApplicationMain -/*fabric:start-highlight*/ -class AppDelegate: UIResponder, UIApplicationDelegate, PNObjectEventListener { -/*fabric:end-highlight*/ - - var window: UIWindow? - var client: PubNub? - - func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { - - self.client = PubNub.client() - self.client?.addListener(self) - self.client?.subscribeToChannels(["lobby"], withPresence: false) - - return true - } - - /*fabric:start-highlight*/ - func client(client: PubNub!, didReceiveStatus status: PNSubscribeStatus!) { - - if status.category == .PNUnexpectedDisconnectCategory { - - // This event happens when radio / connectivity is lost - } - else if status.category == .PNConnectedCategory { - - // Connect event. You can do stuff like publish, and know you'll get it. - // Or just use the connected event to confirm you are subscribed for - // UI / internal notifications, etc - } - else if status.category == .PNReconnectedCategory { - - // Happens as part of our regular operation. This event happens when - // radio / connectivity is lost, then regained. - } - else if status.category == .PNDisconnectedCategory { - - // Disconnection event. After this moment any messages from unsubscribed channel - // won't reach this callback. - } - else if status.category == .PNDecryptionErrorCategory { - - // Handle messsage decryption error. Probably client configured to - // encrypt messages and on live data feed it received plain text. - } - } - /*fabric:end-highlight*/ -} -/*fabric:end-code*/ - diff --git a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step2/SubscribeToChannelFeatureSwift/Info.plist b/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step2/SubscribeToChannelFeatureSwift/Info.plist deleted file mode 100644 index fb4115c84..000000000 --- a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step2/SubscribeToChannelFeatureSwift/Info.plist +++ /dev/null @@ -1,36 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step3/Podfile b/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step3/Podfile deleted file mode 100644 index 282a2f6c8..000000000 --- a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step3/Podfile +++ /dev/null @@ -1,20 +0,0 @@ -source 'git@github.com:parfeon/pubnub-private-pods-repo.git' -source 'https://github.com/CocoaPods/Specs.git' -platform :ios, '8.0' -use_frameworks! -pod "PubNubBridge" - -post_install do |installer_representation| - installer_representation.pods_project.targets.each do |target| - target.build_configurations.each do |config| - config.build_settings['GCC_INSTRUMENT_PROGRAM_FLOW_ARCS'] = 'NO' - config.build_settings['GCC_GENERATE_TEST_COVERAGE_FILES'] = 'NO' - if target.name == "CocoaLumberjack" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - if target.name == "OHHTTPStubs" - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' - end - end - end -end \ No newline at end of file diff --git a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step3/SubscribeToChannelFeatureSwift.xcodeproj/project.pbxproj b/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step3/SubscribeToChannelFeatureSwift.xcodeproj/project.pbxproj deleted file mode 100644 index 0aeb7f6e2..000000000 --- a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step3/SubscribeToChannelFeatureSwift.xcodeproj/project.pbxproj +++ /dev/null @@ -1,333 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 7993231D1BAC8C7200522937 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7993231C1BAC8C7200522937 /* AppDelegate.swift */; }; - 7C85D456A54842A8593AFFB3 /* Pods.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 13723C7A1690A2B19828C46B /* Pods.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 13723C7A1690A2B19828C46B /* Pods.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 799323191BAC8C7200522937 /* SubscribeToChannelFeatureSwift.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = SubscribeToChannelFeatureSwift.app; sourceTree = BUILT_PRODUCTS_DIR; }; - 7993231C1BAC8C7200522937 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 799323281BAC8C7200522937 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - C5051FE6D4FCA1437C71DFB5 /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = ""; }; - CE71E103C6C9613FC5EF533D /* Pods.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.debug.xcconfig; path = "Pods/Target Support Files/Pods/Pods.debug.xcconfig"; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 799323161BAC8C7200522937 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 7C85D456A54842A8593AFFB3 /* Pods.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 08B4FF294F70DA17DE901661 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 13723C7A1690A2B19828C46B /* Pods.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 1FF7CA714D1A55F036A2266A /* Pods */ = { - isa = PBXGroup; - children = ( - CE71E103C6C9613FC5EF533D /* Pods.debug.xcconfig */, - C5051FE6D4FCA1437C71DFB5 /* Pods.release.xcconfig */, - ); - name = Pods; - sourceTree = ""; - }; - 799323101BAC8C7200522937 = { - isa = PBXGroup; - children = ( - 7993231B1BAC8C7200522937 /* SubscribeToChannelFeatureSwift */, - 7993231A1BAC8C7200522937 /* Products */, - 1FF7CA714D1A55F036A2266A /* Pods */, - 08B4FF294F70DA17DE901661 /* Frameworks */, - ); - sourceTree = ""; - }; - 7993231A1BAC8C7200522937 /* Products */ = { - isa = PBXGroup; - children = ( - 799323191BAC8C7200522937 /* SubscribeToChannelFeatureSwift.app */, - ); - name = Products; - sourceTree = ""; - }; - 7993231B1BAC8C7200522937 /* SubscribeToChannelFeatureSwift */ = { - isa = PBXGroup; - children = ( - 7993231C1BAC8C7200522937 /* AppDelegate.swift */, - 799323281BAC8C7200522937 /* Info.plist */, - ); - path = SubscribeToChannelFeatureSwift; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 799323181BAC8C7200522937 /* SubscribeToChannelFeatureSwift */ = { - isa = PBXNativeTarget; - buildConfigurationList = 7993232B1BAC8C7200522937 /* Build configuration list for PBXNativeTarget "SubscribeToChannelFeatureSwift" */; - buildPhases = ( - F7D63C6B2F37774238D745E6 /* Check Pods Manifest.lock */, - 799323151BAC8C7200522937 /* Sources */, - 799323161BAC8C7200522937 /* Frameworks */, - 799323171BAC8C7200522937 /* Resources */, - A3A292FF12CE22FE5A459161 /* Embed Pods Frameworks */, - 39070B90A910ECB72A1F5090 /* Copy Pods Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = SubscribeToChannelFeatureSwift; - productName = SubscribeToChannelFeatureSwift; - productReference = 799323191BAC8C7200522937 /* SubscribeToChannelFeatureSwift.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 799323111BAC8C7200522937 /* Project object */ = { - isa = PBXProject; - attributes = { - LastUpgradeCheck = 0700; - ORGANIZATIONNAME = PubNub; - TargetAttributes = { - 799323181BAC8C7200522937 = { - CreatedOnToolsVersion = 7.0; - }; - }; - }; - buildConfigurationList = 799323141BAC8C7200522937 /* Build configuration list for PBXProject "SubscribeToChannelFeatureSwift" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 799323101BAC8C7200522937; - productRefGroup = 7993231A1BAC8C7200522937 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 799323181BAC8C7200522937 /* SubscribeToChannelFeatureSwift */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 799323171BAC8C7200522937 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXShellScriptBuildPhase section */ - 39070B90A910ECB72A1F5090 /* Copy Pods Resources */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Copy Pods Resources"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-resources.sh\"\n"; - showEnvVarsInLog = 0; - }; - A3A292FF12CE22FE5A459161 /* Embed Pods Frameworks */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Embed Pods Frameworks"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods/Pods-frameworks.sh\"\n"; - showEnvVarsInLog = 0; - }; - F7D63C6B2F37774238D745E6 /* Check Pods Manifest.lock */ = { - isa = PBXShellScriptBuildPhase; - buildActionMask = 2147483647; - files = ( - ); - inputPaths = ( - ); - name = "Check Pods Manifest.lock"; - outputPaths = ( - ); - runOnlyForDeploymentPostprocessing = 0; - shellPath = /bin/sh; - shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; - showEnvVarsInLog = 0; - }; -/* End PBXShellScriptBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 799323151BAC8C7200522937 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 7993231D1BAC8C7200522937 /* AppDelegate.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 799323291BAC8C7200522937 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", - "$(inherited)", - ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = iphoneos; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 7993232A1BAC8C7200522937 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - MTL_ENABLE_DEBUG_INFO = NO; - SDKROOT = iphoneos; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 7993232C1BAC8C7200522937 /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = CE71E103C6C9613FC5EF533D /* Pods.debug.xcconfig */; - buildSettings = { - INFOPLIST_FILE = SubscribeToChannelFeatureSwift/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.SubscribeToChannelFeatureSwift; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Debug; - }; - 7993232D1BAC8C7200522937 /* Release */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = C5051FE6D4FCA1437C71DFB5 /* Pods.release.xcconfig */; - buildSettings = { - INFOPLIST_FILE = SubscribeToChannelFeatureSwift/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - PRODUCT_BUNDLE_IDENTIFIER = com.pubnub.SubscribeToChannelFeatureSwift; - PRODUCT_NAME = "$(TARGET_NAME)"; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 799323141BAC8C7200522937 /* Build configuration list for PBXProject "SubscribeToChannelFeatureSwift" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 799323291BAC8C7200522937 /* Debug */, - 7993232A1BAC8C7200522937 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 7993232B1BAC8C7200522937 /* Build configuration list for PBXNativeTarget "SubscribeToChannelFeatureSwift" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 7993232C1BAC8C7200522937 /* Debug */, - 7993232D1BAC8C7200522937 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 799323111BAC8C7200522937 /* Project object */; -} diff --git a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step3/SubscribeToChannelFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step3/SubscribeToChannelFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index 3b92fcaad..000000000 --- a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step3/SubscribeToChannelFeatureSwift.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step3/SubscribeToChannelFeatureSwift/AppDelegate.swift b/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step3/SubscribeToChannelFeatureSwift/AppDelegate.swift deleted file mode 100644 index 70e099c94..000000000 --- a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step3/SubscribeToChannelFeatureSwift/AppDelegate.swift +++ /dev/null @@ -1,67 +0,0 @@ -/*fabric:start-text*/ -// To handle messages from the previous subscribe steps, add a message handling callback. -/*fabric:end-text*/ -/** - @author Sergey Mamontov - @copyright © 2009-2015 PubNub, Inc. - */ -/*fabric:start-code*/ -import UIKit -import PubNub -import PubNubBridge - - -@UIApplicationMain -/*fabric:start-highlight*/ -class AppDelegate: UIResponder, UIApplicationDelegate, PNObjectEventListener { -/*fabric:end-highlight*/ - - var window: UIWindow? - var client: PubNub? - - func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool { - - self.client = PubNub.client() - self.client?.addListener(self) - self.client?.subscribeToChannels(["lobby"], withPresence: false) - - return true - } - - func client(client: PubNub!, didReceiveStatus status: PNSubscribeStatus!) { - - if status.category == .PNUnexpectedDisconnectCategory { - } - else if status.category == .PNConnectedCategory { - } - else if status.category == .PNReconnectedCategory { - } - else if status.category == .PNDisconnectedCategory { - } - else if status.category == .PNDecryptionErrorCategory { - } - } - - /*fabric:start-highlight*/ - func client(client: PubNub!, didReceiveMessage message: PNMessageResult!) { - - // Handle new message stored in message.data.message - if message.data.actualChannel != nil { - - // Message has been received on channel group stored in - // message.data.subscribedChannel - } - else { - - // Message has been received on channel stored in - // message.data.subscribedChannel - } - - print("Received message: \(message.data.message) on channel " + - "\((message.data.actualChannel ?? message.data.subscribedChannel)!) at " + - "\(message.data.timetoken)") - } - /*fabric:end-highlight*/ -} -/*fabric:end-code*/ - diff --git a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step3/SubscribeToChannelFeatureSwift/Info.plist b/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step3/SubscribeToChannelFeatureSwift/Info.plist deleted file mode 100644 index fb4115c84..000000000 --- a/Support/Fabric/doc-sources/Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step3/SubscribeToChannelFeatureSwift/Info.plist +++ /dev/null @@ -1,36 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - LSRequiresIPhoneOS - - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - - diff --git a/Support/Fabric/doc-sources/features.json b/Support/Fabric/doc-sources/features.json deleted file mode 100755 index a917ddf44..000000000 --- a/Support/Fabric/doc-sources/features.json +++ /dev/null @@ -1,137 +0,0 @@ -[ - { - "name": "Publish Message", - "description": "Send simple message to the channel.", - "steps": [ - { - "title": "Initialize client", - "source": { - "objc": "Features/PublishMessage/PublishMessageFeatureObjC/PublishMessageFeatureObjC/AppDelegate.m", - "swift": "Features/PublishMessage/PublishMessageFeatureSwift/PublishMessageFeatureSwift/AppDelegate.swift" - } - } - ] - }, - { - "name": "Subscribe to Channel(s)", - "description": "Start receiving real-time messages by subscribing on channel(s).", - "steps": [ - { - "title": "Subscribe to channels", - "source": { - "objc": "Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step1/SubscribeToChannelFeatureObjC/AppDelegate.m", - "swift": "Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step1/SubscribeToChannelFeatureSwift/AppDelegate.swift" - } - }, - { - "title": "Add a subscribe/connection status handling callback", - "source": { - "objc": "Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step2/SubscribeToChannelFeatureObjC/AppDelegate.m", - "swift": "Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step2/SubscribeToChannelFeatureSwift/AppDelegate.swift" - } - }, - { - "title": "Add a new messages handling callback", - "source": { - "objc": "Features/SubscribeToChannels/SubscribeToChannelFeatureObjC/Step3/SubscribeToChannelFeatureObjC/AppDelegate.m", - "swift": "Features/SubscribeToChannels/SubscribeToChannelFeatureSwift/Step3/SubscribeToChannelFeatureSwift/AppDelegate.swift" - } - } - ] - }, - { - "name": "Observe presence events", - "description": "Start receiving real-time channel(s) presence events.", - "steps": [ - { - "title": "Subscribe to presence channels", - "source": { - "objc": "Features/Presence/PresenceFeatureObjC/Step1/PresenceFeatureObjC/AppDelegate.m", - "swift": "Features/Presence/PresenceFeatureSwift/Step1/PresenceFeatureSwift/AppDelegate.swift" - } - }, - { - "title": "Add a subscribe/connection status handling callback", - "source": { - "objc": "Features/Presence/PresenceFeatureObjC/Step2/PresenceFeatureObjC/AppDelegate.m", - "swift": "Features/Presence/PresenceFeatureSwift/Step2/PresenceFeatureSwift/AppDelegate.swift" - } - }, - { - "title": "Add a new presence event handling callback", - "source": { - "objc": "Features/Presence/PresenceFeatureObjC/Step3/PresenceFeatureObjC/AppDelegate.m", - "swift": "Features/Presence/PresenceFeatureSwift/Step3/PresenceFeatureSwift/AppDelegate.swift" - } - } - ] - }, - { - "name": "Channel History", - "description": "Fetch channel messages.", - "steps": [ - { - "title": "Initialize and request the last 100 messages published to the channel", - "source": { - "objc": "Features/History/ChannelHistoryFeatureObjC/ChannelHistoryFeatureObjC/AppDelegate.m", - "swift": "Features/History/ChannelHistoryFeatureSwift/ChannelHistoryFeatureSwift/AppDelegate.swift" - } - } - ] - }, - { - "name": "Apple Push Notification", - "description": "Receive updates from channels while your application not running.", - "steps": [ - { - "title": "Register the application for remote notifications", - "source": { - "objc": "Features/APNS/PushNotificationsFeatureObjC/Step1/PushNotificationsFeatureObjC/AppDelegate.m", - "swift": "Features/APNS/PushNotificationsFeatureSwift/Step1/PushNotificationsFeatureSwift/AppDelegate.swift" - } - }, - { - "title": "Enable push notifications on channel(s)", - "source": { - "objc": "Features/APNS/PushNotificationsFeatureObjC/Step2/PushNotificationsFeatureObjC/AppDelegate.m", - "swift": "Features/APNS/PushNotificationsFeatureSwift/Step2/PushNotificationsFeatureSwift/AppDelegate.swift" - } - } - ] - }, - { - "name": "Channel group", - "description": "Example how to organize list of channels into group and subscribe on it.", - "steps": [ - { - "title": "Add cannels to channel group", - "source": { - "objc": "Features/DataStreamController/DataStreamControllerFeatureObjC/Step1/DataStreamControllerFeatureObjC/AppDelegate.m", - "swift": "Features/DataStreamController/DataStreamControllerFeatureSwift/Step1/DataStreamControllerFeatureSwift/AppDelegate.swift" - } - }, - { - "title": "Subscribe to channel group(s)", - "source": { - "objc": "Features/DataStreamController/DataStreamControllerFeatureObjC/Step2/DataStreamControllerFeatureObjC/AppDelegate.m", - "swift": "Features/DataStreamController/DataStreamControllerFeatureSwift/Step2/DataStreamControllerFeatureSwift/AppDelegate.swift" - } - }, - { - "title": "Add a subscribe/connection status handling callback", - "source": { - "objc": "Features/DataStreamController/DataStreamControllerFeatureObjC/Step3/DataStreamControllerFeatureObjC/AppDelegate.m", - "swift": "Features/DataStreamController/DataStreamControllerFeatureSwift/Step3/DataStreamControllerFeatureSwift/AppDelegate.swift" - } - }, - { - "title": "Add a new messages handling callback", - "source": { - "objc": "Features/DataStreamController/DataStreamControllerFeatureObjC/Step4/DataStreamControllerFeatureObjC/AppDelegate.m", - "swift": "Features/DataStreamController/DataStreamControllerFeatureSwift/Step4/DataStreamControllerFeatureSwift/AppDelegate.swift" - } - } - ] - } -] - diff --git a/Support/Fabric/docs/Apple Push Notification/step-1-objc.html b/Support/Fabric/docs/Apple Push Notification/step-1-objc.html deleted file mode 100644 index fc538adbf..000000000 --- a/Support/Fabric/docs/Apple Push Notification/step-1-objc.html +++ /dev/null @@ -1,167 +0,0 @@ - - - - - - - - - - - Apple Push Notification — Step 1 - - - - - -

1 Register the application for remote notifications

- -
-

Register the application for remote push notifications and handle registration request results.

- - Click to copy the blue snippets and then paste them into your code. -
- -

AppDelegate.m

- -
#import "AppDelegate.h"
-
-
-@implementation AppDelegate
-
-- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
-    UIUserNotificationType types = (UIUserNotificationTypeBadge | UIUserNotificationTypeSound |
-                                    UIUserNotificationTypeAlert);
-    UIUserNotificationSettings *mySettings = [UIUserNotificationSettings settingsForTypes:types categories:nil];
-    // In iOS 8, this is when the user receives a system prompt for notifications in your app
-    [[UIApplication sharedApplication] registerUserNotificationSettings:mySettings];
-    [[UIApplication sharedApplication] registerForRemoteNotifications];
-
-    return YES;
-}
-
-- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
-    // We have our devide push token now.
-}
-
-- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {
-    // Something went wrong and you better to look into error description.
-}
-
-@end
-
- - - - diff --git a/Support/Fabric/docs/Apple Push Notification/step-1-swift.html b/Support/Fabric/docs/Apple Push Notification/step-1-swift.html deleted file mode 100644 index 3c3e8d07e..000000000 --- a/Support/Fabric/docs/Apple Push Notification/step-1-swift.html +++ /dev/null @@ -1,163 +0,0 @@ - - - - - - - - - - - Apple Push Notification — Step 1 - - - - - -

1 Register the application for remote notifications

- -
-

Register the application for remote push notifications and handle registration request results.

- - Click to copy the blue snippets and then paste them into your code. -
- -

AppDelegate.swift

- -
import UIKit
-
-
-@UIApplicationMain
-class AppDelegate: UIResponder, UIApplicationDelegate {
-
-    var window: UIWindow?
-
-    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
-        let settings = UIUserNotificationSettings(forTypes: [.Badge, .Sound, .Alert], categories: nil)
-        UIApplication.sharedApplication().registerUserNotificationSettings(settings)
-        UIApplication.sharedApplication().registerForRemoteNotifications()
-        return true
-    }
-    func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
-        // We have our devide push token now.
-    }
-    func application(application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: NSError) {
-        // Something went wrong and you better to look into error description.
-    }
-}
-
- - - - diff --git a/Support/Fabric/docs/Apple Push Notification/step-2-objc.html b/Support/Fabric/docs/Apple Push Notification/step-2-objc.html deleted file mode 100644 index fe2aed557..000000000 --- a/Support/Fabric/docs/Apple Push Notification/step-2-objc.html +++ /dev/null @@ -1,188 +0,0 @@ - - - - - - - - - - - Apple Push Notification — Step 2 - - - - - -

2 Enable push notifications on channel(s)

- -
-

Initialize the PubNub client and enable push notifications on channels to receive updates while the application is inactive.

- - Click to copy the blue snippets and then paste them into your code. -
- -

AppDelegate.m

- -
#import "AppDelegate.h"
-#import <PubNub/PubNub.h>
-#import <PubNubBridge/PubNub+FAB.h>
-
-
-@interface AppDelegate ()
-
-@property (nonatomic, strong) PubNub *client;
-
-@end
-
-
-@implementation AppDelegate
-
-- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
-    self.client = [PubNub client];
-    UIUserNotificationType types = (UIUserNotificationTypeBadge | UIUserNotificationTypeSound |
-                                    UIUserNotificationTypeAlert);
-    UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:types categories:nil];
-    [[UIApplication sharedApplication] registerUserNotificationSettings:settings];
-    [[UIApplication sharedApplication] registerForRemoteNotifications];
-
-    return YES;
-}
-
-- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken {
-    [self.client addPushNotificationsOnChannels:@[@"announcements"] withDevicePushToken:deviceToken
-                                  andCompletion:^(PNAcknowledgmentStatus *status) {
-        // Check whether request successfully completed or not.
-        if (!status.isError) {
-            // Handle successful push notification enabling on passed channels.
-        }
-        // Request processing failed.
-        else {
-            // Handle modification error. Check 'category' property to find out possible issue because
-            // of which request did fail.
-            //
-            // Request can be resent using: [status retry];
-        }
-    }];
-}
-
-- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error {
-}
-
-@end
-
- - - - diff --git a/Support/Fabric/docs/Apple Push Notification/step-2-swift.html b/Support/Fabric/docs/Apple Push Notification/step-2-swift.html deleted file mode 100644 index 845994686..000000000 --- a/Support/Fabric/docs/Apple Push Notification/step-2-swift.html +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - - - - - Apple Push Notification — Step 2 - - - - - -

2 Enable push notifications on channel(s)

- -
-

Initialize the PubNub client and enable push notifications on channels to receive updates while the application is inactive.

- - Click to copy the blue snippets and then paste them into your code. -
- -

AppDelegate.swift

- -
import UIKit
-import PubNub
-import PubNubBridge
-
-
-@UIApplicationMain
-class AppDelegate: UIResponder, UIApplicationDelegate {
-
-    var window: UIWindow?
-    var client: PubNub?
-
-    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
-        self.client = PubNub.client()
-        let settings = UIUserNotificationSettings(forTypes: [.Badge, .Sound, .Alert], categories: nil)
-        UIApplication.sharedApplication().registerUserNotificationSettings(settings)
-        UIApplication.sharedApplication().registerForRemoteNotifications()
-        return true
-    }
-    func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
-        self.client?.addPushNotificationsOnChannels(["announcements"], withDevicePushToken: deviceToken,
-                                                    andCompletion: { (status) -> Void in
-                if !status.error {
-                    // Handle successful push notification enabling on passed channels.
-                }
-                else {
-                    // Handle modification error. Check 'category' property
-                    // to find out possible reason because of which request did fail.
-                    // Review 'errorData' property (which has PNErrorData data type) of status
-                    // object to get additional information about issue.
-                    //
-                    // Request can be resent using: status.retry()
-                }
-        })
-    }
-    func application(application: UIApplication, didFailToRegisterForRemoteNotificationsWithError error: NSError) {
-
-    }
-}
-
- - - - diff --git a/Support/Fabric/docs/Channel History/step-1-objc.html b/Support/Fabric/docs/Channel History/step-1-objc.html deleted file mode 100644 index 4451208b3..000000000 --- a/Support/Fabric/docs/Channel History/step-1-objc.html +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - - - - - - Channel History — Step 1 - - - - - -

1 Initialize and request the last 100 messages published to the channel

- -
-

If the storage and history feature is enabled, you can use this snippet to retrieve previously published messages from storage.

- - Click to copy the blue snippets and then paste them into your code. -
- -

AppDelegate.m

- -
#import "AppDelegate.h"
-#import <PubNub/PubNub.h>
-#import <PubNubBridge/PubNub+FAB.h>
-
-
-@interface AppDelegate ()
-
-@property (nonatomic, strong) PubNub *client;
-
-@end
-
-
-@implementation AppDelegate
-
-- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
-    self.client = [PubNub client];
-    [self.client historyForChannel:@"lobby" withCompletion:^(PNHistoryResult *result, PNErrorStatus *status) {
-        // Check whether request successfully completed or not.
-        if (!status.isError) {
-            // Handle downloaded history using:
-            //   result.data.start - oldest message time stamp in response
-            //   result.data.end - newest message time stamp in response
-            //   result.data.messages - list of messages
-        }
-        // Request processing failed.
-        else {
-            // Handle message history download error. Check 'category' property to find out possible
-            // issue because of which request did fail.
-            //
-            // Request can be resent using: [status retry];
-        }
-    }];
-    return YES;
-}
-
-@end
-
- - - diff --git a/Support/Fabric/docs/Channel History/step-1-swift.html b/Support/Fabric/docs/Channel History/step-1-swift.html deleted file mode 100644 index 284f78f29..000000000 --- a/Support/Fabric/docs/Channel History/step-1-swift.html +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - - - - - - Channel History — Step 1 - - - - - -

1 Initialize and request the last 100 messages published to the channel

- -
-

If the storage and history feature is enabled, you can use this snippet to retrieve previously published messages from storage.

- - Click to copy the blue snippets and then paste them into your code. -
- -

AppDelegate.swift

- -
import UIKit
-import PubNub
-import PubNubBridge
-
-
-@UIApplicationMain
-class AppDelegate: UIResponder, UIApplicationDelegate {
-
-    var window: UIWindow?
-    var client: PubNub?
-
-    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
-        self.client = PubNub.client()
-        self.client?.historyForChannel("lobby", withCompletion: { (result, status) -> Void in
-            if status == nil {
-                // Handle downloaded history using:
-                //   result.data.start - oldest message time stamp in response
-                //   result.data.end - newest message time stamp in response
-                //   result.data.messages - list of messages
-            }
-            else {
-                // Handle message history download error. Check 'category' property
-                // to find out possible reason because of which request did fail.
-                // Review 'errorData' property (which has PNErrorData data type) of status
-                // object to get additional information about issue.
-                //
-                // Request can be resent using: status.retry()
-            }
-        })
-        return true
-    }
-}
-
- - - diff --git a/Support/Fabric/docs/Channel group/step-1-objc.html b/Support/Fabric/docs/Channel group/step-1-objc.html deleted file mode 100644 index 8422b9984..000000000 --- a/Support/Fabric/docs/Channel group/step-1-objc.html +++ /dev/null @@ -1,165 +0,0 @@ - - - - - - - - - - - Channel group — Step 1 - - - - - -

1 Add cannels to channel group

- -
-

Configure the client and channel group with set of channels.

- - Click to copy the blue snippets and then paste them into your code. -
- -

AppDelegate.m

- -
#import "AppDelegate.h"
-#import <PubNub/PubNub.h>
-#import <PubNubBridge/PubNub+FAB.h>
-
-
-@interface AppDelegate ()
-
-@property (nonatomic, strong) PubNub *client;
-
-@end
-
-
-@implementation AppDelegate
-
-- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
-    self.client = [PubNub client];
-    [self.client addChannels:@[@"announcements", @"lobby"] toGroup:@"tradeshow"
-              withCompletion:^(PNAcknowledgmentStatus *status) {
-    }];
-    return YES;
-}
-
-@end
-
- - - - diff --git a/Support/Fabric/docs/Channel group/step-1-swift.html b/Support/Fabric/docs/Channel group/step-1-swift.html deleted file mode 100644 index a1ea7e731..000000000 --- a/Support/Fabric/docs/Channel group/step-1-swift.html +++ /dev/null @@ -1,163 +0,0 @@ - - - - - - - - - - - Channel group — Step 1 - - - - - -

1 Add cannels to channel group

- -
-

Configure the client and channel group with a set of channels.

- - Click to copy the blue snippets and then paste them into your code. -
- -

AppDelegate.swift

- -
import UIKit
-import PubNub
-import PubNubBridge
-
-
-@UIApplicationMain
-class AppDelegate: UIResponder, UIApplicationDelegate {
-
-    var window: UIWindow?
-    var client: PubNub?
-
-    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
-        self.client = PubNub.client()
-        self.client?.addChannels(["announcements", "lobby"], toGroup: "tradeshow",
-            withCompletion: {[weak self] (status) -> Void in
-
-        })
-
-        return true
-    }
-}
-
- - - - diff --git a/Support/Fabric/docs/Channel group/step-2-objc.html b/Support/Fabric/docs/Channel group/step-2-objc.html deleted file mode 100644 index 03cdb9ba8..000000000 --- a/Support/Fabric/docs/Channel group/step-2-objc.html +++ /dev/null @@ -1,180 +0,0 @@ - - - - - - - - - - - Channel group — Step 2 - - - - - -

2 Subscribe to channel group(s)

- -
-

To receive messages from the channel group, subscribe to the channel group created in the previous step.

- - Click to copy the blue snippets and then paste them into your code. -
- -

AppDelegate.m

- -
#import "AppDelegate.h"
-#import <PubNub/PubNub.h>
-#import <PubNubBridge/PubNub+FAB.h>
-
-
-@interface AppDelegate ()
-
-@property (nonatomic, strong) PubNub *client;
-
-@end
-
-
-@implementation AppDelegate
-
-- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
-    __weak __typeof(self) weakSelf = self;
-    self.client = [PubNub client];
-    [self.client addChannels:@[@"announcements", @"lobby"] toGroup:@"tradeshow"
-              withCompletion:^(PNAcknowledgmentStatus *status) {
-        __strong __typeof(self) strongSelf = weakSelf;
-        // Check whether request successfully completed or not.
-        if (!status.isError) {
-            [strongSelf.client addListener:strongSelf];
-            [strongSelf.client subscribeToChannelGroups:@[@"tradeshow"] withPresence:NO];
-        }
-        // Request processing failed.
-        else {
-            // Handle channels list modification for group error. Check 'category' property to find out
-            // possible issue because of which request did fail.
-            //
-            // Request can be resent using: [status retry];
-        }
-    }];
-    return YES;
-}
-
-@end
-
- - - - diff --git a/Support/Fabric/docs/Channel group/step-2-swift.html b/Support/Fabric/docs/Channel group/step-2-swift.html deleted file mode 100644 index 2fd166a2c..000000000 --- a/Support/Fabric/docs/Channel group/step-2-swift.html +++ /dev/null @@ -1,178 +0,0 @@ - - - - - - - - - - - Channel group — Step 2 - - - - - -

2 Subscribe to channel group(s)

- -
-

To receive messages from the channel group, subscribe to the channel group created in the previous step.

- - Click to copy the blue snippets and then paste them into your code. -
- -

AppDelegate.swift

- -
import UIKit
-import PubNub
-import PubNubBridge
-
-
-@UIApplicationMain
-class AppDelegate: UIResponder, UIApplicationDelegate {
-
-    var window: UIWindow?
-    var client: PubNub?
-
-    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
-        self.client = PubNub.client()
-        self.client?.addChannels(["announcements", "lobby"], toGroup: "tradeshow",
-            withCompletion: {[weak self] (status) -> Void in
-                // Check whether request successfully completed or not.
-                if !status.error {
-                    withExtendedLifetime(self) {
-                        self!.client?.addListener(self!)
-                        self!.client?.subscribeToChannelGroups(["tradeshow"], withPresence: false)
-                    }
-                }
-                else {
-                    // Handle channels list modification for group error. Check 'category' property
-                    // to find out possible reason because of which request did fail.
-                    // Review 'errorData' property (which has PNErrorData data type) of status
-                    // object to get additional information about issue.
-                    //
-                    // Request can be resent using: status.retry()
-                }
-        })
-
-        return true
-    }
-}
-
- - - - diff --git a/Support/Fabric/docs/Channel group/step-3-objc.html b/Support/Fabric/docs/Channel group/step-3-objc.html deleted file mode 100644 index f48c359ed..000000000 --- a/Support/Fabric/docs/Channel group/step-3-objc.html +++ /dev/null @@ -1,199 +0,0 @@ - - - - - - - - - - - Channel group — Step 3 - - - - - -

3 Add subscribe/connection status handling callback

- -
-

It is always a good idea to add a subscription status handling callback to know when a subscription process completed or stumbled on an unexpected disconnection.

- - Click to copy the blue snippets and then paste them into your code. -
- -

AppDelegate.m

- -
#import "AppDelegate.h"
-#import <PubNub/PubNub.h>
-#import <PubNubBridge/PubNub+FAB.h>
-
-
-@interface AppDelegate () <PNObjectEventListener>
-
-@property (nonatomic, strong) PubNub *client;
-
-@end
-
-
-@implementation AppDelegate
-
-- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
-    __weak __typeof(self) weakSelf = self;
-    self.client = [PubNub client];
-    [self.client addChannels:@[@"announcements", @"lobby"] toGroup:@"tradeshow"
-              withCompletion:^(PNAcknowledgmentStatus *status) {
-        __strong __typeof(self) strongSelf = weakSelf;
-        // Check whether request successfully completed or not.
-        if (!status.isError) {
-            [strongSelf.client addListener:strongSelf];
-            [strongSelf.client subscribeToChannelGroups:@[@"tradeshow"] withPresence:NO];
-        }
-        // Request processing failed.
-        else {
-        }
-    }];
-    return YES;
-}
-
-- (void)client:(PubNub *)client didReceiveStatus:(PNSubscribeStatus *)status {
-    if (status.category == PNUnexpectedDisconnectCategory) {
-        // This event happens when radio / connectivity is lost
-    }
-    else if (status.category == PNConnectedCategory) {
-        // Connect event. You can do stuff like publish, and know you'll get it.
-        // Or just use the connected event to confirm you are subscribed for
-        // UI / internal notifications, etc
-    }
-    else if (status.category == PNReconnectedCategory) {
-        // Happens as part of our regular operation. This event happens when
-        // radio / connectivity is lost, then regained.
-    }
-    else if (status.category == PNDisconnectedCategory) {
-        // Disconnection event. After this moment any messages from unsubscribed channel
-        // won't reach this callback.
-    }
-    else if (status.category == PNDecryptionErrorCategory) {
-        // Handle messsage decryption error. Probably client configured to
-        // encrypt messages and on live data feed it received plain text.
-    }
-}
-
-@end
-
- - - - diff --git a/Support/Fabric/docs/Channel group/step-3-swift.html b/Support/Fabric/docs/Channel group/step-3-swift.html deleted file mode 100644 index 4a74e316f..000000000 --- a/Support/Fabric/docs/Channel group/step-3-swift.html +++ /dev/null @@ -1,194 +0,0 @@ - - - - - - - - - - - Channel group — Step 3 - - - - - -

3 Add subscribe/connection status handling callback

- -
-

It is always a good idea to add a subscription status handling callback to know when a subscription process completed or stumbled on an unexpected disconnection.

- - Click to copy the blue snippets and then paste them into your code. -
- -

AppDelegate.swift

- -
import UIKit
-import PubNub
-import PubNubBridge
-
-
-@UIApplicationMain
-class AppDelegate: UIResponder, UIApplicationDelegate, PNObjectEventListener {
-
-    var window: UIWindow?
-    var client: PubNub?
-
-    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
-        self.client = PubNub.client()
-        self.client?.addChannels(["announcements", "lobby"], toGroup: "tradeshow",
-            withCompletion: {[weak self] (status) -> Void in
-                // Check whether request successfully completed or not.
-                if !status.error {
-                    withExtendedLifetime(self) {
-                        self!.client?.addListener(self!)
-                        self!.client?.subscribeToChannelGroups(["tradeshow"], withPresence: false)
-                    }
-                }
-                else {
-                }
-        })
-
-        return true
-    }
-    func client(client: PubNub!, didReceiveStatus status: PNSubscribeStatus!) {
-        if status.category == .PNUnexpectedDisconnectCategory {
-            // This event happens when radio / connectivity is lost
-        }
-        else if status.category == .PNConnectedCategory {
-            // Connect event. You can do stuff like publish, and know you'll get it.
-            // Or just use the connected event to confirm you are subscribed for
-            // UI / internal notifications, etc
-        }
-        else if status.category == .PNReconnectedCategory {
-            // Happens as part of our regular operation. This event happens when
-            // radio / connectivity is lost, then regained.
-        }
-        else if status.category == .PNDisconnectedCategory {
-            // Disconnection event. After this moment any messages from unsubscribed channel
-            // won't reach this callback.
-        }
-        else if status.category == .PNDecryptionErrorCategory {
-            // Handle messsage decryption error. Probably client configured to
-            // encrypt messages and on live data feed it received plain text.
-        }
-    }
-}
-
- - - - diff --git a/Support/Fabric/docs/Channel group/step-4-objc.html b/Support/Fabric/docs/Channel group/step-4-objc.html deleted file mode 100644 index e29b76391..000000000 --- a/Support/Fabric/docs/Channel group/step-4-objc.html +++ /dev/null @@ -1,202 +0,0 @@ - - - - - - - - - - - Channel group — Step 4 - - - - - -

4 Add new messages handling callback

- -
-

To handle real-time messages from a subscribed channel group (subscribed on in previous steps), add a message handling callback.

- - Click to copy the blue snippets and then paste them into your code. -
- -

AppDelegate.m

- -
#import "AppDelegate.h"
-#import <PubNub/PubNub.h>
-#import <PubNubBridge/PubNub+FAB.h>
-
-
-@interface AppDelegate () <PNObjectEventListener>
-
-@property (nonatomic, strong) PubNub *client;
-
-@end
-
-
-@implementation AppDelegate
-
-- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
-    __weak __typeof(self) weakSelf = self;
-    self.client = [PubNub client];
-    [self.client addChannels:@[@"announcements", @"lobby"] toGroup:@"tradeshow"
-              withCompletion:^(PNAcknowledgmentStatus *status) {
-        __strong __typeof(self) strongSelf = weakSelf;
-        // Check whether request successfully completed or not.
-        if (!status.isError) {
-            [strongSelf.client addListener:strongSelf];
-            [strongSelf.client subscribeToChannelGroups:@[@"tradeshow"] withPresence:NO];
-        }
-        // Request processing failed.
-        else {
-        }
-    }];
-    return YES;
-}
-
-- (void)client:(PubNub *)client didReceiveStatus:(PNSubscribeStatus *)status {
-    if (status.category == PNUnexpectedDisconnectCategory) {
-    }
-    else if (status.category == PNConnectedCategory) {
-    }
-    else if (status.category == PNReconnectedCategory) {
-    }
-    else if (status.category == PNDisconnectedCategory) {
-    }
-    else if (status.category == PNDecryptionErrorCategory) {
-    }
-}
-
-- (void)client:(PubNub *)client didReceiveMessage:(PNMessageResult *)message {
-    // Handle new message stored in message.data.message
-    if (message.data.actualChannel != nil) {
-        // Message has been received on channel group stored in
-        // message.data.subscribedChannel
-    }
-    else {
-        // Message has been received on channel stored in
-        // message.data.subscribedChannel
-    }
-    NSLog(@"Received message: %@ on channel %@ at %@", message.data.message,
-          (message.data.actualChannel?: message.data.subscribedChannel), message.data.timetoken);
-}
-
-@end
-
- - - - diff --git a/Support/Fabric/docs/Channel group/step-4-swift.html b/Support/Fabric/docs/Channel group/step-4-swift.html deleted file mode 100644 index 43880346f..000000000 --- a/Support/Fabric/docs/Channel group/step-4-swift.html +++ /dev/null @@ -1,197 +0,0 @@ - - - - - - - - - - - Channel group — Step 4 - - - - - -

4 Add new messages handling callback

- -
-

To handle real-time messages from a subscribed channel group (subscribed on in previous steps), add a message handling callback.

- - Click to copy the blue snippets and then paste them into your code. -
- -

AppDelegate.swift

- -
import UIKit
-import PubNub
-import PubNubBridge
-
-
-@UIApplicationMain
-class AppDelegate: UIResponder, UIApplicationDelegate, PNObjectEventListener {
-
-    var window: UIWindow?
-    var client: PubNub?
-
-    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
-        self.client = PubNub.client()
-        self.client?.addChannels(["announcements", "lobby"], toGroup: "tradeshow",
-            withCompletion: {[weak self] (status) -> Void in
-                // Check whether request successfully completed or not.
-                if !status.error {
-                    withExtendedLifetime(self) {
-                        self!.client?.addListener(self!)
-                        self!.client?.subscribeToChannelGroups(["tradeshow"], withPresence: false)
-                    }
-                }
-                else {
-                }
-        })
-
-        return true
-    }
-    func client(client: PubNub!, didReceiveStatus status: PNSubscribeStatus!) {
-        if status.category == .PNUnexpectedDisconnectCategory {
-        }
-        else if status.category == .PNConnectedCategory {
-        }
-        else if status.category == .PNReconnectedCategory {
-        }
-        else if status.category == .PNDisconnectedCategory {
-        }
-        else if status.category == .PNDecryptionErrorCategory {
-        }
-    }
-    func client(client: PubNub!, didReceiveMessage message: PNMessageResult!) {
-        // Handle new message stored in message.data.message
-        if message.data.actualChannel != nil {
-            // Message has been received on channel group stored in
-            // message.data.subscribedChannel
-        }
-        else {
-            // Message has been received on channel stored in
-            // message.data.subscribedChannel
-        }
-        print("Received message: \(message.data.message) on channel " +
-            "\((message.data.actualChannel ?? message.data.subscribedChannel)!) at " +
-            "\(message.data.timetoken)")
-    }
-}
-
- - - - diff --git a/Support/Fabric/docs/Observe presence events/step-1-objc.html b/Support/Fabric/docs/Observe presence events/step-1-objc.html deleted file mode 100644 index 8f002b8e3..000000000 --- a/Support/Fabric/docs/Observe presence events/step-1-objc.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - - - - - - - - Observe presence events — Step 1 - - - - - -

1 Subscribe to presence channels

- -
-

To receive presence events from other users in real-time, subscribe to the associated presence channels.

- - Click to copy the blue snippets and then paste them into your code. -
- -

AppDelegate.m

- -
#import "AppDelegate.h"
-#import <PubNub/PubNub.h>
-#import <PubNubBridge/PubNub+FAB.h>
-
-
-@interface AppDelegate ()
-
-@property (nonatomic, strong) PubNub *client;
-
-@end
-
-
-@implementation AppDelegate
-
-- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
-    self.client = [PubNub client];
-    [self.client addListener:self];
-    [self.client subscribeToPresenceChannels:@[@"lobby"]];
-    return YES;
-}
-
-@end
-
- - - - diff --git a/Support/Fabric/docs/Observe presence events/step-1-swift.html b/Support/Fabric/docs/Observe presence events/step-1-swift.html deleted file mode 100644 index 019f0a8be..000000000 --- a/Support/Fabric/docs/Observe presence events/step-1-swift.html +++ /dev/null @@ -1,160 +0,0 @@ - - - - - - - - - - - Observe presence events — Step 1 - - - - - -

1 Subscribe to presence channels

- -
-

To receive presence events from other users in real-time, subscribe to the associated presence channels.

- - Click to copy the blue snippets and then paste them into your code. -
- -

AppDelegate.swift

- -
import UIKit
-import PubNub
-import PubNubBridge
-
-
-@UIApplicationMain
-class AppDelegate: UIResponder, UIApplicationDelegate {
-
-    var window: UIWindow?
-    var client: PubNub?
-
-    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
-        self.client = PubNub.client()
-        self.client?.addListener(self)
-        self.client?.subscribeToPresenceChannels(["lobby"])
-        return true
-    }
-}
-
- - - - diff --git a/Support/Fabric/docs/Observe presence events/step-2-objc.html b/Support/Fabric/docs/Observe presence events/step-2-objc.html deleted file mode 100644 index b1a1bcc11..000000000 --- a/Support/Fabric/docs/Observe presence events/step-2-objc.html +++ /dev/null @@ -1,188 +0,0 @@ - - - - - - - - - - - Observe presence events — Step 2 - - - - - -

2 Add a subscribe/connection status handling callback

- -
-

It is always a good idea to add a subscription/connection status handling callback to know when the subscription process completed or stumbled on an unexpected disconnection.

- - Click to copy the blue snippets and then paste them into your code. -
- -

AppDelegate.m

- -
#import "AppDelegate.h"
-#import <PubNub/PubNub.h>
-#import <PubNubBridge/PubNub+FAB.h>
-
-
-@interface AppDelegate () <PNObjectEventListener>
-
-@property (nonatomic, strong) PubNub *client;
-
-@end
-
-
-@implementation AppDelegate
-
-- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
-    self.client = [PubNub client];
-    [self.client addListener:self];
-    [self.client subscribeToPresenceChannels:@[@"lobby"]];
-    return YES;
-}
-
-- (void)client:(PubNub *)client didReceiveStatus:(PNSubscribeStatus *)status {
-    if (status.category == PNUnexpectedDisconnectCategory) {
-        // This event happens when radio / connectivity is lost
-    }
-    else if (status.category == PNConnectedCategory) {
-        // Connect event. You can do stuff like publish, and know you'll get it.
-        // Or just use the connected event to confirm you are subscribed for
-        // UI / internal notifications, etc
-    }
-    else if (status.category == PNReconnectedCategory) {
-        // Happens as part of our regular operation. This event happens when
-        // radio / connectivity is lost, then regained.
-    }
-    else if (status.category == PNDisconnectedCategory) {
-        // Disconnection event. After this moment any messages from unsubscribed channel
-        // won't reach this callback.
-    }
-    else if (status.category == PNDecryptionErrorCategory) {
-        // Handle messsage decryption error. Probably client configured to
-        // encrypt messages and on live data feed it received plain text.
-    }
-}
-
-@end
-
- - - - diff --git a/Support/Fabric/docs/Observe presence events/step-2-swift.html b/Support/Fabric/docs/Observe presence events/step-2-swift.html deleted file mode 100644 index baf4ea1cc..000000000 --- a/Support/Fabric/docs/Observe presence events/step-2-swift.html +++ /dev/null @@ -1,179 +0,0 @@ - - - - - - - - - - - Observe presence events — Step 2 - - - - - -

2 Add a subscribe/connection status handling callback

- -
-

It is always a good idea to add a subscription/connection status handling callback to know when the subscription process completed or stumbled on an unexpected disconnection.

- - Click to copy the blue snippets and then paste them into your code. -
- -

AppDelegate.swift

- -
import UIKit
-import PubNub
-import PubNubBridge
-
-
-@UIApplicationMain
-class AppDelegate: UIResponder, UIApplicationDelegate, PNObjectEventListener {
-
-    var window: UIWindow?
-    var client: PubNub?
-
-    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
-        self.client = PubNub.client()
-        self.client?.addListener(self)
-        self.client?.subscribeToPresenceChannels(["lobby"])
-        return true
-    }
-    func client(client: PubNub!, didReceiveStatus status: PNSubscribeStatus!) {
-        if status.category == .PNUnexpectedDisconnectCategory {
-            // This event happens when radio / connectivity is lost
-        }
-        else if status.category == .PNConnectedCategory {
-            // Connect event. You can do stuff like publish, and know you'll get it.
-            // Or just use the connected event to confirm you are subscribed for
-            // UI / internal notifications, etc
-        }
-        else if status.category == .PNReconnectedCategory {
-            // Happens as part of our regular operation. This event happens when
-            // radio / connectivity is lost, then regained.
-        }
-        else if status.category == .PNDecryptionErrorCategory {
-            // Handle messsage decryption error. Probably client configured to
-            // encrypt messages and on live data feed it received plain text.
-        }
-    }
-}
-
- - - - diff --git a/Support/Fabric/docs/Observe presence events/step-3-objc.html b/Support/Fabric/docs/Observe presence events/step-3-objc.html deleted file mode 100644 index 246ea94a8..000000000 --- a/Support/Fabric/docs/Observe presence events/step-3-objc.html +++ /dev/null @@ -1,201 +0,0 @@ - - - - - - - - - - - Observe presence events — Step 3 - - - - - -

3 Add a new presence event callback

- -
-

To handle real-time presence events on subscribed channels, add a presence event handling callback.

- - Click to copy the blue snippets and then paste them into your code. -
- -

AppDelegate.m

- -
#import "AppDelegate.h"
-#import <PubNub/PubNub.h>
-#import <PubNubBridge/PubNub+FAB.h>
-
-
-@interface AppDelegate () <PNObjectEventListener>
-
-@property (nonatomic, strong) PubNub *client;
-
-@end
-
-
-@implementation AppDelegate
-
-- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
-    self.client = [PubNub client];
-    [self.client addListener:self];
-    [self.client subscribeToPresenceChannels:@[@"lobby"]];
-    return YES;
-}
-
-- (void)client:(PubNub *)client didReceiveStatus:(PNSubscribeStatus *)status {
-    if (status.category == PNUnexpectedDisconnectCategory) {
-    }
-    else if (status.category == PNConnectedCategory) {
-    }
-    else if (status.category == PNReconnectedCategory) {
-    }
-    else if (status.category == PNDisconnectedCategory) {
-    }
-    else if (status.category == PNDecryptionErrorCategory) {
-    }
-}
-
-- (void)client:(PubNub *)client didReceivePresenceEvent:(PNPresenceEventResult *)event {
-    // Handle presence event event.data.presenceEvent (one of: join, leave, timeout,
-    // state-change).
-    if (event.data.actualChannel != nil) {
-        // Presence event has been received on channel group stored in
-        // event.data.subscribedChannel
-    }
-    else {
-        // Presence event has been received on channel stored in
-        // event.data.subscribedChannel
-    }
-    if (![event.data.presenceEvent isEqualToString:@"state-change"]) {
-        NSLog(@"%@ \"%@'ed\" at: %@ on %@ (Occupancy: %@)",
-              event.data.presence.uuid, event.data.presenceEvent, event.data.presence.timetoken,
-              (event.data.actualChannel?: event.data.subscribedChannel),
-              event.data.presence.occupancy);
-    }
-    else {
-        NSLog(@"%@ changed state at: %@ on %@ to:\n%@", event.data.presence.uuid,
-              event.data.presence.timetoken,
-              (event.data.actualChannel?: event.data.subscribedChannel), event.data.presence.state);
-    }
-}
-
-@end
-
- - - - diff --git a/Support/Fabric/docs/Observe presence events/step-3-swift.html b/Support/Fabric/docs/Observe presence events/step-3-swift.html deleted file mode 100644 index d9a40b5e0..000000000 --- a/Support/Fabric/docs/Observe presence events/step-3-swift.html +++ /dev/null @@ -1,194 +0,0 @@ - - - - - - - - - - - Observe presence events — Step 3 - - - - - -

3 Add a new presence event callback

- -
-

To handle real-time presence events on subscribed channels, add a presence event handling callback.

- - Click to copy the blue snippets and then paste them into your code. -
- -

AppDelegate.swift

- -
import UIKit
-import PubNub
-import PubNubBridge
-
-
-@UIApplicationMain
-class AppDelegate: UIResponder, UIApplicationDelegate, PNObjectEventListener {
-
-    var window: UIWindow?
-    var client: PubNub?
-
-    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
-        self.client = PubNub.client()
-        self.client?.addListener(self)
-        self.client?.subscribeToPresenceChannels(["lobby"])
-        return true
-    }
-    func client(client: PubNub!, didReceiveStatus status: PNSubscribeStatus!) {
-        if status.category == .PNUnexpectedDisconnectCategory {
-        }
-        else if status.category == .PNConnectedCategory {
-        }
-        else if status.category == .PNReconnectedCategory {
-        }
-        else if status.category == .PNDecryptionErrorCategory {
-        }
-    }
-    func client(client: PubNub!, didReceivePresenceEvent event: PNPresenceEventResult!) {
-        // Handle presence event event.data.presenceEvent (one of: join, leave, timeout,
-        // state-change).
-        if event.data.actualChannel != nil {
-            // Presence event has been received on channel group stored in
-            // event.data.subscribedChannel
-        }
-        else {
-            // Presence event has been received on channel stored in
-            // event.data.subscribedChannel
-        }
-        if event.data.presenceEvent != "state-change" {
-            println("\(event.data.presence.uuid) \"\(event.data.presenceEvent)'ed\"\n" +
-                "at: \(event.data.presence.timetoken) " +
-                "on \((event.data.actualChannel ?? event.data.subscribedChannel)!) " +
-                "(Occupancy: \(event.data.presence.occupancy))");
-        }
-        else {
-            println("\(event.data.presence.uuid) changed state at: " +
-                "\(event.data.presence.timetoken) " +
-                "on \((event.data.actualChannel ?? event.data.subscribedChannel)!) to:\n" +
-                "\(event.data.presence.state)");
-        }
-    }
-}
-
- - - - diff --git a/Support/Fabric/docs/Publish Message/step-1-objc.html b/Support/Fabric/docs/Publish Message/step-1-objc.html deleted file mode 100644 index f11b0937c..000000000 --- a/Support/Fabric/docs/Publish Message/step-1-objc.html +++ /dev/null @@ -1,172 +0,0 @@ - - - - - - - - - - - Publish Message — Step 1 - - - - - -

1 Initialize client

- -
-

Publishing a JSON object to a channel is really easy. Here is an an example to get you started.

- - Click to copy the blue snippets and then paste them into your code. -
- -

AppDelegate.m

- -
#import "AppDelegate.h"
-#import <PubNub/PubNub.h>
-#import <PubNubBridge/PubNub+FAB.h>
-
-
-@interface AppDelegate ()
-
-@property (nonatomic, strong) PubNub *client;
-
-@end
-
-
-@implementation AppDelegate
-
-- (BOOL)            application:(UIApplication *)application
-  didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
-    self.client = [PubNub client];
-    [self.client publish:@{@"announcement": @"Welcome to PubNub!"}
-               toChannel:@"announcements" withCompletion:^(PNPublishStatus *status) {
-        // Check whether request successfully completed or not.
-        if (!status.isError) {
-            // Message successfully published to specified channel.
-        }
-        // Request processing failed.
-        else {
-            // Handle message publish error. Check 'category' property to find out possible issue
-            // because of which request did fail.
-            //
-            // Request can be resent using: [status retry];
-        }
-    }];
-    return YES;
-}
-
-@end
-
- - - diff --git a/Support/Fabric/docs/Publish Message/step-1-swift.html b/Support/Fabric/docs/Publish Message/step-1-swift.html deleted file mode 100644 index d845a5c2c..000000000 --- a/Support/Fabric/docs/Publish Message/step-1-swift.html +++ /dev/null @@ -1,166 +0,0 @@ - - - - - - - - - - - Publish Message — Step 1 - - - - - -

1 Initialize client

- -
-

Publishing a JSON object to a channel is really easy. Here is an an example to get you started.

- - Click to copy the blue snippets and then paste them into your code. -
- -

AppDelegate.swift

- -
import UIKit
-import PubNub
-import PubNubBridge
-
-
-@UIApplicationMain
-class AppDelegate: UIResponder, UIApplicationDelegate {
-
-    var window: UIWindow?
-    var client: PubNub?
-
-    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
-        self.client = PubNub.client()
-        self.client?.publish(["announcement": "Welcome to PubNub!"], toChannel: "announcements", withCompletion: { (status) -> Void in
-            if !status.error {
-                // Message successfully published to specified channel.
-            }
-            else{
-                // Handle message publish error. Check 'category' property
-                // to find out possible reason because of which request did fail.
-                // Review 'errorData' property (which has PNErrorData data type) of status
-                // object to get additional information about the issue.
-                //
-                // Request can be resent using: status.retry()
-            }
-        })
-        return true
-    }
-}
-
- - - diff --git a/Support/Fabric/docs/Subscribe to Channel(s)/step-1-objc.html b/Support/Fabric/docs/Subscribe to Channel(s)/step-1-objc.html deleted file mode 100644 index 5685f32aa..000000000 --- a/Support/Fabric/docs/Subscribe to Channel(s)/step-1-objc.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - - - - - - - - Subscribe to Channel(s) — Step 1 - - - - - -

1 Subscribe to channels

- -
-

To receive messages from other users in real-time, you must subscribe to the desired channels first.

- - Click to copy the blue snippets and then paste them into your code. -
- -

AppDelegate.m

- -
#import "AppDelegate.h"
-#import <PubNub/PubNub.h>
-#import <PubNubBridge/PubNub+FAB.h>
-
-
-@interface AppDelegate ()
-
-@property (nonatomic, strong) PubNub *client;
-
-@end
-
-
-@implementation AppDelegate
-
-- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
-    self.client = [PubNub client];
-    [self.client addListener:self];
-    [self.client subscribeToChannels:@[@"announcements", @"lobby"] withPresence:NO];
-    return YES;
-}
-
-@end
-
- - - - diff --git a/Support/Fabric/docs/Subscribe to Channel(s)/step-1-swift.html b/Support/Fabric/docs/Subscribe to Channel(s)/step-1-swift.html deleted file mode 100644 index 280cc9e9e..000000000 --- a/Support/Fabric/docs/Subscribe to Channel(s)/step-1-swift.html +++ /dev/null @@ -1,160 +0,0 @@ - - - - - - - - - - - Subscribe to Channel(s) — Step 1 - - - - - -

1 Subscribe to channels

- -
-

To receive messages from other users in real-time, you must subscribe to the desired channels first.

- - Click to copy the blue snippets and then paste them into your code. -
- -

AppDelegate.swift

- -
import UIKit
-import PubNub
-import PubNubBridge
-
-
-@UIApplicationMain
-class AppDelegate: UIResponder, UIApplicationDelegate {
-
-    var window: UIWindow?
-    var client: PubNub?
-
-    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
-        self.client = PubNub.client()
-        self.client?.addListener(self)
-        self.client?.subscribeToChannels(["lobby"], withPresence: false)
-        return true
-    }
-}
-
- - - - diff --git a/Support/Fabric/docs/Subscribe to Channel(s)/step-2-objc.html b/Support/Fabric/docs/Subscribe to Channel(s)/step-2-objc.html deleted file mode 100644 index 049b88009..000000000 --- a/Support/Fabric/docs/Subscribe to Channel(s)/step-2-objc.html +++ /dev/null @@ -1,188 +0,0 @@ - - - - - - - - - - - Subscribe to Channel(s) — Step 2 - - - - - -

2 Add subscribe/connection status handling callback

- -
-

It is always a good idea to add a subscription status handling callback to know when the subscription process completed or stumbled on an unexpected disconnection.

- - Click to copy the blue snippets and then paste them into your code. -
- -

AppDelegate.m

- -
#import "AppDelegate.h"
-#import <PubNub/PubNub.h>
-#import <PubNubBridge/PubNub+FAB.h>
-
-
-@interface AppDelegate () <PNObjectEventListener>
-
-@property (nonatomic, strong) PubNub *client;
-
-@end
-
-
-@implementation AppDelegate
-
-- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
-    self.client = [PubNub client];
-    [self.client addListener:self];
-    [self.client subscribeToChannels:@[@"announcements", @"lobby"] withPresence:NO];
-    return YES;
-}
-
-- (void)client:(PubNub *)client didReceiveStatus:(PNSubscribeStatus *)status {
-    if (status.category == PNUnexpectedDisconnectCategory) {
-        // This event happens when radio / connectivity is lost
-    }
-    else if (status.category == PNConnectedCategory) {
-        // Connect event. You can do stuff like publish, and know you'll get it.
-        // Or just use the connected event to confirm you are subscribed for
-        // UI / internal notifications, etc
-    }
-    else if (status.category == PNReconnectedCategory) {
-        // Happens as part of our regular operation. This event happens when
-        // radio / connectivity is lost, then regained.
-    }
-    else if (status.category == PNDisconnectedCategory) {
-        // Disconnection event. After this moment any messages from unsubscribed channel
-        // won't reach this callback.
-    }
-    else if (status.category == PNDecryptionErrorCategory) {
-        // Handle messsage decryption error. Probably client configured to
-        // encrypt messages and on live data feed it received plain text.
-    }
-}
-
-@end
-
- - - - diff --git a/Support/Fabric/docs/Subscribe to Channel(s)/step-2-swift.html b/Support/Fabric/docs/Subscribe to Channel(s)/step-2-swift.html deleted file mode 100644 index 8375e47bc..000000000 --- a/Support/Fabric/docs/Subscribe to Channel(s)/step-2-swift.html +++ /dev/null @@ -1,181 +0,0 @@ - - - - - - - - - - - Subscribe to Channel(s) — Step 2 - - - - - -

2 Add subscribe/connection status handling callback

- -
-

It is always a good idea to add a subscription status handling callback to know when the subscription process completed or stumbled on an unexpected disconnection.

- - Click to copy the blue snippets and then paste them into your code. -
- -

AppDelegate.swift

- -
import UIKit
-import PubNub
-import PubNubBridge
-
-
-@UIApplicationMain
-class AppDelegate: UIResponder, UIApplicationDelegate, PNObjectEventListener {
-    var window: UIWindow?
-    var client: PubNub?
-    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
-        self.client = PubNub.client()
-        self.client?.addListener(self)
-        self.client?.subscribeToChannels(["lobby"], withPresence: false)
-        return true
-    }
-    func client(client: PubNub!, didReceiveStatus status: PNSubscribeStatus!) {
-        if status.category == .PNUnexpectedDisconnectCategory {
-            // This event happens when radio / connectivity is lost
-        }
-        else if status.category == .PNConnectedCategory {
-            // Connect event. You can do stuff like publish, and know you'll get it.
-            // Or just use the connected event to confirm you are subscribed for
-            // UI / internal notifications, etc
-        }
-        else if status.category == .PNReconnectedCategory {
-            // Happens as part of our regular operation. This event happens when
-            // radio / connectivity is lost, then regained.
-        }
-        else if status.category == .PNDisconnectedCategory {
-            // Disconnection event. After this moment any messages from unsubscribed channel
-            // won't reach this callback.
-        }
-        else if status.category == .PNDecryptionErrorCategory {
-            // Handle messsage decryption error. Probably client configured to
-            // encrypt messages and on live data feed it received plain text.
-        }
-    }
-}
-
- - - - diff --git a/Support/Fabric/docs/Subscribe to Channel(s)/step-3-objc.html b/Support/Fabric/docs/Subscribe to Channel(s)/step-3-objc.html deleted file mode 100644 index 69d90ed97..000000000 --- a/Support/Fabric/docs/Subscribe to Channel(s)/step-3-objc.html +++ /dev/null @@ -1,191 +0,0 @@ - - - - - - - - - - - Subscribe to Channel(s) — Step 3 - - - - - -

3 Add new messages handling callback

- -
-

To handle messages from the previous subscribe steps, add a message handling callback.

- - Click to copy the blue snippets and then paste them into your code. -
- -

AppDelegate.m

- -
#import "AppDelegate.h"
-#import <PubNub/PubNub.h>
-#import <PubNubBridge/PubNub+FAB.h>
-
-
-@interface AppDelegate () <PNObjectEventListener>
-
-@property (nonatomic, strong) PubNub *client;
-
-@end
-
-
-@implementation AppDelegate
-
-- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
-    self.client = [PubNub client];
-    [self.client addListener:self];
-    [self.client subscribeToChannels:@[@"announcements", @"lobby"] withPresence:NO];
-    return YES;
-}
-
-- (void)client:(PubNub *)client didReceiveStatus:(PNSubscribeStatus *)status {
-    if (status.category == PNUnexpectedDisconnectCategory) {
-    }
-    else if (status.category == PNConnectedCategory) {
-    }
-    else if (status.category == PNReconnectedCategory) {
-    }
-    else if (status.category == PNDisconnectedCategory) {
-    }
-    else if (status.category == PNDecryptionErrorCategory) {
-    }
-}
-
-- (void)client:(PubNub *)client didReceiveMessage:(PNMessageResult *)message {
-    // Handle new message stored in message.data.message
-    if (message.data.actualChannel != nil) {
-        // Message has been received on channel group stored in
-        // message.data.subscribedChannel
-    }
-    else {
-        // Message has been received on channel stored in
-        // message.data.subscribedChannel
-    }
-    NSLog(@"Received message: %@ on channel %@ at %@", message.data.message,
-          (message.data.actualChannel?: message.data.subscribedChannel), message.data.timetoken);
-}
-
-@end
-
- - - - diff --git a/Support/Fabric/docs/Subscribe to Channel(s)/step-3-swift.html b/Support/Fabric/docs/Subscribe to Channel(s)/step-3-swift.html deleted file mode 100644 index fc2255fec..000000000 --- a/Support/Fabric/docs/Subscribe to Channel(s)/step-3-swift.html +++ /dev/null @@ -1,184 +0,0 @@ - - - - - - - - - - - Subscribe to Channel(s) — Step 3 - - - - - -

3 Add new messages handling callback

- -
-

To handle messages from the previous subscribe steps, add a message handling callback.

- - Click to copy the blue snippets and then paste them into your code. -
- -

AppDelegate.swift

- -
import UIKit
-import PubNub
-import PubNubBridge
-
-
-@UIApplicationMain
-class AppDelegate: UIResponder, UIApplicationDelegate, PNObjectEventListener {
-    var window: UIWindow?
-    var client: PubNub?
-    func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
-        self.client = PubNub.client()
-        self.client?.addListener(self)
-        self.client?.subscribeToChannels(["lobby"], withPresence: false)
-        return true
-    }
-    func client(client: PubNub!, didReceiveStatus status: PNSubscribeStatus!) {
-        if status.category == .PNUnexpectedDisconnectCategory {
-        }
-        else if status.category == .PNConnectedCategory {
-        }
-        else if status.category == .PNReconnectedCategory {
-        }
-        else if status.category == .PNDisconnectedCategory {
-        }
-        else if status.category == .PNDecryptionErrorCategory {
-        }
-    }
-    func client(client: PubNub!, didReceiveMessage message: PNMessageResult!) {
-        // Handle new message stored in message.data.message
-        if message.data.actualChannel != nil {
-            // Message has been received on channel group stored in
-            // message.data.subscribedChannel
-        }
-        else {
-            // Message has been received on channel stored in
-            // message.data.subscribedChannel
-        }
-        print("Received message: \(message.data.message) on channel " +
-              "\((message.data.actualChannel ?? message.data.subscribedChannel)!) at " +
-              "\(message.data.timetoken)")
-    }
-}
-
- - - - diff --git a/Tests/OSX ObjC Tests/Info.plist b/Tests/OSX ObjC Tests/Info.plist deleted file mode 100644 index 9e5461dca..000000000 --- a/Tests/OSX ObjC Tests/Info.plist +++ /dev/null @@ -1,29 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - NSAppTransportSecurity - - NSAllowsArbitraryLoads - - - - diff --git a/Tests/PNDeviceIndependentMatcher.h b/Tests/PNDeviceIndependentMatcher.h deleted file mode 100644 index cab84cdbb..000000000 --- a/Tests/PNDeviceIndependentMatcher.h +++ /dev/null @@ -1,13 +0,0 @@ -// -// PNDeviceIndependentMatcher.h -// PubNub Tests -// -// Created by Jordan Zucker on 10/30/15. -// -// - -#import - -@interface PNDeviceIndependentMatcher : BKRPlayheadMatcher - -@end diff --git a/Tests/PNDeviceIndependentMatcher.m b/Tests/PNDeviceIndependentMatcher.m deleted file mode 100644 index 4f98a00d3..000000000 --- a/Tests/PNDeviceIndependentMatcher.m +++ /dev/null @@ -1,27 +0,0 @@ -// -// PNDeviceIndependentMatcher.m -// PubNub Tests -// -// Created by Jordan Zucker on 10/30/15. -// -// - -#import "PNDeviceIndependentMatcher.h" - -@implementation PNDeviceIndependentMatcher - -- (NSDictionary *)requestComparisonOptions { - NSMutableDictionary *superComparisonOptions = [super requestComparisonOptions].mutableCopy; - superComparisonOptions[kBKRIgnoreQueryItemNamesOptionsKey] = @[ - @"pnsdk", - @"l_pub", - @"l_hist", - @"l_pres", - @"l_cg", - @"l_push", - @"l_time" - ]; - return superComparisonOptions.copy; -} - -@end diff --git a/Tests/PNTestCase.h b/Tests/PNTestCase.h deleted file mode 100644 index d152d177d..000000000 --- a/Tests/PNTestCase.h +++ /dev/null @@ -1,391 +0,0 @@ -#import -#import - - -NS_ASSUME_NONNULL_BEGIN - -#pragma mark Types and structures - -/** - * @brief Type used to describe block for message handling. - * - * @param client \b PubNub client which used delegate callback. - * @param message Object with information about received message. - * @param shouldRemove Whether handling block should be removed after call or not. - */ -typedef void (^PNTClientDidReceiveMessageHandler)(PubNub *client, PNMessageResult *message, BOOL *shouldRemove); - -/** - * @brief Type used to describe block for signal handling. - * - * @param client \b PubNub client which used delegate callback. - * @param signal Object with information about received signal. - * @param shouldRemove Whether handling block should be removed after call or not. - */ -typedef void (^PNTClientDidReceiveSignalHandler)(PubNub *client, PNSignalResult *signal, BOOL *shouldRemove); - -/** - * @brief Type used to describe block for \c action handling. - * - * @param client \b PubNub client which used delegate callback. - * @param action Object with information about received \c action. - * @param shouldRemove Whether handling block should be removed after call or not. - */ -typedef void (^PNTClientDidReceiveMessageActionHandler)(PubNub *client, PNMessageActionResult *action, BOOL *shouldRemove); - -/** - * @brief Type used to describe block for presence event handling. - * - * @param client \b PubNub client which used delegate callback. - * @param event Object with information about received presence event. - * @param shouldRemove Whether handling block should be removed after call or not. - */ -typedef void (^PNTClientDidReceivePresenceEventHandler)(PubNub *client, PNPresenceEventResult *event, BOOL *shouldRemove); - -/** - * @brief Type used to describe block for \c user event handling. - * - * @param client \b PubNub client which used delegate callback. - * @param event Object with information about received \c user event. - * @param shouldRemove Whether handling block should be removed after call or not. - */ -typedef void (^PNTClientDidReceiveUserEventHandler)(PubNub *client, PNUserEventResult *event, BOOL *shouldRemove); - -/** - * @brief Type used to describe block for \c space event handling. - * - * @param client \b PubNub client which used delegate callback. - * @param event Object with information about received \c space event. - * @param shouldRemove Whether handling block should be removed after call or not. - */ -typedef void (^PNTClientDidReceiveSpaceEventHandler)(PubNub *client, PNSpaceEventResult *event, BOOL *shouldRemove); - -/** - * @brief Type used to describe block for \c membership event handling. - * - * @param client \b PubNub client which used delegate callback. - * @param event Object with information about received \c membership event. - * @param shouldRemove Whether handling block should be removed after call or not. - */ -typedef void (^PNTClientDidReceiveMembershipEventHandler)(PubNub *client, PNMembershipEventResult *event, BOOL *shouldRemove); - -/** - * @brief Type used to describe block for status change handling. - * - * @param client \b PubNub client which used delegate callback. - * @param message Object with information about last client status change. - * @param shouldRemove Whether handling block should be removed after call or not. - */ -typedef void (^PNTClientDidReceiveStatusHandler)(PubNub *client, PNSubscribeStatus *status, BOOL *shouldRemove); - - -/** - * @brief Base class for all test cases which provide initial setup. - * - * @author Serhii Mamontov - * @copyright © 2009-2019 PubNub, Inc. - */ -@interface PNTestCase : XCTestCase - - -#pragma mark - Information - -/** - * @brief Number of seconds which should be waited before performing in-test verifications. - */ -@property (nonatomic, readonly, assign) NSTimeInterval delayedCheck; - -/** - * @brief Number of seconds which positive test should wait till async operation completion. - */ -@property (nonatomic, readonly, assign) NSTimeInterval testCompletionDelay; - -/** - * @brief Number of seconds which negative test should wait till async operation completion. - */ -@property (nonatomic, readonly, assign) NSTimeInterval falseTestCompletionDelay; - -/** - * @brief Loaded from \c 'Resources/keysset.plist' file PAM enabled PubNub subscribe key. - * - * @since 4.8.8 - */ -@property (nonatomic, readonly, strong) NSString *pamSubscribeKey; - -/** - * @brief Loaded from \c 'Resources/keysset.plist' file PAM enabled PubNub publish key. - * - * @since 4.8.8 - */ -@property (nonatomic, readonly, strong) NSString *pamPublishKey; - -/** - * @brief Loaded from \c 'Resources/keysset.plist' file PubNub subscribe key. - * - * @since 4.8.8 - */ -@property (nonatomic, readonly, strong) NSString *subscribeKey; - -/** - * @brief Loaded from \c 'Resources/keysset.plist' file PubNub publish key. - * - * @since 4.8.8 - */ -@property (nonatomic, readonly, strong) NSString *publishKey; - -#pragma mark - Mocking - -/** - * @brief Check whether passed \c object has been mocked before or not. - * - * @param object Object which should be checked on whether it has been mocked or not. - * - * @return Whether mocked \c object passed or not. - */ -- (BOOL)isObjectMocked:(id)object; - -/** - * @brief Create mock object for class. - * - * @param object Object for which mock should be created (class or it's instance). - * - * @return Object mock. - */ -- (id)mockForObject:(id)object; - - -#pragma mark - Listeners - -/** - * @brief Add block which will be called for each client status change. - * - * @param client \b PubNub client for which state should be tracked. - * @param handler Block which should be called each client's status change. - */ -- (void)addStatusHandlerForClient:(PubNub *)client withBlock:(PNTClientDidReceiveStatusHandler)handler; - -/** - * @brief Add block which will be called for each received message. - * - * @param client \b PubNub client for which messages should be tracked. - * @param handler Block which should be called each received message. - */ -- (void)addMessageHandlerForClient:(PubNub *)client withBlock:(PNTClientDidReceiveMessageHandler)handler; - -/** - * @brief Add block which will be called for each received signal. - * - * @param client \b PubNub client for which signal should be tracked. - * @param handler Block which should be called each received signal. - */ -- (void)addSignalHandlerForClient:(PubNub *)client withBlock:(PNTClientDidReceiveSignalHandler)handler; - -/** - * @brief Add block which will be called for each received presence change. - * - * @param client \b PubNub client for which presence change should be tracked. - * @param handler Block which should be called each presence change. - */ -- (void)addPresenceHandlerForClient:(PubNub *)client withBlock:(PNTClientDidReceivePresenceEventHandler)handler; - -/** - * @brief Add block which will be called for each received \c user event. - * - * @param client \b PubNub client for which \c user events should be tracked. - * @param handler Block which should be called each \c user event. - */ -- (void)addUserHandlerForClient:(PubNub *)client withBlock:(PNTClientDidReceiveUserEventHandler)handler; - -/** - * @brief Add block which will be called for each received \c space event. - * - * @param client \b PubNub client for which \c space events should be tracked. - * @param handler Block which should be called each \c space event. - */ -- (void)addSpaceHandlerForClient:(PubNub *)client withBlock:(PNTClientDidReceiveSpaceEventHandler)handler; - -/** - * @brief Add block which will be called for each received \c membership event. - * - * @param client \b PubNub client for which \c membership events should be tracked. - * @param handler Block which should be called each \c membership event. - */ -- (void)addMembershipHandlerForClient:(PubNub *)client withBlock:(PNTClientDidReceiveMembershipEventHandler)handler; - -/** - * @brief Add block which will be called for each received \c action event. - * - * @param client \b PubNub client for which \c action events should be tracked. - * @param handler Block which should be called each \c action event. - */ -- (void)addActionHandlerForClient:(PubNub *)client withBlock:(PNTClientDidReceiveMessageActionHandler)handler; - -/** - * @brief Remove all handler for specified \c client. - * - * @param client \b PubNub client for which listeners should be removed. - */ -- (void)removeAllHandlersForClient:(PubNub *)client; - - -#pragma mark - Handlers - -/** - * @brief Wait for recorded (OCMExpect) stub to be called within specified interval. Default - * interval for success test operation will be used. - * - * @param object Mock from object on which invocation call is expected. - * @param invocation Invocation which is expected to be called. - * @param initialBlock GCD block which contain initialization of code required to invoke tested - * code. - */ -- (void)waitForObject:(id)object - recordedInvocationCall:(id)invocation - afterBlock:(nullable void(^)(void))initialBlock; - -/** - * @brief Wait for recorded (OCMExpect) stub to be called within specified interval. - * - * @param object Mock from object on which invocation call is expected. - * @param invocation Invocation which is expected to be called. - * @param interval Number of seconds which test case should wait before it's continuation. - * @param initialBlock GCD block which contain initialization of code required to invoke tested - * code. - */ -- (void)waitForObject:(id)object - recordedInvocationCall:(id)invocation - withinInterval:(NSTimeInterval)interval - afterBlock:(nullable void(^)(void))initialBlock; - -/** - * @brief Wait for code from \c codeBlock to call completion handler in specified amount of time. - * - * @param interval Number of seconds which test case should wait before it's continuation. - * @param codeBlock GCD block which contain tested async code. Block pass completion handler which - * should be called by tested code. - */ -- (void)waitToCompleteIn:(NSTimeInterval)interval - codeBlock:(void(^)(dispatch_block_t handler))codeBlock; - -/** - * @brief Wait for code from \c codeBlock to call completion handler in specified amount of time. - * - * @param interval Number of seconds which test case should wait before it's continuation. - * @param label Label for executed code which will allow to identify it later in case of failure. - * @param codeBlock GCD block which contain tested async code. Block pass completion handler which - * should be called by tested code. - */ -- (void)waitToCompleteIn:(NSTimeInterval)interval - codeTaskLabel:(nullable NSString *)label - codeBlock:(void(^)(dispatch_block_t handler))codeBlock; - -/** - * @brief Wait for code from \c codeBlock to call completion handler in specified amount of time. - * - * @param interval Number of seconds which test case should wait before it's continuation. - * @param codeBlock GCD block which contain tested async code. Block pass completion handler which - * should be called by tested code. - * @param initialBlock GCD block which contain initialization of code which passed in \c codeBlock. - */ -- (void)waitToCompleteIn:(NSTimeInterval)interval - codeBlock:(void(^)(dispatch_block_t handler))codeBlock - afterBlock:(nullable void(^)(void))initialBlock; - -/** - * @brief Wait for code from \c codeBlock to call completion handler in specified amount of time. - * - * @param interval Number of seconds which test case should wait before it's continuation. - * @param label Label for executed code which will allow to identify it later in case of failure. - * @param codeBlock GCD block which contain tested async code. Block pass completion handler which - * should be called by tested code. - * @param initialBlock GCD block which contain initialization of code which passed in \c codeBlock. - */ -- (void)waitToCompleteIn:(NSTimeInterval)interval - codeTaskLabel:(nullable NSString *)label - codeBlock:(void(^)(dispatch_block_t handler))codeBlock - afterBlock:(nullable void(^)(void))initialBlock; - -/** - * @brief Expect recorded (OCMExpect) stub not to be called within specified interval. Default - * interval for failed test operation will be used. - * - * @param object Mock from object on which invocation call is expected. - * @param invocation Invocation which is expected to be called. - * @param initialBlock GCD block which contain initialization of code required to invoke tested - * code. - */ -- (void)waitForObject:(id)object - recordedInvocationNotCall:(id)invocation - afterBlock:(nullable void(^)(void))initialBlock; - -/** - * @brief Expect recorded (OCMExpect) stub not to be called within specified interval. - * - * @param object Mock from object on which invocation call is expected. - * @param invocation Invocation which is expected to be called. - * @param interval Number of seconds which test case should wait before it's continuation. - * @param initialBlock GCD block which contain initialization of code required to invoke tested - * code. - */ -- (void)waitForObject:(id)object - recordedInvocationNotCall:(id)invocation - withinInterval:(NSTimeInterval)interval - afterBlock:(nullable void(^)(void))initialBlock; - -/** - * @brief Wait for code from \c codeBlock to not call completion handler in specified amount of - * time. - * - * @param interval Number of seconds which test case should wait before it's continuation. - * @param codeBlock GCD block which contain tested async code. Block pass completion handler which - * should be called by tested code. - */ -- (void)waitToNotCompleteIn:(NSTimeInterval)interval - codeBlock:(void(^)(dispatch_block_t handler))codeBlock; - -/** - * @brief Wait for code from \c codeBlock to not call completion handler in specified amount of time. - * - * @param interval Number of seconds which test case should wait before it's continuation. - * @param codeBlock GCD block which contain tested async code. Block pass completion handler which - * should be called by tested code. - * @param initialBlock GCD block which contain initialization of code which passed in \c codeBlock. - */ -- (void)waitToNotCompleteIn:(NSTimeInterval)interval - codeBlock:(void(^)(dispatch_block_t handler))codeBlock - afterBlock:(nullable void(^)(void))initialBlock; - -/** - * @brief Pause test execution to wait for asynchronous task to complete. - * - * @discussion Useful in case of asynchronous block execution and timer based events. This method - * allow to pause test and wait for specified number of \c seconds. - * - * @param taskName Name of task for which we are waiting to complete. - * @param seconds Number of seconds for which test execution will be postponed to give tested code - * time to perform asynchronous actions. - * - * @return Reference on expectation object which can be used for fulfillment. - */ -- (XCTestExpectation *)waitTask:(NSString *)taskName completionFor:(NSTimeInterval)seconds; - - -#pragma mark - Helpers - -/** - * @brief Retrieve object from invocation at specified index and store it till test case completion. - * - * @param invocation Invocation which passed by OCMock from which object should be retrieved. - * @param index Index of parameter in method signature from which value should be retrieved (offset - * for self and selector applied internally). - * - * @return Object instance passed to method under specified index. - */ -- (id)objectForInvocation:(NSInvocation *)invocation argumentAtIndex:(NSUInteger)index; - -#pragma mark - - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Tests/PNTestCase.m b/Tests/PNTestCase.m deleted file mode 100644 index 570b5d6a8..000000000 --- a/Tests/PNTestCase.m +++ /dev/null @@ -1,661 +0,0 @@ -/** - * @author Serhii Mamontov - * @copyright © 2009-2018 PubNub, Inc. - */ -#import "PNTestCase.h" -#import -#import "NSInvocation+PNTest.h" -#import - - -NS_ASSUME_NONNULL_BEGIN - -#pragma mark Types and structures - -/** - * @brief Type used to describe block for any PubNub callback. - * - * @param client \b PubNub client which used delegate callback. - * @param data Data which has been passed with callback. - * @param shouldRemove Whether handling block should be removed after call or not. - */ -typedef void (^PNTClientCallbackHandler)(PubNub *client, id data, BOOL *shouldRemove); - - -#pragma mark Protected interface declaration - -@interface PNTestCase () - - -#pragma mark - Information - -/** - * @brief Stores number of seconds which should be waited before performing in-test verifications. - */ -@property (nonatomic, assign) NSTimeInterval delayedCheck; - -/** - * @brief Stores number of seconds which positive test should wait till async operation completion. - */ -@property (nonatomic, assign) NSTimeInterval testCompletionDelay; - -/** - * @brief Stores number of seconds which negative test should wait till async operation completion. - */ -@property (nonatomic, assign) NSTimeInterval falseTestCompletionDelay; - -/** - * @brief Resource access serialization queue. - */ -@property (nonatomic, nullable, strong) dispatch_queue_t resourceAccessQueue; - -/** - * @brief PubNub handlers list. - */ -@property (nonatomic, nullable, strong) NSMutableDictionary *> *> *pubNubHandlers; - -/** - * @brief Stores reference on previously created mocking objects. - */ -@property (nonatomic, strong) NSMutableArray *classMocks; - -/** - * @brief Stores reference on previously created mocking objects. - */ -@property (nonatomic, strong) NSMutableArray *instanceMocks; - -/** - * @brief List of objects which has been pulled out from method invocation arguments. - * - * @return List of stored invocation objects. - */ -+ (NSMutableArray *)invocationObjects; - -/** - * @brief Content of \c 'Resources/keysset.plist' which is used with this test. - * - * @return \a NSDictionary with 'pam' and 'regula' set of 'publish'/'subscribe' keys. - * - * @since 4.8.8 - */ -+ (NSDictionary *)testKeysSet; - - -#pragma mark - Listeners - -/** - * @brief Add block which will be called for callbacks from \c client. - * - * @param type One of known event listener callback types: \c status, \c message or \c presence. - * @param client \b PubNub client for which block should be added. - * @param handler Block which should be called for specified callback \c type. - */ -- (void)addHandlerOfType:(NSString *)type forClient:(PubNub *)client withBlock:(PNTClientCallbackHandler)handler; - -/** - * @brief Removed list of blocks for callbacks from \c client. - * - * @param handlers List of handler blocks which should be removed for specified callback \c type. - * @param type One of known event listener callback types: \c status, \c message or \c presence. - * @param client \b PubNub client for which blocks should be removed. - */ -- (void)removeHandlers:(NSArray *)handlers ofType:(NSString *)type forClient:(PubNub *)client; - -/** - * @brief Receive block which will be called for callbacks from \c client. - * - * @param type One of known event listener callback types: \c status, \c message or \c presence. - * @param client \b PubNub client for which block should be retrieved for specified \c type. - * - * @return List of callback handler blocks which can be called. - */ -- (nullable NSArray *)handlersOfType:(NSString *)type forClient:(PubNub *)client; - - -#pragma mark - Handlers - -/** - * @brief Test recorded (OCMExpect) stub call within specified interval. - * - * @param object Mock from object on which invocation call is expected. - * @param invocation Invocation which is expected to be called. - * @param shouldCall Whether tested \c invocation call or reject. - * @param interval Number of seconds which test case should wait before it's continuation. - * @param initialBlock GCD block which contain initialization of code required to invoke tested - * code. - */ -- (void)waitForObject:(id)object - recordedInvocation:(id)invocation - call:(BOOL)shouldCall - withinInterval:(NSTimeInterval)interval - afterBlock:(void(^)(void))initialBlock; - -#pragma mark - - - -@end - -NS_ASSUME_NONNULL_END - - -#pragma mark - Interface implementation - -@implementation PNTestCase - - -#pragma mark - Information - -+ (NSMutableArray *)invocationObjects { - - static NSMutableArray *_invocationObjects; - static dispatch_once_t onceToken; - - dispatch_once(&onceToken, ^{ - _invocationObjects = [NSMutableArray new]; - }); - - return _invocationObjects; -} - -+ (NSDictionary *)testKeysSet { - - static NSDictionary *_testKeysSet; - static dispatch_once_t onceToken; - - dispatch_once(&onceToken, ^{ - NSBundle *testBundle = [NSBundle bundleForClass:self]; - NSString *keysPath = [testBundle pathForResource:@"keysset" ofType:@"plist"]; - _testKeysSet = [NSDictionary dictionaryWithContentsOfFile:keysPath]; - }); - - return _testKeysSet; -} - -- (NSString *)pamSubscribeKey { - - return [[[self class] testKeysSet] valueForKeyPath:@"pam.subscribe"]; -} - -- (NSString *)pamPublishKey { - - return [[[self class] testKeysSet] valueForKeyPath:@"pam.publish"]; -} - -- (NSString *)subscribeKey { - - return [[[self class] testKeysSet] valueForKeyPath:@"regular.subscribe"]; -} - -- (NSString *)publishKey { - - return [[[self class] testKeysSet] valueForKeyPath:@"regular.publish"]; -} - - -#pragma mark - Configuration - -- (void)setUp { - - [super setUp]; - - - self.resourceAccessQueue = dispatch_queue_create("test-case", DISPATCH_QUEUE_SERIAL); - self.pubNubHandlers = [NSMutableDictionary new]; - self.testCompletionDelay = 15.f; - self.delayedCheck = 0.25f; - self.falseTestCompletionDelay = 0.25f; - self.instanceMocks = [NSMutableArray new]; - self.classMocks = [NSMutableArray new]; -} - -- (void)tearDown { - - NSLog(@"\nTest completed.\n"); - - dispatch_sync(self.resourceAccessQueue, ^{ - [self.pubNubHandlers removeAllObjects]; - }); - - if (self.instanceMocks.count || self.classMocks.count) { - [self.instanceMocks makeObjectsPerformSelector:@selector(stopMocking)]; - [self.classMocks makeObjectsPerformSelector:@selector(stopMocking)]; - } - - [self.instanceMocks removeAllObjects]; - [self.classMocks removeAllObjects]; - - [self waitTask:@"clientsDestroyCompletion" completionFor:0.3f]; - - [super tearDown]; -} - - -#pragma mark - Mocking - -- (BOOL)isObjectMocked:(id)object { - - return [self.classMocks containsObject:object] || [self.instanceMocks containsObject:object]; -} - -- (id)mockForObject:(id)object { - - BOOL isClass = object_isClass(object); - __unsafe_unretained id mock = isClass ? OCMClassMock(object) : OCMPartialMock(object); - - if (isClass) { - [self.classMocks addObject:mock]; - } else { - [self.instanceMocks addObject:mock]; - } - - return mock; -} - - -#pragma mark - Listeners - - -- (void)addHandlerOfType:(NSString *)type forClient:(PubNub *)client withBlock:(PNTClientCallbackHandler)handler { - - NSString *instanceID = client.instanceID; - - dispatch_async(self.resourceAccessQueue, ^{ - NSMutableDictionary *handlersByType = self.pubNubHandlers[instanceID]; - - if (!handlersByType) { - handlersByType = [NSMutableDictionary new]; - self.pubNubHandlers[instanceID] = handlersByType; - } - - NSMutableArray *handlers = handlersByType[type]; - - if (!handlers) { - handlers = [NSMutableArray new]; - handlersByType[type] = handlers; - } - - [handlers addObject:handler]; - }); -} - -- (void)removeHandlers:(NSArray *)handlers ofType:(NSString *)type forClient:(PubNub *)client { - - NSString *instanceID = client.instanceID; - - dispatch_async(self.resourceAccessQueue, ^{ - NSMutableDictionary *handlersByType = self.pubNubHandlers[instanceID]; - [handlersByType[type] removeObjectsInArray:handlers]; - }); -} - -- (NSArray *)handlersOfType:(NSString *)type forClient:(PubNub *)client { - - __block NSArray *handlers = nil; - NSString *instanceID = client.instanceID; - - dispatch_sync(self.resourceAccessQueue, ^{ - handlers = [self.pubNubHandlers[instanceID][type] copy]; - }); - - return handlers; -} - -- (void)addStatusHandlerForClient:(PubNub *)client withBlock:(PNTClientDidReceiveStatusHandler)handler { - [self addHandlerOfType:@"status" forClient:client withBlock:handler]; -} - -- (void)addMessageHandlerForClient:(PubNub *)client withBlock:(PNTClientDidReceiveMessageHandler)handler { - [self addHandlerOfType:@"message" forClient:client withBlock:handler]; -} - -- (void)addSignalHandlerForClient:(PubNub *)client withBlock:(PNTClientDidReceiveSignalHandler)handler { - [self addHandlerOfType:@"signal" forClient:client withBlock:handler]; -} - -- (void)addPresenceHandlerForClient:(PubNub *)client withBlock:(PNTClientDidReceivePresenceEventHandler)handler { - - [self addHandlerOfType:@"presence" forClient:client withBlock:handler]; -} - -- (void)addUserHandlerForClient:(PubNub *)client withBlock:(PNTClientDidReceiveUserEventHandler)handler { - [self addHandlerOfType:@"user" forClient:client withBlock:handler]; -} - -- (void)addSpaceHandlerForClient:(PubNub *)client withBlock:(PNTClientDidReceiveSpaceEventHandler)handler { - [self addHandlerOfType:@"space" forClient:client withBlock:handler]; -} - -- (void)addMembershipHandlerForClient:(PubNub *)client withBlock:(PNTClientDidReceiveMembershipEventHandler)handler { - [self addHandlerOfType:@"membership" forClient:client withBlock:handler]; -} - -- (void)addActionHandlerForClient:(PubNub *)client withBlock:(PNTClientDidReceiveMessageActionHandler)handler { - [self addHandlerOfType:@"actions" forClient:client withBlock:handler]; -} - -- (void)removeAllHandlersForClient:(PubNub *)client { - - NSString *instanceID = client.instanceID; - - dispatch_sync(self.resourceAccessQueue, ^{ - [self.pubNubHandlers removeObjectForKey:instanceID]; - }); -} - - -#pragma mark - Handlers - -- (void)waitForObject:(id)object - recordedInvocation:(id)invocation - call:(BOOL)shouldCall - withinInterval:(NSTimeInterval)interval - afterBlock:(void(^)(void))initialBlock { - - dispatch_semaphore_t semaphore = dispatch_semaphore_create(0); - __block BOOL handlerCalled = NO; - - ((OCMStubRecorder *)invocation).andDo(^(NSInvocation *expectedInvocation) { - handlerCalled = YES; - dispatch_semaphore_signal(semaphore); - }); - - if (initialBlock) { - initialBlock(); - } - - dispatch_semaphore_wait(semaphore, - dispatch_time(DISPATCH_TIME_NOW, (int64_t)(interval * NSEC_PER_SEC))); - - if (shouldCall) { - XCTAssertTrue(handlerCalled); - } else { - XCTAssertFalse(handlerCalled); - } - - OCMVerifyAll(object); -} - -- (void)waitForObject:(id)object - recordedInvocationCall:(id)invocation - afterBlock:(void(^)(void))initialBlock { - - [self waitForObject:object - recordedInvocationCall:invocation - withinInterval:self.testCompletionDelay - afterBlock:initialBlock]; -} - -- (void)waitForObject:(id)object - recordedInvocationCall:(id)invocation - withinInterval:(NSTimeInterval)interval - afterBlock:(void(^)(void))initialBlock { - - [self waitForObject:object - recordedInvocation:invocation - call:YES - withinInterval:interval - afterBlock:initialBlock]; -} - -- (void)waitToCompleteIn:(NSTimeInterval)interval - codeBlock:(void(^)(dispatch_block_t handler))codeBlock { - - [self waitToCompleteIn:interval codeBlock:codeBlock afterBlock:nil]; -} - -- (void)waitToCompleteIn:(NSTimeInterval)interval - codeTaskLabel:(NSString *)label - codeBlock:(void(^)(dispatch_block_t handler))codeBlock { - - [self waitToCompleteIn:interval codeTaskLabel:label codeBlock:codeBlock afterBlock:nil]; -} - -- (void)waitToCompleteIn:(NSTimeInterval)interval - codeBlock:(void(^)(dispatch_block_t handler))codeBlock - afterBlock:(void(^)(void))initialBlock { - - [self waitToCompleteIn:interval codeTaskLabel:nil codeBlock:codeBlock afterBlock:initialBlock]; -} - -- (void)waitToCompleteIn:(NSTimeInterval)interval - codeTaskLabel:(NSString *)label - codeBlock:(void(^)(dispatch_block_t handler))codeBlock - afterBlock:(void(^)(void))initialBlock { - - dispatch_semaphore_t semaphore = dispatch_semaphore_create(0); - __block BOOL handlerCalled = NO; - - codeBlock(^{ - handlerCalled = YES; - dispatch_semaphore_signal(semaphore); - }); - - if (initialBlock) { - initialBlock(); - } - - dispatch_semaphore_wait(semaphore, - dispatch_time(DISPATCH_TIME_NOW, (int64_t)(interval * NSEC_PER_SEC))); - - if (label) { - XCTAssertTrue(handlerCalled, @"'%@' code block not completed in time", label); - } else { - XCTAssertTrue(handlerCalled); - } -} - -- (void)waitForObject:(id)object - recordedInvocationNotCall:(id)invocation - afterBlock:(void(^)(void))initialBlock { - - [self waitForObject:object - recordedInvocationNotCall:invocation - withinInterval:self.falseTestCompletionDelay - afterBlock:initialBlock]; -} - -- (void)waitForObject:(id)object - recordedInvocationNotCall:(id)invocation - withinInterval:(NSTimeInterval)interval - afterBlock:(nullable void(^)(void))initialBlock { - - [self waitForObject:object recordedInvocation:invocation call:NO withinInterval:interval - afterBlock:initialBlock]; -} - -- (void)waitToNotCompleteIn:(NSTimeInterval)delay - codeBlock:(void(^)(dispatch_block_t handler))codeBlock { - - [self waitToNotCompleteIn:delay codeBlock:codeBlock afterBlock:nil]; -} - -- (void)waitToNotCompleteIn:(NSTimeInterval)delay - codeBlock:(void(^)(dispatch_block_t handler))codeBlock - afterBlock:(void(^)(void))initialBlock { - - dispatch_semaphore_t semaphore = dispatch_semaphore_create(0); - __block BOOL handlerCalled = NO; - - codeBlock(^{ - handlerCalled = YES; - dispatch_semaphore_signal(semaphore); - }); - - if (initialBlock) { - initialBlock(); - } - - dispatch_semaphore_wait(semaphore, - dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delay * NSEC_PER_SEC))); - XCTAssertFalse(handlerCalled); -} - -- (XCTestExpectation *)waitTask:(NSString *)taskName completionFor:(NSTimeInterval)seconds { - - if (seconds <= 0.f) { - return nil; - } - - XCTestExpectation *waitExpectation = [self expectationWithDescription:taskName]; - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(seconds * NSEC_PER_SEC)), - dispatch_get_main_queue(), ^{ - [waitExpectation fulfill]; - }); - - [self waitForExpectations:@[waitExpectation] timeout:(seconds + 0.3f)]; - - return waitExpectation; -} - -- (void)client:(PubNub *)client didReceiveStatus:(PNStatus *)status { - - NSMutableArray *handlersForRemoval = [NSMutableArray new]; - NSArray *handlers = [self handlersOfType:@"status" forClient:client]; - - for (PNTClientCallbackHandler handler in handlers) { - BOOL shouldRemoved = NO; - - handler(client, status, &shouldRemoved); - - if (shouldRemoved) { - [handlersForRemoval addObject:handler]; - } - } - - [self removeHandlers:handlersForRemoval ofType:@"status" forClient:client]; -} - -- (void)client:(PubNub *)client didReceiveMessage:(PNMessageResult *)message { - - NSMutableArray *handlersForRemoval = [NSMutableArray new]; - NSArray *handlers = [self handlersOfType:@"message" forClient:client]; - - for (PNTClientCallbackHandler handler in handlers) { - BOOL shouldRemoved = NO; - - handler(client, message, &shouldRemoved); - - if (shouldRemoved) { - [handlersForRemoval addObject:handler]; - } - } - - [self removeHandlers:handlersForRemoval ofType:@"message" forClient:client]; -} - -- (void)client:(PubNub *)client didReceiveSignal:(PNSignalResult *)signal { - NSMutableArray *handlersForRemoval = [NSMutableArray new]; - NSArray *handlers = [self handlersOfType:@"signal" forClient:client]; - - for (PNTClientCallbackHandler handler in handlers) { - BOOL shouldRemoved = NO; - - handler(client, signal, &shouldRemoved); - - if (shouldRemoved) { - [handlersForRemoval addObject:handler]; - } - } - - [self removeHandlers:handlersForRemoval ofType:@"signal" forClient:client]; -} - -- (void)client:(PubNub *)client didReceiveMessageAction:(PNMessageActionResult *)action { - NSMutableArray *handlersForRemoval = [NSMutableArray new]; - NSArray *handlers = [self handlersOfType:@"actions" forClient:client]; - - for (PNTClientCallbackHandler handler in handlers) { - BOOL shouldRemoved = NO; - - handler(client, action, &shouldRemoved); - - if (shouldRemoved) { - [handlersForRemoval addObject:handler]; - } - } - - [self removeHandlers:handlersForRemoval ofType:@"actions" forClient:client]; -} - -- (void)client:(PubNub *)client didReceivePresenceEvent:(PNPresenceEventResult *)event { - - NSMutableArray *handlersForRemoval = [NSMutableArray new]; - NSArray *handlers = [self handlersOfType:@"presence" forClient:client]; - - for (PNTClientCallbackHandler handler in handlers) { - BOOL shouldRemoved = NO; - - handler(client, event, &shouldRemoved); - - if (shouldRemoved) { - [handlersForRemoval addObject:handler]; - } - } - - [self removeHandlers:handlersForRemoval ofType:@"presence" forClient:client]; -} - -- (void)client:(PubNub *)client didReceiveUserEvent:(PNUserEventResult *)event { - NSMutableArray *handlersForRemoval = [NSMutableArray new]; - NSArray *handlers = [self handlersOfType:@"user" forClient:client]; - - for (PNTClientCallbackHandler handler in handlers) { - BOOL shouldRemoved = NO; - - handler(client, event, &shouldRemoved); - - if (shouldRemoved) { - [handlersForRemoval addObject:handler]; - } - } - - [self removeHandlers:handlersForRemoval ofType:@"user" forClient:client]; -} - -- (void)client:(PubNub *)client didReceiveSpaceEvent:(PNSpaceEventResult *)event { - NSMutableArray *handlersForRemoval = [NSMutableArray new]; - NSArray *handlers = [self handlersOfType:@"space" forClient:client]; - - for (PNTClientCallbackHandler handler in handlers) { - BOOL shouldRemoved = NO; - - handler(client, event, &shouldRemoved); - - if (shouldRemoved) { - [handlersForRemoval addObject:handler]; - } - } - - [self removeHandlers:handlersForRemoval ofType:@"space" forClient:client]; -} - -- (void)client:(PubNub *)client didReceiveMembershipEvent:(PNMembershipEventResult *)event { - NSMutableArray *handlersForRemoval = [NSMutableArray new]; - NSArray *handlers = [self handlersOfType:@"membership" forClient:client]; - - for (PNTClientCallbackHandler handler in handlers) { - BOOL shouldRemoved = NO; - - handler(client, event, &shouldRemoved); - - if (shouldRemoved) { - [handlersForRemoval addObject:handler]; - } - } - - [self removeHandlers:handlersForRemoval ofType:@"membership" forClient:client]; -} - - -#pragma mark - Helpers - -- (id)objectForInvocation:(NSInvocation *)invocation argumentAtIndex:(NSUInteger)index { - - __strong id object = [invocation objectForArgumentAtIndex:(index + 1)]; - - [[PNTestCase invocationObjects] addObject:object]; - - return object; -} - -@end diff --git a/Tests/Podfile b/Tests/Podfile index 0df67c093..4bd868b27 100644 --- a/Tests/Podfile +++ b/Tests/Podfile @@ -1,37 +1,44 @@ +workspace 'PubNub Tests' install! 'cocoapods', :lock_pod_sources => false use_frameworks! - -target 'iOS ObjC Tests' do - platform :ios, "9.0" - project 'PubNub Tests' - pod 'OCMock', '= 3.4.3' - pod "BeKindRewind" - pod "PubNub", :path => "../" -end -# target 'iOS Swift Tests' do -# platform :ios, "9.0" -# project 'Tests/PubNub Tests' -# pod "BeKindRewind" -# pod "PubNub", :path => "." -# end - -target 'OSX ObjC Tests' do - platform :osx, '10.11' - project 'PubNub Tests' - pod 'OCMock', '= 3.4.3' - pod "BeKindRewind" - pod "PubNub", :path => "../" +abstract_target 'MockableTests' do + pod 'PubNub', :path => '../' + pod 'OCMock', '= 3.6' + pod 'YAHTTPVCR' + + target '[macOS] Mocked Integration Tests' do + platform :osx, '10.11' + end + + target '[tvOS] Mocked Integration Tests' do + platform :tvos, '10.0' + end + + target '[iOS] Mocked Integration Tests' do + platform :ios, '9.0' + end + + target '[macOS] Unit Tests' do + platform :osx, '10.11' + end + + target '[tvOS] Unit Tests' do + platform :tvos, '10.0' + end + + target '[iOS] Unit Tests' do + platform :ios, '9.0' + end end -target 'tvOS ObjC Tests' do - platform :tvos, '10.0' - project 'PubNub Tests' - pod 'OCMock', '= 3.4.3' - pod "BeKindRewind" - pod "PubNub", :path => "../" +target '[iOS] Integration Tests' do + platform :ios, '9.0' + pod 'PubNub', :path => '../' end + + # Making all interfaces visible for all targets on explicit import pre_install do |installer_representation| installer_representation.aggregate_targets.each do |aggregate_target| @@ -46,9 +53,9 @@ end post_install do |installer_representation| installer_representation.pods_project.targets.each do |target| target.build_configurations.each do |config| - config.build_settings['GCC_INSTRUMENT_PROGRAM_FLOW_ARCS'] = 'YES' - config.build_settings['GCC_GENERATE_TEST_COVERAGE_FILES'] = 'YES' - config.build_settings['GCC_WARN_INHIBIT_ALL_WARNINGS'] = 'YES' unless target.name =~ /PubNub/ + config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] = '$(inherited) PUBNUB_DISABLE_LOGGER=1' + config.build_settings['CLANG_ENABLE_CODE_COVERAGE'] = target.name =~ /PubNub/ ? 'YES' : 'NO' + end end end diff --git a/Tests/PubNub Tests.xcodeproj/project.pbxproj b/Tests/PubNub Tests.xcodeproj/project.pbxproj index 43dc45b32..6654d162c 100644 --- a/Tests/PubNub Tests.xcodeproj/project.pbxproj +++ b/Tests/PubNub Tests.xcodeproj/project.pbxproj @@ -3,1229 +3,871 @@ archiveVersion = 1; classes = { }; - objectVersion = 46; + objectVersion = 51; objects = { /* Begin PBXBuildFile section */ - 283D0B1826722FCA35717E8F /* Pods_tvOS_ObjC_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 54990DF75CBFC7C405B645D5 /* Pods_tvOS_ObjC_Tests.framework */; }; - 517A9EDB1BE3185800FAA43A /* PNAPNSTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04911B4EAAB7007478CB /* PNAPNSTests.m */; }; - 517A9EDC1BE3185800FAA43A /* PNChannelGroupSubscribeTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04921B4EAAB7007478CB /* PNChannelGroupSubscribeTests.m */; }; - 517A9EDD1BE3185800FAA43A /* PNChannelGroupTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04931B4EAAB7007478CB /* PNChannelGroupTests.m */; }; - 517A9EDE1BE3185800FAA43A /* PNChannelGroupUnsubscribeTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04941B4EAAB7007478CB /* PNChannelGroupUnsubscribeTests.m */; }; - 517A9EDF1BE3185800FAA43A /* PNClientConfigurationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04951B4EAAB7007478CB /* PNClientConfigurationTests.m */; }; - 517A9EE01BE3185800FAA43A /* PNClientStateChannelGroupTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04961B4EAAB7007478CB /* PNClientStateChannelGroupTests.m */; }; - 517A9EE11BE3185800FAA43A /* PNClientStateChannelTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04971B4EAAB7007478CB /* PNClientStateChannelTests.m */; }; - 517A9EE21BE3185800FAA43A /* PNHeartbeatTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04981B4EAAB7007478CB /* PNHeartbeatTests.m */; }; - 517A9EE31BE3185800FAA43A /* PNHistoryTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04991B4EAAB7007478CB /* PNHistoryTests.m */; }; - 517A9EE41BE3185800FAA43A /* PNPresenceTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF049A1B4EAAB7007478CB /* PNPresenceTests.m */; }; - 517A9EE51BE3185800FAA43A /* PNPresenceEventTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 967707F61B8F4A80002B8E84 /* PNPresenceEventTests.m */; }; - 517A9EE61BE3185800FAA43A /* PNPublishCompressedTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF049B1B4EAAB7007478CB /* PNPublishCompressedTests.m */; }; - 517A9EE71BE3185800FAA43A /* PNPublishSizeOfMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF049C1B4EAAB7007478CB /* PNPublishSizeOfMessage.m */; }; - 517A9EE81BE3185800FAA43A /* PNPublishTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF049D1B4EAAB7007478CB /* PNPublishTests.m */; }; - 517A9EE91BE3185800FAA43A /* PNPublishWithHistoryTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF049E1B4EAAB7007478CB /* PNPublishWithHistoryTests.m */; }; - 517A9EEA1BE3185800FAA43A /* PNPublishWithMobilePayloadTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF049F1B4EAAB7007478CB /* PNPublishWithMobilePayloadTests.m */; }; - 517A9EEB1BE3185800FAA43A /* PNSubscribeTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04A01B4EAAB7007478CB /* PNSubscribeTests.m */; }; - 517A9EEC1BE3185800FAA43A /* PNSubscribeToPresenceChannelsTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04A11B4EAAB7007478CB /* PNSubscribeToPresenceChannelsTests.m */; }; - 517A9EED1BE3185800FAA43A /* PNTimeTokenTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04A21B4EAAB7007478CB /* PNTimeTokenTests.m */; }; - 517A9EEE1BE3185800FAA43A /* PNUnsubscribeTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04A31B4EAAB7007478CB /* PNUnsubscribeTests.m */; }; - 517A9EEF1BE3185800FAA43A /* PNConfigurationChiperKeyTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 9652F3E41BA31F7D001E940A /* PNConfigurationChiperKeyTests.m */; }; - 517A9EF01BE3189300FAA43A /* PNBasicClientTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04B81B4EAAE4007478CB /* PNBasicClientTestCase.m */; }; - 517A9EF11BE3189700FAA43A /* PNBasicSubscribeTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04BA1B4EAAE4007478CB /* PNBasicSubscribeTestCase.m */; }; - 517A9EF21BE3189900FAA43A /* PNBasicClientCryptTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 9652F3E11BA31D9A001E940A /* PNBasicClientCryptTestCase.m */; }; - 517A9EF31BE318B400FAA43A /* NSDictionary+PNTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04BE1B4EAB01007478CB /* NSDictionary+PNTest.m */; }; - 517A9EF41BE318B700FAA43A /* NSString+PNTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04C01B4EAB01007478CB /* NSString+PNTest.m */; }; - 517A9EF51BE318B900FAA43A /* NSArray+PNTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 96F0239D1B580D0000C4A581 /* NSArray+PNTest.m */; }; - 517A9EF61BE31ADB00FAA43A /* PNConfigurationChiperKeyTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 9652F3E61BA6E90B001E940A /* PNConfigurationChiperKeyTests.bundle */; }; - 517A9EF71BE31ADB00FAA43A /* PNPresenceEventTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 960354F51B90629C0047EE04 /* PNPresenceEventTests.bundle */; }; - 517A9EF91BE31ADB00FAA43A /* PNChannelGroupSubscribeTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04C41B4EAB1A007478CB /* PNChannelGroupSubscribeTests.bundle */; }; - 517A9EFB1BE31ADB00FAA43A /* PNChannelGroupUnsubscribeTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04C61B4EAB1A007478CB /* PNChannelGroupUnsubscribeTests.bundle */; }; - 517A9EFC1BE31ADB00FAA43A /* PNClientConfigurationTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04C71B4EAB1A007478CB /* PNClientConfigurationTests.bundle */; }; - 517A9EFD1BE31ADB00FAA43A /* PNClientStateChannelGroupTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04C81B4EAB1A007478CB /* PNClientStateChannelGroupTests.bundle */; }; - 517A9EFE1BE31ADB00FAA43A /* PNClientStateChannelTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04C91B4EAB1A007478CB /* PNClientStateChannelTests.bundle */; }; - 517A9EFF1BE31ADB00FAA43A /* PNHeartbeatTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04CA1B4EAB1A007478CB /* PNHeartbeatTests.bundle */; }; - 517A9F001BE31ADB00FAA43A /* PNHistoryTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04CB1B4EAB1A007478CB /* PNHistoryTests.bundle */; }; - 517A9F011BE31ADB00FAA43A /* PNPresenceTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04CC1B4EAB1A007478CB /* PNPresenceTests.bundle */; }; - 517A9F061BE31ADB00FAA43A /* PNSubscribeTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04D11B4EAB1A007478CB /* PNSubscribeTests.bundle */; }; - 517A9F071BE31ADB00FAA43A /* PNSubscribeToPresenceChannelsTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04D21B4EAB1A007478CB /* PNSubscribeToPresenceChannelsTests.bundle */; }; - 517A9F091BE31ADB00FAA43A /* PNUnsubscribeTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04D41B4EAB1A007478CB /* PNUnsubscribeTests.bundle */; }; - 51A6E6001BE421DC00C20B77 /* PNDeviceIndependentMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 51A6E5FF1BE421DC00C20B77 /* PNDeviceIndependentMatcher.m */; }; - 51A6E6011BE421DC00C20B77 /* PNDeviceIndependentMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 51A6E5FF1BE421DC00C20B77 /* PNDeviceIndependentMatcher.m */; }; - 51BB25401B6814EF00A9F154 /* PNBasicSubscribeTestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51BB253F1B6814EF00A9F154 /* PNBasicSubscribeTestCase.swift */; }; - 51BB25421B6815F300A9F154 /* PNTimeTokenTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51BB25411B6815F300A9F154 /* PNTimeTokenTests.swift */; }; - 51BB25441B68176C00A9F154 /* PNChannelGroupSubscribeTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04C41B4EAB1A007478CB /* PNChannelGroupSubscribeTests.bundle */; }; - 51BB25461B68176C00A9F154 /* PNChannelGroupUnsubscribeTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04C61B4EAB1A007478CB /* PNChannelGroupUnsubscribeTests.bundle */; }; - 51BB25471B68176C00A9F154 /* PNClientConfigurationTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04C71B4EAB1A007478CB /* PNClientConfigurationTests.bundle */; }; - 51BB25481B68176C00A9F154 /* PNClientStateChannelGroupTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04C81B4EAB1A007478CB /* PNClientStateChannelGroupTests.bundle */; }; - 51BB25491B68176C00A9F154 /* PNClientStateChannelTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04C91B4EAB1A007478CB /* PNClientStateChannelTests.bundle */; }; - 51BB254A1B68176C00A9F154 /* PNHeartbeatTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04CA1B4EAB1A007478CB /* PNHeartbeatTests.bundle */; }; - 51BB254B1B68176C00A9F154 /* PNHistoryTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04CB1B4EAB1A007478CB /* PNHistoryTests.bundle */; }; - 51BB254C1B68176C00A9F154 /* PNPresenceTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04CC1B4EAB1A007478CB /* PNPresenceTests.bundle */; }; - 51BB25511B68176C00A9F154 /* PNSubscribeTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04D11B4EAB1A007478CB /* PNSubscribeTests.bundle */; }; - 51BB25521B68176C00A9F154 /* PNSubscribeToPresenceChannelsTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04D21B4EAB1A007478CB /* PNSubscribeToPresenceChannelsTests.bundle */; }; - 51BB25541B68176C00A9F154 /* PNUnsubscribeTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04D41B4EAB1A007478CB /* PNUnsubscribeTests.bundle */; }; - 51D889F21B66F49E009127D0 /* PNBasicClientTestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51D889F11B66F49E009127D0 /* PNBasicClientTestCase.swift */; }; - 7933B4DA22D666B70097458F /* PNSignalTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 7933B4D922D666B70097458F /* PNSignalTest.m */; }; - 7933B4DB22D666B70097458F /* PNSignalTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 7933B4D922D666B70097458F /* PNSignalTest.m */; }; - 7933B4DC22D666B70097458F /* PNSignalTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 7933B4D922D666B70097458F /* PNSignalTest.m */; }; - 793C2D26228C5468000E7A35 /* PNPublishCompressedTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 793C2D25228C5467000E7A35 /* PNPublishCompressedTests.bundle */; }; - 793C2D27228C5468000E7A35 /* PNPublishCompressedTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 793C2D25228C5467000E7A35 /* PNPublishCompressedTests.bundle */; }; - 793C2D28228C5468000E7A35 /* PNPublishCompressedTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 793C2D25228C5467000E7A35 /* PNPublishCompressedTests.bundle */; }; - 793C2D2E228C7B5C000E7A35 /* PNPublishTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 793C2D2D228C7B5C000E7A35 /* PNPublishTests.bundle */; }; - 793C2D2F228C7B5C000E7A35 /* PNPublishTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 793C2D2D228C7B5C000E7A35 /* PNPublishTests.bundle */; }; - 793C2D30228C7B5C000E7A35 /* PNPublishTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 793C2D2D228C7B5C000E7A35 /* PNPublishTests.bundle */; }; - 793C2D32228C7B72000E7A35 /* PNPublishWithHistoryTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 793C2D31228C7B72000E7A35 /* PNPublishWithHistoryTests.bundle */; }; - 793C2D33228C7B72000E7A35 /* PNPublishWithHistoryTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 793C2D31228C7B72000E7A35 /* PNPublishWithHistoryTests.bundle */; }; - 793C2D34228C7B72000E7A35 /* PNPublishWithHistoryTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 793C2D31228C7B72000E7A35 /* PNPublishWithHistoryTests.bundle */; }; - 793C2D36228C7BB6000E7A35 /* PNPublishWithMobilePayloadTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 793C2D35228C7BB6000E7A35 /* PNPublishWithMobilePayloadTests.bundle */; }; - 793C2D37228C7BB6000E7A35 /* PNPublishWithMobilePayloadTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 793C2D35228C7BB6000E7A35 /* PNPublishWithMobilePayloadTests.bundle */; }; - 793C2D38228C7BB6000E7A35 /* PNPublishWithMobilePayloadTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 793C2D35228C7BB6000E7A35 /* PNPublishWithMobilePayloadTests.bundle */; }; - 794B5663228D4A67007AB94F /* PNChannelGroupTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 794B5662228D4A67007AB94F /* PNChannelGroupTests.bundle */; }; - 794B5664228D4A67007AB94F /* PNChannelGroupTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 794B5662228D4A67007AB94F /* PNChannelGroupTests.bundle */; }; - 794B5665228D4A67007AB94F /* PNChannelGroupTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 794B5662228D4A67007AB94F /* PNChannelGroupTests.bundle */; }; - 794B5667228D4AA2007AB94F /* PNAPNSTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 794B5666228D4AA2007AB94F /* PNAPNSTests.bundle */; }; - 794B5668228D4AA2007AB94F /* PNAPNSTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 794B5666228D4AA2007AB94F /* PNAPNSTests.bundle */; }; - 794B5669228D4AA2007AB94F /* PNAPNSTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 794B5666228D4AA2007AB94F /* PNAPNSTests.bundle */; }; - 794B566B228D4B19007AB94F /* PNPublishSizeOfMessage.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 794B566A228D4B19007AB94F /* PNPublishSizeOfMessage.bundle */; }; - 794B566C228D4B19007AB94F /* PNPublishSizeOfMessage.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 794B566A228D4B19007AB94F /* PNPublishSizeOfMessage.bundle */; }; - 794B566D228D4B19007AB94F /* PNPublishSizeOfMessage.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 794B566A228D4B19007AB94F /* PNPublishSizeOfMessage.bundle */; }; - 794B6B8A228D492400489D37 /* PNTimeTokenTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 794B6B89228D492400489D37 /* PNTimeTokenTests.bundle */; }; - 794B6B8B228D492400489D37 /* PNTimeTokenTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 794B6B89228D492400489D37 /* PNTimeTokenTests.bundle */; }; - 794B6B8C228D492400489D37 /* PNTimeTokenTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 794B6B89228D492400489D37 /* PNTimeTokenTests.bundle */; }; - 795CED0A1BCF002900D421BB /* PNHeartbeatTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 795CED091BCF002900D421BB /* PNHeartbeatTests.swift */; }; - 796502F31C0E3709001F7782 /* PNDeviceIndependentMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 51A6E5FF1BE421DC00C20B77 /* PNDeviceIndependentMatcher.m */; }; - 797A333C22C32B3D0036D28C /* PNSubscribeIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 797A333B22C32B3D0036D28C /* PNSubscribeIntegrationTest.m */; }; - 797A333D22C32B3D0036D28C /* PNSubscribeIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 797A333B22C32B3D0036D28C /* PNSubscribeIntegrationTest.m */; }; - 797A333E22C32B470036D28C /* PNSubscribeIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 797A333B22C32B3D0036D28C /* PNSubscribeIntegrationTest.m */; }; - 797BDCCA1C1F5091006EF006 /* PNPublishWithMobilePayloadTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF049F1B4EAAB7007478CB /* PNPublishWithMobilePayloadTests.m */; }; - 797BDCCB1C1F5091006EF006 /* PNConfigurationChiperKeyTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 9652F3E41BA31F7D001E940A /* PNConfigurationChiperKeyTests.m */; }; - 797BDCCC1C1F5091006EF006 /* PNPublishTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF049D1B4EAAB7007478CB /* PNPublishTests.m */; }; - 797BDCCD1C1F5091006EF006 /* PNTimeTokenTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04A21B4EAAB7007478CB /* PNTimeTokenTests.m */; }; - 797BDCCE1C1F5091006EF006 /* PNUnsubscribeTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04A31B4EAAB7007478CB /* PNUnsubscribeTests.m */; }; - 797BDCCF1C1F5091006EF006 /* PNPublishCompressedTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF049B1B4EAAB7007478CB /* PNPublishCompressedTests.m */; }; - 797BDCD01C1F5091006EF006 /* PNSubscribeToPresenceChannelsTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04A11B4EAAB7007478CB /* PNSubscribeToPresenceChannelsTests.m */; }; - 797BDCD11C1F5091006EF006 /* NSDictionary+PNTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04BE1B4EAB01007478CB /* NSDictionary+PNTest.m */; }; - 797BDCD21C1F5091006EF006 /* PNAPNSTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04911B4EAAB7007478CB /* PNAPNSTests.m */; }; - 797BDCD31C1F5091006EF006 /* PNHistoryTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04991B4EAAB7007478CB /* PNHistoryTests.m */; }; - 797BDCD41C1F5091006EF006 /* PNSubscribeTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04A01B4EAAB7007478CB /* PNSubscribeTests.m */; }; - 797BDCD51C1F5091006EF006 /* PNBasicSubscribeTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04BA1B4EAAE4007478CB /* PNBasicSubscribeTestCase.m */; }; - 797BDCD61C1F5091006EF006 /* PNChannelGroupSubscribeTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04921B4EAAB7007478CB /* PNChannelGroupSubscribeTests.m */; }; - 797BDCD71C1F5091006EF006 /* PNBasicClientCryptTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 9652F3E11BA31D9A001E940A /* PNBasicClientCryptTestCase.m */; }; - 797BDCD81C1F5091006EF006 /* PNClientStateChannelGroupTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04961B4EAAB7007478CB /* PNClientStateChannelGroupTests.m */; }; - 797BDCD91C1F5091006EF006 /* PNDeviceIndependentMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 51A6E5FF1BE421DC00C20B77 /* PNDeviceIndependentMatcher.m */; }; - 797BDCDA1C1F5091006EF006 /* PNChannelGroupUnsubscribeTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04941B4EAAB7007478CB /* PNChannelGroupUnsubscribeTests.m */; }; - 797BDCDB1C1F5091006EF006 /* PNPresenceEventTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 967707F61B8F4A80002B8E84 /* PNPresenceEventTests.m */; }; - 797BDCDC1C1F5091006EF006 /* PNClientStateChannelTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04971B4EAAB7007478CB /* PNClientStateChannelTests.m */; }; - 797BDCDD1C1F5091006EF006 /* PNBasicClientTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04B81B4EAAE4007478CB /* PNBasicClientTestCase.m */; }; - 797BDCDE1C1F5091006EF006 /* NSString+PNTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04C01B4EAB01007478CB /* NSString+PNTest.m */; }; - 797BDCDF1C1F5091006EF006 /* PNPublishWithHistoryTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF049E1B4EAAB7007478CB /* PNPublishWithHistoryTests.m */; }; - 797BDCE01C1F5091006EF006 /* PNPresenceTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF049A1B4EAAB7007478CB /* PNPresenceTests.m */; }; - 797BDCE11C1F5091006EF006 /* PNChannelGroupTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04931B4EAAB7007478CB /* PNChannelGroupTests.m */; }; - 797BDCE21C1F5091006EF006 /* NSArray+PNTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 96F0239D1B580D0000C4A581 /* NSArray+PNTest.m */; }; - 797BDCE31C1F5091006EF006 /* PNPublishSizeOfMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF049C1B4EAAB7007478CB /* PNPublishSizeOfMessage.m */; }; - 797BDCE41C1F5091006EF006 /* PNHeartbeatTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04981B4EAAB7007478CB /* PNHeartbeatTests.m */; }; - 797BDCE51C1F5091006EF006 /* PNClientConfigurationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04951B4EAAB7007478CB /* PNClientConfigurationTests.m */; }; - 797BDCE91C1F5091006EF006 /* PNPresenceEventTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 960354F51B90629C0047EE04 /* PNPresenceEventTests.bundle */; }; - 797BDCEA1C1F5091006EF006 /* PNConfigurationChiperKeyTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 9652F3E61BA6E90B001E940A /* PNConfigurationChiperKeyTests.bundle */; }; - 797BDCEC1C1F5091006EF006 /* PNHistoryTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04CB1B4EAB1A007478CB /* PNHistoryTests.bundle */; }; - 797BDCEF1C1F5091006EF006 /* PNHeartbeatTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04CA1B4EAB1A007478CB /* PNHeartbeatTests.bundle */; }; - 797BDCF11C1F5091006EF006 /* PNClientStateChannelGroupTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04C81B4EAB1A007478CB /* PNClientStateChannelGroupTests.bundle */; }; - 797BDCF21C1F5091006EF006 /* PNClientStateChannelTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04C91B4EAB1A007478CB /* PNClientStateChannelTests.bundle */; }; - 797BDCF31C1F5091006EF006 /* PNChannelGroupSubscribeTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04C41B4EAB1A007478CB /* PNChannelGroupSubscribeTests.bundle */; }; - 797BDCF41C1F5091006EF006 /* PNSubscribeToPresenceChannelsTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04D21B4EAB1A007478CB /* PNSubscribeToPresenceChannelsTests.bundle */; }; - 797BDCF51C1F5091006EF006 /* PNSubscribeTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04D11B4EAB1A007478CB /* PNSubscribeTests.bundle */; }; - 797BDCF61C1F5091006EF006 /* PNChannelGroupUnsubscribeTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04C61B4EAB1A007478CB /* PNChannelGroupUnsubscribeTests.bundle */; }; - 797BDCF71C1F5091006EF006 /* PNClientConfigurationTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04C71B4EAB1A007478CB /* PNClientConfigurationTests.bundle */; }; - 797BDCF91C1F5091006EF006 /* PNPresenceTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04CC1B4EAB1A007478CB /* PNPresenceTests.bundle */; }; - 797BDCFC1C1F5091006EF006 /* PNUnsubscribeTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04D41B4EAB1A007478CB /* PNUnsubscribeTests.bundle */; }; - 797BDD071C1F5176006EF006 /* PNPublishWithMobilePayloadTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF049F1B4EAAB7007478CB /* PNPublishWithMobilePayloadTests.m */; }; - 797BDD081C1F5176006EF006 /* PNConfigurationChiperKeyTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 9652F3E41BA31F7D001E940A /* PNConfigurationChiperKeyTests.m */; }; - 797BDD091C1F5176006EF006 /* PNPublishTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF049D1B4EAAB7007478CB /* PNPublishTests.m */; }; - 797BDD0A1C1F5176006EF006 /* PNTimeTokenTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04A21B4EAAB7007478CB /* PNTimeTokenTests.m */; }; - 797BDD0B1C1F5176006EF006 /* PNUnsubscribeTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04A31B4EAAB7007478CB /* PNUnsubscribeTests.m */; }; - 797BDD0C1C1F5176006EF006 /* PNPublishCompressedTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF049B1B4EAAB7007478CB /* PNPublishCompressedTests.m */; }; - 797BDD0D1C1F5176006EF006 /* PNSubscribeToPresenceChannelsTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04A11B4EAAB7007478CB /* PNSubscribeToPresenceChannelsTests.m */; }; - 797BDD0E1C1F5176006EF006 /* NSDictionary+PNTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04BE1B4EAB01007478CB /* NSDictionary+PNTest.m */; }; - 797BDD0F1C1F5176006EF006 /* PNAPNSTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04911B4EAAB7007478CB /* PNAPNSTests.m */; }; - 797BDD101C1F5176006EF006 /* PNHistoryTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04991B4EAAB7007478CB /* PNHistoryTests.m */; }; - 797BDD111C1F5176006EF006 /* PNSubscribeTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04A01B4EAAB7007478CB /* PNSubscribeTests.m */; }; - 797BDD121C1F5176006EF006 /* PNBasicSubscribeTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04BA1B4EAAE4007478CB /* PNBasicSubscribeTestCase.m */; }; - 797BDD131C1F5176006EF006 /* PNChannelGroupSubscribeTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04921B4EAAB7007478CB /* PNChannelGroupSubscribeTests.m */; }; - 797BDD141C1F5176006EF006 /* PNBasicClientCryptTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 9652F3E11BA31D9A001E940A /* PNBasicClientCryptTestCase.m */; }; - 797BDD151C1F5176006EF006 /* PNClientStateChannelGroupTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04961B4EAAB7007478CB /* PNClientStateChannelGroupTests.m */; }; - 797BDD161C1F5176006EF006 /* PNDeviceIndependentMatcher.m in Sources */ = {isa = PBXBuildFile; fileRef = 51A6E5FF1BE421DC00C20B77 /* PNDeviceIndependentMatcher.m */; }; - 797BDD171C1F5176006EF006 /* PNChannelGroupUnsubscribeTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04941B4EAAB7007478CB /* PNChannelGroupUnsubscribeTests.m */; }; - 797BDD181C1F5176006EF006 /* PNPresenceEventTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 967707F61B8F4A80002B8E84 /* PNPresenceEventTests.m */; }; - 797BDD191C1F5176006EF006 /* PNClientStateChannelTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04971B4EAAB7007478CB /* PNClientStateChannelTests.m */; }; - 797BDD1A1C1F5176006EF006 /* PNBasicClientTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04B81B4EAAE4007478CB /* PNBasicClientTestCase.m */; }; - 797BDD1B1C1F5176006EF006 /* NSString+PNTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04C01B4EAB01007478CB /* NSString+PNTest.m */; }; - 797BDD1C1C1F5176006EF006 /* PNPublishWithHistoryTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF049E1B4EAAB7007478CB /* PNPublishWithHistoryTests.m */; }; - 797BDD1D1C1F5176006EF006 /* PNPresenceTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF049A1B4EAAB7007478CB /* PNPresenceTests.m */; }; - 797BDD1E1C1F5176006EF006 /* PNChannelGroupTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04931B4EAAB7007478CB /* PNChannelGroupTests.m */; }; - 797BDD1F1C1F5176006EF006 /* NSArray+PNTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 96F0239D1B580D0000C4A581 /* NSArray+PNTest.m */; }; - 797BDD201C1F5176006EF006 /* PNPublishSizeOfMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF049C1B4EAAB7007478CB /* PNPublishSizeOfMessage.m */; }; - 797BDD211C1F5176006EF006 /* PNHeartbeatTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04981B4EAAB7007478CB /* PNHeartbeatTests.m */; }; - 797BDD221C1F5176006EF006 /* PNClientConfigurationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04951B4EAAB7007478CB /* PNClientConfigurationTests.m */; }; - 797BDD261C1F5176006EF006 /* PNPresenceEventTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 960354F51B90629C0047EE04 /* PNPresenceEventTests.bundle */; }; - 797BDD271C1F5176006EF006 /* PNConfigurationChiperKeyTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 9652F3E61BA6E90B001E940A /* PNConfigurationChiperKeyTests.bundle */; }; - 797BDD291C1F5176006EF006 /* PNHistoryTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04CB1B4EAB1A007478CB /* PNHistoryTests.bundle */; }; - 797BDD2C1C1F5176006EF006 /* PNHeartbeatTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04CA1B4EAB1A007478CB /* PNHeartbeatTests.bundle */; }; - 797BDD2E1C1F5176006EF006 /* PNClientStateChannelGroupTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04C81B4EAB1A007478CB /* PNClientStateChannelGroupTests.bundle */; }; - 797BDD2F1C1F5176006EF006 /* PNClientStateChannelTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04C91B4EAB1A007478CB /* PNClientStateChannelTests.bundle */; }; - 797BDD301C1F5176006EF006 /* PNChannelGroupSubscribeTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04C41B4EAB1A007478CB /* PNChannelGroupSubscribeTests.bundle */; }; - 797BDD311C1F5176006EF006 /* PNSubscribeToPresenceChannelsTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04D21B4EAB1A007478CB /* PNSubscribeToPresenceChannelsTests.bundle */; }; - 797BDD321C1F5176006EF006 /* PNSubscribeTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04D11B4EAB1A007478CB /* PNSubscribeTests.bundle */; }; - 797BDD331C1F5176006EF006 /* PNChannelGroupUnsubscribeTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04C61B4EAB1A007478CB /* PNChannelGroupUnsubscribeTests.bundle */; }; - 797BDD341C1F5176006EF006 /* PNClientConfigurationTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04C71B4EAB1A007478CB /* PNClientConfigurationTests.bundle */; }; - 797BDD361C1F5176006EF006 /* PNPresenceTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04CC1B4EAB1A007478CB /* PNPresenceTests.bundle */; }; - 797BDD391C1F5176006EF006 /* PNUnsubscribeTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04D41B4EAB1A007478CB /* PNUnsubscribeTests.bundle */; }; - 79878FC122D924F100F0096D /* PNSignalAPIBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 79878FC022D924F100F0096D /* PNSignalAPIBuilderTest.m */; }; - 79878FC222D924F100F0096D /* PNSignalAPIBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 79878FC022D924F100F0096D /* PNSignalAPIBuilderTest.m */; }; - 79878FC322D924F100F0096D /* PNSignalAPIBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 79878FC022D924F100F0096D /* PNSignalAPIBuilderTest.m */; }; - 799CE2E21C45A76200AAEBDC /* PNChannelGroupFilteringSubscribeTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 799CE2E11C45A76100AAEBDC /* PNChannelGroupFilteringSubscribeTests.bundle */; }; - 799CE2E41C45A76700AAEBDC /* PNChannelGroupPresenceEventTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 799CE2E31C45A76700AAEBDC /* PNChannelGroupPresenceEventTests.bundle */; }; - 799CE2E61C45A79B00AAEBDC /* PNFilteringSubscribeTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 799CE2E51C45A79B00AAEBDC /* PNFilteringSubscribeTests.bundle */; }; - 799CE2EC1C45A82E00AAEBDC /* PNPresenceChannelGroupTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 799CE2EB1C45A82E00AAEBDC /* PNPresenceChannelGroupTests.bundle */; }; - 799CE2F01C45B89F00AAEBDC /* PNChannelGroupPresenceEventTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 799CE2EF1C45B89F00AAEBDC /* PNChannelGroupPresenceEventTests.m */; }; - 799CE2F31C45B8FD00AAEBDC /* PNBasicPresenceTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 799CE2F21C45B8FD00AAEBDC /* PNBasicPresenceTestCase.m */; }; - 799CE2F71C45B95400AAEBDC /* PNChannelGroupFilteringSubscribeTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 799CE2F61C45B95400AAEBDC /* PNChannelGroupFilteringSubscribeTests.m */; }; - 799CE2F91C45B9FD00AAEBDC /* PNFilteringSubscribeTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 799CE2F81C45B9FD00AAEBDC /* PNFilteringSubscribeTests.m */; }; - 799CE2FB1C45BA3000AAEBDC /* PNPresenceChannelGroupTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 799CE2FA1C45BA3000AAEBDC /* PNPresenceChannelGroupTests.m */; }; - 79A238E91D2EB6BA00D080CD /* NSURLSessionConfigurationCategoryTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A238E81D2EB6BA00D080CD /* NSURLSessionConfigurationCategoryTest.m */; }; - 79A3E4492215783200F2ADB9 /* NSInvocation+PNTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A3E4472215783200F2ADB9 /* NSInvocation+PNTest.m */; }; - 79A3E44A2215783200F2ADB9 /* NSInvocation+PNTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A3E4472215783200F2ADB9 /* NSInvocation+PNTest.m */; }; - 79A3E44B2215783200F2ADB9 /* NSInvocation+PNTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A3E4472215783200F2ADB9 /* NSInvocation+PNTest.m */; }; - 79A3E4522215806D00F2ADB9 /* PNTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A3E4512215806D00F2ADB9 /* PNTestCase.m */; }; - 79A3E4532215806D00F2ADB9 /* PNTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A3E4512215806D00F2ADB9 /* PNTestCase.m */; }; - 79A3E4542215806D00F2ADB9 /* PNTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A3E4512215806D00F2ADB9 /* PNTestCase.m */; }; - 79A3E45C2215A42C00F2ADB9 /* PNMessageCountTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A3E4582215A42C00F2ADB9 /* PNMessageCountTest.m */; }; - 79A3E45D2215A42C00F2ADB9 /* PNMessageCountTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A3E4582215A42C00F2ADB9 /* PNMessageCountTest.m */; }; - 79A3E45E2215A42C00F2ADB9 /* PNMessageCountTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A3E4582215A42C00F2ADB9 /* PNMessageCountTest.m */; }; - 79A3E45F2215A42C00F2ADB9 /* PNMessageCountAPICallBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A3E45B2215A42C00F2ADB9 /* PNMessageCountAPICallBuilderTest.m */; }; - 79A3E4602215A42C00F2ADB9 /* PNMessageCountAPICallBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A3E45B2215A42C00F2ADB9 /* PNMessageCountAPICallBuilderTest.m */; }; - 79A3E4612215A42C00F2ADB9 /* PNMessageCountAPICallBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 79A3E45B2215A42C00F2ADB9 /* PNMessageCountAPICallBuilderTest.m */; }; - 79C288D8228C038E004FD5C5 /* keysset.plist in Resources */ = {isa = PBXBuildFile; fileRef = 79C288D7228C038E004FD5C5 /* keysset.plist */; }; - 79C288D9228C038E004FD5C5 /* keysset.plist in Resources */ = {isa = PBXBuildFile; fileRef = 79C288D7228C038E004FD5C5 /* keysset.plist */; }; - 79E198C31CE3DCF600F36216 /* PNNumberTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79E198C21CE3DCF600F36216 /* PNNumberTests.m */; }; - 79E20D2D1C8B1C64001BC9CC /* PNBasicPresenceTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 799CE2F21C45B8FD00AAEBDC /* PNBasicPresenceTestCase.m */; }; - 79E20D2E1C8B1C64001BC9CC /* PNBasicPresenceTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 799CE2F21C45B8FD00AAEBDC /* PNBasicPresenceTestCase.m */; }; - 79EF04A41B4EAAB7007478CB /* PNAPNSTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04911B4EAAB7007478CB /* PNAPNSTests.m */; }; - 79EF04A51B4EAAB7007478CB /* PNChannelGroupSubscribeTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04921B4EAAB7007478CB /* PNChannelGroupSubscribeTests.m */; }; - 79EF04A61B4EAAB7007478CB /* PNChannelGroupTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04931B4EAAB7007478CB /* PNChannelGroupTests.m */; }; - 79EF04A71B4EAAB7007478CB /* PNChannelGroupUnsubscribeTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04941B4EAAB7007478CB /* PNChannelGroupUnsubscribeTests.m */; }; - 79EF04A81B4EAAB7007478CB /* PNClientConfigurationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04951B4EAAB7007478CB /* PNClientConfigurationTests.m */; }; - 79EF04A91B4EAAB7007478CB /* PNClientStateChannelGroupTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04961B4EAAB7007478CB /* PNClientStateChannelGroupTests.m */; }; - 79EF04AA1B4EAAB7007478CB /* PNClientStateChannelTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04971B4EAAB7007478CB /* PNClientStateChannelTests.m */; }; - 79EF04AB1B4EAAB7007478CB /* PNHeartbeatTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04981B4EAAB7007478CB /* PNHeartbeatTests.m */; }; - 79EF04AC1B4EAAB7007478CB /* PNHistoryTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04991B4EAAB7007478CB /* PNHistoryTests.m */; }; - 79EF04AD1B4EAAB7007478CB /* PNPresenceTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF049A1B4EAAB7007478CB /* PNPresenceTests.m */; }; - 79EF04AE1B4EAAB7007478CB /* PNPublishCompressedTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF049B1B4EAAB7007478CB /* PNPublishCompressedTests.m */; }; - 79EF04AF1B4EAAB7007478CB /* PNPublishSizeOfMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF049C1B4EAAB7007478CB /* PNPublishSizeOfMessage.m */; }; - 79EF04B01B4EAAB7007478CB /* PNPublishTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF049D1B4EAAB7007478CB /* PNPublishTests.m */; }; - 79EF04B11B4EAAB7007478CB /* PNPublishWithHistoryTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF049E1B4EAAB7007478CB /* PNPublishWithHistoryTests.m */; }; - 79EF04B21B4EAAB7007478CB /* PNPublishWithMobilePayloadTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF049F1B4EAAB7007478CB /* PNPublishWithMobilePayloadTests.m */; }; - 79EF04B31B4EAAB7007478CB /* PNSubscribeTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04A01B4EAAB7007478CB /* PNSubscribeTests.m */; }; - 79EF04B41B4EAAB7007478CB /* PNSubscribeToPresenceChannelsTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04A11B4EAAB7007478CB /* PNSubscribeToPresenceChannelsTests.m */; }; - 79EF04B51B4EAAB7007478CB /* PNTimeTokenTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04A21B4EAAB7007478CB /* PNTimeTokenTests.m */; }; - 79EF04B61B4EAAB7007478CB /* PNUnsubscribeTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04A31B4EAAB7007478CB /* PNUnsubscribeTests.m */; }; - 79EF04BB1B4EAAE4007478CB /* PNBasicClientTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04B81B4EAAE4007478CB /* PNBasicClientTestCase.m */; }; - 79EF04BC1B4EAAE4007478CB /* PNBasicSubscribeTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04BA1B4EAAE4007478CB /* PNBasicSubscribeTestCase.m */; }; - 79EF04C11B4EAB01007478CB /* NSDictionary+PNTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04BE1B4EAB01007478CB /* NSDictionary+PNTest.m */; }; - 79EF04C21B4EAB01007478CB /* NSString+PNTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 79EF04C01B4EAB01007478CB /* NSString+PNTest.m */; }; - 79EF04D61B4EAB1A007478CB /* PNChannelGroupSubscribeTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04C41B4EAB1A007478CB /* PNChannelGroupSubscribeTests.bundle */; }; - 79EF04D81B4EAB1A007478CB /* PNChannelGroupUnsubscribeTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04C61B4EAB1A007478CB /* PNChannelGroupUnsubscribeTests.bundle */; }; - 79EF04D91B4EAB1A007478CB /* PNClientConfigurationTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04C71B4EAB1A007478CB /* PNClientConfigurationTests.bundle */; }; - 79EF04DA1B4EAB1A007478CB /* PNClientStateChannelGroupTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04C81B4EAB1A007478CB /* PNClientStateChannelGroupTests.bundle */; }; - 79EF04DB1B4EAB1A007478CB /* PNClientStateChannelTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04C91B4EAB1A007478CB /* PNClientStateChannelTests.bundle */; }; - 79EF04DC1B4EAB1A007478CB /* PNHeartbeatTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04CA1B4EAB1A007478CB /* PNHeartbeatTests.bundle */; }; - 79EF04DD1B4EAB1A007478CB /* PNHistoryTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04CB1B4EAB1A007478CB /* PNHistoryTests.bundle */; }; - 79EF04DE1B4EAB1A007478CB /* PNPresenceTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04CC1B4EAB1A007478CB /* PNPresenceTests.bundle */; }; - 79EF04E31B4EAB1A007478CB /* PNSubscribeTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04D11B4EAB1A007478CB /* PNSubscribeTests.bundle */; }; - 79EF04E41B4EAB1A007478CB /* PNSubscribeToPresenceChannelsTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04D21B4EAB1A007478CB /* PNSubscribeToPresenceChannelsTests.bundle */; }; - 79EF04E61B4EAB1A007478CB /* PNUnsubscribeTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 79EF04D41B4EAB1A007478CB /* PNUnsubscribeTests.bundle */; }; - 960354F61B90629C0047EE04 /* PNPresenceEventTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 960354F51B90629C0047EE04 /* PNPresenceEventTests.bundle */; }; - 960354F71B90629C0047EE04 /* PNPresenceEventTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 960354F51B90629C0047EE04 /* PNPresenceEventTests.bundle */; }; - 960354F91B9100120047EE04 /* PNPresenceEventTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 960354F81B9100120047EE04 /* PNPresenceEventTests.swift */; }; - 9652F3E21BA31D9A001E940A /* PNBasicClientCryptTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = 9652F3E11BA31D9A001E940A /* PNBasicClientCryptTestCase.m */; }; - 9652F3E51BA31F7D001E940A /* PNConfigurationChiperKeyTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 9652F3E41BA31F7D001E940A /* PNConfigurationChiperKeyTests.m */; }; - 9652F3E71BA6E90B001E940A /* PNConfigurationChiperKeyTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 9652F3E61BA6E90B001E940A /* PNConfigurationChiperKeyTests.bundle */; }; - 9652F3E91BA97AA5001E940A /* PNBasicClientCryptTestCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9652F3E81BA97AA5001E940A /* PNBasicClientCryptTestCase.swift */; }; - 9652F3EB1BA98706001E940A /* PNConfigurationChiperKeyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9652F3EA1BA98706001E940A /* PNConfigurationChiperKeyTests.swift */; }; - 967707F71B8F4A80002B8E84 /* PNPresenceEventTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 967707F61B8F4A80002B8E84 /* PNPresenceEventTests.m */; }; - 96B222BC1B84868C002549D5 /* PNPresenceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 96B222BB1B84868C002549D5 /* PNPresenceTests.swift */; }; - 96E383931BAAC12F00560991 /* PNConfigurationChiperKeyTests.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 9652F3E61BA6E90B001E940A /* PNConfigurationChiperKeyTests.bundle */; }; - 96F0239E1B580D0000C4A581 /* NSArray+PNTest.m in Sources */ = {isa = PBXBuildFile; fileRef = 96F0239D1B580D0000C4A581 /* NSArray+PNTest.m */; }; - 9722C2761B68A24C00A7CB44 /* PNPublishTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9722C2751B68A24C00A7CB44 /* PNPublishTests.swift */; }; - A5105B60238F08FB00CB693D /* PNNotificationPayloadBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5105B5F238F08FB00CB693D /* PNNotificationPayloadBuilderTest.m */; }; - A5105B61238F08FB00CB693D /* PNNotificationPayloadBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5105B5F238F08FB00CB693D /* PNNotificationPayloadBuilderTest.m */; }; - A5105B62238F08FB00CB693D /* PNNotificationPayloadBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5105B5F238F08FB00CB693D /* PNNotificationPayloadBuilderTest.m */; }; - A5105B63238F08FB00CB693D /* PNNotificationPayloadBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5105B5F238F08FB00CB693D /* PNNotificationPayloadBuilderTest.m */; }; - A525EA502301E69300ABFDC2 /* PNSpaceObjectsTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A525EA4F2301E69300ABFDC2 /* PNSpaceObjectsTest.m */; }; - A525EA512301E69300ABFDC2 /* PNSpaceObjectsTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A525EA4F2301E69300ABFDC2 /* PNSpaceObjectsTest.m */; }; - A525EA522301E69300ABFDC2 /* PNSpaceObjectsTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A525EA4F2301E69300ABFDC2 /* PNSpaceObjectsTest.m */; }; - A525EA542302A77A00ABFDC2 /* PNMembershipObjectsTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A525EA532302A77A00ABFDC2 /* PNMembershipObjectsTest.m */; }; - A525EA552302A77A00ABFDC2 /* PNMembershipObjectsTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A525EA532302A77A00ABFDC2 /* PNMembershipObjectsTest.m */; }; - A525EA562302A77A00ABFDC2 /* PNMembershipObjectsTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A525EA532302A77A00ABFDC2 /* PNMembershipObjectsTest.m */; }; - A525EA582302A79000ABFDC2 /* PNMemberObjectsTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A525EA572302A79000ABFDC2 /* PNMemberObjectsTest.m */; }; - A525EA592302A79000ABFDC2 /* PNMemberObjectsTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A525EA572302A79000ABFDC2 /* PNMemberObjectsTest.m */; }; - A525EA5A2302A79000ABFDC2 /* PNMemberObjectsTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A525EA572302A79000ABFDC2 /* PNMemberObjectsTest.m */; }; - A525EA662303EF7200ABFDC2 /* PNUserIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A525EA642303EF7200ABFDC2 /* PNUserIntegrationTest.m */; }; - A525EA672303EF7200ABFDC2 /* PNUserIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A525EA642303EF7200ABFDC2 /* PNUserIntegrationTest.m */; }; - A525EA6A23047CB300ABFDC2 /* PNObjectsTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = A525EA6923047CB300ABFDC2 /* PNObjectsTestCase.m */; }; - A525EA6B23047CB300ABFDC2 /* PNObjectsTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = A525EA6923047CB300ABFDC2 /* PNObjectsTestCase.m */; }; - A525EA6C23047CB300ABFDC2 /* PNObjectsTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = A525EA6923047CB300ABFDC2 /* PNObjectsTestCase.m */; }; - A525EA74230483EF00ABFDC2 /* PNSpaceIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A525EA72230483EF00ABFDC2 /* PNSpaceIntegrationTest.m */; }; - A525EA75230483EF00ABFDC2 /* PNSpaceIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A525EA72230483EF00ABFDC2 /* PNSpaceIntegrationTest.m */; }; - A52DC1E123059898001F20B0 /* PNMembershipIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A52DC1DF23059898001F20B0 /* PNMembershipIntegrationTest.m */; }; - A52DC1E223059898001F20B0 /* PNMembershipIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A52DC1DF23059898001F20B0 /* PNMembershipIntegrationTest.m */; }; - A52DC1F4230811E8001F20B0 /* PNSpaceIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A525EA72230483EF00ABFDC2 /* PNSpaceIntegrationTest.m */; }; - A54F4173231FABC3007A368A /* PNMessageActionsTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A54F4172231FABC3007A368A /* PNMessageActionsTest.m */; }; - A54F4174231FABC3007A368A /* PNMessageActionsTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A54F4172231FABC3007A368A /* PNMessageActionsTest.m */; }; - A54F4175231FABC3007A368A /* PNMessageActionsTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A54F4172231FABC3007A368A /* PNMessageActionsTest.m */; }; - A55260532309555800CB4ACF /* PNUserIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A525EA642303EF7200ABFDC2 /* PNUserIntegrationTest.m */; }; - A55260572309DF1900CB4ACF /* PNMemberIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55260552309DF1900CB4ACF /* PNMemberIntegrationTest.m */; }; - A55260582309DF1900CB4ACF /* PNMemberIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55260552309DF1900CB4ACF /* PNMemberIntegrationTest.m */; }; - A552605A2309EF7700CB4ACF /* PNMemberIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55260552309DF1900CB4ACF /* PNMemberIntegrationTest.m */; }; - A55A64982328E36A0064E8E4 /* PNHistoryIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A64912328E36A0064E8E4 /* PNHistoryIntegrationTest.m */; }; - A55A64992328E36A0064E8E4 /* PNHistoryIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A64912328E36A0064E8E4 /* PNHistoryIntegrationTest.m */; }; - A55A649A2328E36A0064E8E4 /* PNHistoryIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A64912328E36A0064E8E4 /* PNHistoryIntegrationTest.m */; }; - A55A649B2328E36A0064E8E4 /* PNAPNSIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A64932328E36A0064E8E4 /* PNAPNSIntegrationTest.m */; }; - A55A649C2328E36A0064E8E4 /* PNAPNSIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A64932328E36A0064E8E4 /* PNAPNSIntegrationTest.m */; }; - A55A649D2328E36A0064E8E4 /* PNAPNSIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A64932328E36A0064E8E4 /* PNAPNSIntegrationTest.m */; }; - A55A649E2328E36A0064E8E4 /* PNSignalIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A64952328E36A0064E8E4 /* PNSignalIntegrationTest.m */; }; - A55A649F2328E36A0064E8E4 /* PNSignalIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A64952328E36A0064E8E4 /* PNSignalIntegrationTest.m */; }; - A55A64A02328E36A0064E8E4 /* PNSignalIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A64952328E36A0064E8E4 /* PNSignalIntegrationTest.m */; }; - A55A64A12328E36A0064E8E4 /* PNMessageActionsIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A64972328E36A0064E8E4 /* PNMessageActionsIntegrationTest.m */; }; - A55A64A22328E36A0064E8E4 /* PNMessageActionsIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A64972328E36A0064E8E4 /* PNMessageActionsIntegrationTest.m */; }; - A55A64A32328E36A0064E8E4 /* PNMessageActionsIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A64972328E36A0064E8E4 /* PNMessageActionsIntegrationTest.m */; }; - A55A889422FD8398002D0A72 /* PNUserObjectsAPICallBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A889322FD8397002D0A72 /* PNUserObjectsAPICallBuilderTest.m */; }; - A55A889522FD8398002D0A72 /* PNUserObjectsAPICallBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A889322FD8397002D0A72 /* PNUserObjectsAPICallBuilderTest.m */; }; - A55A889622FD8398002D0A72 /* PNUserObjectsAPICallBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A889322FD8397002D0A72 /* PNUserObjectsAPICallBuilderTest.m */; }; - A55A889922FD83B9002D0A72 /* PNUserObjectsTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A889822FD83B9002D0A72 /* PNUserObjectsTest.m */; }; - A55A889A22FD83B9002D0A72 /* PNUserObjectsTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A889822FD83B9002D0A72 /* PNUserObjectsTest.m */; }; - A55A889B22FD83B9002D0A72 /* PNUserObjectsTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55A889822FD83B9002D0A72 /* PNUserObjectsTest.m */; }; - A55BCD7D231E80220019DB68 /* PNMessageActionsAPICallBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55BCD7C231E80220019DB68 /* PNMessageActionsAPICallBuilderTest.m */; }; - A55BCD7E231E80220019DB68 /* PNMessageActionsAPICallBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55BCD7C231E80220019DB68 /* PNMessageActionsAPICallBuilderTest.m */; }; - A55BCD7F231E80220019DB68 /* PNMessageActionsAPICallBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A55BCD7C231E80220019DB68 /* PNMessageActionsAPICallBuilderTest.m */; }; - A589756522FE711C0093BD9A /* PNSpaceObjectsAPICallBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A589756422FE711C0093BD9A /* PNSpaceObjectsAPICallBuilderTest.m */; }; - A589756622FE711C0093BD9A /* PNSpaceObjectsAPICallBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A589756422FE711C0093BD9A /* PNSpaceObjectsAPICallBuilderTest.m */; }; - A589756722FE711C0093BD9A /* PNSpaceObjectsAPICallBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A589756422FE711C0093BD9A /* PNSpaceObjectsAPICallBuilderTest.m */; }; - A5E323F5230B0109001FB7AE /* PNMembershipIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A52DC1DF23059898001F20B0 /* PNMembershipIntegrationTest.m */; }; - A5F62C3423017E88001CC2A5 /* PNMembershipsObjectsAPICallBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5F62C3323017E88001CC2A5 /* PNMembershipsObjectsAPICallBuilderTest.m */; }; - A5F62C3523017E88001CC2A5 /* PNMembershipsObjectsAPICallBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5F62C3323017E88001CC2A5 /* PNMembershipsObjectsAPICallBuilderTest.m */; }; - A5F62C3623017E88001CC2A5 /* PNMembershipsObjectsAPICallBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5F62C3323017E88001CC2A5 /* PNMembershipsObjectsAPICallBuilderTest.m */; }; - A5F62C3823017E95001CC2A5 /* PNMembersObjectsAPICallBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5F62C3723017E95001CC2A5 /* PNMembersObjectsAPICallBuilderTest.m */; }; - A5F62C3923017E95001CC2A5 /* PNMembersObjectsAPICallBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5F62C3723017E95001CC2A5 /* PNMembersObjectsAPICallBuilderTest.m */; }; - A5F62C3A23017E95001CC2A5 /* PNMembersObjectsAPICallBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5F62C3723017E95001CC2A5 /* PNMembersObjectsAPICallBuilderTest.m */; }; - D85D34FEFCCF355EB9F2BD74 /* Pods_OSX_ObjC_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6690703E1216498F8F228D12 /* Pods_OSX_ObjC_Tests.framework */; }; - EDB954E81EBF46339127872D /* Pods_iOS_ObjC_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6B9C16A4C435306BAA05BD00 /* Pods_iOS_ObjC_Tests.framework */; }; + 0042D029DF0A60EAE9E97E75 /* Pods_MockableTests__iOS__Unit_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 807C1E4B133D73D0A73F4A63 /* Pods_MockableTests__iOS__Unit_Tests.framework */; }; + 1347928A376D92E131BA1364 /* Pods_MockableTests__iOS__Mocked_Integration_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 630BF161A05F88463997CDEF /* Pods_MockableTests__iOS__Mocked_Integration_Tests.framework */; }; + 14B1794D5C6CC4266ED22AD3 /* Pods_MockableTests__tvOS__Mocked_Integration_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 11D69858FFE7F4EAE285F2D5 /* Pods_MockableTests__tvOS__Mocked_Integration_Tests.framework */; }; + 1BB1E4C2C8AAC18D4C7199C3 /* Pods__iOS__Integration_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 920B649044F618C346B0C2F0 /* Pods__iOS__Integration_Tests.framework */; }; + 77FE92A55FFE3011A2993F88 /* Pods_MockableTests__macOS__Unit_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 53E26974366CA7B8A99340E7 /* Pods_MockableTests__macOS__Unit_Tests.framework */; }; + 86F37F6E8DC420D32AF14AAA /* Pods_MockableTests__tvOS__Unit_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6335C248B76FFB7012F2D151 /* Pods_MockableTests__tvOS__Unit_Tests.framework */; }; + A529271023B181FE00FF46DD /* PNRecordableTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = A529270F23B181FE00FF46DD /* PNRecordableTestCase.m */; }; + A529271123B181FE00FF46DD /* PNRecordableTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = A529270F23B181FE00FF46DD /* PNRecordableTestCase.m */; }; + A529271223B181FE00FF46DD /* PNRecordableTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = A529270F23B181FE00FF46DD /* PNRecordableTestCase.m */; }; + A529271323B181FE00FF46DD /* PNRecordableTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = A529270F23B181FE00FF46DD /* PNRecordableTestCase.m */; }; + A529271423B181FE00FF46DD /* PNRecordableTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = A529270F23B181FE00FF46DD /* PNRecordableTestCase.m */; }; + A529271523B181FE00FF46DD /* PNRecordableTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = A529270F23B181FE00FF46DD /* PNRecordableTestCase.m */; }; + A529271623B181FE00FF46DD /* PNRecordableTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = A529270F23B181FE00FF46DD /* PNRecordableTestCase.m */; }; + A529271723B181FE00FF46DD /* PNRecordableTestCase.m in Sources */ = {isa = PBXBuildFile; fileRef = A529270F23B181FE00FF46DD /* PNRecordableTestCase.m */; }; + A529271923B185F900FF46DD /* tests-configuration.json in Resources */ = {isa = PBXBuildFile; fileRef = A529271823B1855A00FF46DD /* tests-configuration.json */; }; + A529271A23B185F900FF46DD /* tests-configuration.json in Resources */ = {isa = PBXBuildFile; fileRef = A529271823B1855A00FF46DD /* tests-configuration.json */; }; + A529271D23B185FF00FF46DD /* tests-configuration.json in Resources */ = {isa = PBXBuildFile; fileRef = A529271823B1855A00FF46DD /* tests-configuration.json */; }; + A53D0AEE23E9BF60001E72AF /* PNMembershipsObjectsAPICallBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0AED23E9BF60001E72AF /* PNMembershipsObjectsAPICallBuilderTest.m */; }; + A53D0AEF23E9BF60001E72AF /* PNMembershipsObjectsAPICallBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0AED23E9BF60001E72AF /* PNMembershipsObjectsAPICallBuilderTest.m */; }; + A53D0AF023E9BF60001E72AF /* PNMembershipsObjectsAPICallBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0AED23E9BF60001E72AF /* PNMembershipsObjectsAPICallBuilderTest.m */; }; + A53D0AF223E9F42B001E72AF /* PNMembersObjectsAPICallBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0AF123E9F42B001E72AF /* PNMembersObjectsAPICallBuilderTest.m */; }; + A53D0AF323E9F42B001E72AF /* PNMembersObjectsAPICallBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0AF123E9F42B001E72AF /* PNMembersObjectsAPICallBuilderTest.m */; }; + A53D0AF423E9F42B001E72AF /* PNMembersObjectsAPICallBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0AF123E9F42B001E72AF /* PNMembersObjectsAPICallBuilderTest.m */; }; + A53D0AF623E9F7D7001E72AF /* PNSpaceObjectsAPICallBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0AF523E9F7D7001E72AF /* PNSpaceObjectsAPICallBuilderTest.m */; }; + A53D0AF723E9F7D7001E72AF /* PNSpaceObjectsAPICallBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0AF523E9F7D7001E72AF /* PNSpaceObjectsAPICallBuilderTest.m */; }; + A53D0AF823E9F7D7001E72AF /* PNSpaceObjectsAPICallBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0AF523E9F7D7001E72AF /* PNSpaceObjectsAPICallBuilderTest.m */; }; + A53D0AFA23E9FBE4001E72AF /* PNUserObjectsAPICallBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0AF923E9FBE4001E72AF /* PNUserObjectsAPICallBuilderTest.m */; }; + A53D0AFB23E9FBE4001E72AF /* PNUserObjectsAPICallBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0AF923E9FBE4001E72AF /* PNUserObjectsAPICallBuilderTest.m */; }; + A53D0AFC23E9FBE4001E72AF /* PNUserObjectsAPICallBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0AF923E9FBE4001E72AF /* PNUserObjectsAPICallBuilderTest.m */; }; + A53D0B0023EA00EB001E72AF /* PNMessageActionsAPICallBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0AFF23EA00EB001E72AF /* PNMessageActionsAPICallBuilderTest.m */; }; + A53D0B0123EA00EB001E72AF /* PNMessageActionsAPICallBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0AFF23EA00EB001E72AF /* PNMessageActionsAPICallBuilderTest.m */; }; + A53D0B0223EA00EB001E72AF /* PNMessageActionsAPICallBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0AFF23EA00EB001E72AF /* PNMessageActionsAPICallBuilderTest.m */; }; + A53D0B0523EA063A001E72AF /* PNSignalAPIBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0B0423EA063A001E72AF /* PNSignalAPIBuilderTest.m */; }; + A53D0B0623EA063A001E72AF /* PNSignalAPIBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0B0423EA063A001E72AF /* PNSignalAPIBuilderTest.m */; }; + A53D0B0723EA063A001E72AF /* PNSignalAPIBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0B0423EA063A001E72AF /* PNSignalAPIBuilderTest.m */; }; + A53D0B0A23EA070A001E72AF /* PNMessageCountAPICallBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0B0923EA070A001E72AF /* PNMessageCountAPICallBuilderTest.m */; }; + A53D0B0B23EA070A001E72AF /* PNMessageCountAPICallBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0B0923EA070A001E72AF /* PNMessageCountAPICallBuilderTest.m */; }; + A53D0B0C23EA070A001E72AF /* PNMessageCountAPICallBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0B0923EA070A001E72AF /* PNMessageCountAPICallBuilderTest.m */; }; + A53D0B0F23EA07E5001E72AF /* PNMembershipObjectsTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0B0E23EA07E5001E72AF /* PNMembershipObjectsTest.m */; }; + A53D0B1023EA07E5001E72AF /* PNMembershipObjectsTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0B0E23EA07E5001E72AF /* PNMembershipObjectsTest.m */; }; + A53D0B1123EA07E5001E72AF /* PNMembershipObjectsTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0B0E23EA07E5001E72AF /* PNMembershipObjectsTest.m */; }; + A53D0B1323EA0A07001E72AF /* PNMemberObjectsTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0B1223EA0A07001E72AF /* PNMemberObjectsTest.m */; }; + A53D0B1423EA0A07001E72AF /* PNMemberObjectsTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0B1223EA0A07001E72AF /* PNMemberObjectsTest.m */; }; + A53D0B1523EA0A07001E72AF /* PNMemberObjectsTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0B1223EA0A07001E72AF /* PNMemberObjectsTest.m */; }; + A53D0B1723EA0AB4001E72AF /* PNSpaceObjectsTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0B1623EA0AB4001E72AF /* PNSpaceObjectsTest.m */; }; + A53D0B1823EA0AB4001E72AF /* PNSpaceObjectsTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0B1623EA0AB4001E72AF /* PNSpaceObjectsTest.m */; }; + A53D0B1923EA0AB4001E72AF /* PNSpaceObjectsTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0B1623EA0AB4001E72AF /* PNSpaceObjectsTest.m */; }; + A53D0B1B23EA0C5C001E72AF /* PNUserObjectsTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0B1A23EA0C5C001E72AF /* PNUserObjectsTest.m */; }; + A53D0B1C23EA0C5C001E72AF /* PNUserObjectsTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0B1A23EA0C5C001E72AF /* PNUserObjectsTest.m */; }; + A53D0B1D23EA0C5C001E72AF /* PNUserObjectsTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0B1A23EA0C5C001E72AF /* PNUserObjectsTest.m */; }; + A53D0B2023EA0DB7001E72AF /* PNMessageActionsTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0B1F23EA0DB7001E72AF /* PNMessageActionsTest.m */; }; + A53D0B2123EA0DB7001E72AF /* PNMessageActionsTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0B1F23EA0DB7001E72AF /* PNMessageActionsTest.m */; }; + A53D0B2223EA0DB7001E72AF /* PNMessageActionsTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0B1F23EA0DB7001E72AF /* PNMessageActionsTest.m */; }; + A53D0B2623EA0EAD001E72AF /* PNMessageCountTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0B2523EA0EAD001E72AF /* PNMessageCountTest.m */; }; + A53D0B2723EA0EAD001E72AF /* PNMessageCountTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0B2523EA0EAD001E72AF /* PNMessageCountTest.m */; }; + A53D0B2823EA0EAD001E72AF /* PNMessageCountTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0B2523EA0EAD001E72AF /* PNMessageCountTest.m */; }; + A53D0B2B23EA0FEF001E72AF /* PNNotificationPayloadBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0B2A23EA0FEF001E72AF /* PNNotificationPayloadBuilderTest.m */; }; + A53D0B2C23EA0FEF001E72AF /* PNNotificationPayloadBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0B2A23EA0FEF001E72AF /* PNNotificationPayloadBuilderTest.m */; }; + A53D0B2D23EA0FEF001E72AF /* PNNotificationPayloadBuilderTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A53D0B2A23EA0FEF001E72AF /* PNNotificationPayloadBuilderTest.m */; }; + A54185DD23B9565000FBA26A /* PNPushNotificationsIntegrationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = A54185DC23B9565000FBA26A /* PNPushNotificationsIntegrationTests.m */; }; + A54185DE23B9565000FBA26A /* PNPushNotificationsIntegrationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = A54185DC23B9565000FBA26A /* PNPushNotificationsIntegrationTests.m */; }; + A54185DF23B9565000FBA26A /* PNPushNotificationsIntegrationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = A54185DC23B9565000FBA26A /* PNPushNotificationsIntegrationTests.m */; }; + A54185E023B9565000FBA26A /* PNPushNotificationsIntegrationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = A54185DC23B9565000FBA26A /* PNPushNotificationsIntegrationTests.m */; }; + A54E28FD23C089730024714B /* PNMembershipIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A54E28FC23C089730024714B /* PNMembershipIntegrationTest.m */; }; + A54E28FE23C089730024714B /* PNMembershipIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A54E28FC23C089730024714B /* PNMembershipIntegrationTest.m */; }; + A54E28FF23C089730024714B /* PNMembershipIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A54E28FC23C089730024714B /* PNMembershipIntegrationTest.m */; }; + A54E290023C089730024714B /* PNMembershipIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A54E28FC23C089730024714B /* PNMembershipIntegrationTest.m */; }; + A54E290223C16B3D0024714B /* PNMemberIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A54E290123C16B3D0024714B /* PNMemberIntegrationTest.m */; }; + A54E290323C16B3D0024714B /* PNMemberIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A54E290123C16B3D0024714B /* PNMemberIntegrationTest.m */; }; + A54E290423C16B3D0024714B /* PNMemberIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A54E290123C16B3D0024714B /* PNMemberIntegrationTest.m */; }; + A54E290523C16B3D0024714B /* PNMemberIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A54E290123C16B3D0024714B /* PNMemberIntegrationTest.m */; }; + A54E290723C286090024714B /* PNSpaceIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A54E290623C286090024714B /* PNSpaceIntegrationTest.m */; }; + A54E290823C286090024714B /* PNSpaceIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A54E290623C286090024714B /* PNSpaceIntegrationTest.m */; }; + A54E290923C286090024714B /* PNSpaceIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A54E290623C286090024714B /* PNSpaceIntegrationTest.m */; }; + A54E290A23C286090024714B /* PNSpaceIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A54E290623C286090024714B /* PNSpaceIntegrationTest.m */; }; + A54E290C23C2992A0024714B /* PNUserIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A54E290B23C2992A0024714B /* PNUserIntegrationTest.m */; }; + A54E290D23C2992A0024714B /* PNUserIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A54E290B23C2992A0024714B /* PNUserIntegrationTest.m */; }; + A54E290E23C2992A0024714B /* PNUserIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A54E290B23C2992A0024714B /* PNUserIntegrationTest.m */; }; + A54E290F23C2992A0024714B /* PNUserIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A54E290B23C2992A0024714B /* PNUserIntegrationTest.m */; }; + A59ECFDD23BB571200E84300 /* PNSignalTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A59ECFDC23BB571200E84300 /* PNSignalTest.m */; }; + A59ECFDE23BB571200E84300 /* PNSignalTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A59ECFDC23BB571200E84300 /* PNSignalTest.m */; }; + A59ECFDF23BB571200E84300 /* PNSignalTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A59ECFDC23BB571200E84300 /* PNSignalTest.m */; }; + A59ECFE023BB587200E84300 /* tests-configuration.json in Resources */ = {isa = PBXBuildFile; fileRef = A529271823B1855A00FF46DD /* tests-configuration.json */; }; + A59ECFE123BB587300E84300 /* tests-configuration.json in Resources */ = {isa = PBXBuildFile; fileRef = A529271823B1855A00FF46DD /* tests-configuration.json */; }; + A59ECFE223BB587600E84300 /* tests-configuration.json in Resources */ = {isa = PBXBuildFile; fileRef = A529271823B1855A00FF46DD /* tests-configuration.json */; }; + A59ECFE423BB5B1900E84300 /* PNHistoryIntegrationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = A59ECFE323BB5B1900E84300 /* PNHistoryIntegrationTests.m */; }; + A59ECFE523BB5B1900E84300 /* PNHistoryIntegrationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = A59ECFE323BB5B1900E84300 /* PNHistoryIntegrationTests.m */; }; + A59ECFE623BB5B1900E84300 /* PNHistoryIntegrationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = A59ECFE323BB5B1900E84300 /* PNHistoryIntegrationTests.m */; }; + A59ECFE723BB5B1900E84300 /* PNHistoryIntegrationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = A59ECFE323BB5B1900E84300 /* PNHistoryIntegrationTests.m */; }; + A59ECFEA23BD5E8F00E84300 /* PNMessageActionsIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A59ECFE923BD5E8F00E84300 /* PNMessageActionsIntegrationTest.m */; }; + A59ECFEB23BD5E8F00E84300 /* PNMessageActionsIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A59ECFE923BD5E8F00E84300 /* PNMessageActionsIntegrationTest.m */; }; + A59ECFEC23BD5E8F00E84300 /* PNMessageActionsIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A59ECFE923BD5E8F00E84300 /* PNMessageActionsIntegrationTest.m */; }; + A59ECFED23BD5E8F00E84300 /* PNMessageActionsIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A59ECFE923BD5E8F00E84300 /* PNMessageActionsIntegrationTest.m */; }; + A5A905F123B571E8006D22BA /* NSString+PNTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A905F023B571E8006D22BA /* NSString+PNTest.m */; }; + A5A905F223B571E8006D22BA /* NSString+PNTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A905F023B571E8006D22BA /* NSString+PNTest.m */; }; + A5A905F323B571E8006D22BA /* NSString+PNTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A905F023B571E8006D22BA /* NSString+PNTest.m */; }; + A5A905F423B571E8006D22BA /* NSString+PNTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A905F023B571E8006D22BA /* NSString+PNTest.m */; }; + A5A905F523B571E8006D22BA /* NSString+PNTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A905F023B571E8006D22BA /* NSString+PNTest.m */; }; + A5A905F623B571E8006D22BA /* NSString+PNTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A905F023B571E8006D22BA /* NSString+PNTest.m */; }; + A5A905F723B571E8006D22BA /* NSString+PNTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A905F023B571E8006D22BA /* NSString+PNTest.m */; }; + A5A905F823B571F8006D22BA /* NSString+PNTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5A905F023B571E8006D22BA /* NSString+PNTest.m */; }; + A5A905FA23B57C80006D22BA /* Fixtures in Resources */ = {isa = PBXBuildFile; fileRef = A5A905F923B57C80006D22BA /* Fixtures */; }; + A5A905FB23B57C80006D22BA /* Fixtures in Resources */ = {isa = PBXBuildFile; fileRef = A5A905F923B57C80006D22BA /* Fixtures */; }; + A5A905FC23B57C80006D22BA /* Fixtures in Resources */ = {isa = PBXBuildFile; fileRef = A5A905F923B57C80006D22BA /* Fixtures */; }; + A5A905FD23B57C80006D22BA /* Fixtures in Resources */ = {isa = PBXBuildFile; fileRef = A5A905F923B57C80006D22BA /* Fixtures */; }; + A5A905FE23B57C80006D22BA /* Fixtures in Resources */ = {isa = PBXBuildFile; fileRef = A5A905F923B57C80006D22BA /* Fixtures */; }; + A5A905FF23B57C80006D22BA /* Fixtures in Resources */ = {isa = PBXBuildFile; fileRef = A5A905F923B57C80006D22BA /* Fixtures */; }; + A5A9060023B57C80006D22BA /* Fixtures in Resources */ = {isa = PBXBuildFile; fileRef = A5A905F923B57C80006D22BA /* Fixtures */; }; + A5BB312223DCF4570015525A /* PNPresenceStateIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5BB312123DCF4570015525A /* PNPresenceStateIntegrationTest.m */; }; + A5BB312323DCF4570015525A /* PNPresenceStateIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5BB312123DCF4570015525A /* PNPresenceStateIntegrationTest.m */; }; + A5BB312423DCF4570015525A /* PNPresenceStateIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5BB312123DCF4570015525A /* PNPresenceStateIntegrationTest.m */; }; + A5BB312523DCF4570015525A /* PNPresenceStateIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5BB312123DCF4570015525A /* PNPresenceStateIntegrationTest.m */; }; + A5BB312723DE32980015525A /* PNSubscribeIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5BB312623DE32980015525A /* PNSubscribeIntegrationTest.m */; }; + A5BB312823DE32980015525A /* PNSubscribeIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5BB312623DE32980015525A /* PNSubscribeIntegrationTest.m */; }; + A5BB312923DE32980015525A /* PNSubscribeIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5BB312623DE32980015525A /* PNSubscribeIntegrationTest.m */; }; + A5BB312A23DE32980015525A /* PNSubscribeIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5BB312623DE32980015525A /* PNSubscribeIntegrationTest.m */; }; + A5BB312C23DE33310015525A /* PNTimeIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5BB312B23DE33310015525A /* PNTimeIntegrationTest.m */; }; + A5BB312D23DE33310015525A /* PNTimeIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5BB312B23DE33310015525A /* PNTimeIntegrationTest.m */; }; + A5BB312E23DE33310015525A /* PNTimeIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5BB312B23DE33310015525A /* PNTimeIntegrationTest.m */; }; + A5BB312F23DE33310015525A /* PNTimeIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5BB312B23DE33310015525A /* PNTimeIntegrationTest.m */; }; + A5BBD01C23BAB7F60089AD06 /* PNChannelGroupIntegrationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = A5BBD01B23BAB7F60089AD06 /* PNChannelGroupIntegrationTests.m */; }; + A5BBD01D23BAB7F60089AD06 /* PNChannelGroupIntegrationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = A5BBD01B23BAB7F60089AD06 /* PNChannelGroupIntegrationTests.m */; }; + A5BBD01E23BAB7F60089AD06 /* PNChannelGroupIntegrationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = A5BBD01B23BAB7F60089AD06 /* PNChannelGroupIntegrationTests.m */; }; + A5BBD01F23BAB7F60089AD06 /* PNChannelGroupIntegrationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = A5BBD01B23BAB7F60089AD06 /* PNChannelGroupIntegrationTests.m */; }; + A5BDE10123C35939000E7895 /* PNPresenceIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5BDE10023C35939000E7895 /* PNPresenceIntegrationTest.m */; }; + A5BDE10223C35939000E7895 /* PNPresenceIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5BDE10023C35939000E7895 /* PNPresenceIntegrationTest.m */; }; + A5BDE10323C35939000E7895 /* PNPresenceIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5BDE10023C35939000E7895 /* PNPresenceIntegrationTest.m */; }; + A5BDE10423C35939000E7895 /* PNPresenceIntegrationTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5BDE10023C35939000E7895 /* PNPresenceIntegrationTest.m */; }; + A5DB1E9323B2D212009B1B23 /* NSInvocation+PNTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5DB1E9223B2D212009B1B23 /* NSInvocation+PNTest.m */; }; + A5DB1E9423B2D212009B1B23 /* NSInvocation+PNTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5DB1E9223B2D212009B1B23 /* NSInvocation+PNTest.m */; }; + A5DB1E9523B2D212009B1B23 /* NSInvocation+PNTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5DB1E9223B2D212009B1B23 /* NSInvocation+PNTest.m */; }; + A5DB1E9623B2D212009B1B23 /* NSInvocation+PNTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5DB1E9223B2D212009B1B23 /* NSInvocation+PNTest.m */; }; + A5DB1E9723B2D212009B1B23 /* NSInvocation+PNTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5DB1E9223B2D212009B1B23 /* NSInvocation+PNTest.m */; }; + A5DB1E9823B2D212009B1B23 /* NSInvocation+PNTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5DB1E9223B2D212009B1B23 /* NSInvocation+PNTest.m */; }; + A5DB1E9923B2D212009B1B23 /* NSInvocation+PNTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5DB1E9223B2D212009B1B23 /* NSInvocation+PNTest.m */; }; + A5DB1E9A23B2D212009B1B23 /* NSInvocation+PNTest.m in Sources */ = {isa = PBXBuildFile; fileRef = A5DB1E9223B2D212009B1B23 /* NSInvocation+PNTest.m */; }; + A5DB1E9C23B412E7009B1B23 /* PNPublishIntegrationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = A5DB1E9B23B412E7009B1B23 /* PNPublishIntegrationTests.m */; }; + A5DB1E9D23B412E7009B1B23 /* PNPublishIntegrationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = A5DB1E9B23B412E7009B1B23 /* PNPublishIntegrationTests.m */; }; + A5DB1E9E23B412E7009B1B23 /* PNPublishIntegrationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = A5DB1E9B23B412E7009B1B23 /* PNPublishIntegrationTests.m */; }; + A5DB1E9F23B412E7009B1B23 /* PNPublishIntegrationTests.m in Sources */ = {isa = PBXBuildFile; fileRef = A5DB1E9B23B412E7009B1B23 /* PNPublishIntegrationTests.m */; }; + A5DB1EA023B41476009B1B23 /* tests-configuration.json in Resources */ = {isa = PBXBuildFile; fileRef = A529271823B1855A00FF46DD /* tests-configuration.json */; }; + E8384D24DB0C3F49BB43F3AC /* Pods_MockableTests__macOS__Mocked_Integration_Tests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DCFC59753168B05940319DBA /* Pods_MockableTests__macOS__Mocked_Integration_Tests.framework */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ - 1F80BF508DF8062476C90DE4 /* Pods-iOS ObjC Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iOS ObjC Tests.debug.xcconfig"; path = "Target Support Files/Pods-iOS ObjC Tests/Pods-iOS ObjC Tests.debug.xcconfig"; sourceTree = ""; }; - 29DEF65970DD1FA0E9413980 /* Pods-OSX ObjC Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-OSX ObjC Tests.debug.xcconfig"; path = "Target Support Files/Pods-OSX ObjC Tests/Pods-OSX ObjC Tests.debug.xcconfig"; sourceTree = ""; }; - 517A9ED31BE3181700FAA43A /* OSX ObjC Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "OSX ObjC Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - 517A9ED71BE3181700FAA43A /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 519C327D1B20C11500FAC283 /* iOS ObjC Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "iOS ObjC Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - 519C32811B20C11500FAC283 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 51A6E5FE1BE421DC00C20B77 /* PNDeviceIndependentMatcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PNDeviceIndependentMatcher.h; sourceTree = ""; }; - 51A6E5FF1BE421DC00C20B77 /* PNDeviceIndependentMatcher.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PNDeviceIndependentMatcher.m; sourceTree = ""; }; - 51BB253F1B6814EF00A9F154 /* PNBasicSubscribeTestCase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PNBasicSubscribeTestCase.swift; sourceTree = ""; }; - 51BB25411B6815F300A9F154 /* PNTimeTokenTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PNTimeTokenTests.swift; sourceTree = ""; }; - 51D889E11B66E0F8009127D0 /* iOS Swift Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "iOS Swift Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - 51D889E41B66E0F8009127D0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 51D889EA1B66E1D9009127D0 /* iOS Tests-Swift-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "iOS Tests-Swift-Bridging-Header.h"; sourceTree = SOURCE_ROOT; }; - 51D889F11B66F49E009127D0 /* PNBasicClientTestCase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PNBasicClientTestCase.swift; sourceTree = ""; }; - 54990DF75CBFC7C405B645D5 /* Pods_tvOS_ObjC_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_tvOS_ObjC_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 6690703E1216498F8F228D12 /* Pods_OSX_ObjC_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_OSX_ObjC_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 6B9C16A4C435306BAA05BD00 /* Pods_iOS_ObjC_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_iOS_ObjC_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; - 7933B4D922D666B70097458F /* PNSignalTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNSignalTest.m; sourceTree = ""; }; - 793C2D25228C5467000E7A35 /* PNPublishCompressedTests.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = PNPublishCompressedTests.bundle; path = Fixtures/PNPublishCompressedTests.bundle; sourceTree = ""; }; - 793C2D2D228C7B5C000E7A35 /* PNPublishTests.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = PNPublishTests.bundle; path = Fixtures/PNPublishTests.bundle; sourceTree = ""; }; - 793C2D31228C7B72000E7A35 /* PNPublishWithHistoryTests.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = PNPublishWithHistoryTests.bundle; path = Fixtures/PNPublishWithHistoryTests.bundle; sourceTree = ""; }; - 793C2D35228C7BB6000E7A35 /* PNPublishWithMobilePayloadTests.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = PNPublishWithMobilePayloadTests.bundle; path = Fixtures/PNPublishWithMobilePayloadTests.bundle; sourceTree = ""; }; - 794B5662228D4A67007AB94F /* PNChannelGroupTests.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = PNChannelGroupTests.bundle; path = Fixtures/PNChannelGroupTests.bundle; sourceTree = ""; }; - 794B5666228D4AA2007AB94F /* PNAPNSTests.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = PNAPNSTests.bundle; path = Fixtures/PNAPNSTests.bundle; sourceTree = ""; }; - 794B566A228D4B19007AB94F /* PNPublishSizeOfMessage.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = PNPublishSizeOfMessage.bundle; path = Fixtures/PNPublishSizeOfMessage.bundle; sourceTree = ""; }; - 794B6B89228D492400489D37 /* PNTimeTokenTests.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = PNTimeTokenTests.bundle; path = Fixtures/PNTimeTokenTests.bundle; sourceTree = ""; }; - 795CED091BCF002900D421BB /* PNHeartbeatTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PNHeartbeatTests.swift; sourceTree = ""; }; - 797A333B22C32B3D0036D28C /* PNSubscribeIntegrationTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNSubscribeIntegrationTest.m; sourceTree = ""; }; - 797BDD021C1F5091006EF006 /* watchOS ObjC Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "watchOS ObjC Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - 797BDD3F1C1F5176006EF006 /* tvOS ObjC Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "tvOS ObjC Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; - 79878FC022D924F100F0096D /* PNSignalAPIBuilderTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNSignalAPIBuilderTest.m; sourceTree = ""; }; - 799CE2E11C45A76100AAEBDC /* PNChannelGroupFilteringSubscribeTests.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = PNChannelGroupFilteringSubscribeTests.bundle; path = Fixtures/PNChannelGroupFilteringSubscribeTests.bundle; sourceTree = ""; }; - 799CE2E31C45A76700AAEBDC /* PNChannelGroupPresenceEventTests.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = PNChannelGroupPresenceEventTests.bundle; path = Fixtures/PNChannelGroupPresenceEventTests.bundle; sourceTree = ""; }; - 799CE2E51C45A79B00AAEBDC /* PNFilteringSubscribeTests.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = PNFilteringSubscribeTests.bundle; path = Fixtures/PNFilteringSubscribeTests.bundle; sourceTree = ""; }; - 799CE2EB1C45A82E00AAEBDC /* PNPresenceChannelGroupTests.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = PNPresenceChannelGroupTests.bundle; path = Fixtures/PNPresenceChannelGroupTests.bundle; sourceTree = ""; }; - 799CE2EF1C45B89F00AAEBDC /* PNChannelGroupPresenceEventTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PNChannelGroupPresenceEventTests.m; path = Tests/PNChannelGroupPresenceEventTests.m; sourceTree = ""; }; - 799CE2F11C45B8FD00AAEBDC /* PNBasicPresenceTestCase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PNBasicPresenceTestCase.h; path = Helpers/PNBasicPresenceTestCase.h; sourceTree = ""; }; - 799CE2F21C45B8FD00AAEBDC /* PNBasicPresenceTestCase.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PNBasicPresenceTestCase.m; path = Helpers/PNBasicPresenceTestCase.m; sourceTree = ""; }; - 799CE2F61C45B95400AAEBDC /* PNChannelGroupFilteringSubscribeTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PNChannelGroupFilteringSubscribeTests.m; path = Tests/PNChannelGroupFilteringSubscribeTests.m; sourceTree = ""; }; - 799CE2F81C45B9FD00AAEBDC /* PNFilteringSubscribeTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PNFilteringSubscribeTests.m; path = Tests/PNFilteringSubscribeTests.m; sourceTree = ""; }; - 799CE2FA1C45BA3000AAEBDC /* PNPresenceChannelGroupTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PNPresenceChannelGroupTests.m; path = Tests/PNPresenceChannelGroupTests.m; sourceTree = ""; }; - 79A238E81D2EB6BA00D080CD /* NSURLSessionConfigurationCategoryTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NSURLSessionConfigurationCategoryTest.m; path = Tests/NSURLSessionConfigurationCategoryTest.m; sourceTree = ""; }; - 79A3E4472215783200F2ADB9 /* NSInvocation+PNTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSInvocation+PNTest.m"; sourceTree = ""; }; - 79A3E4482215783200F2ADB9 /* NSInvocation+PNTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSInvocation+PNTest.h"; sourceTree = ""; }; - 79A3E4502215806D00F2ADB9 /* PNTestCase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PNTestCase.h; sourceTree = ""; }; - 79A3E4512215806D00F2ADB9 /* PNTestCase.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNTestCase.m; sourceTree = ""; }; - 79A3E4582215A42C00F2ADB9 /* PNMessageCountTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PNMessageCountTest.m; sourceTree = ""; }; - 79A3E45B2215A42C00F2ADB9 /* PNMessageCountAPICallBuilderTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PNMessageCountAPICallBuilderTest.m; sourceTree = ""; }; - 79C288D7228C038E004FD5C5 /* keysset.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = keysset.plist; sourceTree = ""; }; - 79E198C21CE3DCF600F36216 /* PNNumberTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PNNumberTests.m; path = Tests/PNNumberTests.m; sourceTree = ""; }; - 79EF04911B4EAAB7007478CB /* PNAPNSTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PNAPNSTests.m; path = Tests/PNAPNSTests.m; sourceTree = ""; }; - 79EF04921B4EAAB7007478CB /* PNChannelGroupSubscribeTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PNChannelGroupSubscribeTests.m; path = Tests/PNChannelGroupSubscribeTests.m; sourceTree = ""; }; - 79EF04931B4EAAB7007478CB /* PNChannelGroupTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PNChannelGroupTests.m; path = Tests/PNChannelGroupTests.m; sourceTree = ""; }; - 79EF04941B4EAAB7007478CB /* PNChannelGroupUnsubscribeTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PNChannelGroupUnsubscribeTests.m; path = Tests/PNChannelGroupUnsubscribeTests.m; sourceTree = ""; }; - 79EF04951B4EAAB7007478CB /* PNClientConfigurationTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PNClientConfigurationTests.m; path = Tests/PNClientConfigurationTests.m; sourceTree = ""; }; - 79EF04961B4EAAB7007478CB /* PNClientStateChannelGroupTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PNClientStateChannelGroupTests.m; path = Tests/PNClientStateChannelGroupTests.m; sourceTree = ""; }; - 79EF04971B4EAAB7007478CB /* PNClientStateChannelTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PNClientStateChannelTests.m; path = Tests/PNClientStateChannelTests.m; sourceTree = ""; }; - 79EF04981B4EAAB7007478CB /* PNHeartbeatTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PNHeartbeatTests.m; path = Tests/PNHeartbeatTests.m; sourceTree = ""; }; - 79EF04991B4EAAB7007478CB /* PNHistoryTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PNHistoryTests.m; path = Tests/PNHistoryTests.m; sourceTree = ""; }; - 79EF049A1B4EAAB7007478CB /* PNPresenceTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PNPresenceTests.m; path = Tests/PNPresenceTests.m; sourceTree = ""; }; - 79EF049B1B4EAAB7007478CB /* PNPublishCompressedTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PNPublishCompressedTests.m; path = Tests/PNPublishCompressedTests.m; sourceTree = ""; }; - 79EF049C1B4EAAB7007478CB /* PNPublishSizeOfMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PNPublishSizeOfMessage.m; path = Tests/PNPublishSizeOfMessage.m; sourceTree = ""; }; - 79EF049D1B4EAAB7007478CB /* PNPublishTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PNPublishTests.m; path = Tests/PNPublishTests.m; sourceTree = ""; }; - 79EF049E1B4EAAB7007478CB /* PNPublishWithHistoryTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PNPublishWithHistoryTests.m; path = Tests/PNPublishWithHistoryTests.m; sourceTree = ""; }; - 79EF049F1B4EAAB7007478CB /* PNPublishWithMobilePayloadTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PNPublishWithMobilePayloadTests.m; path = Tests/PNPublishWithMobilePayloadTests.m; sourceTree = ""; }; - 79EF04A01B4EAAB7007478CB /* PNSubscribeTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PNSubscribeTests.m; path = Tests/PNSubscribeTests.m; sourceTree = ""; }; - 79EF04A11B4EAAB7007478CB /* PNSubscribeToPresenceChannelsTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PNSubscribeToPresenceChannelsTests.m; path = Tests/PNSubscribeToPresenceChannelsTests.m; sourceTree = ""; }; - 79EF04A21B4EAAB7007478CB /* PNTimeTokenTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PNTimeTokenTests.m; path = Tests/PNTimeTokenTests.m; sourceTree = ""; }; - 79EF04A31B4EAAB7007478CB /* PNUnsubscribeTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PNUnsubscribeTests.m; path = Tests/PNUnsubscribeTests.m; sourceTree = ""; }; - 79EF04B71B4EAAE4007478CB /* PNBasicClientTestCase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PNBasicClientTestCase.h; path = Helpers/PNBasicClientTestCase.h; sourceTree = ""; }; - 79EF04B81B4EAAE4007478CB /* PNBasicClientTestCase.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PNBasicClientTestCase.m; path = Helpers/PNBasicClientTestCase.m; sourceTree = ""; }; - 79EF04B91B4EAAE4007478CB /* PNBasicSubscribeTestCase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PNBasicSubscribeTestCase.h; path = Helpers/PNBasicSubscribeTestCase.h; sourceTree = ""; }; - 79EF04BA1B4EAAE4007478CB /* PNBasicSubscribeTestCase.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PNBasicSubscribeTestCase.m; path = Helpers/PNBasicSubscribeTestCase.m; sourceTree = ""; }; - 79EF04BD1B4EAB01007478CB /* NSDictionary+PNTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSDictionary+PNTest.h"; path = "iOS Tests/Helpers/NSDictionary+PNTest.h"; sourceTree = ""; }; - 79EF04BE1B4EAB01007478CB /* NSDictionary+PNTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSDictionary+PNTest.m"; path = "iOS Tests/Helpers/NSDictionary+PNTest.m"; sourceTree = ""; }; - 79EF04BF1B4EAB01007478CB /* NSString+PNTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSString+PNTest.h"; path = "iOS Tests/Helpers/NSString+PNTest.h"; sourceTree = ""; }; - 79EF04C01B4EAB01007478CB /* NSString+PNTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSString+PNTest.m"; path = "iOS Tests/Helpers/NSString+PNTest.m"; sourceTree = ""; }; - 79EF04C41B4EAB1A007478CB /* PNChannelGroupSubscribeTests.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = PNChannelGroupSubscribeTests.bundle; path = Fixtures/PNChannelGroupSubscribeTests.bundle; sourceTree = ""; }; - 79EF04C61B4EAB1A007478CB /* PNChannelGroupUnsubscribeTests.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = PNChannelGroupUnsubscribeTests.bundle; path = Fixtures/PNChannelGroupUnsubscribeTests.bundle; sourceTree = ""; }; - 79EF04C71B4EAB1A007478CB /* PNClientConfigurationTests.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = PNClientConfigurationTests.bundle; path = Fixtures/PNClientConfigurationTests.bundle; sourceTree = ""; }; - 79EF04C81B4EAB1A007478CB /* PNClientStateChannelGroupTests.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = PNClientStateChannelGroupTests.bundle; path = Fixtures/PNClientStateChannelGroupTests.bundle; sourceTree = ""; }; - 79EF04C91B4EAB1A007478CB /* PNClientStateChannelTests.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = PNClientStateChannelTests.bundle; path = Fixtures/PNClientStateChannelTests.bundle; sourceTree = ""; }; - 79EF04CA1B4EAB1A007478CB /* PNHeartbeatTests.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = PNHeartbeatTests.bundle; path = Fixtures/PNHeartbeatTests.bundle; sourceTree = ""; }; - 79EF04CB1B4EAB1A007478CB /* PNHistoryTests.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = PNHistoryTests.bundle; path = Fixtures/PNHistoryTests.bundle; sourceTree = ""; }; - 79EF04CC1B4EAB1A007478CB /* PNPresenceTests.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = PNPresenceTests.bundle; path = Fixtures/PNPresenceTests.bundle; sourceTree = ""; }; - 79EF04D11B4EAB1A007478CB /* PNSubscribeTests.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = PNSubscribeTests.bundle; path = Fixtures/PNSubscribeTests.bundle; sourceTree = ""; }; - 79EF04D21B4EAB1A007478CB /* PNSubscribeToPresenceChannelsTests.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = PNSubscribeToPresenceChannelsTests.bundle; path = Fixtures/PNSubscribeToPresenceChannelsTests.bundle; sourceTree = ""; }; - 79EF04D41B4EAB1A007478CB /* PNUnsubscribeTests.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = PNUnsubscribeTests.bundle; path = Fixtures/PNUnsubscribeTests.bundle; sourceTree = ""; }; - 856325838D88FF13AF9E0F81 /* Pods-tvOS ObjC Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-tvOS ObjC Tests.release.xcconfig"; path = "Target Support Files/Pods-tvOS ObjC Tests/Pods-tvOS ObjC Tests.release.xcconfig"; sourceTree = ""; }; - 960354F51B90629C0047EE04 /* PNPresenceEventTests.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = PNPresenceEventTests.bundle; path = Fixtures/PNPresenceEventTests.bundle; sourceTree = ""; }; - 960354F81B9100120047EE04 /* PNPresenceEventTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PNPresenceEventTests.swift; sourceTree = ""; }; - 9652F3E01BA31D9A001E940A /* PNBasicClientCryptTestCase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PNBasicClientCryptTestCase.h; path = Helpers/PNBasicClientCryptTestCase.h; sourceTree = ""; }; - 9652F3E11BA31D9A001E940A /* PNBasicClientCryptTestCase.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PNBasicClientCryptTestCase.m; path = Helpers/PNBasicClientCryptTestCase.m; sourceTree = ""; }; - 9652F3E31BA31F7D001E940A /* PNConfigurationChiperKeyTests.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PNConfigurationChiperKeyTests.h; path = Tests/PNConfigurationChiperKeyTests.h; sourceTree = ""; }; - 9652F3E41BA31F7D001E940A /* PNConfigurationChiperKeyTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PNConfigurationChiperKeyTests.m; path = Tests/PNConfigurationChiperKeyTests.m; sourceTree = ""; }; - 9652F3E61BA6E90B001E940A /* PNConfigurationChiperKeyTests.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; name = PNConfigurationChiperKeyTests.bundle; path = Fixtures/PNConfigurationChiperKeyTests.bundle; sourceTree = ""; }; - 9652F3E81BA97AA5001E940A /* PNBasicClientCryptTestCase.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PNBasicClientCryptTestCase.swift; sourceTree = ""; }; - 9652F3EA1BA98706001E940A /* PNConfigurationChiperKeyTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PNConfigurationChiperKeyTests.swift; sourceTree = ""; }; - 967707F61B8F4A80002B8E84 /* PNPresenceEventTests.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PNPresenceEventTests.m; path = Tests/PNPresenceEventTests.m; sourceTree = ""; }; - 96B222BB1B84868C002549D5 /* PNPresenceTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PNPresenceTests.swift; sourceTree = ""; }; - 96F0239C1B580D0000C4A581 /* NSArray+PNTest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "NSArray+PNTest.h"; path = "iOS Tests/Helpers/NSArray+PNTest.h"; sourceTree = ""; }; - 96F0239D1B580D0000C4A581 /* NSArray+PNTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "NSArray+PNTest.m"; path = "iOS Tests/Helpers/NSArray+PNTest.m"; sourceTree = ""; }; - 9722C2751B68A24C00A7CB44 /* PNPublishTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PNPublishTests.swift; sourceTree = ""; }; - A5105B5F238F08FB00CB693D /* PNNotificationPayloadBuilderTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNNotificationPayloadBuilderTest.m; sourceTree = ""; }; - A525EA4F2301E69300ABFDC2 /* PNSpaceObjectsTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNSpaceObjectsTest.m; sourceTree = ""; }; - A525EA532302A77A00ABFDC2 /* PNMembershipObjectsTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNMembershipObjectsTest.m; sourceTree = ""; }; - A525EA572302A79000ABFDC2 /* PNMemberObjectsTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNMemberObjectsTest.m; sourceTree = ""; }; - A525EA642303EF7200ABFDC2 /* PNUserIntegrationTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PNUserIntegrationTest.m; sourceTree = ""; }; - A525EA6823047CB300ABFDC2 /* PNObjectsTestCase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PNObjectsTestCase.h; sourceTree = ""; }; - A525EA6923047CB300ABFDC2 /* PNObjectsTestCase.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNObjectsTestCase.m; sourceTree = ""; }; - A525EA72230483EF00ABFDC2 /* PNSpaceIntegrationTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNSpaceIntegrationTest.m; sourceTree = ""; }; - A52DC1DF23059898001F20B0 /* PNMembershipIntegrationTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNMembershipIntegrationTest.m; sourceTree = ""; }; - A54F4172231FABC3007A368A /* PNMessageActionsTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNMessageActionsTest.m; sourceTree = ""; }; - A55260552309DF1900CB4ACF /* PNMemberIntegrationTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNMemberIntegrationTest.m; sourceTree = ""; }; - A55A64912328E36A0064E8E4 /* PNHistoryIntegrationTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PNHistoryIntegrationTest.m; sourceTree = ""; }; - A55A64932328E36A0064E8E4 /* PNAPNSIntegrationTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PNAPNSIntegrationTest.m; sourceTree = ""; }; - A55A64952328E36A0064E8E4 /* PNSignalIntegrationTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PNSignalIntegrationTest.m; sourceTree = ""; }; - A55A64972328E36A0064E8E4 /* PNMessageActionsIntegrationTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PNMessageActionsIntegrationTest.m; sourceTree = ""; }; - A55A889322FD8397002D0A72 /* PNUserObjectsAPICallBuilderTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PNUserObjectsAPICallBuilderTest.m; sourceTree = ""; }; - A55A889822FD83B9002D0A72 /* PNUserObjectsTest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PNUserObjectsTest.m; sourceTree = ""; }; - A55BCD7C231E80220019DB68 /* PNMessageActionsAPICallBuilderTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNMessageActionsAPICallBuilderTest.m; sourceTree = ""; }; - A589756422FE711C0093BD9A /* PNSpaceObjectsAPICallBuilderTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNSpaceObjectsAPICallBuilderTest.m; sourceTree = ""; }; - A5F62C3323017E88001CC2A5 /* PNMembershipsObjectsAPICallBuilderTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNMembershipsObjectsAPICallBuilderTest.m; sourceTree = ""; }; - A5F62C3723017E95001CC2A5 /* PNMembersObjectsAPICallBuilderTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNMembersObjectsAPICallBuilderTest.m; sourceTree = ""; }; - C06D9ED81A3272A2089CAA74 /* Pods-iOS ObjC Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-iOS ObjC Tests.release.xcconfig"; path = "Target Support Files/Pods-iOS ObjC Tests/Pods-iOS ObjC Tests.release.xcconfig"; sourceTree = ""; }; - DDF3E768291CCF18FCF93AE8 /* Pods-OSX ObjC Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-OSX ObjC Tests.release.xcconfig"; path = "Target Support Files/Pods-OSX ObjC Tests/Pods-OSX ObjC Tests.release.xcconfig"; sourceTree = ""; }; - DEF30C57C474ED0F4ABE8DA0 /* Pods-tvOS ObjC Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-tvOS ObjC Tests.debug.xcconfig"; path = "Target Support Files/Pods-tvOS ObjC Tests/Pods-tvOS ObjC Tests.debug.xcconfig"; sourceTree = ""; }; + 11D69858FFE7F4EAE285F2D5 /* Pods_MockableTests__tvOS__Mocked_Integration_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_MockableTests__tvOS__Mocked_Integration_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 1BA98F1E8EEB1CEB98EFD3C4 /* Pods-MockableTests-[macOS] Mocked Integration Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MockableTests-[macOS] Mocked Integration Tests.release.xcconfig"; path = "Target Support Files/Pods-MockableTests-[macOS] Mocked Integration Tests/Pods-MockableTests-[macOS] Mocked Integration Tests.release.xcconfig"; sourceTree = ""; }; + 25692505FB8B6A6B76FF7C26 /* Pods-MockableTests-[iOS] Mocked Integration Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MockableTests-[iOS] Mocked Integration Tests.debug.xcconfig"; path = "Target Support Files/Pods-MockableTests-[iOS] Mocked Integration Tests/Pods-MockableTests-[iOS] Mocked Integration Tests.debug.xcconfig"; sourceTree = ""; }; + 29CA30C01DA11D9A77017982 /* Pods-MockableTests-[tvOS] Mocked Integration Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MockableTests-[tvOS] Mocked Integration Tests.release.xcconfig"; path = "Target Support Files/Pods-MockableTests-[tvOS] Mocked Integration Tests/Pods-MockableTests-[tvOS] Mocked Integration Tests.release.xcconfig"; sourceTree = ""; }; + 45686882FCB959B97FADC986 /* Pods-MockableTests-[macOS] Mocked Integration Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MockableTests-[macOS] Mocked Integration Tests.debug.xcconfig"; path = "Target Support Files/Pods-MockableTests-[macOS] Mocked Integration Tests/Pods-MockableTests-[macOS] Mocked Integration Tests.debug.xcconfig"; sourceTree = ""; }; + 4E925E53782772E8DADCD599 /* Pods-MockableTests-[tvOS] Unit Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MockableTests-[tvOS] Unit Tests.release.xcconfig"; path = "Target Support Files/Pods-MockableTests-[tvOS] Unit Tests/Pods-MockableTests-[tvOS] Unit Tests.release.xcconfig"; sourceTree = ""; }; + 53E26974366CA7B8A99340E7 /* Pods_MockableTests__macOS__Unit_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_MockableTests__macOS__Unit_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 62A9E0261BD01762FE2C2D0C /* Pods-MockableTests-[iOS] Unit Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MockableTests-[iOS] Unit Tests.release.xcconfig"; path = "Target Support Files/Pods-MockableTests-[iOS] Unit Tests/Pods-MockableTests-[iOS] Unit Tests.release.xcconfig"; sourceTree = ""; }; + 630BF161A05F88463997CDEF /* Pods_MockableTests__iOS__Mocked_Integration_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_MockableTests__iOS__Mocked_Integration_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 6335C248B76FFB7012F2D151 /* Pods_MockableTests__tvOS__Unit_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_MockableTests__tvOS__Unit_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 69FF522A83ED4BDED019829C /* Pods-MockableTests-[iOS] Unit Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MockableTests-[iOS] Unit Tests.debug.xcconfig"; path = "Target Support Files/Pods-MockableTests-[iOS] Unit Tests/Pods-MockableTests-[iOS] Unit Tests.debug.xcconfig"; sourceTree = ""; }; + 6E739F838BE83C3CB6579E9D /* Pods-MockableTests-[tvOS] Unit Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MockableTests-[tvOS] Unit Tests.debug.xcconfig"; path = "Target Support Files/Pods-MockableTests-[tvOS] Unit Tests/Pods-MockableTests-[tvOS] Unit Tests.debug.xcconfig"; sourceTree = ""; }; + 728AD9FCB981CBE691F7A6D0 /* Pods-MockableTests-[macOS] Unit Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MockableTests-[macOS] Unit Tests.debug.xcconfig"; path = "Target Support Files/Pods-MockableTests-[macOS] Unit Tests/Pods-MockableTests-[macOS] Unit Tests.debug.xcconfig"; sourceTree = ""; }; + 807C1E4B133D73D0A73F4A63 /* Pods_MockableTests__iOS__Unit_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_MockableTests__iOS__Unit_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 86365B3A571F666A5ED76D80 /* Pods-[iOS] Integration Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-[iOS] Integration Tests.debug.xcconfig"; path = "Target Support Files/Pods-[iOS] Integration Tests/Pods-[iOS] Integration Tests.debug.xcconfig"; sourceTree = ""; }; + 896A4CE66BD47FDE65276FAA /* Pods-MockableTests-[macOS] Unit Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MockableTests-[macOS] Unit Tests.release.xcconfig"; path = "Target Support Files/Pods-MockableTests-[macOS] Unit Tests/Pods-MockableTests-[macOS] Unit Tests.release.xcconfig"; sourceTree = ""; }; + 920B649044F618C346B0C2F0 /* Pods__iOS__Integration_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods__iOS__Integration_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + A529268323B0D07500FF46DD /* [iOS] Code Coverage.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "[iOS] Code Coverage.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + A52926D823B0E3CF00FF46DD /* ios-tests.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "ios-tests.plist"; sourceTree = ""; }; + A52926DF23B0E6C500FF46DD /* [tvOS] Mocked Integration Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "[tvOS] Mocked Integration Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + A52926EB23B0E6DC00FF46DD /* [tvOS] Unit Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "[tvOS] Unit Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + A52926F723B0E71700FF46DD /* [macOS] Mocked Integration Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "[macOS] Mocked Integration Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + A529270323B0E72500FF46DD /* [macOS] Unit Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "[macOS] Unit Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + A529270B23B0E80700FF46DD /* macos-tests.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "macos-tests.plist"; sourceTree = ""; }; + A529270C23B0E80700FF46DD /* tvos-tests.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "tvos-tests.plist"; sourceTree = ""; }; + A529270E23B181FE00FF46DD /* PNRecordableTestCase.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PNRecordableTestCase.h; sourceTree = ""; }; + A529270F23B181FE00FF46DD /* PNRecordableTestCase.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNRecordableTestCase.m; sourceTree = ""; }; + A529271823B1855A00FF46DD /* tests-configuration.json */ = {isa = PBXFileReference; lastKnownFileType = text.json; path = "tests-configuration.json"; sourceTree = ""; }; + A53D0AED23E9BF60001E72AF /* PNMembershipsObjectsAPICallBuilderTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNMembershipsObjectsAPICallBuilderTest.m; sourceTree = ""; }; + A53D0AF123E9F42B001E72AF /* PNMembersObjectsAPICallBuilderTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNMembersObjectsAPICallBuilderTest.m; sourceTree = ""; }; + A53D0AF523E9F7D7001E72AF /* PNSpaceObjectsAPICallBuilderTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNSpaceObjectsAPICallBuilderTest.m; sourceTree = ""; }; + A53D0AF923E9FBE4001E72AF /* PNUserObjectsAPICallBuilderTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNUserObjectsAPICallBuilderTest.m; sourceTree = ""; }; + A53D0AFF23EA00EB001E72AF /* PNMessageActionsAPICallBuilderTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNMessageActionsAPICallBuilderTest.m; sourceTree = ""; }; + A53D0B0423EA063A001E72AF /* PNSignalAPIBuilderTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNSignalAPIBuilderTest.m; sourceTree = ""; }; + A53D0B0923EA070A001E72AF /* PNMessageCountAPICallBuilderTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNMessageCountAPICallBuilderTest.m; sourceTree = ""; }; + A53D0B0E23EA07E5001E72AF /* PNMembershipObjectsTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNMembershipObjectsTest.m; sourceTree = ""; }; + A53D0B1223EA0A07001E72AF /* PNMemberObjectsTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNMemberObjectsTest.m; sourceTree = ""; }; + A53D0B1623EA0AB4001E72AF /* PNSpaceObjectsTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNSpaceObjectsTest.m; sourceTree = ""; }; + A53D0B1A23EA0C5C001E72AF /* PNUserObjectsTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNUserObjectsTest.m; sourceTree = ""; }; + A53D0B1F23EA0DB7001E72AF /* PNMessageActionsTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNMessageActionsTest.m; sourceTree = ""; }; + A53D0B2523EA0EAD001E72AF /* PNMessageCountTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNMessageCountTest.m; sourceTree = ""; }; + A53D0B2A23EA0FEF001E72AF /* PNNotificationPayloadBuilderTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNNotificationPayloadBuilderTest.m; sourceTree = ""; }; + A54185DC23B9565000FBA26A /* PNPushNotificationsIntegrationTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNPushNotificationsIntegrationTests.m; sourceTree = ""; }; + A54E28FC23C089730024714B /* PNMembershipIntegrationTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNMembershipIntegrationTest.m; sourceTree = ""; }; + A54E290123C16B3D0024714B /* PNMemberIntegrationTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNMemberIntegrationTest.m; sourceTree = ""; }; + A54E290623C286090024714B /* PNSpaceIntegrationTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNSpaceIntegrationTest.m; sourceTree = ""; }; + A54E290B23C2992A0024714B /* PNUserIntegrationTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNUserIntegrationTest.m; sourceTree = ""; }; + A59ECFDC23BB571200E84300 /* PNSignalTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNSignalTest.m; sourceTree = ""; }; + A59ECFE323BB5B1900E84300 /* PNHistoryIntegrationTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNHistoryIntegrationTests.m; sourceTree = ""; }; + A59ECFE923BD5E8F00E84300 /* PNMessageActionsIntegrationTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNMessageActionsIntegrationTest.m; sourceTree = ""; }; + A5A905EF23B571E8006D22BA /* NSString+PNTest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSString+PNTest.h"; sourceTree = ""; }; + A5A905F023B571E8006D22BA /* NSString+PNTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSString+PNTest.m"; sourceTree = ""; }; + A5A905F923B57C80006D22BA /* Fixtures */ = {isa = PBXFileReference; lastKnownFileType = folder; path = Fixtures; sourceTree = ""; }; + A5B65D6F23B03DB4006B7BFB /* [iOS] Unit Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "[iOS] Unit Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + A5B65D8223B03FFD006B7BFB /* [iOS] Mocked Integration Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "[iOS] Mocked Integration Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + A5B65D8F23B04148006B7BFB /* [iOS] Integration Tests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = "[iOS] Integration Tests.xctest"; sourceTree = BUILT_PRODUCTS_DIR; }; + A5BB312123DCF4570015525A /* PNPresenceStateIntegrationTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNPresenceStateIntegrationTest.m; sourceTree = ""; }; + A5BB312623DE32980015525A /* PNSubscribeIntegrationTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNSubscribeIntegrationTest.m; sourceTree = ""; }; + A5BB312B23DE33310015525A /* PNTimeIntegrationTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNTimeIntegrationTest.m; sourceTree = ""; }; + A5BBD01B23BAB7F60089AD06 /* PNChannelGroupIntegrationTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNChannelGroupIntegrationTests.m; sourceTree = ""; }; + A5BDE10023C35939000E7895 /* PNPresenceIntegrationTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNPresenceIntegrationTest.m; sourceTree = ""; }; + A5DB1E9123B2D212009B1B23 /* NSInvocation+PNTest.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "NSInvocation+PNTest.h"; sourceTree = ""; }; + A5DB1E9223B2D212009B1B23 /* NSInvocation+PNTest.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = "NSInvocation+PNTest.m"; sourceTree = ""; }; + A5DB1E9B23B412E7009B1B23 /* PNPublishIntegrationTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = PNPublishIntegrationTests.m; sourceTree = ""; }; + AB136D4CA397621245829B4A /* Pods-MockableTests-[iOS] Mocked Integration Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MockableTests-[iOS] Mocked Integration Tests.release.xcconfig"; path = "Target Support Files/Pods-MockableTests-[iOS] Mocked Integration Tests/Pods-MockableTests-[iOS] Mocked Integration Tests.release.xcconfig"; sourceTree = ""; }; + BCF45540E9166EED4F363FD0 /* Pods-MockableTests-[tvOS] Mocked Integration Tests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-MockableTests-[tvOS] Mocked Integration Tests.debug.xcconfig"; path = "Target Support Files/Pods-MockableTests-[tvOS] Mocked Integration Tests/Pods-MockableTests-[tvOS] Mocked Integration Tests.debug.xcconfig"; sourceTree = ""; }; + DCFC59753168B05940319DBA /* Pods_MockableTests__macOS__Mocked_Integration_Tests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_MockableTests__macOS__Mocked_Integration_Tests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + FC07360087EEF919F88D5CE5 /* Pods-[iOS] Integration Tests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-[iOS] Integration Tests.release.xcconfig"; path = "Target Support Files/Pods-[iOS] Integration Tests/Pods-[iOS] Integration Tests.release.xcconfig"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ - 517A9ED01BE3181700FAA43A /* Frameworks */ = { + A529268023B0D07500FF46DD /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - D85D34FEFCCF355EB9F2BD74 /* Pods_OSX_ObjC_Tests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 519C327A1B20C11500FAC283 /* Frameworks */ = { + A52926DC23B0E6C500FF46DD /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - EDB954E81EBF46339127872D /* Pods_iOS_ObjC_Tests.framework in Frameworks */, + 14B1794D5C6CC4266ED22AD3 /* Pods_MockableTests__tvOS__Mocked_Integration_Tests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 51D889DE1B66E0F8009127D0 /* Frameworks */ = { + A52926E823B0E6DC00FF46DD /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 86F37F6E8DC420D32AF14AAA /* Pods_MockableTests__tvOS__Unit_Tests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 797BDCE61C1F5091006EF006 /* Frameworks */ = { + A52926F423B0E71700FF46DD /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + E8384D24DB0C3F49BB43F3AC /* Pods_MockableTests__macOS__Mocked_Integration_Tests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; - 797BDD231C1F5176006EF006 /* Frameworks */ = { + A529270023B0E72500FF46DD /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 283D0B1826722FCA35717E8F /* Pods_tvOS_ObjC_Tests.framework in Frameworks */, + 77FE92A55FFE3011A2993F88 /* Pods_MockableTests__macOS__Unit_Tests.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 178251201B30AAE6006BC234 /* Base Test Classes */ = { - isa = PBXGroup; - children = ( - 79EF04B71B4EAAE4007478CB /* PNBasicClientTestCase.h */, - 79EF04B81B4EAAE4007478CB /* PNBasicClientTestCase.m */, - 79EF04B91B4EAAE4007478CB /* PNBasicSubscribeTestCase.h */, - 79EF04BA1B4EAAE4007478CB /* PNBasicSubscribeTestCase.m */, - 9652F3E01BA31D9A001E940A /* PNBasicClientCryptTestCase.h */, - 9652F3E11BA31D9A001E940A /* PNBasicClientCryptTestCase.m */, - 799CE2F11C45B8FD00AAEBDC /* PNBasicPresenceTestCase.h */, - 799CE2F21C45B8FD00AAEBDC /* PNBasicPresenceTestCase.m */, - ); - name = "Base Test Classes"; - path = "iOS Tests"; - sourceTree = ""; - }; - 517A9ED41BE3181700FAA43A /* OSX ObjC Tests */ = { - isa = PBXGroup; - children = ( - 517A9ED71BE3181700FAA43A /* Info.plist */, + A5B65D6C23B03DB4006B7BFB /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 0042D029DF0A60EAE9E97E75 /* Pods_MockableTests__iOS__Unit_Tests.framework in Frameworks */, ); - path = "OSX ObjC Tests"; - sourceTree = ""; + runOnlyForDeploymentPostprocessing = 0; }; - 519C32721B20BF4D00FAC283 = { - isa = PBXGroup; - children = ( - 79C288D6228C01CC004FD5C5 /* Resources */, - 51D889CE1B66DF99009127D0 /* Objective-C */, - 51D889DC1B66E0D6009127D0 /* Swift */, - 51F7AAC11B27AD7400BEDA1F /* Fixtures */, - 517A9ED41BE3181700FAA43A /* OSX ObjC Tests */, - 519C327E1B20C11500FAC283 /* Products */, - 846E4BDEDEE81C2C727C1787 /* Pods */, - AC2AF694F0C5FDDADDE978EA /* Frameworks */, + A5B65D7F23B03FFD006B7BFB /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 1347928A376D92E131BA1364 /* Pods_MockableTests__iOS__Mocked_Integration_Tests.framework in Frameworks */, ); - sourceTree = ""; + runOnlyForDeploymentPostprocessing = 0; }; - 519C327E1B20C11500FAC283 /* Products */ = { - isa = PBXGroup; - children = ( - 519C327D1B20C11500FAC283 /* iOS ObjC Tests.xctest */, - 51D889E11B66E0F8009127D0 /* iOS Swift Tests.xctest */, - 517A9ED31BE3181700FAA43A /* OSX ObjC Tests.xctest */, - 797BDD021C1F5091006EF006 /* watchOS ObjC Tests.xctest */, - 797BDD3F1C1F5176006EF006 /* tvOS ObjC Tests.xctest */, + A5B65D8C23B04148006B7BFB /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 1BB1E4C2C8AAC18D4C7199C3 /* Pods__iOS__Integration_Tests.framework in Frameworks */, ); - name = Products; - sourceTree = ""; - }; - 519C327F1B20C11500FAC283 /* Tests */ = { - isa = PBXGroup; - children = ( - 79A3E4552215A42C00F2ADB9 /* Unit */, - 79A3E4622215A44000F2ADB9 /* Integration */, - 79EF04911B4EAAB7007478CB /* PNAPNSTests.m */, - 79EF04921B4EAAB7007478CB /* PNChannelGroupSubscribeTests.m */, - 79EF04931B4EAAB7007478CB /* PNChannelGroupTests.m */, - 79EF04941B4EAAB7007478CB /* PNChannelGroupUnsubscribeTests.m */, - 79EF04951B4EAAB7007478CB /* PNClientConfigurationTests.m */, - 79EF04961B4EAAB7007478CB /* PNClientStateChannelGroupTests.m */, - 79EF04971B4EAAB7007478CB /* PNClientStateChannelTests.m */, - 79EF04981B4EAAB7007478CB /* PNHeartbeatTests.m */, - 79EF04991B4EAAB7007478CB /* PNHistoryTests.m */, - 79EF049A1B4EAAB7007478CB /* PNPresenceTests.m */, - 967707F61B8F4A80002B8E84 /* PNPresenceEventTests.m */, - 79EF049B1B4EAAB7007478CB /* PNPublishCompressedTests.m */, - 79EF049C1B4EAAB7007478CB /* PNPublishSizeOfMessage.m */, - 79EF049D1B4EAAB7007478CB /* PNPublishTests.m */, - 79EF049E1B4EAAB7007478CB /* PNPublishWithHistoryTests.m */, - 79EF049F1B4EAAB7007478CB /* PNPublishWithMobilePayloadTests.m */, - 79EF04A01B4EAAB7007478CB /* PNSubscribeTests.m */, - 79EF04A11B4EAAB7007478CB /* PNSubscribeToPresenceChannelsTests.m */, - 79EF04A21B4EAAB7007478CB /* PNTimeTokenTests.m */, - 79EF04A31B4EAAB7007478CB /* PNUnsubscribeTests.m */, - 9652F3E31BA31F7D001E940A /* PNConfigurationChiperKeyTests.h */, - 9652F3E41BA31F7D001E940A /* PNConfigurationChiperKeyTests.m */, - 799CE2EF1C45B89F00AAEBDC /* PNChannelGroupPresenceEventTests.m */, - 799CE2F61C45B95400AAEBDC /* PNChannelGroupFilteringSubscribeTests.m */, - 799CE2F81C45B9FD00AAEBDC /* PNFilteringSubscribeTests.m */, - 799CE2FA1C45BA3000AAEBDC /* PNPresenceChannelGroupTests.m */, - 79E198C21CE3DCF600F36216 /* PNNumberTests.m */, - 79A238E81D2EB6BA00D080CD /* NSURLSessionConfigurationCategoryTest.m */, - ); - name = Tests; - path = "iOS Tests"; - sourceTree = ""; + runOnlyForDeploymentPostprocessing = 0; }; - 519C32801B20C11500FAC283 /* Supporting Files */ = { +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 9F8068D907CCBE75CE4F72C9 /* Frameworks */ = { isa = PBXGroup; children = ( - 519C32811B20C11500FAC283 /* Info.plist */, + 630BF161A05F88463997CDEF /* Pods_MockableTests__iOS__Mocked_Integration_Tests.framework */, + 807C1E4B133D73D0A73F4A63 /* Pods_MockableTests__iOS__Unit_Tests.framework */, + DCFC59753168B05940319DBA /* Pods_MockableTests__macOS__Mocked_Integration_Tests.framework */, + 53E26974366CA7B8A99340E7 /* Pods_MockableTests__macOS__Unit_Tests.framework */, + 11D69858FFE7F4EAE285F2D5 /* Pods_MockableTests__tvOS__Mocked_Integration_Tests.framework */, + 6335C248B76FFB7012F2D151 /* Pods_MockableTests__tvOS__Unit_Tests.framework */, + 920B649044F618C346B0C2F0 /* Pods__iOS__Integration_Tests.framework */, ); - name = "Supporting Files"; - path = "iOS Tests"; + name = Frameworks; sourceTree = ""; }; - 51A6E5FD1BE4216A00C20B77 /* Matchers */ = { + A52926AF23B0D63100FF46DD /* Support Files */ = { isa = PBXGroup; children = ( - 51A6E5FE1BE421DC00C20B77 /* PNDeviceIndependentMatcher.h */, - 51A6E5FF1BE421DC00C20B77 /* PNDeviceIndependentMatcher.m */, + A5A905F923B57C80006D22BA /* Fixtures */, + A52926B023B0D63100FF46DD /* Targets */, + A529271823B1855A00FF46DD /* tests-configuration.json */, ); - name = Matchers; + path = "Support Files"; sourceTree = ""; }; - 51D889CE1B66DF99009127D0 /* Objective-C */ = { + A52926B023B0D63100FF46DD /* Targets */ = { isa = PBXGroup; children = ( - 519C327F1B20C11500FAC283 /* Tests */, - 969714371B32F08E001DECD1 /* Helpers */, - 519C32801B20C11500FAC283 /* Supporting Files */, + A529270B23B0E80700FF46DD /* macos-tests.plist */, + A529270C23B0E80700FF46DD /* tvos-tests.plist */, + A52926D823B0E3CF00FF46DD /* ios-tests.plist */, ); - name = "Objective-C"; + path = Targets; sourceTree = ""; }; - 51D889DC1B66E0D6009127D0 /* Swift */ = { + A52926B523B0D67C00FF46DD /* Unit */ = { isa = PBXGroup; children = ( - 51D889E21B66E0F8009127D0 /* iOS Tests (Swift) */, - 51D889F01B66E7F9009127D0 /* Helpers */, - 51D889E31B66E0F8009127D0 /* Supporting Files */, + A53D0B2923EA0FDC001E72AF /* Helpers */, + A59ECFDA23BB56E900E84300 /* Core */, ); - name = Swift; - sourceTree = ""; - }; - 51D889E21B66E0F8009127D0 /* iOS Tests (Swift) */ = { - isa = PBXGroup; - children = ( - 51BB25411B6815F300A9F154 /* PNTimeTokenTests.swift */, - 9722C2751B68A24C00A7CB44 /* PNPublishTests.swift */, - 96B222BB1B84868C002549D5 /* PNPresenceTests.swift */, - 960354F81B9100120047EE04 /* PNPresenceEventTests.swift */, - 9652F3EA1BA98706001E940A /* PNConfigurationChiperKeyTests.swift */, - 795CED091BCF002900D421BB /* PNHeartbeatTests.swift */, - ); - name = "iOS Tests (Swift)"; - path = "iOS Tests-Swift"; + path = Unit; sourceTree = ""; }; - 51D889E31B66E0F8009127D0 /* Supporting Files */ = { + A52926B623B0D67C00FF46DD /* Integration */ = { isa = PBXGroup; children = ( - 51D889EA1B66E1D9009127D0 /* iOS Tests-Swift-Bridging-Header.h */, - 51D889E41B66E0F8009127D0 /* Info.plist */, - ); - name = "Supporting Files"; - path = "iOS Tests-Swift"; + A54E28FB23C0895E0024714B /* Objects */, + A59ECFE823BD5E6400E84300 /* Actions */, + A54185DC23B9565000FBA26A /* PNPushNotificationsIntegrationTests.m */, + A5BDE10023C35939000E7895 /* PNPresenceIntegrationTest.m */, + A5BB312123DCF4570015525A /* PNPresenceStateIntegrationTest.m */, + A5BBD01B23BAB7F60089AD06 /* PNChannelGroupIntegrationTests.m */, + A59ECFE323BB5B1900E84300 /* PNHistoryIntegrationTests.m */, + A5DB1E9B23B412E7009B1B23 /* PNPublishIntegrationTests.m */, + A5BB312623DE32980015525A /* PNSubscribeIntegrationTest.m */, + A5BB312B23DE33310015525A /* PNTimeIntegrationTest.m */, + ); + path = Integration; sourceTree = ""; }; - 51D889F01B66E7F9009127D0 /* Helpers */ = { + A529270D23B1816000FF46DD /* Helpers */ = { isa = PBXGroup; children = ( - 51D889F11B66F49E009127D0 /* PNBasicClientTestCase.swift */, - 51BB253F1B6814EF00A9F154 /* PNBasicSubscribeTestCase.swift */, - 9652F3E81BA97AA5001E940A /* PNBasicClientCryptTestCase.swift */, + A5DB1E8F23B2D1D1009B1B23 /* Categories */, + A529270E23B181FE00FF46DD /* PNRecordableTestCase.h */, + A529270F23B181FE00FF46DD /* PNRecordableTestCase.m */, ); - name = Helpers; - path = "iOS Tests-Swift"; - sourceTree = ""; - }; - 51F7AAC11B27AD7400BEDA1F /* Fixtures */ = { - isa = PBXGroup; - children = ( - 794B5666228D4AA2007AB94F /* PNAPNSTests.bundle */, - 799CE2E11C45A76100AAEBDC /* PNChannelGroupFilteringSubscribeTests.bundle */, - 799CE2E31C45A76700AAEBDC /* PNChannelGroupPresenceEventTests.bundle */, - 79EF04C41B4EAB1A007478CB /* PNChannelGroupSubscribeTests.bundle */, - 794B5662228D4A67007AB94F /* PNChannelGroupTests.bundle */, - 79EF04C61B4EAB1A007478CB /* PNChannelGroupUnsubscribeTests.bundle */, - 79EF04C71B4EAB1A007478CB /* PNClientConfigurationTests.bundle */, - 79EF04C81B4EAB1A007478CB /* PNClientStateChannelGroupTests.bundle */, - 79EF04C91B4EAB1A007478CB /* PNClientStateChannelTests.bundle */, - 9652F3E61BA6E90B001E940A /* PNConfigurationChiperKeyTests.bundle */, - 799CE2E51C45A79B00AAEBDC /* PNFilteringSubscribeTests.bundle */, - 79EF04CA1B4EAB1A007478CB /* PNHeartbeatTests.bundle */, - 79EF04CB1B4EAB1A007478CB /* PNHistoryTests.bundle */, - 799CE2EB1C45A82E00AAEBDC /* PNPresenceChannelGroupTests.bundle */, - 960354F51B90629C0047EE04 /* PNPresenceEventTests.bundle */, - 79EF04CC1B4EAB1A007478CB /* PNPresenceTests.bundle */, - 793C2D25228C5467000E7A35 /* PNPublishCompressedTests.bundle */, - 794B566A228D4B19007AB94F /* PNPublishSizeOfMessage.bundle */, - 793C2D2D228C7B5C000E7A35 /* PNPublishTests.bundle */, - 793C2D31228C7B72000E7A35 /* PNPublishWithHistoryTests.bundle */, - 793C2D35228C7BB6000E7A35 /* PNPublishWithMobilePayloadTests.bundle */, - 79EF04D11B4EAB1A007478CB /* PNSubscribeTests.bundle */, - 79EF04D21B4EAB1A007478CB /* PNSubscribeToPresenceChannelsTests.bundle */, - 794B6B89228D492400489D37 /* PNTimeTokenTests.bundle */, - 79EF04D41B4EAB1A007478CB /* PNUnsubscribeTests.bundle */, - ); - name = Fixtures; - path = "iOS Tests"; + path = Helpers; sourceTree = ""; }; - 7933B4D822D6666D0097458F /* Publish */ = { + A53D0AEB23E9BF2C001E72AF /* Interfaces */ = { isa = PBXGroup; children = ( - 7933B4D922D666B70097458F /* PNSignalTest.m */, + A53D0AEC23E9BF3B001E72AF /* Objects */, + A53D0AFD23EA00D8001E72AF /* Actions */, + A53D0B0323EA062C001E72AF /* Publish */, + A53D0B0823EA06D4001E72AF /* History */, ); - path = Publish; + path = Interfaces; sourceTree = ""; }; - 7933B4DD22D6AC370097458F /* Publish */ = { + A53D0AEC23E9BF3B001E72AF /* Objects */ = { isa = PBXGroup; children = ( - 79878FC022D924F100F0096D /* PNSignalAPIBuilderTest.m */, + A53D0AED23E9BF60001E72AF /* PNMembershipsObjectsAPICallBuilderTest.m */, + A53D0AF123E9F42B001E72AF /* PNMembersObjectsAPICallBuilderTest.m */, + A53D0AF523E9F7D7001E72AF /* PNSpaceObjectsAPICallBuilderTest.m */, + A53D0AF923E9FBE4001E72AF /* PNUserObjectsAPICallBuilderTest.m */, ); - path = Publish; + path = Objects; sourceTree = ""; }; - 79A3E4462215783200F2ADB9 /* Categories */ = { + A53D0AFD23EA00D8001E72AF /* Actions */ = { isa = PBXGroup; children = ( - 79A3E4482215783200F2ADB9 /* NSInvocation+PNTest.h */, - 79A3E4472215783200F2ADB9 /* NSInvocation+PNTest.m */, + A53D0AFE23EA00DF001E72AF /* Messages */, ); - name = Categories; - path = "iOS Tests/Helpers/Categories"; + path = Actions; sourceTree = ""; }; - 79A3E4552215A42C00F2ADB9 /* Unit */ = { + A53D0AFE23EA00DF001E72AF /* Messages */ = { isa = PBXGroup; children = ( - A5105B5E238F08AB00CB693D /* Helpers */, - 79A3E4562215A42C00F2ADB9 /* Core */, + A53D0AFF23EA00EB001E72AF /* PNMessageActionsAPICallBuilderTest.m */, ); - name = Unit; - path = Tests/Unit; + path = Messages; sourceTree = ""; }; - 79A3E4562215A42C00F2ADB9 /* Core */ = { + A53D0B0323EA062C001E72AF /* Publish */ = { isa = PBXGroup; children = ( - 79A3E4592215A42C00F2ADB9 /* Interfaces */, - A55A889722FD83B9002D0A72 /* Objects */, - A55BCD78231DC1950019DB68 /* Actions */, - 7933B4D822D6666D0097458F /* Publish */, - 79A3E4572215A42C00F2ADB9 /* History */, + A53D0B0423EA063A001E72AF /* PNSignalAPIBuilderTest.m */, ); - path = Core; + path = Publish; sourceTree = ""; }; - 79A3E4572215A42C00F2ADB9 /* History */ = { + A53D0B0823EA06D4001E72AF /* History */ = { isa = PBXGroup; children = ( - 79A3E4582215A42C00F2ADB9 /* PNMessageCountTest.m */, + A53D0B0923EA070A001E72AF /* PNMessageCountAPICallBuilderTest.m */, ); path = History; sourceTree = ""; }; - 79A3E4592215A42C00F2ADB9 /* Interfaces */ = { + A53D0B0D23EA07BD001E72AF /* Objects */ = { isa = PBXGroup; children = ( - A55A889222FD8397002D0A72 /* Objects */, - A55BCD7A231DC1A50019DB68 /* Actions */, - 7933B4DD22D6AC370097458F /* Publish */, - 79A3E45A2215A42C00F2ADB9 /* History */, + A53D0B0E23EA07E5001E72AF /* PNMembershipObjectsTest.m */, + A53D0B1223EA0A07001E72AF /* PNMemberObjectsTest.m */, + A53D0B1623EA0AB4001E72AF /* PNSpaceObjectsTest.m */, + A53D0B1A23EA0C5C001E72AF /* PNUserObjectsTest.m */, ); - path = Interfaces; + path = Objects; sourceTree = ""; }; - 79A3E45A2215A42C00F2ADB9 /* History */ = { + A53D0B1E23EA0DA1001E72AF /* Actions */ = { isa = PBXGroup; children = ( - 79A3E45B2215A42C00F2ADB9 /* PNMessageCountAPICallBuilderTest.m */, + A53D0B2323EA0E66001E72AF /* Messages */, ); - path = History; - sourceTree = ""; - }; - 79A3E4622215A44000F2ADB9 /* Integration */ = { - isa = PBXGroup; - children = ( - A55A64922328E36A0064E8E4 /* Push Notifications */, - A525EA5F2303EF2400ABFDC2 /* Objects */, - A55A64962328E36A0064E8E4 /* Actions */, - A55A64902328E36A0064E8E4 /* History */, - A55A64942328E36A0064E8E4 /* Publish */, - 797A333B22C32B3D0036D28C /* PNSubscribeIntegrationTest.m */, - ); - name = Integration; - path = Tests/Integration; + path = Actions; sourceTree = ""; }; - 79C288D6228C01CC004FD5C5 /* Resources */ = { + A53D0B2323EA0E66001E72AF /* Messages */ = { isa = PBXGroup; children = ( - 79C288D7228C038E004FD5C5 /* keysset.plist */, + A53D0B1F23EA0DB7001E72AF /* PNMessageActionsTest.m */, ); - path = Resources; + path = Messages; sourceTree = ""; }; - 846E4BDEDEE81C2C727C1787 /* Pods */ = { + A53D0B2423EA0E92001E72AF /* History */ = { isa = PBXGroup; children = ( - 29DEF65970DD1FA0E9413980 /* Pods-OSX ObjC Tests.debug.xcconfig */, - DDF3E768291CCF18FCF93AE8 /* Pods-OSX ObjC Tests.release.xcconfig */, - 1F80BF508DF8062476C90DE4 /* Pods-iOS ObjC Tests.debug.xcconfig */, - C06D9ED81A3272A2089CAA74 /* Pods-iOS ObjC Tests.release.xcconfig */, - DEF30C57C474ED0F4ABE8DA0 /* Pods-tvOS ObjC Tests.debug.xcconfig */, - 856325838D88FF13AF9E0F81 /* Pods-tvOS ObjC Tests.release.xcconfig */, + A53D0B2523EA0EAD001E72AF /* PNMessageCountTest.m */, ); - path = Pods; - sourceTree = ""; - }; - 969714371B32F08E001DECD1 /* Helpers */ = { - isa = PBXGroup; - children = ( - 79A3E4462215783200F2ADB9 /* Categories */, - 51A6E5FD1BE4216A00C20B77 /* Matchers */, - 178251201B30AAE6006BC234 /* Base Test Classes */, - 9722C2741B68A0F200A7CB44 /* Categories */, - 79A3E4502215806D00F2ADB9 /* PNTestCase.h */, - 79A3E4512215806D00F2ADB9 /* PNTestCase.m */, - ); - name = Helpers; - sourceTree = ""; - }; - 9722C2741B68A0F200A7CB44 /* Categories */ = { - isa = PBXGroup; - children = ( - 79EF04BD1B4EAB01007478CB /* NSDictionary+PNTest.h */, - 79EF04BE1B4EAB01007478CB /* NSDictionary+PNTest.m */, - 79EF04BF1B4EAB01007478CB /* NSString+PNTest.h */, - 79EF04C01B4EAB01007478CB /* NSString+PNTest.m */, - 96F0239C1B580D0000C4A581 /* NSArray+PNTest.h */, - 96F0239D1B580D0000C4A581 /* NSArray+PNTest.m */, - ); - name = Categories; + path = History; sourceTree = ""; }; - A5105B5E238F08AB00CB693D /* Helpers */ = { + A53D0B2923EA0FDC001E72AF /* Helpers */ = { isa = PBXGroup; children = ( - A5105B5F238F08FB00CB693D /* PNNotificationPayloadBuilderTest.m */, + A53D0B2A23EA0FEF001E72AF /* PNNotificationPayloadBuilderTest.m */, ); path = Helpers; sourceTree = ""; }; - A525EA5F2303EF2400ABFDC2 /* Objects */ = { + A54E28FB23C0895E0024714B /* Objects */ = { isa = PBXGroup; children = ( - A52DC1DF23059898001F20B0 /* PNMembershipIntegrationTest.m */, - A55260552309DF1900CB4ACF /* PNMemberIntegrationTest.m */, - A525EA72230483EF00ABFDC2 /* PNSpaceIntegrationTest.m */, - A525EA642303EF7200ABFDC2 /* PNUserIntegrationTest.m */, - A525EA6823047CB300ABFDC2 /* PNObjectsTestCase.h */, - A525EA6923047CB300ABFDC2 /* PNObjectsTestCase.m */, + A54E28FC23C089730024714B /* PNMembershipIntegrationTest.m */, + A54E290123C16B3D0024714B /* PNMemberIntegrationTest.m */, + A54E290623C286090024714B /* PNSpaceIntegrationTest.m */, + A54E290B23C2992A0024714B /* PNUserIntegrationTest.m */, ); path = Objects; sourceTree = ""; }; - A55A64902328E36A0064E8E4 /* History */ = { - isa = PBXGroup; - children = ( - A55A64912328E36A0064E8E4 /* PNHistoryIntegrationTest.m */, - ); - path = History; - sourceTree = ""; - }; - A55A64922328E36A0064E8E4 /* Push Notifications */ = { + A59ECFDA23BB56E900E84300 /* Core */ = { isa = PBXGroup; children = ( - A55A64932328E36A0064E8E4 /* PNAPNSIntegrationTest.m */, + A53D0AEB23E9BF2C001E72AF /* Interfaces */, + A53D0B0D23EA07BD001E72AF /* Objects */, + A53D0B1E23EA0DA1001E72AF /* Actions */, + A59ECFDB23BB56F100E84300 /* Publish */, + A53D0B2423EA0E92001E72AF /* History */, ); - path = "Push Notifications"; + path = Core; sourceTree = ""; }; - A55A64942328E36A0064E8E4 /* Publish */ = { + A59ECFDB23BB56F100E84300 /* Publish */ = { isa = PBXGroup; children = ( - A55A64952328E36A0064E8E4 /* PNSignalIntegrationTest.m */, + A59ECFDC23BB571200E84300 /* PNSignalTest.m */, ); path = Publish; sourceTree = ""; }; - A55A64962328E36A0064E8E4 /* Actions */ = { + A59ECFE823BD5E6400E84300 /* Actions */ = { isa = PBXGroup; children = ( - A56FAF1323322B6C0072ADD6 /* Messages */, + A59ECFE923BD5E8F00E84300 /* PNMessageActionsIntegrationTest.m */, ); path = Actions; sourceTree = ""; }; - A55A889222FD8397002D0A72 /* Objects */ = { + A5B65D4B23B03DB1006B7BFB = { isa = PBXGroup; children = ( - A5F62C3323017E88001CC2A5 /* PNMembershipsObjectsAPICallBuilderTest.m */, - A5F62C3723017E95001CC2A5 /* PNMembersObjectsAPICallBuilderTest.m */, - A589756422FE711C0093BD9A /* PNSpaceObjectsAPICallBuilderTest.m */, - A55A889322FD8397002D0A72 /* PNUserObjectsAPICallBuilderTest.m */, + A5B65D8A23B04087006B7BFB /* Tests */, + A52926AF23B0D63100FF46DD /* Support Files */, + A5B65D5523B03DB1006B7BFB /* Products */, + DC23E0797E4D29A69E09CCB4 /* Pods */, + 9F8068D907CCBE75CE4F72C9 /* Frameworks */, ); - path = Objects; sourceTree = ""; }; - A55A889722FD83B9002D0A72 /* Objects */ = { + A5B65D5523B03DB1006B7BFB /* Products */ = { isa = PBXGroup; children = ( - A525EA532302A77A00ABFDC2 /* PNMembershipObjectsTest.m */, - A525EA572302A79000ABFDC2 /* PNMemberObjectsTest.m */, - A525EA4F2301E69300ABFDC2 /* PNSpaceObjectsTest.m */, - A55A889822FD83B9002D0A72 /* PNUserObjectsTest.m */, + A5B65D6F23B03DB4006B7BFB /* [iOS] Unit Tests.xctest */, + A5B65D8223B03FFD006B7BFB /* [iOS] Mocked Integration Tests.xctest */, + A5B65D8F23B04148006B7BFB /* [iOS] Integration Tests.xctest */, + A529268323B0D07500FF46DD /* [iOS] Code Coverage.xctest */, + A52926DF23B0E6C500FF46DD /* [tvOS] Mocked Integration Tests.xctest */, + A52926EB23B0E6DC00FF46DD /* [tvOS] Unit Tests.xctest */, + A52926F723B0E71700FF46DD /* [macOS] Mocked Integration Tests.xctest */, + A529270323B0E72500FF46DD /* [macOS] Unit Tests.xctest */, ); - path = Objects; + name = Products; sourceTree = ""; }; - A55BCD78231DC1950019DB68 /* Actions */ = { + A5B65D8A23B04087006B7BFB /* Tests */ = { isa = PBXGroup; children = ( - A56FAF12233226EA0072ADD6 /* Messages */, + A529270D23B1816000FF46DD /* Helpers */, + A52926B623B0D67C00FF46DD /* Integration */, + A52926B523B0D67C00FF46DD /* Unit */, ); - path = Actions; + path = Tests; sourceTree = ""; }; - A55BCD7A231DC1A50019DB68 /* Actions */ = { + A5DB1E8F23B2D1D1009B1B23 /* Categories */ = { isa = PBXGroup; children = ( - A56FAF11233225450072ADD6 /* Messages */, + A5DB1E9123B2D212009B1B23 /* NSInvocation+PNTest.h */, + A5DB1E9223B2D212009B1B23 /* NSInvocation+PNTest.m */, + A5A905EF23B571E8006D22BA /* NSString+PNTest.h */, + A5A905F023B571E8006D22BA /* NSString+PNTest.m */, ); - path = Actions; + path = Categories; sourceTree = ""; }; - A56FAF11233225450072ADD6 /* Messages */ = { + DC23E0797E4D29A69E09CCB4 /* Pods */ = { isa = PBXGroup; children = ( - A55BCD7C231E80220019DB68 /* PNMessageActionsAPICallBuilderTest.m */, + 25692505FB8B6A6B76FF7C26 /* Pods-MockableTests-[iOS] Mocked Integration Tests.debug.xcconfig */, + AB136D4CA397621245829B4A /* Pods-MockableTests-[iOS] Mocked Integration Tests.release.xcconfig */, + 69FF522A83ED4BDED019829C /* Pods-MockableTests-[iOS] Unit Tests.debug.xcconfig */, + 62A9E0261BD01762FE2C2D0C /* Pods-MockableTests-[iOS] Unit Tests.release.xcconfig */, + 45686882FCB959B97FADC986 /* Pods-MockableTests-[macOS] Mocked Integration Tests.debug.xcconfig */, + 1BA98F1E8EEB1CEB98EFD3C4 /* Pods-MockableTests-[macOS] Mocked Integration Tests.release.xcconfig */, + 728AD9FCB981CBE691F7A6D0 /* Pods-MockableTests-[macOS] Unit Tests.debug.xcconfig */, + 896A4CE66BD47FDE65276FAA /* Pods-MockableTests-[macOS] Unit Tests.release.xcconfig */, + BCF45540E9166EED4F363FD0 /* Pods-MockableTests-[tvOS] Mocked Integration Tests.debug.xcconfig */, + 29CA30C01DA11D9A77017982 /* Pods-MockableTests-[tvOS] Mocked Integration Tests.release.xcconfig */, + 6E739F838BE83C3CB6579E9D /* Pods-MockableTests-[tvOS] Unit Tests.debug.xcconfig */, + 4E925E53782772E8DADCD599 /* Pods-MockableTests-[tvOS] Unit Tests.release.xcconfig */, + 86365B3A571F666A5ED76D80 /* Pods-[iOS] Integration Tests.debug.xcconfig */, + FC07360087EEF919F88D5CE5 /* Pods-[iOS] Integration Tests.release.xcconfig */, ); - path = Messages; + path = Pods; sourceTree = ""; }; - A56FAF12233226EA0072ADD6 /* Messages */ = { - isa = PBXGroup; - children = ( - A54F4172231FABC3007A368A /* PNMessageActionsTest.m */, +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + A529268223B0D07500FF46DD /* [iOS] Code Coverage */ = { + isa = PBXNativeTarget; + buildConfigurationList = A529268823B0D07500FF46DD /* Build configuration list for PBXNativeTarget "[iOS] Code Coverage" */; + buildPhases = ( + A529267F23B0D07500FF46DD /* Sources */, + A529268023B0D07500FF46DD /* Frameworks */, + A529268123B0D07500FF46DD /* Resources */, ); - path = Messages; - sourceTree = ""; + buildRules = ( + ); + dependencies = ( + ); + name = "[iOS] Code Coverage"; + productName = "[iOS] Code Coverage"; + productReference = A529268323B0D07500FF46DD /* [iOS] Code Coverage.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; }; - A56FAF1323322B6C0072ADD6 /* Messages */ = { - isa = PBXGroup; - children = ( - A55A64972328E36A0064E8E4 /* PNMessageActionsIntegrationTest.m */, + A52926DE23B0E6C500FF46DD /* [tvOS] Mocked Integration Tests */ = { + isa = PBXNativeTarget; + buildConfigurationList = A52926E423B0E6C500FF46DD /* Build configuration list for PBXNativeTarget "[tvOS] Mocked Integration Tests" */; + buildPhases = ( + CB960BDC9B81AF4A06788F00 /* [CP] Check Pods Manifest.lock */, + A52926DB23B0E6C500FF46DD /* Sources */, + A52926DC23B0E6C500FF46DD /* Frameworks */, + A52926DD23B0E6C500FF46DD /* Resources */, + 69716F34DBEF059E16377242 /* [CP] Embed Pods Frameworks */, ); - path = Messages; - sourceTree = ""; + buildRules = ( + ); + dependencies = ( + ); + name = "[tvOS] Mocked Integration Tests"; + productName = "[tvOS] Mocked Integration Tests"; + productReference = A52926DF23B0E6C500FF46DD /* [tvOS] Mocked Integration Tests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; }; - AC2AF694F0C5FDDADDE978EA /* Frameworks */ = { - isa = PBXGroup; - children = ( - 6690703E1216498F8F228D12 /* Pods_OSX_ObjC_Tests.framework */, - 6B9C16A4C435306BAA05BD00 /* Pods_iOS_ObjC_Tests.framework */, - 54990DF75CBFC7C405B645D5 /* Pods_tvOS_ObjC_Tests.framework */, + A52926EA23B0E6DC00FF46DD /* [tvOS] Unit Tests */ = { + isa = PBXNativeTarget; + buildConfigurationList = A52926F023B0E6DD00FF46DD /* Build configuration list for PBXNativeTarget "[tvOS] Unit Tests" */; + buildPhases = ( + 41E9E6BD60B43AC55DE2148D /* [CP] Check Pods Manifest.lock */, + A52926E723B0E6DC00FF46DD /* Sources */, + A52926E823B0E6DC00FF46DD /* Frameworks */, + A52926E923B0E6DC00FF46DD /* Resources */, + DC37B66A8B4AA3A19978D5FC /* [CP] Embed Pods Frameworks */, ); - name = Frameworks; - sourceTree = ""; + buildRules = ( + ); + dependencies = ( + ); + name = "[tvOS] Unit Tests"; + productName = "[tvOS] Unit Tests"; + productReference = A52926EB23B0E6DC00FF46DD /* [tvOS] Unit Tests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 517A9ED21BE3181700FAA43A /* OSX ObjC Tests */ = { + A52926F623B0E71700FF46DD /* [macOS] Mocked Integration Tests */ = { isa = PBXNativeTarget; - buildConfigurationList = 517A9EDA1BE3181700FAA43A /* Build configuration list for PBXNativeTarget "OSX ObjC Tests" */; + buildConfigurationList = A52926FC23B0E71700FF46DD /* Build configuration list for PBXNativeTarget "[macOS] Mocked Integration Tests" */; buildPhases = ( - 6862B04210B3EA11BF30D59A /* [CP] Check Pods Manifest.lock */, - 79E198C81CE3EEC400F36216 /* Clean Legacy Code Coverage files */, - 517A9ECF1BE3181700FAA43A /* Sources */, - 517A9ED01BE3181700FAA43A /* Frameworks */, - 517A9ED11BE3181700FAA43A /* Resources */, - C3034CFAB729D815383E9192 /* [CP] Embed Pods Frameworks */, + 997FEBC407DCC91B3FCF3A56 /* [CP] Check Pods Manifest.lock */, + A52926F323B0E71700FF46DD /* Sources */, + A52926F423B0E71700FF46DD /* Frameworks */, + A52926F523B0E71700FF46DD /* Resources */, + 2C6D3573E8878185833FB1BC /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); dependencies = ( ); - name = "OSX ObjC Tests"; - productName = "OSX ObjC Tests"; - productReference = 517A9ED31BE3181700FAA43A /* OSX ObjC Tests.xctest */; + name = "[macOS] Mocked Integration Tests"; + productName = "[macOS] Mocked Integration Tests"; + productReference = A52926F723B0E71700FF46DD /* [macOS] Mocked Integration Tests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; - 519C327C1B20C11500FAC283 /* iOS ObjC Tests */ = { + A529270223B0E72500FF46DD /* [macOS] Unit Tests */ = { isa = PBXNativeTarget; - buildConfigurationList = 519C32861B20C11500FAC283 /* Build configuration list for PBXNativeTarget "iOS ObjC Tests" */; + buildConfigurationList = A529270823B0E72500FF46DD /* Build configuration list for PBXNativeTarget "[macOS] Unit Tests" */; buildPhases = ( - 0D36312D28360DCD33CC7D11 /* [CP] Check Pods Manifest.lock */, - 79E198C41CE3EDF700F36216 /* Clean Legacy Code Coverage files */, - 519C32791B20C11500FAC283 /* Sources */, - 519C327A1B20C11500FAC283 /* Frameworks */, - 519C327B1B20C11500FAC283 /* Resources */, - F4C28F0C9463C921055F0DBA /* [CP] Embed Pods Frameworks */, + 140671F7E9AA5E12782547E6 /* [CP] Check Pods Manifest.lock */, + A52926FF23B0E72500FF46DD /* Sources */, + A529270023B0E72500FF46DD /* Frameworks */, + A529270123B0E72500FF46DD /* Resources */, + 04839ECB3FDCDD3C4B1E0474 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); dependencies = ( ); - name = "iOS ObjC Tests"; - productName = "iOS Tests"; - productReference = 519C327D1B20C11500FAC283 /* iOS ObjC Tests.xctest */; + name = "[macOS] Unit Tests"; + productName = "[macOS] Unit Tests"; + productReference = A529270323B0E72500FF46DD /* [macOS] Unit Tests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; - 51D889E01B66E0F8009127D0 /* iOS Swift Tests */ = { + A5B65D6E23B03DB4006B7BFB /* [iOS] Unit Tests */ = { isa = PBXNativeTarget; - buildConfigurationList = 51D889E71B66E0F8009127D0 /* Build configuration list for PBXNativeTarget "iOS Swift Tests" */; + buildConfigurationList = A5B65D7B23B03DB4006B7BFB /* Build configuration list for PBXNativeTarget "[iOS] Unit Tests" */; buildPhases = ( - 79E198C51CE3EEA800F36216 /* Clean Legacy Code Coverage files */, - 51D889DD1B66E0F8009127D0 /* Sources */, - 51D889DE1B66E0F8009127D0 /* Frameworks */, - 51D889DF1B66E0F8009127D0 /* Resources */, + D296950A8A8594AD7AE541D5 /* [CP] Check Pods Manifest.lock */, + A5B65D6B23B03DB4006B7BFB /* Sources */, + A5B65D6C23B03DB4006B7BFB /* Frameworks */, + A5B65D6D23B03DB4006B7BFB /* Resources */, + 845F211BB22B94EEA0FAB5E9 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); dependencies = ( ); - name = "iOS Swift Tests"; - productName = "iOS Tests-Swift"; - productReference = 51D889E11B66E0F8009127D0 /* iOS Swift Tests.xctest */; + name = "[iOS] Unit Tests"; + productName = "PubNub TestsTests"; + productReference = A5B65D6F23B03DB4006B7BFB /* [iOS] Unit Tests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; - 797BDCC71C1F5091006EF006 /* watchOS ObjC Tests */ = { + A5B65D8123B03FFD006B7BFB /* [iOS] Mocked Integration Tests */ = { isa = PBXNativeTarget; - buildConfigurationList = 797BDCFF1C1F5091006EF006 /* Build configuration list for PBXNativeTarget "watchOS ObjC Tests" */; + buildConfigurationList = A5B65D8723B03FFD006B7BFB /* Build configuration list for PBXNativeTarget "[iOS] Mocked Integration Tests" */; buildPhases = ( - 79E198C61CE3EEB200F36216 /* Clean Legacy Code Coverage files */, - 797BDCC91C1F5091006EF006 /* Sources */, - 797BDCE61C1F5091006EF006 /* Frameworks */, - 797BDCE81C1F5091006EF006 /* Resources */, + D7CB23BDA79C17F7A60D7D62 /* [CP] Check Pods Manifest.lock */, + A5B65D7E23B03FFD006B7BFB /* Sources */, + A5B65D7F23B03FFD006B7BFB /* Frameworks */, + A5B65D8023B03FFD006B7BFB /* Resources */, + B8789384B731316FBF45A4E1 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); dependencies = ( ); - name = "watchOS ObjC Tests"; - productName = "iOS Tests"; - productReference = 797BDD021C1F5091006EF006 /* watchOS ObjC Tests.xctest */; + name = "[iOS] Mocked Integration Tests"; + productName = "[iOS] Mocked Integration Tests"; + productReference = A5B65D8223B03FFD006B7BFB /* [iOS] Mocked Integration Tests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; - 797BDD041C1F5176006EF006 /* tvOS ObjC Tests */ = { + A5B65D8E23B04148006B7BFB /* [iOS] Integration Tests */ = { isa = PBXNativeTarget; - buildConfigurationList = 797BDD3C1C1F5176006EF006 /* Build configuration list for PBXNativeTarget "tvOS ObjC Tests" */; + buildConfigurationList = A5B65D9423B04148006B7BFB /* Build configuration list for PBXNativeTarget "[iOS] Integration Tests" */; buildPhases = ( - F957912F0F0D826AC0D915AE /* [CP] Check Pods Manifest.lock */, - 79E198C71CE3EEBB00F36216 /* Clean Legacy Code Coverage files */, - 797BDD061C1F5176006EF006 /* Sources */, - 797BDD231C1F5176006EF006 /* Frameworks */, - 797BDD251C1F5176006EF006 /* Resources */, - 68499C80CCF6B4A8F5B2D4B6 /* [CP] Embed Pods Frameworks */, + A99DCD69725AE4F35639F239 /* [CP] Check Pods Manifest.lock */, + A5B65D8B23B04148006B7BFB /* Sources */, + A5B65D8C23B04148006B7BFB /* Frameworks */, + A5B65D8D23B04148006B7BFB /* Resources */, + DA4AC18938F39167BCC08A81 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); dependencies = ( ); - name = "tvOS ObjC Tests"; - productName = "iOS Tests"; - productReference = 797BDD3F1C1F5176006EF006 /* tvOS ObjC Tests.xctest */; + name = "[iOS] Integration Tests"; + productName = "[iOS] Integration Tests"; + productReference = A5B65D8F23B04148006B7BFB /* [iOS] Integration Tests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; /* End PBXNativeTarget section */ /* Begin PBXProject section */ - 519C32731B20BF4D00FAC283 /* Project object */ = { + A5B65D4C23B03DB1006B7BFB /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 0710; - LastUpgradeCheck = 1020; + LastUpgradeCheck = 1130; + ORGANIZATIONNAME = "Serhii Mamontov"; TargetAttributes = { - 517A9ED21BE3181700FAA43A = { - CreatedOnToolsVersion = 7.1; + A529268223B0D07500FF46DD = { + CreatedOnToolsVersion = 11.3; + }; + A52926DE23B0E6C500FF46DD = { + CreatedOnToolsVersion = 11.3; }; - 519C327C1B20C11500FAC283 = { - CreatedOnToolsVersion = 6.3.2; + A52926EA23B0E6DC00FF46DD = { + CreatedOnToolsVersion = 11.3; }; - 51D889E01B66E0F8009127D0 = { - CreatedOnToolsVersion = 6.4; + A52926F623B0E71700FF46DD = { + CreatedOnToolsVersion = 11.3; }; - 797BDD041C1F5176006EF006 = { - LastSwiftMigration = 0800; + A529270223B0E72500FF46DD = { + CreatedOnToolsVersion = 11.3; + }; + A5B65D6E23B03DB4006B7BFB = { + CreatedOnToolsVersion = 11.3; + }; + A5B65D8123B03FFD006B7BFB = { + CreatedOnToolsVersion = 11.3; + }; + A5B65D8E23B04148006B7BFB = { + CreatedOnToolsVersion = 11.3; }; }; }; - buildConfigurationList = 519C32761B20BF4D00FAC283 /* Build configuration list for PBXProject "PubNub Tests" */; - compatibilityVersion = "Xcode 3.2"; + buildConfigurationList = A5B65D4F23B03DB1006B7BFB /* Build configuration list for PBXProject "PubNub Tests" */; + compatibilityVersion = "Xcode 9.3"; developmentRegion = en; hasScannedForEncodings = 0; knownRegions = ( en, Base, ); - mainGroup = 519C32721B20BF4D00FAC283; - productRefGroup = 519C327E1B20C11500FAC283 /* Products */; + mainGroup = A5B65D4B23B03DB1006B7BFB; + productRefGroup = A5B65D5523B03DB1006B7BFB /* Products */; projectDirPath = ""; projectRoot = ""; targets = ( - 519C327C1B20C11500FAC283 /* iOS ObjC Tests */, - 51D889E01B66E0F8009127D0 /* iOS Swift Tests */, - 797BDCC71C1F5091006EF006 /* watchOS ObjC Tests */, - 797BDD041C1F5176006EF006 /* tvOS ObjC Tests */, - 517A9ED21BE3181700FAA43A /* OSX ObjC Tests */, + A52926F623B0E71700FF46DD /* [macOS] Mocked Integration Tests */, + A529270223B0E72500FF46DD /* [macOS] Unit Tests */, + A52926DE23B0E6C500FF46DD /* [tvOS] Mocked Integration Tests */, + A52926EA23B0E6DC00FF46DD /* [tvOS] Unit Tests */, + A5B65D8123B03FFD006B7BFB /* [iOS] Mocked Integration Tests */, + A5B65D8E23B04148006B7BFB /* [iOS] Integration Tests */, + A529268223B0D07500FF46DD /* [iOS] Code Coverage */, + A5B65D6E23B03DB4006B7BFB /* [iOS] Unit Tests */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ - 517A9ED11BE3181700FAA43A /* Resources */ = { + A529268123B0D07500FF46DD /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A52926DD23B0E6C500FF46DD /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A5A905FC23B57C80006D22BA /* Fixtures in Resources */, + A529271A23B185F900FF46DD /* tests-configuration.json in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A52926E923B0E6DC00FF46DD /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A59ECFE123BB587300E84300 /* tests-configuration.json in Resources */, + A5A905FD23B57C80006D22BA /* Fixtures in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A52926F523B0E71700FF46DD /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 517A9F071BE31ADB00FAA43A /* PNSubscribeToPresenceChannelsTests.bundle in Resources */, - 794B5665228D4A67007AB94F /* PNChannelGroupTests.bundle in Resources */, - 517A9F011BE31ADB00FAA43A /* PNPresenceTests.bundle in Resources */, - 517A9EF91BE31ADB00FAA43A /* PNChannelGroupSubscribeTests.bundle in Resources */, - 517A9EFC1BE31ADB00FAA43A /* PNClientConfigurationTests.bundle in Resources */, - 793C2D34228C7B72000E7A35 /* PNPublishWithHistoryTests.bundle in Resources */, - 793C2D28228C5468000E7A35 /* PNPublishCompressedTests.bundle in Resources */, - 794B6B8C228D492400489D37 /* PNTimeTokenTests.bundle in Resources */, - 517A9EFF1BE31ADB00FAA43A /* PNHeartbeatTests.bundle in Resources */, - 517A9EFB1BE31ADB00FAA43A /* PNChannelGroupUnsubscribeTests.bundle in Resources */, - 517A9F061BE31ADB00FAA43A /* PNSubscribeTests.bundle in Resources */, - 517A9EFD1BE31ADB00FAA43A /* PNClientStateChannelGroupTests.bundle in Resources */, - 517A9F091BE31ADB00FAA43A /* PNUnsubscribeTests.bundle in Resources */, - 517A9EF61BE31ADB00FAA43A /* PNConfigurationChiperKeyTests.bundle in Resources */, - 79C288D9228C038E004FD5C5 /* keysset.plist in Resources */, - 794B566D228D4B19007AB94F /* PNPublishSizeOfMessage.bundle in Resources */, - 794B5669228D4AA2007AB94F /* PNAPNSTests.bundle in Resources */, - 517A9EF71BE31ADB00FAA43A /* PNPresenceEventTests.bundle in Resources */, - 793C2D30228C7B5C000E7A35 /* PNPublishTests.bundle in Resources */, - 793C2D38228C7BB6000E7A35 /* PNPublishWithMobilePayloadTests.bundle in Resources */, - 517A9F001BE31ADB00FAA43A /* PNHistoryTests.bundle in Resources */, - 517A9EFE1BE31ADB00FAA43A /* PNClientStateChannelTests.bundle in Resources */, + A5A905FA23B57C80006D22BA /* Fixtures in Resources */, + A529271923B185F900FF46DD /* tests-configuration.json in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 519C327B1B20C11500FAC283 /* Resources */ = { + A529270123B0E72500FF46DD /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 793C2D26228C5468000E7A35 /* PNPublishCompressedTests.bundle in Resources */, - 960354F61B90629C0047EE04 /* PNPresenceEventTests.bundle in Resources */, - 9652F3E71BA6E90B001E940A /* PNConfigurationChiperKeyTests.bundle in Resources */, - 79EF04DD1B4EAB1A007478CB /* PNHistoryTests.bundle in Resources */, - 799CE2EC1C45A82E00AAEBDC /* PNPresenceChannelGroupTests.bundle in Resources */, - 79EF04DC1B4EAB1A007478CB /* PNHeartbeatTests.bundle in Resources */, - 79EF04DA1B4EAB1A007478CB /* PNClientStateChannelGroupTests.bundle in Resources */, - 79EF04DB1B4EAB1A007478CB /* PNClientStateChannelTests.bundle in Resources */, - 79EF04D61B4EAB1A007478CB /* PNChannelGroupSubscribeTests.bundle in Resources */, - 79EF04E41B4EAB1A007478CB /* PNSubscribeToPresenceChannelsTests.bundle in Resources */, - 79EF04E31B4EAB1A007478CB /* PNSubscribeTests.bundle in Resources */, - 79EF04D81B4EAB1A007478CB /* PNChannelGroupUnsubscribeTests.bundle in Resources */, - 799CE2E21C45A76200AAEBDC /* PNChannelGroupFilteringSubscribeTests.bundle in Resources */, - 79EF04D91B4EAB1A007478CB /* PNClientConfigurationTests.bundle in Resources */, - 793C2D2E228C7B5C000E7A35 /* PNPublishTests.bundle in Resources */, - 794B5667228D4AA2007AB94F /* PNAPNSTests.bundle in Resources */, - 793C2D32228C7B72000E7A35 /* PNPublishWithHistoryTests.bundle in Resources */, - 794B566B228D4B19007AB94F /* PNPublishSizeOfMessage.bundle in Resources */, - 794B6B8A228D492400489D37 /* PNTimeTokenTests.bundle in Resources */, - 799CE2E61C45A79B00AAEBDC /* PNFilteringSubscribeTests.bundle in Resources */, - 79EF04DE1B4EAB1A007478CB /* PNPresenceTests.bundle in Resources */, - 79C288D8228C038E004FD5C5 /* keysset.plist in Resources */, - 79EF04E61B4EAB1A007478CB /* PNUnsubscribeTests.bundle in Resources */, - 793C2D36228C7BB6000E7A35 /* PNPublishWithMobilePayloadTests.bundle in Resources */, - 794B5663228D4A67007AB94F /* PNChannelGroupTests.bundle in Resources */, - 799CE2E41C45A76700AAEBDC /* PNChannelGroupPresenceEventTests.bundle in Resources */, + A59ECFE023BB587200E84300 /* tests-configuration.json in Resources */, + A5A905FB23B57C80006D22BA /* Fixtures in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 51D889DF1B66E0F8009127D0 /* Resources */ = { + A5B65D6D23B03DB4006B7BFB /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 960354F71B90629C0047EE04 /* PNPresenceEventTests.bundle in Resources */, - 96E383931BAAC12F00560991 /* PNConfigurationChiperKeyTests.bundle in Resources */, - 51BB254B1B68176C00A9F154 /* PNHistoryTests.bundle in Resources */, - 51BB254A1B68176C00A9F154 /* PNHeartbeatTests.bundle in Resources */, - 51BB25481B68176C00A9F154 /* PNClientStateChannelGroupTests.bundle in Resources */, - 51BB25491B68176C00A9F154 /* PNClientStateChannelTests.bundle in Resources */, - 51BB25441B68176C00A9F154 /* PNChannelGroupSubscribeTests.bundle in Resources */, - 51BB25521B68176C00A9F154 /* PNSubscribeToPresenceChannelsTests.bundle in Resources */, - 51BB25511B68176C00A9F154 /* PNSubscribeTests.bundle in Resources */, - 51BB25461B68176C00A9F154 /* PNChannelGroupUnsubscribeTests.bundle in Resources */, - 51BB25471B68176C00A9F154 /* PNClientConfigurationTests.bundle in Resources */, - 51BB254C1B68176C00A9F154 /* PNPresenceTests.bundle in Resources */, - 51BB25541B68176C00A9F154 /* PNUnsubscribeTests.bundle in Resources */, + A59ECFE223BB587600E84300 /* tests-configuration.json in Resources */, + A5A9060023B57C80006D22BA /* Fixtures in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 797BDCE81C1F5091006EF006 /* Resources */ = { + A5B65D8023B03FFD006B7BFB /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 797BDCE91C1F5091006EF006 /* PNPresenceEventTests.bundle in Resources */, - 797BDCEA1C1F5091006EF006 /* PNConfigurationChiperKeyTests.bundle in Resources */, - 797BDCEC1C1F5091006EF006 /* PNHistoryTests.bundle in Resources */, - 797BDCEF1C1F5091006EF006 /* PNHeartbeatTests.bundle in Resources */, - 797BDCF11C1F5091006EF006 /* PNClientStateChannelGroupTests.bundle in Resources */, - 797BDCF21C1F5091006EF006 /* PNClientStateChannelTests.bundle in Resources */, - 797BDCF31C1F5091006EF006 /* PNChannelGroupSubscribeTests.bundle in Resources */, - 797BDCF41C1F5091006EF006 /* PNSubscribeToPresenceChannelsTests.bundle in Resources */, - 797BDCF51C1F5091006EF006 /* PNSubscribeTests.bundle in Resources */, - 797BDCF61C1F5091006EF006 /* PNChannelGroupUnsubscribeTests.bundle in Resources */, - 797BDCF71C1F5091006EF006 /* PNClientConfigurationTests.bundle in Resources */, - 797BDCF91C1F5091006EF006 /* PNPresenceTests.bundle in Resources */, - 797BDCFC1C1F5091006EF006 /* PNUnsubscribeTests.bundle in Resources */, + A5A905FE23B57C80006D22BA /* Fixtures in Resources */, + A529271D23B185FF00FF46DD /* tests-configuration.json in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 797BDD251C1F5176006EF006 /* Resources */ = { + A5B65D8D23B04148006B7BFB /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 793C2D27228C5468000E7A35 /* PNPublishCompressedTests.bundle in Resources */, - 797BDD261C1F5176006EF006 /* PNPresenceEventTests.bundle in Resources */, - 797BDD271C1F5176006EF006 /* PNConfigurationChiperKeyTests.bundle in Resources */, - 797BDD291C1F5176006EF006 /* PNHistoryTests.bundle in Resources */, - 797BDD2C1C1F5176006EF006 /* PNHeartbeatTests.bundle in Resources */, - 794B5668228D4AA2007AB94F /* PNAPNSTests.bundle in Resources */, - 797BDD2E1C1F5176006EF006 /* PNClientStateChannelGroupTests.bundle in Resources */, - 793C2D33228C7B72000E7A35 /* PNPublishWithHistoryTests.bundle in Resources */, - 793C2D37228C7BB6000E7A35 /* PNPublishWithMobilePayloadTests.bundle in Resources */, - 794B6B8B228D492400489D37 /* PNTimeTokenTests.bundle in Resources */, - 797BDD2F1C1F5176006EF006 /* PNClientStateChannelTests.bundle in Resources */, - 797BDD301C1F5176006EF006 /* PNChannelGroupSubscribeTests.bundle in Resources */, - 797BDD311C1F5176006EF006 /* PNSubscribeToPresenceChannelsTests.bundle in Resources */, - 797BDD321C1F5176006EF006 /* PNSubscribeTests.bundle in Resources */, - 794B5664228D4A67007AB94F /* PNChannelGroupTests.bundle in Resources */, - 794B566C228D4B19007AB94F /* PNPublishSizeOfMessage.bundle in Resources */, - 793C2D2F228C7B5C000E7A35 /* PNPublishTests.bundle in Resources */, - 797BDD331C1F5176006EF006 /* PNChannelGroupUnsubscribeTests.bundle in Resources */, - 797BDD341C1F5176006EF006 /* PNClientConfigurationTests.bundle in Resources */, - 797BDD361C1F5176006EF006 /* PNPresenceTests.bundle in Resources */, - 797BDD391C1F5176006EF006 /* PNUnsubscribeTests.bundle in Resources */, + A5A905FF23B57C80006D22BA /* Fixtures in Resources */, + A5DB1EA023B41476009B1B23 /* tests-configuration.json in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - 0D36312D28360DCD33CC7D11 /* [CP] Check Pods Manifest.lock */ = { + 04839ECB3FDCDD3C4B1E0474 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-MockableTests-[macOS] Unit Tests/Pods-MockableTests-[macOS] Unit Tests-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-MockableTests-[macOS] Unit Tests/Pods-MockableTests-[macOS] Unit Tests-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MockableTests-[macOS] Unit Tests/Pods-MockableTests-[macOS] Unit Tests-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + 140671F7E9AA5E12782547E6 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -1240,38 +882,31 @@ outputFileListPaths = ( ); outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-iOS ObjC Tests-checkManifestLockResult.txt", + "$(DERIVED_FILE_DIR)/Pods-MockableTests-[macOS] Unit Tests-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 68499C80CCF6B4A8F5B2D4B6 /* [CP] Embed Pods Frameworks */ = { + 2C6D3573E8878185833FB1BC /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); - inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-tvOS ObjC Tests/Pods-tvOS ObjC Tests-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/BeKindRewind-tvOS/BeKindRewind.framework", - "${BUILT_PRODUCTS_DIR}/OCMock-tvOS/OCMock.framework", - "${BUILT_PRODUCTS_DIR}/OHHTTPStubs-tvOS/OHHTTPStubs.framework", - "${BUILT_PRODUCTS_DIR}/PubNub-tvOS/PubNub.framework", + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-MockableTests-[macOS] Mocked Integration Tests/Pods-MockableTests-[macOS] Mocked Integration Tests-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); name = "[CP] Embed Pods Frameworks"; - outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/BeKindRewind.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OCMock.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OHHTTPStubs.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/PubNub.framework", + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-MockableTests-[macOS] Mocked Integration Tests/Pods-MockableTests-[macOS] Mocked Integration Tests-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-tvOS ObjC Tests/Pods-tvOS ObjC Tests-frameworks.sh\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MockableTests-[macOS] Mocked Integration Tests/Pods-MockableTests-[macOS] Mocked Integration Tests-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - 6862B04210B3EA11BF30D59A /* [CP] Check Pods Manifest.lock */ = { + 41E9E6BD60B43AC55DE2148D /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -1286,132 +921,153 @@ outputFileListPaths = ( ); outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-OSX ObjC Tests-checkManifestLockResult.txt", + "$(DERIVED_FILE_DIR)/Pods-MockableTests-[tvOS] Unit Tests-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - 79E198C41CE3EDF700F36216 /* Clean Legacy Code Coverage files */ = { + 69716F34DBEF059E16377242 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); - inputPaths = ( + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-MockableTests-[tvOS] Mocked Integration Tests/Pods-MockableTests-[tvOS] Mocked Integration Tests-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); - name = "Clean Legacy Code Coverage files"; - outputPaths = ( + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-MockableTests-[tvOS] Mocked Integration Tests/Pods-MockableTests-[tvOS] Mocked Integration Tests-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "INTERMEDIATES_DIR=\"${BUILD_DIR}/../Intermediates\"\n\nif [ -e \"${INTERMEDIATES_DIR}\" ]; then\n find ${INTERMEDIATES_DIR} -type f -name \"*.gcda\" -exec rm -rf {} \\;\n find ${INTERMEDIATES_DIR} -type f -name \"*.gcno\" -exec rm -rf {} \\;\nfi\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MockableTests-[tvOS] Mocked Integration Tests/Pods-MockableTests-[tvOS] Mocked Integration Tests-frameworks.sh\"\n"; + showEnvVarsInLog = 0; }; - 79E198C51CE3EEA800F36216 /* Clean Legacy Code Coverage files */ = { + 845F211BB22B94EEA0FAB5E9 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); - inputPaths = ( + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-MockableTests-[iOS] Unit Tests/Pods-MockableTests-[iOS] Unit Tests-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); - name = "Clean Legacy Code Coverage files"; - outputPaths = ( + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-MockableTests-[iOS] Unit Tests/Pods-MockableTests-[iOS] Unit Tests-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "INTERMEDIATES_DIR=\"${BUILD_DIR}/../Intermediates\"\n\nif [ -e \"${INTERMEDIATES_DIR}\" ]; then\n find ${INTERMEDIATES_DIR} -type f -name \"*.gcda\" -exec rm -rf {} \\;\n find ${INTERMEDIATES_DIR} -type f -name \"*.gcno\" -exec rm -rf {} \\;\nfi"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MockableTests-[iOS] Unit Tests/Pods-MockableTests-[iOS] Unit Tests-frameworks.sh\"\n"; + showEnvVarsInLog = 0; }; - 79E198C61CE3EEB200F36216 /* Clean Legacy Code Coverage files */ = { + 997FEBC407DCC91B3FCF3A56 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); + inputFileListPaths = ( + ); inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( ); - name = "Clean Legacy Code Coverage files"; outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-MockableTests-[macOS] Mocked Integration Tests-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "INTERMEDIATES_DIR=\"${BUILD_DIR}/../Intermediates\"\n\nif [ -e \"${INTERMEDIATES_DIR}\" ]; then\n find ${INTERMEDIATES_DIR} -type f -name \"*.gcda\" -exec rm -rf {} \\;\n find ${INTERMEDIATES_DIR} -type f -name \"*.gcno\" -exec rm -rf {} \\;\nfi"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; }; - 79E198C71CE3EEBB00F36216 /* Clean Legacy Code Coverage files */ = { + A99DCD69725AE4F35639F239 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); + inputFileListPaths = ( + ); inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( ); - name = "Clean Legacy Code Coverage files"; outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-[iOS] Integration Tests-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "INTERMEDIATES_DIR=\"${BUILD_DIR}/../Intermediates\"\n\nif [ -e \"${INTERMEDIATES_DIR}\" ]; then\n find ${INTERMEDIATES_DIR} -type f -name \"*.gcda\" -exec rm -rf {} \\;\n find ${INTERMEDIATES_DIR} -type f -name \"*.gcno\" -exec rm -rf {} \\;\nfi"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; }; - 79E198C81CE3EEC400F36216 /* Clean Legacy Code Coverage files */ = { + B8789384B731316FBF45A4E1 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); - inputPaths = ( + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-MockableTests-[iOS] Mocked Integration Tests/Pods-MockableTests-[iOS] Mocked Integration Tests-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); - name = "Clean Legacy Code Coverage files"; - outputPaths = ( + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-MockableTests-[iOS] Mocked Integration Tests/Pods-MockableTests-[iOS] Mocked Integration Tests-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "INTERMEDIATES_DIR=\"${BUILD_DIR}/../Intermediates\"\n\nif [ -e \"${INTERMEDIATES_DIR}\" ]; then\n find ${INTERMEDIATES_DIR} -type f -name \"*.gcda\" -exec rm -rf {} \\;\n find ${INTERMEDIATES_DIR} -type f -name \"*.gcno\" -exec rm -rf {} \\;\nfi"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MockableTests-[iOS] Mocked Integration Tests/Pods-MockableTests-[iOS] Mocked Integration Tests-frameworks.sh\"\n"; + showEnvVarsInLog = 0; }; - C3034CFAB729D815383E9192 /* [CP] Embed Pods Frameworks */ = { + CB960BDC9B81AF4A06788F00 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); + inputFileListPaths = ( + ); inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-OSX ObjC Tests/Pods-OSX ObjC Tests-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/BeKindRewind-macOS/BeKindRewind.framework", - "${BUILT_PRODUCTS_DIR}/OCMock-macOS/OCMock.framework", - "${BUILT_PRODUCTS_DIR}/OHHTTPStubs-macOS/OHHTTPStubs.framework", - "${BUILT_PRODUCTS_DIR}/PubNub-macOS/PubNub.framework", + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( ); - name = "[CP] Embed Pods Frameworks"; outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/BeKindRewind.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OCMock.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OHHTTPStubs.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/PubNub.framework", + "$(DERIVED_FILE_DIR)/Pods-MockableTests-[tvOS] Mocked Integration Tests-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-OSX ObjC Tests/Pods-OSX ObjC Tests-frameworks.sh\"\n"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - F4C28F0C9463C921055F0DBA /* [CP] Embed Pods Frameworks */ = { + D296950A8A8594AD7AE541D5 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); + inputFileListPaths = ( + ); inputPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-iOS ObjC Tests/Pods-iOS ObjC Tests-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/BeKindRewind-iOS/BeKindRewind.framework", - "${BUILT_PRODUCTS_DIR}/OCMock-iOS/OCMock.framework", - "${BUILT_PRODUCTS_DIR}/OHHTTPStubs-iOS/OHHTTPStubs.framework", - "${BUILT_PRODUCTS_DIR}/PubNub-iOS/PubNub.framework", + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( ); - name = "[CP] Embed Pods Frameworks"; outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/BeKindRewind.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OCMock.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OHHTTPStubs.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/PubNub.framework", + "$(DERIVED_FILE_DIR)/Pods-MockableTests-[iOS] Unit Tests-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-iOS ObjC Tests/Pods-iOS ObjC Tests-frameworks.sh\"\n"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; - F957912F0F0D826AC0D915AE /* [CP] Check Pods Manifest.lock */ = { + D7CB23BDA79C17F7A60D7D62 /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -1426,530 +1082,567 @@ outputFileListPaths = ( ); outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-tvOS ObjC Tests-checkManifestLockResult.txt", + "$(DERIVED_FILE_DIR)/Pods-MockableTests-[iOS] Mocked Integration Tests-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; showEnvVarsInLog = 0; }; + DA4AC18938F39167BCC08A81 /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-[iOS] Integration Tests/Pods-[iOS] Integration Tests-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-[iOS] Integration Tests/Pods-[iOS] Integration Tests-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-[iOS] Integration Tests/Pods-[iOS] Integration Tests-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; + DC37B66A8B4AA3A19978D5FC /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-MockableTests-[tvOS] Unit Tests/Pods-MockableTests-[tvOS] Unit Tests-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-MockableTests-[tvOS] Unit Tests/Pods-MockableTests-[tvOS] Unit Tests-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-MockableTests-[tvOS] Unit Tests/Pods-MockableTests-[tvOS] Unit Tests-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ - 517A9ECF1BE3181700FAA43A /* Sources */ = { + A529267F23B0D07500FF46DD /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - A55A64A02328E36A0064E8E4 /* PNSignalIntegrationTest.m in Sources */, - A54F4175231FABC3007A368A /* PNMessageActionsTest.m in Sources */, - 517A9EE11BE3185800FAA43A /* PNClientStateChannelTests.m in Sources */, - 517A9EF41BE318B700FAA43A /* NSString+PNTest.m in Sources */, - 517A9EF21BE3189900FAA43A /* PNBasicClientCryptTestCase.m in Sources */, - A525EA672303EF7200ABFDC2 /* PNUserIntegrationTest.m in Sources */, - A525EA562302A77A00ABFDC2 /* PNMembershipObjectsTest.m in Sources */, - A525EA522301E69300ABFDC2 /* PNSpaceObjectsTest.m in Sources */, - A55A649A2328E36A0064E8E4 /* PNHistoryIntegrationTest.m in Sources */, - 517A9EE71BE3185800FAA43A /* PNPublishSizeOfMessage.m in Sources */, - A55A64A32328E36A0064E8E4 /* PNMessageActionsIntegrationTest.m in Sources */, - 517A9EEA1BE3185800FAA43A /* PNPublishWithMobilePayloadTests.m in Sources */, - 7933B4DC22D666B70097458F /* PNSignalTest.m in Sources */, - 517A9EEE1BE3185800FAA43A /* PNUnsubscribeTests.m in Sources */, - 517A9EF01BE3189300FAA43A /* PNBasicClientTestCase.m in Sources */, - 517A9EE01BE3185800FAA43A /* PNClientStateChannelGroupTests.m in Sources */, - 517A9EF51BE318B900FAA43A /* NSArray+PNTest.m in Sources */, - A52DC1E223059898001F20B0 /* PNMembershipIntegrationTest.m in Sources */, - 517A9EEC1BE3185800FAA43A /* PNSubscribeToPresenceChannelsTests.m in Sources */, - A55BCD7F231E80220019DB68 /* PNMessageActionsAPICallBuilderTest.m in Sources */, - 79A3E4542215806D00F2ADB9 /* PNTestCase.m in Sources */, - 517A9EF31BE318B400FAA43A /* NSDictionary+PNTest.m in Sources */, - 517A9EDC1BE3185800FAA43A /* PNChannelGroupSubscribeTests.m in Sources */, - A5105B63238F08FB00CB693D /* PNNotificationPayloadBuilderTest.m in Sources */, - 79A3E44B2215783200F2ADB9 /* NSInvocation+PNTest.m in Sources */, - A589756722FE711C0093BD9A /* PNSpaceObjectsAPICallBuilderTest.m in Sources */, - A5F62C3623017E88001CC2A5 /* PNMembershipsObjectsAPICallBuilderTest.m in Sources */, - 79878FC322D924F100F0096D /* PNSignalAPIBuilderTest.m in Sources */, - 517A9EE21BE3185800FAA43A /* PNHeartbeatTests.m in Sources */, - 797A333D22C32B3D0036D28C /* PNSubscribeIntegrationTest.m in Sources */, - A55A889622FD8398002D0A72 /* PNUserObjectsAPICallBuilderTest.m in Sources */, - 517A9EEF1BE3185800FAA43A /* PNConfigurationChiperKeyTests.m in Sources */, - A55A889B22FD83B9002D0A72 /* PNUserObjectsTest.m in Sources */, - 517A9EDB1BE3185800FAA43A /* PNAPNSTests.m in Sources */, - 79A3E4612215A42C00F2ADB9 /* PNMessageCountAPICallBuilderTest.m in Sources */, - 51A6E6011BE421DC00C20B77 /* PNDeviceIndependentMatcher.m in Sources */, - 517A9EEB1BE3185800FAA43A /* PNSubscribeTests.m in Sources */, - 517A9EE81BE3185800FAA43A /* PNPublishTests.m in Sources */, - A5F62C3A23017E95001CC2A5 /* PNMembersObjectsAPICallBuilderTest.m in Sources */, - 517A9EE31BE3185800FAA43A /* PNHistoryTests.m in Sources */, - A525EA6C23047CB300ABFDC2 /* PNObjectsTestCase.m in Sources */, - 517A9EDE1BE3185800FAA43A /* PNChannelGroupUnsubscribeTests.m in Sources */, - 517A9EE61BE3185800FAA43A /* PNPublishCompressedTests.m in Sources */, - 517A9EDD1BE3185800FAA43A /* PNChannelGroupTests.m in Sources */, - 517A9EE91BE3185800FAA43A /* PNPublishWithHistoryTests.m in Sources */, - A525EA5A2302A79000ABFDC2 /* PNMemberObjectsTest.m in Sources */, - 517A9EF11BE3189700FAA43A /* PNBasicSubscribeTestCase.m in Sources */, - 517A9EE51BE3185800FAA43A /* PNPresenceEventTests.m in Sources */, - A525EA75230483EF00ABFDC2 /* PNSpaceIntegrationTest.m in Sources */, - A55260582309DF1900CB4ACF /* PNMemberIntegrationTest.m in Sources */, - 79A3E45E2215A42C00F2ADB9 /* PNMessageCountTest.m in Sources */, - 517A9EE41BE3185800FAA43A /* PNPresenceTests.m in Sources */, - 517A9EED1BE3185800FAA43A /* PNTimeTokenTests.m in Sources */, - 517A9EDF1BE3185800FAA43A /* PNClientConfigurationTests.m in Sources */, - A55A649D2328E36A0064E8E4 /* PNAPNSIntegrationTest.m in Sources */, - 79E20D2E1C8B1C64001BC9CC /* PNBasicPresenceTestCase.m in Sources */, + A5DB1E9923B2D212009B1B23 /* NSInvocation+PNTest.m in Sources */, + A5A905F823B571F8006D22BA /* NSString+PNTest.m in Sources */, + A529271623B181FE00FF46DD /* PNRecordableTestCase.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 519C32791B20C11500FAC283 /* Sources */ = { + A52926DB23B0E6C500FF46DD /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 79EF04B21B4EAAB7007478CB /* PNPublishWithMobilePayloadTests.m in Sources */, - 9652F3E51BA31F7D001E940A /* PNConfigurationChiperKeyTests.m in Sources */, - 79EF04B01B4EAAB7007478CB /* PNPublishTests.m in Sources */, - A525EA6A23047CB300ABFDC2 /* PNObjectsTestCase.m in Sources */, - A54F4173231FABC3007A368A /* PNMessageActionsTest.m in Sources */, - 79EF04B51B4EAAB7007478CB /* PNTimeTokenTests.m in Sources */, - 79EF04B61B4EAAB7007478CB /* PNUnsubscribeTests.m in Sources */, - 79EF04AE1B4EAAB7007478CB /* PNPublishCompressedTests.m in Sources */, - 79EF04B41B4EAAB7007478CB /* PNSubscribeToPresenceChannelsTests.m in Sources */, - 79EF04C11B4EAB01007478CB /* NSDictionary+PNTest.m in Sources */, - 79EF04A41B4EAAB7007478CB /* PNAPNSTests.m in Sources */, - 79A3E4492215783200F2ADB9 /* NSInvocation+PNTest.m in Sources */, - 79EF04AC1B4EAAB7007478CB /* PNHistoryTests.m in Sources */, - A525EA582302A79000ABFDC2 /* PNMemberObjectsTest.m in Sources */, - A5E323F5230B0109001FB7AE /* PNMembershipIntegrationTest.m in Sources */, - A55A889922FD83B9002D0A72 /* PNUserObjectsTest.m in Sources */, - 79EF04B31B4EAAB7007478CB /* PNSubscribeTests.m in Sources */, - 79EF04BC1B4EAAE4007478CB /* PNBasicSubscribeTestCase.m in Sources */, - 79E198C31CE3DCF600F36216 /* PNNumberTests.m in Sources */, - A55A649E2328E36A0064E8E4 /* PNSignalIntegrationTest.m in Sources */, - 79EF04A51B4EAAB7007478CB /* PNChannelGroupSubscribeTests.m in Sources */, - 799CE2F91C45B9FD00AAEBDC /* PNFilteringSubscribeTests.m in Sources */, - 9652F3E21BA31D9A001E940A /* PNBasicClientCryptTestCase.m in Sources */, - 79EF04A91B4EAAB7007478CB /* PNClientStateChannelGroupTests.m in Sources */, - 51A6E6001BE421DC00C20B77 /* PNDeviceIndependentMatcher.m in Sources */, - 799CE2F01C45B89F00AAEBDC /* PNChannelGroupPresenceEventTests.m in Sources */, - A52DC1F4230811E8001F20B0 /* PNSpaceIntegrationTest.m in Sources */, - 799CE2FB1C45BA3000AAEBDC /* PNPresenceChannelGroupTests.m in Sources */, - 79EF04A71B4EAAB7007478CB /* PNChannelGroupUnsubscribeTests.m in Sources */, - 797A333C22C32B3D0036D28C /* PNSubscribeIntegrationTest.m in Sources */, - 79878FC122D924F100F0096D /* PNSignalAPIBuilderTest.m in Sources */, - 967707F71B8F4A80002B8E84 /* PNPresenceEventTests.m in Sources */, - 799CE2F31C45B8FD00AAEBDC /* PNBasicPresenceTestCase.m in Sources */, - A5105B60238F08FB00CB693D /* PNNotificationPayloadBuilderTest.m in Sources */, - 79EF04AA1B4EAAB7007478CB /* PNClientStateChannelTests.m in Sources */, - 79A238E91D2EB6BA00D080CD /* NSURLSessionConfigurationCategoryTest.m in Sources */, - 79EF04BB1B4EAAE4007478CB /* PNBasicClientTestCase.m in Sources */, - A552605A2309EF7700CB4ACF /* PNMemberIntegrationTest.m in Sources */, - 79A3E45C2215A42C00F2ADB9 /* PNMessageCountTest.m in Sources */, - 79EF04C21B4EAB01007478CB /* NSString+PNTest.m in Sources */, - 79EF04B11B4EAAB7007478CB /* PNPublishWithHistoryTests.m in Sources */, - 79EF04AD1B4EAAB7007478CB /* PNPresenceTests.m in Sources */, - A525EA542302A77A00ABFDC2 /* PNMembershipObjectsTest.m in Sources */, - 79EF04A61B4EAAB7007478CB /* PNChannelGroupTests.m in Sources */, - 96F0239E1B580D0000C4A581 /* NSArray+PNTest.m in Sources */, - A589756522FE711C0093BD9A /* PNSpaceObjectsAPICallBuilderTest.m in Sources */, - A55A649B2328E36A0064E8E4 /* PNAPNSIntegrationTest.m in Sources */, - A525EA502301E69300ABFDC2 /* PNSpaceObjectsTest.m in Sources */, - 79EF04AF1B4EAAB7007478CB /* PNPublishSizeOfMessage.m in Sources */, - 79A3E4522215806D00F2ADB9 /* PNTestCase.m in Sources */, - 79EF04AB1B4EAAB7007478CB /* PNHeartbeatTests.m in Sources */, - 79EF04A81B4EAAB7007478CB /* PNClientConfigurationTests.m in Sources */, - A55A889422FD8398002D0A72 /* PNUserObjectsAPICallBuilderTest.m in Sources */, - A5F62C3423017E88001CC2A5 /* PNMembershipsObjectsAPICallBuilderTest.m in Sources */, - A55A64A12328E36A0064E8E4 /* PNMessageActionsIntegrationTest.m in Sources */, - A55A64982328E36A0064E8E4 /* PNHistoryIntegrationTest.m in Sources */, - 7933B4DA22D666B70097458F /* PNSignalTest.m in Sources */, - A55BCD7D231E80220019DB68 /* PNMessageActionsAPICallBuilderTest.m in Sources */, - 799CE2F71C45B95400AAEBDC /* PNChannelGroupFilteringSubscribeTests.m in Sources */, - A55260532309555800CB4ACF /* PNUserIntegrationTest.m in Sources */, - 79A3E45F2215A42C00F2ADB9 /* PNMessageCountAPICallBuilderTest.m in Sources */, - A5F62C3823017E95001CC2A5 /* PNMembersObjectsAPICallBuilderTest.m in Sources */, + A5BB312323DCF4570015525A /* PNPresenceStateIntegrationTest.m in Sources */, + A5BDE10223C35939000E7895 /* PNPresenceIntegrationTest.m in Sources */, + A54E290823C286090024714B /* PNSpaceIntegrationTest.m in Sources */, + A5BB312D23DE33310015525A /* PNTimeIntegrationTest.m in Sources */, + A5BBD01D23BAB7F60089AD06 /* PNChannelGroupIntegrationTests.m in Sources */, + A5DB1E9D23B412E7009B1B23 /* PNPublishIntegrationTests.m in Sources */, + A54E290D23C2992A0024714B /* PNUserIntegrationTest.m in Sources */, + A54E28FE23C089730024714B /* PNMembershipIntegrationTest.m in Sources */, + A59ECFE523BB5B1900E84300 /* PNHistoryIntegrationTests.m in Sources */, + A5A905F323B571E8006D22BA /* NSString+PNTest.m in Sources */, + A59ECFEB23BD5E8F00E84300 /* PNMessageActionsIntegrationTest.m in Sources */, + A54E290323C16B3D0024714B /* PNMemberIntegrationTest.m in Sources */, + A5BB312823DE32980015525A /* PNSubscribeIntegrationTest.m in Sources */, + A5DB1E9523B2D212009B1B23 /* NSInvocation+PNTest.m in Sources */, + A529271223B181FE00FF46DD /* PNRecordableTestCase.m in Sources */, + A54185DE23B9565000FBA26A /* PNPushNotificationsIntegrationTests.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 51D889DD1B66E0F8009127D0 /* Sources */ = { + A52926E723B0E6DC00FF46DD /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 51D889F21B66F49E009127D0 /* PNBasicClientTestCase.swift in Sources */, - 795CED0A1BCF002900D421BB /* PNHeartbeatTests.swift in Sources */, - 96B222BC1B84868C002549D5 /* PNPresenceTests.swift in Sources */, - 51BB25421B6815F300A9F154 /* PNTimeTokenTests.swift in Sources */, - 9652F3EB1BA98706001E940A /* PNConfigurationChiperKeyTests.swift in Sources */, - 51BB25401B6814EF00A9F154 /* PNBasicSubscribeTestCase.swift in Sources */, - 796502F31C0E3709001F7782 /* PNDeviceIndependentMatcher.m in Sources */, - 9652F3E91BA97AA5001E940A /* PNBasicClientCryptTestCase.swift in Sources */, - 9722C2761B68A24C00A7CB44 /* PNPublishTests.swift in Sources */, - 960354F91B9100120047EE04 /* PNPresenceEventTests.swift in Sources */, + A53D0B1023EA07E5001E72AF /* PNMembershipObjectsTest.m in Sources */, + A53D0B2C23EA0FEF001E72AF /* PNNotificationPayloadBuilderTest.m in Sources */, + A53D0AFB23E9FBE4001E72AF /* PNUserObjectsAPICallBuilderTest.m in Sources */, + A5DB1E9623B2D212009B1B23 /* NSInvocation+PNTest.m in Sources */, + A59ECFDE23BB571200E84300 /* PNSignalTest.m in Sources */, + A53D0B0123EA00EB001E72AF /* PNMessageActionsAPICallBuilderTest.m in Sources */, + A53D0B2123EA0DB7001E72AF /* PNMessageActionsTest.m in Sources */, + A53D0B2723EA0EAD001E72AF /* PNMessageCountTest.m in Sources */, + A53D0B0623EA063A001E72AF /* PNSignalAPIBuilderTest.m in Sources */, + A53D0B1C23EA0C5C001E72AF /* PNUserObjectsTest.m in Sources */, + A53D0AEF23E9BF60001E72AF /* PNMembershipsObjectsAPICallBuilderTest.m in Sources */, + A53D0B0B23EA070A001E72AF /* PNMessageCountAPICallBuilderTest.m in Sources */, + A5A905F423B571E8006D22BA /* NSString+PNTest.m in Sources */, + A529271323B181FE00FF46DD /* PNRecordableTestCase.m in Sources */, + A53D0B1423EA0A07001E72AF /* PNMemberObjectsTest.m in Sources */, + A53D0AF723E9F7D7001E72AF /* PNSpaceObjectsAPICallBuilderTest.m in Sources */, + A53D0AF323E9F42B001E72AF /* PNMembersObjectsAPICallBuilderTest.m in Sources */, + A53D0B1823EA0AB4001E72AF /* PNSpaceObjectsTest.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 797BDCC91C1F5091006EF006 /* Sources */ = { + A52926F323B0E71700FF46DD /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 797BDCCA1C1F5091006EF006 /* PNPublishWithMobilePayloadTests.m in Sources */, - 797BDCCB1C1F5091006EF006 /* PNConfigurationChiperKeyTests.m in Sources */, - 797BDCCC1C1F5091006EF006 /* PNPublishTests.m in Sources */, - 797BDCCD1C1F5091006EF006 /* PNTimeTokenTests.m in Sources */, - 797BDCCE1C1F5091006EF006 /* PNUnsubscribeTests.m in Sources */, - 797BDCCF1C1F5091006EF006 /* PNPublishCompressedTests.m in Sources */, - 797BDCD01C1F5091006EF006 /* PNSubscribeToPresenceChannelsTests.m in Sources */, - 797BDCD11C1F5091006EF006 /* NSDictionary+PNTest.m in Sources */, - 797BDCD21C1F5091006EF006 /* PNAPNSTests.m in Sources */, - 797BDCD31C1F5091006EF006 /* PNHistoryTests.m in Sources */, - 797BDCD41C1F5091006EF006 /* PNSubscribeTests.m in Sources */, - 797BDCD51C1F5091006EF006 /* PNBasicSubscribeTestCase.m in Sources */, - 797BDCD61C1F5091006EF006 /* PNChannelGroupSubscribeTests.m in Sources */, - 797BDCD71C1F5091006EF006 /* PNBasicClientCryptTestCase.m in Sources */, - 797BDCD81C1F5091006EF006 /* PNClientStateChannelGroupTests.m in Sources */, - 797BDCD91C1F5091006EF006 /* PNDeviceIndependentMatcher.m in Sources */, - 797BDCDA1C1F5091006EF006 /* PNChannelGroupUnsubscribeTests.m in Sources */, - 797BDCDB1C1F5091006EF006 /* PNPresenceEventTests.m in Sources */, - A5105B61238F08FB00CB693D /* PNNotificationPayloadBuilderTest.m in Sources */, - 797BDCDC1C1F5091006EF006 /* PNClientStateChannelTests.m in Sources */, - 797BDCDD1C1F5091006EF006 /* PNBasicClientTestCase.m in Sources */, - 797BDCDE1C1F5091006EF006 /* NSString+PNTest.m in Sources */, - 797BDCDF1C1F5091006EF006 /* PNPublishWithHistoryTests.m in Sources */, - 797BDCE01C1F5091006EF006 /* PNPresenceTests.m in Sources */, - 797BDCE11C1F5091006EF006 /* PNChannelGroupTests.m in Sources */, - 797BDCE21C1F5091006EF006 /* NSArray+PNTest.m in Sources */, - 797BDCE31C1F5091006EF006 /* PNPublishSizeOfMessage.m in Sources */, - 797BDCE41C1F5091006EF006 /* PNHeartbeatTests.m in Sources */, - 797BDCE51C1F5091006EF006 /* PNClientConfigurationTests.m in Sources */, + A5BB312223DCF4570015525A /* PNPresenceStateIntegrationTest.m in Sources */, + A5BDE10123C35939000E7895 /* PNPresenceIntegrationTest.m in Sources */, + A54E290723C286090024714B /* PNSpaceIntegrationTest.m in Sources */, + A5BB312C23DE33310015525A /* PNTimeIntegrationTest.m in Sources */, + A5BBD01C23BAB7F60089AD06 /* PNChannelGroupIntegrationTests.m in Sources */, + A5DB1E9C23B412E7009B1B23 /* PNPublishIntegrationTests.m in Sources */, + A54E290C23C2992A0024714B /* PNUserIntegrationTest.m in Sources */, + A54E28FD23C089730024714B /* PNMembershipIntegrationTest.m in Sources */, + A59ECFE423BB5B1900E84300 /* PNHistoryIntegrationTests.m in Sources */, + A5A905F123B571E8006D22BA /* NSString+PNTest.m in Sources */, + A59ECFEA23BD5E8F00E84300 /* PNMessageActionsIntegrationTest.m in Sources */, + A54E290223C16B3D0024714B /* PNMemberIntegrationTest.m in Sources */, + A5BB312723DE32980015525A /* PNSubscribeIntegrationTest.m in Sources */, + A5DB1E9323B2D212009B1B23 /* NSInvocation+PNTest.m in Sources */, + A529271023B181FE00FF46DD /* PNRecordableTestCase.m in Sources */, + A54185DD23B9565000FBA26A /* PNPushNotificationsIntegrationTests.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; - 797BDD061C1F5176006EF006 /* Sources */ = { + A52926FF23B0E72500FF46DD /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - A55A649F2328E36A0064E8E4 /* PNSignalIntegrationTest.m in Sources */, - A54F4174231FABC3007A368A /* PNMessageActionsTest.m in Sources */, - 797BDD071C1F5176006EF006 /* PNPublishWithMobilePayloadTests.m in Sources */, - 797BDD081C1F5176006EF006 /* PNConfigurationChiperKeyTests.m in Sources */, - 797BDD091C1F5176006EF006 /* PNPublishTests.m in Sources */, - A525EA662303EF7200ABFDC2 /* PNUserIntegrationTest.m in Sources */, - A525EA552302A77A00ABFDC2 /* PNMembershipObjectsTest.m in Sources */, - A525EA512301E69300ABFDC2 /* PNSpaceObjectsTest.m in Sources */, - A55A64992328E36A0064E8E4 /* PNHistoryIntegrationTest.m in Sources */, - 797BDD0A1C1F5176006EF006 /* PNTimeTokenTests.m in Sources */, - A55A64A22328E36A0064E8E4 /* PNMessageActionsIntegrationTest.m in Sources */, - 797BDD0B1C1F5176006EF006 /* PNUnsubscribeTests.m in Sources */, - 7933B4DB22D666B70097458F /* PNSignalTest.m in Sources */, - 797BDD0C1C1F5176006EF006 /* PNPublishCompressedTests.m in Sources */, - 797BDD0D1C1F5176006EF006 /* PNSubscribeToPresenceChannelsTests.m in Sources */, - 797BDD0E1C1F5176006EF006 /* NSDictionary+PNTest.m in Sources */, - 797BDD0F1C1F5176006EF006 /* PNAPNSTests.m in Sources */, - A52DC1E123059898001F20B0 /* PNMembershipIntegrationTest.m in Sources */, - 797BDD101C1F5176006EF006 /* PNHistoryTests.m in Sources */, - A55BCD7E231E80220019DB68 /* PNMessageActionsAPICallBuilderTest.m in Sources */, - 79A3E4532215806D00F2ADB9 /* PNTestCase.m in Sources */, - 797BDD111C1F5176006EF006 /* PNSubscribeTests.m in Sources */, - 797BDD121C1F5176006EF006 /* PNBasicSubscribeTestCase.m in Sources */, - A5105B62238F08FB00CB693D /* PNNotificationPayloadBuilderTest.m in Sources */, - 79A3E44A2215783200F2ADB9 /* NSInvocation+PNTest.m in Sources */, - A589756622FE711C0093BD9A /* PNSpaceObjectsAPICallBuilderTest.m in Sources */, - A5F62C3523017E88001CC2A5 /* PNMembershipsObjectsAPICallBuilderTest.m in Sources */, - 79878FC222D924F100F0096D /* PNSignalAPIBuilderTest.m in Sources */, - 797BDD131C1F5176006EF006 /* PNChannelGroupSubscribeTests.m in Sources */, - 797A333E22C32B470036D28C /* PNSubscribeIntegrationTest.m in Sources */, - A55A889522FD8398002D0A72 /* PNUserObjectsAPICallBuilderTest.m in Sources */, - 797BDD141C1F5176006EF006 /* PNBasicClientCryptTestCase.m in Sources */, - A55A889A22FD83B9002D0A72 /* PNUserObjectsTest.m in Sources */, - 797BDD151C1F5176006EF006 /* PNClientStateChannelGroupTests.m in Sources */, - 79A3E4602215A42C00F2ADB9 /* PNMessageCountAPICallBuilderTest.m in Sources */, - 797BDD161C1F5176006EF006 /* PNDeviceIndependentMatcher.m in Sources */, - 797BDD171C1F5176006EF006 /* PNChannelGroupUnsubscribeTests.m in Sources */, - 797BDD181C1F5176006EF006 /* PNPresenceEventTests.m in Sources */, - A5F62C3923017E95001CC2A5 /* PNMembersObjectsAPICallBuilderTest.m in Sources */, - 797BDD191C1F5176006EF006 /* PNClientStateChannelTests.m in Sources */, - A525EA6B23047CB300ABFDC2 /* PNObjectsTestCase.m in Sources */, - 797BDD1A1C1F5176006EF006 /* PNBasicClientTestCase.m in Sources */, - 797BDD1B1C1F5176006EF006 /* NSString+PNTest.m in Sources */, - 797BDD1C1C1F5176006EF006 /* PNPublishWithHistoryTests.m in Sources */, - 797BDD1D1C1F5176006EF006 /* PNPresenceTests.m in Sources */, - A525EA592302A79000ABFDC2 /* PNMemberObjectsTest.m in Sources */, - 797BDD1E1C1F5176006EF006 /* PNChannelGroupTests.m in Sources */, - 797BDD1F1C1F5176006EF006 /* NSArray+PNTest.m in Sources */, - A525EA74230483EF00ABFDC2 /* PNSpaceIntegrationTest.m in Sources */, - A55260572309DF1900CB4ACF /* PNMemberIntegrationTest.m in Sources */, - 79A3E45D2215A42C00F2ADB9 /* PNMessageCountTest.m in Sources */, - 797BDD201C1F5176006EF006 /* PNPublishSizeOfMessage.m in Sources */, - 797BDD211C1F5176006EF006 /* PNHeartbeatTests.m in Sources */, - 797BDD221C1F5176006EF006 /* PNClientConfigurationTests.m in Sources */, - A55A649C2328E36A0064E8E4 /* PNAPNSIntegrationTest.m in Sources */, - 79E20D2D1C8B1C64001BC9CC /* PNBasicPresenceTestCase.m in Sources */, + A53D0B0F23EA07E5001E72AF /* PNMembershipObjectsTest.m in Sources */, + A53D0B2B23EA0FEF001E72AF /* PNNotificationPayloadBuilderTest.m in Sources */, + A53D0AFA23E9FBE4001E72AF /* PNUserObjectsAPICallBuilderTest.m in Sources */, + A5DB1E9423B2D212009B1B23 /* NSInvocation+PNTest.m in Sources */, + A59ECFDD23BB571200E84300 /* PNSignalTest.m in Sources */, + A53D0B0023EA00EB001E72AF /* PNMessageActionsAPICallBuilderTest.m in Sources */, + A53D0B2023EA0DB7001E72AF /* PNMessageActionsTest.m in Sources */, + A53D0B2623EA0EAD001E72AF /* PNMessageCountTest.m in Sources */, + A53D0B0523EA063A001E72AF /* PNSignalAPIBuilderTest.m in Sources */, + A53D0B1B23EA0C5C001E72AF /* PNUserObjectsTest.m in Sources */, + A53D0AEE23E9BF60001E72AF /* PNMembershipsObjectsAPICallBuilderTest.m in Sources */, + A53D0B0A23EA070A001E72AF /* PNMessageCountAPICallBuilderTest.m in Sources */, + A5A905F223B571E8006D22BA /* NSString+PNTest.m in Sources */, + A529271123B181FE00FF46DD /* PNRecordableTestCase.m in Sources */, + A53D0B1323EA0A07001E72AF /* PNMemberObjectsTest.m in Sources */, + A53D0AF623E9F7D7001E72AF /* PNSpaceObjectsAPICallBuilderTest.m in Sources */, + A53D0AF223E9F42B001E72AF /* PNMembersObjectsAPICallBuilderTest.m in Sources */, + A53D0B1723EA0AB4001E72AF /* PNSpaceObjectsTest.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 517A9ED81BE3181700FAA43A /* Debug */ = { - isa = XCBuildConfiguration; - baseConfigurationReference = 29DEF65970DD1FA0E9413980 /* Pods-OSX ObjC Tests.debug.xcconfig */; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + A5B65D6B23B03DB4006B7BFB /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A53D0B1123EA07E5001E72AF /* PNMembershipObjectsTest.m in Sources */, + A53D0B2D23EA0FEF001E72AF /* PNNotificationPayloadBuilderTest.m in Sources */, + A53D0AFC23E9FBE4001E72AF /* PNUserObjectsAPICallBuilderTest.m in Sources */, + A5DB1E9A23B2D212009B1B23 /* NSInvocation+PNTest.m in Sources */, + A59ECFDF23BB571200E84300 /* PNSignalTest.m in Sources */, + A53D0B0223EA00EB001E72AF /* PNMessageActionsAPICallBuilderTest.m in Sources */, + A53D0B2223EA0DB7001E72AF /* PNMessageActionsTest.m in Sources */, + A53D0B2823EA0EAD001E72AF /* PNMessageCountTest.m in Sources */, + A53D0B0723EA063A001E72AF /* PNSignalAPIBuilderTest.m in Sources */, + A53D0B1D23EA0C5C001E72AF /* PNUserObjectsTest.m in Sources */, + A53D0AF023E9BF60001E72AF /* PNMembershipsObjectsAPICallBuilderTest.m in Sources */, + A53D0B0C23EA070A001E72AF /* PNMessageCountAPICallBuilderTest.m in Sources */, + A5A905F723B571E8006D22BA /* NSString+PNTest.m in Sources */, + A529271723B181FE00FF46DD /* PNRecordableTestCase.m in Sources */, + A53D0B1523EA0A07001E72AF /* PNMemberObjectsTest.m in Sources */, + A53D0AF823E9F7D7001E72AF /* PNSpaceObjectsAPICallBuilderTest.m in Sources */, + A53D0AF423E9F42B001E72AF /* PNMembersObjectsAPICallBuilderTest.m in Sources */, + A53D0B1923EA0AB4001E72AF /* PNSpaceObjectsTest.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A5B65D7E23B03FFD006B7BFB /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A5BB312423DCF4570015525A /* PNPresenceStateIntegrationTest.m in Sources */, + A5BDE10323C35939000E7895 /* PNPresenceIntegrationTest.m in Sources */, + A54E290923C286090024714B /* PNSpaceIntegrationTest.m in Sources */, + A5BB312E23DE33310015525A /* PNTimeIntegrationTest.m in Sources */, + A5BBD01E23BAB7F60089AD06 /* PNChannelGroupIntegrationTests.m in Sources */, + A5DB1E9E23B412E7009B1B23 /* PNPublishIntegrationTests.m in Sources */, + A54E290E23C2992A0024714B /* PNUserIntegrationTest.m in Sources */, + A54E28FF23C089730024714B /* PNMembershipIntegrationTest.m in Sources */, + A59ECFE623BB5B1900E84300 /* PNHistoryIntegrationTests.m in Sources */, + A5A905F523B571E8006D22BA /* NSString+PNTest.m in Sources */, + A59ECFEC23BD5E8F00E84300 /* PNMessageActionsIntegrationTest.m in Sources */, + A54E290423C16B3D0024714B /* PNMemberIntegrationTest.m in Sources */, + A5BB312923DE32980015525A /* PNSubscribeIntegrationTest.m in Sources */, + A5DB1E9723B2D212009B1B23 /* NSInvocation+PNTest.m in Sources */, + A529271423B181FE00FF46DD /* PNRecordableTestCase.m in Sources */, + A54185DF23B9565000FBA26A /* PNPushNotificationsIntegrationTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + A5B65D8B23B04148006B7BFB /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A5BB312523DCF4570015525A /* PNPresenceStateIntegrationTest.m in Sources */, + A5BDE10423C35939000E7895 /* PNPresenceIntegrationTest.m in Sources */, + A54E290A23C286090024714B /* PNSpaceIntegrationTest.m in Sources */, + A5BB312F23DE33310015525A /* PNTimeIntegrationTest.m in Sources */, + A5BBD01F23BAB7F60089AD06 /* PNChannelGroupIntegrationTests.m in Sources */, + A5DB1E9F23B412E7009B1B23 /* PNPublishIntegrationTests.m in Sources */, + A54E290F23C2992A0024714B /* PNUserIntegrationTest.m in Sources */, + A54E290023C089730024714B /* PNMembershipIntegrationTest.m in Sources */, + A59ECFE723BB5B1900E84300 /* PNHistoryIntegrationTests.m in Sources */, + A5A905F623B571E8006D22BA /* NSString+PNTest.m in Sources */, + A59ECFED23BD5E8F00E84300 /* PNMessageActionsIntegrationTest.m in Sources */, + A54E290523C16B3D0024714B /* PNMemberIntegrationTest.m in Sources */, + A5BB312A23DE32980015525A /* PNSubscribeIntegrationTest.m in Sources */, + A5DB1E9823B2D212009B1B23 /* NSInvocation+PNTest.m in Sources */, + A529271523B181FE00FF46DD /* PNRecordableTestCase.m in Sources */, + A54185E023B9565000FBA26A /* PNPushNotificationsIntegrationTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + A529268923B0D07500FF46DD /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { CODE_SIGN_IDENTITY = "-"; - COMBINE_HIDPI_IMAGES = YES; + CODE_SIGN_STYLE = Manual; + DEVELOPMENT_TEAM = ""; + INFOPLIST_FILE = "Support Files/Targets/ios-tests.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.pubnub.ios-code-coverage"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + A529268A23B0D07500FF46DD /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "-"; + CODE_SIGN_STYLE = Manual; + DEVELOPMENT_TEAM = ""; + INFOPLIST_FILE = "Support Files/Targets/ios-tests.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.pubnub.ios-code-coverage"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + A52926E523B0E6C500FF46DD /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = BCF45540E9166EED4F363FD0 /* Pods-MockableTests-[tvOS] Mocked Integration Tests.debug.xcconfig */; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = LJE3GJ53Z7; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = "Support Files/Targets/tvos-tests.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.pubnub.tvos-mocked-integration-tests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = appletvos; + SUPPORTED_PLATFORMS = "appletvsimulator appletvos"; + TARGETED_DEVICE_FAMILY = 3; + TVOS_DEPLOYMENT_TARGET = 10.0; + }; + name = Debug; + }; + A52926E623B0E6C500FF46DD /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 29CA30C01DA11D9A77017982 /* Pods-MockableTests-[tvOS] Mocked Integration Tests.release.xcconfig */; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CODE_SIGN_STYLE = Automatic; COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = dwarf; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_GENERATE_TEST_COVERAGE_FILES = NO; - GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", + DEVELOPMENT_TEAM = LJE3GJ53Z7; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = "Support Files/Targets/tvos-tests.plist"; + LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", ); - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = "OSX ObjC Tests/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; - MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = "com.pubnub.OSX-ObjC-Tests"; + PRODUCT_BUNDLE_IDENTIFIER = "com.pubnub.tvos-mocked-integration-tests"; PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; + SDKROOT = appletvos; + SUPPORTED_PLATFORMS = "appletvsimulator appletvos"; + TARGETED_DEVICE_FAMILY = 3; + TVOS_DEPLOYMENT_TARGET = 10.0; + }; + name = Release; + }; + A52926F123B0E6DD00FF46DD /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 6E739F838BE83C3CB6579E9D /* Pods-MockableTests-[tvOS] Unit Tests.debug.xcconfig */; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_TEAM = LJE3GJ53Z7; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = "Support Files/Targets/tvos-tests.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.pubnub.tvos-unit-tests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = appletvos; + SUPPORTED_PLATFORMS = "appletvsimulator appletvos"; + TARGETED_DEVICE_FAMILY = 3; TVOS_DEPLOYMENT_TARGET = 10.0; - WATCHOS_DEPLOYMENT_TARGET = 4.0; }; name = Debug; }; - 517A9ED91BE3181700FAA43A /* Release */ = { + A52926F223B0E6DD00FF46DD /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = DDF3E768291CCF18FCF93AE8 /* Pods-OSX ObjC Tests.release.xcconfig */; + baseConfigurationReference = 4E925E53782772E8DADCD599 /* Pods-MockableTests-[tvOS] Unit Tests.release.xcconfig */; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - CODE_SIGN_IDENTITY = "-"; + CODE_SIGN_STYLE = Automatic; + COPY_PHASE_STRIP = NO; + DEVELOPMENT_TEAM = LJE3GJ53Z7; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = "Support Files/Targets/tvos-tests.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.pubnub.tvos-unit-tests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = appletvos; + SUPPORTED_PLATFORMS = "appletvsimulator appletvos"; + TARGETED_DEVICE_FAMILY = 3; + TVOS_DEPLOYMENT_TARGET = 10.0; + }; + name = Release; + }; + A52926FD23B0E71700FF46DD /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 45686882FCB959B97FADC986 /* Pods-MockableTests-[macOS] Mocked Integration Tests.debug.xcconfig */; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEVELOPMENT_TEAM = LJE3GJ53Z7; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = "Support Files/Targets/macos-tests.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/../Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 10.11; + PRODUCT_BUNDLE_IDENTIFIER = "com.pubnub.macos-mocked-integration-tests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SUPPORTED_PLATFORMS = macosx; + }; + name = Debug; + }; + A52926FE23B0E71700FF46DD /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 1BA98F1E8EEB1CEB98EFD3C4 /* Pods-MockableTests-[macOS] Mocked Integration Tests.release.xcconfig */; + buildSettings = { + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_GENERATE_TEST_COVERAGE_FILES = NO; - GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = "OSX ObjC Tests/Info.plist"; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; + DEVELOPMENT_TEAM = LJE3GJ53Z7; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = "Support Files/Targets/macos-tests.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/../Frameworks", + ); MACOSX_DEPLOYMENT_TARGET = 10.11; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = "com.pubnub.OSX-ObjC-Tests"; + PRODUCT_BUNDLE_IDENTIFIER = "com.pubnub.macos-mocked-integration-tests"; PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = macosx; - TVOS_DEPLOYMENT_TARGET = 10.0; - WATCHOS_DEPLOYMENT_TARGET = 4.0; + SUPPORTED_PLATFORMS = macosx; }; name = Release; }; - 519C32771B20BF4D00FAC283 /* Debug */ = { + A529270923B0E72500FF46DD /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 728AD9FCB981CBE691F7A6D0 /* Pods-MockableTests-[macOS] Unit Tests.debug.xcconfig */; buildSettings = { - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - ENABLE_TESTABILITY = YES; - GCC_GENERATE_TEST_COVERAGE_FILES = NO; - GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + DEVELOPMENT_TEAM = LJE3GJ53Z7; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = "Support Files/Targets/macos-tests.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/../Frameworks", + ); MACOSX_DEPLOYMENT_TARGET = 10.11; - ONLY_ACTIVE_ARCH = YES; + PRODUCT_BUNDLE_IDENTIFIER = "com.pubnub.macos-unit-tests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SUPPORTED_PLATFORMS = macosx; }; name = Debug; }; - 519C32781B20BF4D00FAC283 /* Release */ = { + A529270A23B0E72500FF46DD /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 896A4CE66BD47FDE65276FAA /* Pods-MockableTests-[macOS] Unit Tests.release.xcconfig */; buildSettings = { - CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; - CLANG_WARN_STRICT_PROTOTYPES = YES; - CLANG_WARN_SUSPICIOUS_MOVE = YES; - CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - ENABLE_STRICT_OBJC_MSGSEND = YES; - GCC_GENERATE_TEST_COVERAGE_FILES = NO; - GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + COPY_PHASE_STRIP = NO; + DEVELOPMENT_TEAM = LJE3GJ53Z7; + GCC_C_LANGUAGE_STANDARD = gnu11; + INFOPLIST_FILE = "Support Files/Targets/macos-tests.plist"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + "@loader_path/../Frameworks", + ); MACOSX_DEPLOYMENT_TARGET = 10.11; - SWIFT_COMPILATION_MODE = wholemodule; + PRODUCT_BUNDLE_IDENTIFIER = "com.pubnub.macos-unit-tests"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SUPPORTED_PLATFORMS = macosx; }; name = Release; }; - 519C32841B20C11500FAC283 /* Debug */ = { + A5B65D7623B03DB4006B7BFB /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 1F80BF508DF8062476C90DE4 /* Pods-iOS ObjC Tests.debug.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_CODE_COVERAGE = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "compiler-default"; + CLANG_CXX_LIBRARY = "compiler-default"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "-"; + CODE_SIGN_STYLE = Manual; COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEBUG_INFORMATION_FORMAT = dwarf; + DEVELOPMENT_TEAM = ""; ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = "$(inherited)"; - GCC_C_LANGUAGE_STANDARD = gnu99; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = "compiler-default"; GCC_DYNAMIC_NO_PIC = NO; - GCC_GENERATE_TEST_COVERAGE_FILES = NO; - GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; GCC_NO_COMMON_BLOCKS = YES; GCC_OPTIMIZATION_LEVEL = 0; GCC_PREPROCESSOR_DEFINITIONS = ( "DEBUG=1", "$(inherited)", ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = "iOS Tests/Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; - PRODUCT_BUNDLE_IDENTIFIER = "com.pubnub.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; + SDKROOT = macosx; + SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator appletvos appletvsimulator watchos watchsimulator"; TVOS_DEPLOYMENT_TARGET = 10.0; WATCHOS_DEPLOYMENT_TARGET = 4.0; }; name = Debug; }; - 519C32851B20C11500FAC283 /* Release */ = { + A5B65D7723B03DB4006B7BFB /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = C06D9ED81A3272A2089CAA74 /* Pods-iOS ObjC Tests.release.xcconfig */; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_CODE_COVERAGE = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "compiler-default"; + CLANG_CXX_LIBRARY = "compiler-default"; CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; CLANG_WARN_BOOL_CONVERSION = YES; CLANG_WARN_COMMA = YES; CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; CLANG_WARN_EMPTY_BODY = YES; CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; CLANG_WARN_UNREACHABLE_CODE = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; + CODE_SIGN_IDENTITY = "-"; + CODE_SIGN_STYLE = Manual; + COPY_PHASE_STRIP = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = ""; ENABLE_NS_ASSERTIONS = NO; ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = "$(inherited)"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_GENERATE_TEST_COVERAGE_FILES = NO; - GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; + GCC_C_LANGUAGE_STANDARD = "compiler-default"; GCC_NO_COMMON_BLOCKS = YES; GCC_WARN_64_TO_32_BIT_CONVERSION = YES; GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; @@ -1957,315 +1650,168 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = "iOS Tests/Info.plist"; IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 10.11; MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = "com.pubnub.$(PRODUCT_NAME:rfc1034identifier)"; - PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = iphoneos; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator appletvos appletvsimulator watchos watchsimulator"; TVOS_DEPLOYMENT_TARGET = 10.0; VALIDATE_PRODUCT = YES; WATCHOS_DEPLOYMENT_TARGET = 4.0; }; name = Release; }; - 51D889E81B66E0F8009127D0 /* Debug */ = { + A5B65D7C23B03DB4006B7BFB /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 69FF522A83ED4BDED019829C /* Pods-MockableTests-[iOS] Unit Tests.debug.xcconfig */; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_CODE_COVERAGE = NO; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = "$(inherited)"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_GENERATE_TEST_COVERAGE_FILES = NO; - GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", + CODE_SIGN_IDENTITY = "-"; + CODE_SIGN_STYLE = Manual; + DEVELOPMENT_TEAM = ""; + INFOPLIST_FILE = "Support Files/Targets/ios-tests.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = "iOS Tests-Swift/Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - PRODUCT_BUNDLE_IDENTIFIER = "com.pubnub.$(PRODUCT_NAME:rfc1034identifier)"; + MACOSX_DEPLOYMENT_TARGET = 10.11; + PRODUCT_BUNDLE_IDENTIFIER = "com.pubnub.ios-unit-tests"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; - SWIFT_OBJC_BRIDGING_HEADER = "iOS Tests-Swift-Bridging-Header.h"; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; + TARGETED_DEVICE_FAMILY = "1,2"; TVOS_DEPLOYMENT_TARGET = 10.0; WATCHOS_DEPLOYMENT_TARGET = 4.0; }; name = Debug; }; - 51D889E91B66E0F8009127D0 /* Release */ = { + A5B65D7D23B03DB4006B7BFB /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 62A9E0261BD01762FE2C2D0C /* Pods-MockableTests-[iOS] Unit Tests.release.xcconfig */; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_CODE_COVERAGE = NO; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = "$(inherited)"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_GENERATE_TEST_COVERAGE_FILES = NO; - GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = "iOS Tests-Swift/Info.plist"; + CODE_SIGN_IDENTITY = "-"; + CODE_SIGN_STYLE = Manual; + DEVELOPMENT_TEAM = ""; + INFOPLIST_FILE = "Support Files/Targets/ios-tests.plist"; IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = "com.pubnub.$(PRODUCT_NAME:rfc1034identifier)"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 10.11; + PRODUCT_BUNDLE_IDENTIFIER = "com.pubnub.ios-unit-tests"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; - SWIFT_OBJC_BRIDGING_HEADER = "iOS Tests-Swift-Bridging-Header.h"; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; + TARGETED_DEVICE_FAMILY = "1,2"; TVOS_DEPLOYMENT_TARGET = 10.0; - VALIDATE_PRODUCT = YES; WATCHOS_DEPLOYMENT_TARGET = 4.0; }; name = Release; }; - 797BDD001C1F5091006EF006 /* Debug */ = { + A5B65D8823B03FFD006B7BFB /* Debug */ = { isa = XCBuildConfiguration; + baseConfigurationReference = 25692505FB8B6A6B76FF7C26 /* Pods-MockableTests-[iOS] Mocked Integration Tests.debug.xcconfig */; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_CODE_COVERAGE = NO; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "-"; + CODE_SIGN_STYLE = Manual; COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = "$(inherited)"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_GENERATE_TEST_COVERAGE_FILES = NO; - GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", + DEVELOPMENT_TEAM = ""; + INFOPLIST_FILE = "Support Files/Targets/ios-tests.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = "iOS Tests/iOS ObjC Tests-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_BUNDLE_IDENTIFIER = "com.pubnub.$(PRODUCT_NAME:rfc1034identifier)"; + MACOSX_DEPLOYMENT_TARGET = 10.11; + PRODUCT_BUNDLE_IDENTIFIER = "com.pubnub.ios-mocked-integration-tests"; PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = watchos; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; + TARGETED_DEVICE_FAMILY = "1,2"; TVOS_DEPLOYMENT_TARGET = 10.0; WATCHOS_DEPLOYMENT_TARGET = 4.0; }; name = Debug; }; - 797BDD011C1F5091006EF006 /* Release */ = { + A5B65D8923B03FFD006B7BFB /* Release */ = { isa = XCBuildConfiguration; + baseConfigurationReference = AB136D4CA397621245829B4A /* Pods-MockableTests-[iOS] Mocked Integration Tests.release.xcconfig */; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_CODE_COVERAGE = NO; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "-"; + CODE_SIGN_STYLE = Manual; COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = "$(inherited)"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_GENERATE_TEST_COVERAGE_FILES = NO; - GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = "iOS Tests/iOS ObjC Tests-Info.plist"; + DEVELOPMENT_TEAM = ""; + INFOPLIST_FILE = "Support Files/Targets/ios-tests.plist"; IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = "com.pubnub.$(PRODUCT_NAME:rfc1034identifier)"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 10.11; + PRODUCT_BUNDLE_IDENTIFIER = "com.pubnub.ios-mocked-integration-tests"; PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = watchos; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; + TARGETED_DEVICE_FAMILY = "1,2"; TVOS_DEPLOYMENT_TARGET = 10.0; - VALIDATE_PRODUCT = YES; WATCHOS_DEPLOYMENT_TARGET = 4.0; }; name = Release; }; - 797BDD3D1C1F5176006EF006 /* Debug */ = { + A5B65D9523B04148006B7BFB /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = DEF30C57C474ED0F4ABE8DA0 /* Pods-tvOS ObjC Tests.debug.xcconfig */; + baseConfigurationReference = 86365B3A571F666A5ED76D80 /* Pods-[iOS] Integration Tests.debug.xcconfig */; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_CODE_COVERAGE = NO; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = "$(inherited)"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_DYNAMIC_NO_PIC = NO; - GCC_GENERATE_TEST_COVERAGE_FILES = NO; - GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - "DEBUG=1", + CLANG_ENABLE_CODE_COVERAGE = YES; + CODE_SIGN_IDENTITY = "-"; + CODE_SIGN_STYLE = Manual; + DEVELOPMENT_TEAM = ""; + INFOPLIST_FILE = "Support Files/Targets/ios-tests.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 9.0; + LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", ); - GCC_SYMBOLS_PRIVATE_EXTERN = NO; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = "iOS Tests/watchOS ObjC Tests-Info.plist"; - IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; - PRODUCT_BUNDLE_IDENTIFIER = "com.pubnub.$(PRODUCT_NAME:rfc1034identifier)"; + MACOSX_DEPLOYMENT_TARGET = 10.11; + PRODUCT_BUNDLE_IDENTIFIER = "com.pubnub.ios-integration-tests"; PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = appletvos; - SWIFT_VERSION = 3.0; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; + TARGETED_DEVICE_FAMILY = "1,2"; TVOS_DEPLOYMENT_TARGET = 10.0; WATCHOS_DEPLOYMENT_TARGET = 4.0; }; name = Debug; }; - 797BDD3E1C1F5176006EF006 /* Release */ = { + A5B65D9623B04148006B7BFB /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = 856325838D88FF13AF9E0F81 /* Pods-tvOS ObjC Tests.release.xcconfig */; + baseConfigurationReference = FC07360087EEF919F88D5CE5 /* Pods-[iOS] Integration Tests.release.xcconfig */; buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_CODE_COVERAGE = NO; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_UNREACHABLE_CODE = YES; - CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; - COPY_PHASE_STRIP = NO; - DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; - ENABLE_NS_ASSERTIONS = NO; - ENABLE_STRICT_OBJC_MSGSEND = YES; - FRAMEWORK_SEARCH_PATHS = "$(inherited)"; - GCC_C_LANGUAGE_STANDARD = gnu99; - GCC_GENERATE_TEST_COVERAGE_FILES = NO; - GCC_INSTRUMENT_PROGRAM_FLOW_ARCS = NO; - GCC_NO_COMMON_BLOCKS = YES; - GCC_WARN_64_TO_32_BIT_CONVERSION = YES; - GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; - GCC_WARN_UNDECLARED_SELECTOR = YES; - GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; - GCC_WARN_UNUSED_FUNCTION = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - INFOPLIST_FILE = "iOS Tests/watchOS ObjC Tests-Info.plist"; + CLANG_ENABLE_CODE_COVERAGE = YES; + CODE_SIGN_IDENTITY = "-"; + CODE_SIGN_STYLE = Manual; + DEVELOPMENT_TEAM = ""; + INFOPLIST_FILE = "Support Files/Targets/ios-tests.plist"; IPHONEOS_DEPLOYMENT_TARGET = 9.0; - LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; - MTL_ENABLE_DEBUG_INFO = NO; - PRODUCT_BUNDLE_IDENTIFIER = "com.pubnub.$(PRODUCT_NAME:rfc1034identifier)"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + MACOSX_DEPLOYMENT_TARGET = 10.11; + PRODUCT_BUNDLE_IDENTIFIER = "com.pubnub.ios-integration-tests"; PRODUCT_NAME = "$(TARGET_NAME)"; - SDKROOT = appletvos; - SWIFT_VERSION = 3.0; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; + TARGETED_DEVICE_FAMILY = "1,2"; TVOS_DEPLOYMENT_TARGET = 10.0; - VALIDATE_PRODUCT = YES; WATCHOS_DEPLOYMENT_TARGET = 4.0; }; name = Release; @@ -2273,61 +1819,88 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ - 517A9EDA1BE3181700FAA43A /* Build configuration list for PBXNativeTarget "OSX ObjC Tests" */ = { + A529268823B0D07500FF46DD /* Build configuration list for PBXNativeTarget "[iOS] Code Coverage" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A529268923B0D07500FF46DD /* Debug */, + A529268A23B0D07500FF46DD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + A52926E423B0E6C500FF46DD /* Build configuration list for PBXNativeTarget "[tvOS] Mocked Integration Tests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A52926E523B0E6C500FF46DD /* Debug */, + A52926E623B0E6C500FF46DD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + A52926F023B0E6DD00FF46DD /* Build configuration list for PBXNativeTarget "[tvOS] Unit Tests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A52926F123B0E6DD00FF46DD /* Debug */, + A52926F223B0E6DD00FF46DD /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + A52926FC23B0E71700FF46DD /* Build configuration list for PBXNativeTarget "[macOS] Mocked Integration Tests" */ = { isa = XCConfigurationList; buildConfigurations = ( - 517A9ED81BE3181700FAA43A /* Debug */, - 517A9ED91BE3181700FAA43A /* Release */, + A52926FD23B0E71700FF46DD /* Debug */, + A52926FE23B0E71700FF46DD /* Release */, ); defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; + defaultConfigurationName = Release; }; - 519C32761B20BF4D00FAC283 /* Build configuration list for PBXProject "PubNub Tests" */ = { + A529270823B0E72500FF46DD /* Build configuration list for PBXNativeTarget "[macOS] Unit Tests" */ = { isa = XCConfigurationList; buildConfigurations = ( - 519C32771B20BF4D00FAC283 /* Debug */, - 519C32781B20BF4D00FAC283 /* Release */, + A529270923B0E72500FF46DD /* Debug */, + A529270A23B0E72500FF46DD /* Release */, ); defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; + defaultConfigurationName = Release; }; - 519C32861B20C11500FAC283 /* Build configuration list for PBXNativeTarget "iOS ObjC Tests" */ = { + A5B65D4F23B03DB1006B7BFB /* Build configuration list for PBXProject "PubNub Tests" */ = { isa = XCConfigurationList; buildConfigurations = ( - 519C32841B20C11500FAC283 /* Debug */, - 519C32851B20C11500FAC283 /* Release */, + A5B65D7623B03DB4006B7BFB /* Debug */, + A5B65D7723B03DB4006B7BFB /* Release */, ); defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; + defaultConfigurationName = Release; }; - 51D889E71B66E0F8009127D0 /* Build configuration list for PBXNativeTarget "iOS Swift Tests" */ = { + A5B65D7B23B03DB4006B7BFB /* Build configuration list for PBXNativeTarget "[iOS] Unit Tests" */ = { isa = XCConfigurationList; buildConfigurations = ( - 51D889E81B66E0F8009127D0 /* Debug */, - 51D889E91B66E0F8009127D0 /* Release */, + A5B65D7C23B03DB4006B7BFB /* Debug */, + A5B65D7D23B03DB4006B7BFB /* Release */, ); defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; + defaultConfigurationName = Release; }; - 797BDCFF1C1F5091006EF006 /* Build configuration list for PBXNativeTarget "watchOS ObjC Tests" */ = { + A5B65D8723B03FFD006B7BFB /* Build configuration list for PBXNativeTarget "[iOS] Mocked Integration Tests" */ = { isa = XCConfigurationList; buildConfigurations = ( - 797BDD001C1F5091006EF006 /* Debug */, - 797BDD011C1F5091006EF006 /* Release */, + A5B65D8823B03FFD006B7BFB /* Debug */, + A5B65D8923B03FFD006B7BFB /* Release */, ); defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; + defaultConfigurationName = Release; }; - 797BDD3C1C1F5176006EF006 /* Build configuration list for PBXNativeTarget "tvOS ObjC Tests" */ = { + A5B65D9423B04148006B7BFB /* Build configuration list for PBXNativeTarget "[iOS] Integration Tests" */ = { isa = XCConfigurationList; buildConfigurations = ( - 797BDD3D1C1F5176006EF006 /* Debug */, - 797BDD3E1C1F5176006EF006 /* Release */, + A5B65D9523B04148006B7BFB /* Debug */, + A5B65D9623B04148006B7BFB /* Release */, ); defaultConfigurationIsVisible = 0; - defaultConfigurationName = Debug; + defaultConfigurationName = Release; }; /* End XCConfigurationList section */ }; - rootObject = 519C32731B20BF4D00FAC283 /* Project object */; + rootObject = A5B65D4C23B03DB1006B7BFB /* Project object */; } diff --git a/Tests/PubNub Tests.xcodeproj/xcshareddata/xcschemes/OSX Tests (ObjC).xcscheme b/Tests/PubNub Tests.xcodeproj/xcshareddata/xcschemes/OSX Tests (ObjC).xcscheme deleted file mode 100644 index 51c6a5950..000000000 --- a/Tests/PubNub Tests.xcodeproj/xcshareddata/xcschemes/OSX Tests (ObjC).xcscheme +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Tests/PubNub Tests.xcodeproj/xcshareddata/xcschemes/[iOS] Code Coverage.xcscheme b/Tests/PubNub Tests.xcodeproj/xcshareddata/xcschemes/[iOS] Code Coverage.xcscheme new file mode 100644 index 000000000..bdd67e239 --- /dev/null +++ b/Tests/PubNub Tests.xcodeproj/xcshareddata/xcschemes/[iOS] Code Coverage.xcscheme @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Tests/PubNub Tests.xcodeproj/xcshareddata/xcschemes/watchOS Tests (ObjC).xcscheme b/Tests/PubNub Tests.xcodeproj/xcshareddata/xcschemes/[iOS] Integration Tests.xcscheme similarity index 64% rename from Tests/PubNub Tests.xcodeproj/xcshareddata/xcschemes/watchOS Tests (ObjC).xcscheme rename to Tests/PubNub Tests.xcodeproj/xcshareddata/xcschemes/[iOS] Integration Tests.xcscheme index b13ec094c..46904c901 100644 --- a/Tests/PubNub Tests.xcodeproj/xcshareddata/xcschemes/watchOS Tests (ObjC).xcscheme +++ b/Tests/PubNub Tests.xcodeproj/xcshareddata/xcschemes/[iOS] Integration Tests.xcscheme @@ -1,6 +1,6 @@ + buildForAnalyzing = "NO"> @@ -32,18 +32,16 @@ skipped = "NO"> - - - - - - - - + buildConfiguration = "Debug"> + buildForAnalyzing = "NO"> + shouldUseLaunchSchemeArgsEnv = "YES" + systemAttachmentLifetime = "keepNever" + codeCoverageEnabled = "YES"> - - + Identifier = "PNRecordableTestCase"> - - - - - - - - - - - - + debugDocumentVersioning = "YES"> + + + + + buildConfiguration = "Debug"> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Tests/PubNub Tests.xcodeproj/xcshareddata/xcschemes/[macOS] Mocked Integration Tests.xcscheme b/Tests/PubNub Tests.xcodeproj/xcshareddata/xcschemes/[macOS] Mocked Integration Tests.xcscheme new file mode 100644 index 000000000..09313a931 --- /dev/null +++ b/Tests/PubNub Tests.xcodeproj/xcshareddata/xcschemes/[macOS] Mocked Integration Tests.xcscheme @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Tests/PubNub Tests.xcodeproj/xcshareddata/xcschemes/[macOS] Unit Tests.xcscheme b/Tests/PubNub Tests.xcodeproj/xcshareddata/xcschemes/[macOS] Unit Tests.xcscheme new file mode 100644 index 000000000..9439a038c --- /dev/null +++ b/Tests/PubNub Tests.xcodeproj/xcshareddata/xcschemes/[macOS] Unit Tests.xcscheme @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/Tests/PubNub Tests.xcodeproj/xcshareddata/xcschemes/[tvOS] Mocked Integration Tests.xcscheme b/Tests/PubNub Tests.xcodeproj/xcshareddata/xcschemes/[tvOS] Mocked Integration Tests.xcscheme new file mode 100644 index 000000000..6f89587ea --- /dev/null +++ b/Tests/PubNub Tests.xcodeproj/xcshareddata/xcschemes/[tvOS] Mocked Integration Tests.xcscheme @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/Tests/PubNub Tests.xcodeproj/xcshareddata/xcschemes/[tvOS] Unit Tests.xcscheme b/Tests/PubNub Tests.xcodeproj/xcshareddata/xcschemes/[tvOS] Unit Tests.xcscheme new file mode 100644 index 000000000..1b31a6cbb --- /dev/null +++ b/Tests/PubNub Tests.xcodeproj/xcshareddata/xcschemes/[tvOS] Unit Tests.xcscheme @@ -0,0 +1,52 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/Tests/PubNub Tests.xcodeproj/xcshareddata/xcschemes/iOS Tests (ObjC).xcscheme b/Tests/PubNub Tests.xcodeproj/xcshareddata/xcschemes/iOS Tests (ObjC).xcscheme deleted file mode 100644 index c54b629b5..000000000 --- a/Tests/PubNub Tests.xcodeproj/xcshareddata/xcschemes/iOS Tests (ObjC).xcscheme +++ /dev/null @@ -1,175 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Tests/PubNub Tests.xcodeproj/xcshareddata/xcschemes/tvOS Tests (ObjC).xcscheme b/Tests/PubNub Tests.xcodeproj/xcshareddata/xcschemes/tvOS Tests (ObjC).xcscheme deleted file mode 100644 index ed6b1ce64..000000000 --- a/Tests/PubNub Tests.xcodeproj/xcshareddata/xcschemes/tvOS Tests (ObjC).xcscheme +++ /dev/null @@ -1,149 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/Tests/PubNub Tests.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Tests/PubNub Tests.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist deleted file mode 100644 index 18d981003..000000000 --- a/Tests/PubNub Tests.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +++ /dev/null @@ -1,8 +0,0 @@ - - - - - IDEDidComputeMac32BitWarning - - - diff --git a/Tests/Resources/.create-keysset.js b/Tests/Resources/.create-keysset.js deleted file mode 100644 index 326f91473..000000000 --- a/Tests/Resources/.create-keysset.js +++ /dev/null @@ -1,65 +0,0 @@ -const glob = require("glob"); -const path = require('path'); -const fs = require('fs'); - - -const keys = { - TESTS_PAM_SUBSCRIBE_KEY: 'subscribe (PAM)', - TESTS_PAM_PUBLISH_KEY: 'publish (PAM)', - TESTS_SUBSCRIBE_KEY: 'subscribe', - TESTS_PUBLISH_KEY: 'publish', -}; -let allKeysSet = true; - -Object.keys(keys).forEach(function (env) { - if (allKeysSet && !process.env[env]) { - console.error(`Environment variable for ${keys[env]} key is missing!`); - allKeysSet = false; - } -}); - -if (!allKeysSet) { - console.error('Abort! Environment variables not set.'); - process.exit(1); -} - -const replacementMap = { - 'psub-c-00000000-0000-0000-0000-000000000000': process.env.TESTS_PAM_SUBSCRIBE_KEY, - 'ppub-c-00000000-0000-0000-0000-000000000000': process.env.TESTS_PAM_PUBLISH_KEY, - 'rsub-c-00000000-0000-0000-0000-000000000000': process.env.TESTS_SUBSCRIBE_KEY, - 'rpub-c-00000000-0000-0000-0000-000000000000': process.env.TESTS_PUBLISH_KEY, -}; - -/** @type String[] */ -const files = glob.sync("../../Tests/iOS Tests/Fixtures/**/*.plist"); -files.forEach(function (file) { - let content = fs.readFileSync(file, 'utf-8').toString(); - - Object.keys(replacementMap).forEach(function (key) { - content = content.split(key).join(replacementMap[key]); - }); - - fs.writeFileSync(file, content); -}); - -const content = ` - - - - regular - - subscribe - ${process.env.TESTS_SUBSCRIBE_KEY} - publish - ${process.env.TESTS_PUBLISH_KEY} - - pam - - subscribe - ${process.env.TESTS_PAM_SUBSCRIBE_KEY} - publish - ${process.env.TESTS_PAM_PUBLISH_KEY} - - -`; -fs.writeFileSync(path.join(process.cwd(), 'keysset.plist'), content); diff --git a/Tests/Resources/keysset.plist b/Tests/Resources/keysset.plist deleted file mode 100644 index c6eef3840..000000000 --- a/Tests/Resources/keysset.plist +++ /dev/null @@ -1,20 +0,0 @@ - - - - - regular - - subscribe - rsub-c-00000000-0000-0000-0000-000000000000 - publish - rpub-c-00000000-0000-0000-0000-000000000000 - - pam - - subscribe - psub-c-00000000-0000-0000-0000-000000000000 - publish - ppub-c-00000000-0000-0000-0000-000000000000 - - - diff --git a/Tests/Support Files/Fixtures/PNChannelGroupIntegrationTests.bundle/ItShouldAddChannelsToChannelGroupAndReceiveStatusWithExpectedOperationAndCategory.json b/Tests/Support Files/Fixtures/PNChannelGroupIntegrationTests.bundle/ItShouldAddChannelsToChannelGroupAndReceiveStatusWithExpectedOperationAndCategory.json new file mode 100644 index 000000000..aabc74510 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNChannelGroupIntegrationTests.bundle/ItShouldAddChannelsToChannelGroupAndReceiveStatusWithExpectedOperationAndCategory.json @@ -0,0 +1,164 @@ +[ + { + "id" : "B0E22687-5412-4A0E-A48A-EDBD3F98943A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "B0E22687-5412-4A0E-A48A-EDBD3F98943A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:06:19 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B0E22687-5412-4A0E-A48A-EDBD3F98943A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "B0E22687-5412-4A0E-A48A-EDBD3F98943A", + "type" : 4 + }, + { + "id" : "9BD3326E-2ADA-4631-9E00-01BDB951FA4B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9BD3326E-2ADA-4631-9E00-01BDB951FA4B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:06:19 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "196", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9BD3326E-2ADA-4631-9E00-01BDB951FA4B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJwYXlsb2FkIjogeyJjaGFubmVscyI6IFsidGVzdC1jaGFubmVsMSIsICJ0ZXN0LWNoYW5uZWwyIl0sICJncm91cCI6ICJ0ZXN0LWNoYW5uZWwtZ3JvdXAifSwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "9BD3326E-2ADA-4631-9E00-01BDB951FA4B", + "type" : 4 + }, + { + "id" : "49A3F556-B9CF-4BDA-8AD8-5CFA394880DE", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "49A3F556-B9CF-4BDA-8AD8-5CFA394880DE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:06:20 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "49A3F556-B9CF-4BDA-8AD8-5CFA394880DE", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "49A3F556-B9CF-4BDA-8AD8-5CFA394880DE", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNChannelGroupIntegrationTests.bundle/ItShouldAddChannelsToChannelGroupUsingBuilderPatternInterface.json b/Tests/Support Files/Fixtures/PNChannelGroupIntegrationTests.bundle/ItShouldAddChannelsToChannelGroupUsingBuilderPatternInterface.json new file mode 100644 index 000000000..bcfd8d543 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNChannelGroupIntegrationTests.bundle/ItShouldAddChannelsToChannelGroupUsingBuilderPatternInterface.json @@ -0,0 +1,164 @@ +[ + { + "id" : "B17AA46A-D1BA-4147-A89F-96BF60FD343D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "B17AA46A-D1BA-4147-A89F-96BF60FD343D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:06:21 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B17AA46A-D1BA-4147-A89F-96BF60FD343D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "B17AA46A-D1BA-4147-A89F-96BF60FD343D", + "type" : 4 + }, + { + "id" : "AF8792F1-6509-419A-B329-5F03B8073804", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "AF8792F1-6509-419A-B329-5F03B8073804", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:06:21 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "196", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "AF8792F1-6509-419A-B329-5F03B8073804", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJwYXlsb2FkIjogeyJjaGFubmVscyI6IFsidGVzdC1jaGFubmVsMiIsICJ0ZXN0LWNoYW5uZWwxIl0sICJncm91cCI6ICJ0ZXN0LWNoYW5uZWwtZ3JvdXAifSwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "AF8792F1-6509-419A-B329-5F03B8073804", + "type" : 4 + }, + { + "id" : "EC1D204D-A3DF-47FB-8841-0227893B5F3F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "EC1D204D-A3DF-47FB-8841-0227893B5F3F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:06:22 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "EC1D204D-A3DF-47FB-8841-0227893B5F3F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "EC1D204D-A3DF-47FB-8841-0227893B5F3F", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNChannelGroupIntegrationTests.bundle/ItShouldAddChannelsToExistingChannelGroup.json b/Tests/Support Files/Fixtures/PNChannelGroupIntegrationTests.bundle/ItShouldAddChannelsToExistingChannelGroup.json new file mode 100644 index 000000000..ca49d0e08 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNChannelGroupIntegrationTests.bundle/ItShouldAddChannelsToExistingChannelGroup.json @@ -0,0 +1,218 @@ +[ + { + "id" : "C615C03C-3217-4D1A-A829-A49C07509B74", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "C615C03C-3217-4D1A-A829-A49C07509B74", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:06:23 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C615C03C-3217-4D1A-A829-A49C07509B74", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "C615C03C-3217-4D1A-A829-A49C07509B74", + "type" : 4 + }, + { + "id" : "48300905-1E2D-4A3E-B393-1F20DFEA8152", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel3,test-channel4" + }, + "type" : 0 + }, + { + "id" : "48300905-1E2D-4A3E-B393-1F20DFEA8152", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel3,test-channel4", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:06:24 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "48300905-1E2D-4A3E-B393-1F20DFEA8152", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "48300905-1E2D-4A3E-B393-1F20DFEA8152", + "type" : 4 + }, + { + "id" : "258D2234-FA83-4361-9DB3-FA948D32E5F2", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "258D2234-FA83-4361-9DB3-FA948D32E5F2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:06:24 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "258", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "258D2234-FA83-4361-9DB3-FA948D32E5F2", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJwYXlsb2FkIjogeyJjaGFubmVscyI6IFsidGVzdC1jaGFubmVsMiIsICJ0ZXN0LWNoYW5uZWwzIiwgInRlc3QtY2hhbm5lbDQiLCAidGVzdC1jaGFubmVsMSJdLCAiZ3JvdXAiOiAidGVzdC1jaGFubmVsLWdyb3VwIn0sICJzZXJ2aWNlIjogImNoYW5uZWwtcmVnaXN0cnkiLCAiZXJyb3IiOiBmYWxzZX0=" + }, + "type" : 2 + }, + { + "id" : "258D2234-FA83-4361-9DB3-FA948D32E5F2", + "type" : 4 + }, + { + "id" : "595A2C0F-6570-4EA9-B120-21714DF2C9C3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "595A2C0F-6570-4EA9-B120-21714DF2C9C3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:06:25 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "595A2C0F-6570-4EA9-B120-21714DF2C9C3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "595A2C0F-6570-4EA9-B120-21714DF2C9C3", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNChannelGroupIntegrationTests.bundle/ItShouldAuditChannelGroupChannelsAndFetchEmptyGlobalWhenChannelGroupNotSpecified.json b/Tests/Support Files/Fixtures/PNChannelGroupIntegrationTests.bundle/ItShouldAuditChannelGroupChannelsAndFetchEmptyGlobalWhenChannelGroupNotSpecified.json new file mode 100644 index 000000000..9067fbbc1 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNChannelGroupIntegrationTests.bundle/ItShouldAuditChannelGroupChannelsAndFetchEmptyGlobalWhenChannelGroupNotSpecified.json @@ -0,0 +1,164 @@ +[ + { + "id" : "4370F645-7409-4F6C-A7B2-89B5C24A3D29", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "4370F645-7409-4F6C-A7B2-89B5C24A3D29", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:06:26 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "4370F645-7409-4F6C-A7B2-89B5C24A3D29", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "4370F645-7409-4F6C-A7B2-89B5C24A3D29", + "type" : 4 + }, + { + "id" : "AD704D43-04FB-464F-A713-FA911B46A2EE", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "AD704D43-04FB-464F-A713-FA911B46A2EE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:06:27 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "106", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "AD704D43-04FB-464F-A713-FA911B46A2EE", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJwYXlsb2FkIjogeyJuYW1lc3BhY2UiOiAiIiwgImdyb3VwcyI6IFtdfSwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "AD704D43-04FB-464F-A713-FA911B46A2EE", + "type" : 4 + }, + { + "id" : "235D75E1-EC0D-481E-8753-F4D0A9C8930F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "235D75E1-EC0D-481E-8753-F4D0A9C8930F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:06:28 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "235D75E1-EC0D-481E-8753-F4D0A9C8930F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "235D75E1-EC0D-481E-8753-F4D0A9C8930F", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNChannelGroupIntegrationTests.bundle/ItShouldAuditChannelGroupChannelsAndReceiveResultWithExpectedOperationAndCategory.json b/Tests/Support Files/Fixtures/PNChannelGroupIntegrationTests.bundle/ItShouldAuditChannelGroupChannelsAndReceiveResultWithExpectedOperationAndCategory.json new file mode 100644 index 000000000..295997598 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNChannelGroupIntegrationTests.bundle/ItShouldAuditChannelGroupChannelsAndReceiveResultWithExpectedOperationAndCategory.json @@ -0,0 +1,218 @@ +[ + { + "id" : "17A43D9C-99A6-4A41-A8DA-9E97DF1D49CA", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "17A43D9C-99A6-4A41-A8DA-9E97DF1D49CA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:06:29 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "17A43D9C-99A6-4A41-A8DA-9E97DF1D49CA", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "17A43D9C-99A6-4A41-A8DA-9E97DF1D49CA", + "type" : 4 + }, + { + "id" : "816E1B2D-556B-4254-8B1C-1E6823A2ED85", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "816E1B2D-556B-4254-8B1C-1E6823A2ED85", + "data" : { + "status" : 404, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:06:30 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "196", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "816E1B2D-556B-4254-8B1C-1E6823A2ED85", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJwYXlsb2FkIjogeyJjaGFubmVscyI6IFsidGVzdC1jaGFubmVsMSIsICJ0ZXN0LWNoYW5uZWwyIl0sICJncm91cCI6ICJ0ZXN0LWNoYW5uZWwtZ3JvdXAifSwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "816E1B2D-556B-4254-8B1C-1E6823A2ED85", + "type" : 4 + }, + { + "id" : "816E1B2D-556B-4254-8B1C-1E6823A2ED86", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "816E1B2D-556B-4254-8B1C-1E6823A2ED86", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:06:30 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "196", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "816E1B2D-556B-4254-8B1C-1E6823A2ED86", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJwYXlsb2FkIjogeyJjaGFubmVscyI6IFsidGVzdC1jaGFubmVsMSIsICJ0ZXN0LWNoYW5uZWwyIl0sICJncm91cCI6ICJ0ZXN0LWNoYW5uZWwtZ3JvdXAifSwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "816E1B2D-556B-4254-8B1C-1E6823A2ED86", + "type" : 4 + }, + { + "id" : "7933CBC2-3468-41F0-972D-A39B3D0B31C3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "7933CBC2-3468-41F0-972D-A39B3D0B31C3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:06:46 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "7933CBC2-3468-41F0-972D-A39B3D0B31C3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "7933CBC2-3468-41F0-972D-A39B3D0B31C3", + "type" : 4 + } +] diff --git a/Tests/Support Files/Fixtures/PNChannelGroupIntegrationTests.bundle/ItShouldAuditChannelGroupChannelsUsingBuilderPatternInterface.json b/Tests/Support Files/Fixtures/PNChannelGroupIntegrationTests.bundle/ItShouldAuditChannelGroupChannelsUsingBuilderPatternInterface.json new file mode 100644 index 000000000..295810623 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNChannelGroupIntegrationTests.bundle/ItShouldAuditChannelGroupChannelsUsingBuilderPatternInterface.json @@ -0,0 +1,164 @@ +[ + { + "id" : "E1A12656-E0E2-4364-9787-EF4C2E926AD1", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "E1A12656-E0E2-4364-9787-EF4C2E926AD1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:06:47 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E1A12656-E0E2-4364-9787-EF4C2E926AD1", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "E1A12656-E0E2-4364-9787-EF4C2E926AD1", + "type" : 4 + }, + { + "id" : "17DA1487-4E2E-414D-9A45-7A419C9777FD", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "17DA1487-4E2E-414D-9A45-7A419C9777FD", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:06:48 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "196", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "17DA1487-4E2E-414D-9A45-7A419C9777FD", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJwYXlsb2FkIjogeyJjaGFubmVscyI6IFsidGVzdC1jaGFubmVsMSIsICJ0ZXN0LWNoYW5uZWwyIl0sICJncm91cCI6ICJ0ZXN0LWNoYW5uZWwtZ3JvdXAifSwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "17DA1487-4E2E-414D-9A45-7A419C9777FD", + "type" : 4 + }, + { + "id" : "AAE99BD0-DD21-4B39-894E-4A7C7F298733", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "AAE99BD0-DD21-4B39-894E-4A7C7F298733", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:06:49 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "AAE99BD0-DD21-4B39-894E-4A7C7F298733", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "AAE99BD0-DD21-4B39-894E-4A7C7F298733", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNChannelGroupIntegrationTests.bundle/ItShouldNotRemoveAllChannelsFromChannelGroupAndReceiveBadRequestStatusWhenChannelGroupIsNil.json b/Tests/Support Files/Fixtures/PNChannelGroupIntegrationTests.bundle/ItShouldNotRemoveAllChannelsFromChannelGroupAndReceiveBadRequestStatusWhenChannelGroupIsNil.json new file mode 100644 index 000000000..3b05471f8 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNChannelGroupIntegrationTests.bundle/ItShouldNotRemoveAllChannelsFromChannelGroupAndReceiveBadRequestStatusWhenChannelGroupIsNil.json @@ -0,0 +1,164 @@ +[ + { + "id" : "BB60F6C1-E254-42CE-AC0D-CE0DE9B82586", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "BB60F6C1-E254-42CE-AC0D-CE0DE9B82586", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:06:50 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "BB60F6C1-E254-42CE-AC0D-CE0DE9B82586", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "BB60F6C1-E254-42CE-AC0D-CE0DE9B82586", + "type" : 4 + }, + { + "id" : "F6AC8D46-BADC-42B4-9090-C2F21F5BA723", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F6AC8D46-BADC-42B4-9090-C2F21F5BA723", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:06:51 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "196", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F6AC8D46-BADC-42B4-9090-C2F21F5BA723", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJwYXlsb2FkIjogeyJjaGFubmVscyI6IFsidGVzdC1jaGFubmVsMiIsICJ0ZXN0LWNoYW5uZWwxIl0sICJncm91cCI6ICJ0ZXN0LWNoYW5uZWwtZ3JvdXAifSwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "F6AC8D46-BADC-42B4-9090-C2F21F5BA723", + "type" : 4 + }, + { + "id" : "A5383672-4267-49A2-832B-36944C2729B3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A5383672-4267-49A2-832B-36944C2729B3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:06:52 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "A5383672-4267-49A2-832B-36944C2729B3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "A5383672-4267-49A2-832B-36944C2729B3", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNChannelGroupIntegrationTests.bundle/ItShouldNotRemoveChannelsFromGroupAndReceiveBadRequestStatusWhenChannelGroupIsNil.json b/Tests/Support Files/Fixtures/PNChannelGroupIntegrationTests.bundle/ItShouldNotRemoveChannelsFromGroupAndReceiveBadRequestStatusWhenChannelGroupIsNil.json new file mode 100644 index 000000000..420aed1bb --- /dev/null +++ b/Tests/Support Files/Fixtures/PNChannelGroupIntegrationTests.bundle/ItShouldNotRemoveChannelsFromGroupAndReceiveBadRequestStatusWhenChannelGroupIsNil.json @@ -0,0 +1,164 @@ +[ + { + "id" : "77D1EB8E-34D2-428E-824E-06304AF5E3E6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "77D1EB8E-34D2-428E-824E-06304AF5E3E6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:06:53 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "77D1EB8E-34D2-428E-824E-06304AF5E3E6", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "77D1EB8E-34D2-428E-824E-06304AF5E3E6", + "type" : 4 + }, + { + "id" : "A790669D-B94C-4E49-A85D-AB4EE87FE9C1", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A790669D-B94C-4E49-A85D-AB4EE87FE9C1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:06:54 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "196", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "A790669D-B94C-4E49-A85D-AB4EE87FE9C1", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJwYXlsb2FkIjogeyJjaGFubmVscyI6IFsidGVzdC1jaGFubmVsMiIsICJ0ZXN0LWNoYW5uZWwxIl0sICJncm91cCI6ICJ0ZXN0LWNoYW5uZWwtZ3JvdXAifSwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "A790669D-B94C-4E49-A85D-AB4EE87FE9C1", + "type" : 4 + }, + { + "id" : "979422A1-BECB-4C64-BFD2-6E8DE67769C2", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "979422A1-BECB-4C64-BFD2-6E8DE67769C2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:06:55 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "979422A1-BECB-4C64-BFD2-6E8DE67769C2", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "979422A1-BECB-4C64-BFD2-6E8DE67769C2", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNChannelGroupIntegrationTests.bundle/ItShouldRemoveAllChannelsFromChannelGroupAndReceiveStatusWithExpectedOperationAndCategory.json b/Tests/Support Files/Fixtures/PNChannelGroupIntegrationTests.bundle/ItShouldRemoveAllChannelsFromChannelGroupAndReceiveStatusWithExpectedOperationAndCategory.json new file mode 100644 index 000000000..31e409416 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNChannelGroupIntegrationTests.bundle/ItShouldRemoveAllChannelsFromChannelGroupAndReceiveStatusWithExpectedOperationAndCategory.json @@ -0,0 +1,218 @@ +[ + { + "id" : "C9A42321-FAD0-4F53-BDE6-F3243800F20A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "C9A42321-FAD0-4F53-BDE6-F3243800F20A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:06:56 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C9A42321-FAD0-4F53-BDE6-F3243800F20A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "C9A42321-FAD0-4F53-BDE6-F3243800F20A", + "type" : 4 + }, + { + "id" : "F40B5FD3-7FB2-42D0-A04C-490CECAAB4DC", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F40B5FD3-7FB2-42D0-A04C-490CECAAB4DC", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:06:57 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F40B5FD3-7FB2-42D0-A04C-490CECAAB4DC", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "F40B5FD3-7FB2-42D0-A04C-490CECAAB4DC", + "type" : 4 + }, + { + "id" : "B637DAB7-F7F7-429F-8E2C-2FAF318D52F6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B637DAB7-F7F7-429F-8E2C-2FAF318D52F6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:06:57 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "136", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B637DAB7-F7F7-429F-8E2C-2FAF318D52F6", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJwYXlsb2FkIjogeyJjaGFubmVscyI6IFtdLCAiZ3JvdXAiOiAidGVzdC1jaGFubmVsLWdyb3VwIn0sICJzZXJ2aWNlIjogImNoYW5uZWwtcmVnaXN0cnkiLCAiZXJyb3IiOiBmYWxzZX0=" + }, + "type" : 2 + }, + { + "id" : "B637DAB7-F7F7-429F-8E2C-2FAF318D52F6", + "type" : 4 + }, + { + "id" : "CAA7B4E5-0CE8-4BD3-A2BE-BC6E408BF01C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "CAA7B4E5-0CE8-4BD3-A2BE-BC6E408BF01C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:06:59 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "CAA7B4E5-0CE8-4BD3-A2BE-BC6E408BF01C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "CAA7B4E5-0CE8-4BD3-A2BE-BC6E408BF01C", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNChannelGroupIntegrationTests.bundle/ItShouldRemoveAllChannelsFromChannelGroupUsingBuilderPatternInterface.json b/Tests/Support Files/Fixtures/PNChannelGroupIntegrationTests.bundle/ItShouldRemoveAllChannelsFromChannelGroupUsingBuilderPatternInterface.json new file mode 100644 index 000000000..d5b719f07 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNChannelGroupIntegrationTests.bundle/ItShouldRemoveAllChannelsFromChannelGroupUsingBuilderPatternInterface.json @@ -0,0 +1,218 @@ +[ + { + "id" : "554B513D-BB53-4D74-BE56-77B9133603E7", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "554B513D-BB53-4D74-BE56-77B9133603E7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:06:59 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "554B513D-BB53-4D74-BE56-77B9133603E7", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "554B513D-BB53-4D74-BE56-77B9133603E7", + "type" : 4 + }, + { + "id" : "3315FE13-3249-482D-B7A9-7D97FE538ACC", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3315FE13-3249-482D-B7A9-7D97FE538ACC", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:07:00 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "3315FE13-3249-482D-B7A9-7D97FE538ACC", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "3315FE13-3249-482D-B7A9-7D97FE538ACC", + "type" : 4 + }, + { + "id" : "43B70EFB-C199-4682-A5AC-07CD52A904AB", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "43B70EFB-C199-4682-A5AC-07CD52A904AB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:07:00 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "136", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "43B70EFB-C199-4682-A5AC-07CD52A904AB", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJwYXlsb2FkIjogeyJjaGFubmVscyI6IFtdLCAiZ3JvdXAiOiAidGVzdC1jaGFubmVsLWdyb3VwIn0sICJzZXJ2aWNlIjogImNoYW5uZWwtcmVnaXN0cnkiLCAiZXJyb3IiOiBmYWxzZX0=" + }, + "type" : 2 + }, + { + "id" : "43B70EFB-C199-4682-A5AC-07CD52A904AB", + "type" : 4 + }, + { + "id" : "8C3BF7ED-630E-4214-B0F3-CA0E389BF566", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "8C3BF7ED-630E-4214-B0F3-CA0E389BF566", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:07:02 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "8C3BF7ED-630E-4214-B0F3-CA0E389BF566", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "8C3BF7ED-630E-4214-B0F3-CA0E389BF566", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNChannelGroupIntegrationTests.bundle/ItShouldRemoveChannelsFromChannelGroupAndReceiveStatusWithExpectedOperationAndCategory.json b/Tests/Support Files/Fixtures/PNChannelGroupIntegrationTests.bundle/ItShouldRemoveChannelsFromChannelGroupAndReceiveStatusWithExpectedOperationAndCategory.json new file mode 100644 index 000000000..3910b321e --- /dev/null +++ b/Tests/Support Files/Fixtures/PNChannelGroupIntegrationTests.bundle/ItShouldRemoveChannelsFromChannelGroupAndReceiveStatusWithExpectedOperationAndCategory.json @@ -0,0 +1,218 @@ +[ + { + "id" : "CC6012A0-EBF3-4189-A21A-89CCDB69D0F2", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "CC6012A0-EBF3-4189-A21A-89CCDB69D0F2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:07:02 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "CC6012A0-EBF3-4189-A21A-89CCDB69D0F2", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "CC6012A0-EBF3-4189-A21A-89CCDB69D0F2", + "type" : 4 + }, + { + "id" : "0BC277E1-CB5C-4A51-9DA1-362F07CCA83B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?remove=test-channel1&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "0BC277E1-CB5C-4A51-9DA1-362F07CCA83B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?remove=test-channel1&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:07:03 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "0BC277E1-CB5C-4A51-9DA1-362F07CCA83B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "0BC277E1-CB5C-4A51-9DA1-362F07CCA83B", + "type" : 4 + }, + { + "id" : "CDB978D3-365C-40F2-AD78-4306063B3A8C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "CDB978D3-365C-40F2-AD78-4306063B3A8C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:07:03 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "165", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "CDB978D3-365C-40F2-AD78-4306063B3A8C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJwYXlsb2FkIjogeyJjaGFubmVscyI6IFsidGVzdC1jaGFubmVsMiJdLCAiZ3JvdXAiOiAidGVzdC1jaGFubmVsLWdyb3VwIn0sICJzZXJ2aWNlIjogImNoYW5uZWwtcmVnaXN0cnkiLCAiZXJyb3IiOiBmYWxzZX0=" + }, + "type" : 2 + }, + { + "id" : "CDB978D3-365C-40F2-AD78-4306063B3A8C", + "type" : 4 + }, + { + "id" : "A13C8A7A-C3FC-4E5F-927B-535DEF3030E6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A13C8A7A-C3FC-4E5F-927B-535DEF3030E6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:07:05 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "A13C8A7A-C3FC-4E5F-927B-535DEF3030E6", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "A13C8A7A-C3FC-4E5F-927B-535DEF3030E6", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNChannelGroupIntegrationTests.bundle/ItShouldRemoveChannelsFromChannelGroupUsingBuilderPatternInterface.json b/Tests/Support Files/Fixtures/PNChannelGroupIntegrationTests.bundle/ItShouldRemoveChannelsFromChannelGroupUsingBuilderPatternInterface.json new file mode 100644 index 000000000..5689c52c5 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNChannelGroupIntegrationTests.bundle/ItShouldRemoveChannelsFromChannelGroupUsingBuilderPatternInterface.json @@ -0,0 +1,218 @@ +[ + { + "id" : "CD5C2526-E7AD-4DC3-9AAD-194F7799A150", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "CD5C2526-E7AD-4DC3-9AAD-194F7799A150", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:07:05 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "CD5C2526-E7AD-4DC3-9AAD-194F7799A150", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "CD5C2526-E7AD-4DC3-9AAD-194F7799A150", + "type" : 4 + }, + { + "id" : "B7EE6DB0-1F48-4AC7-A561-EC96631B6B95", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?remove=test-channel1&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B7EE6DB0-1F48-4AC7-A561-EC96631B6B95", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?remove=test-channel1&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:07:06 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B7EE6DB0-1F48-4AC7-A561-EC96631B6B95", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "B7EE6DB0-1F48-4AC7-A561-EC96631B6B95", + "type" : 4 + }, + { + "id" : "DD1EFC4C-7DE6-4372-9D24-47B3198E8E4A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "DD1EFC4C-7DE6-4372-9D24-47B3198E8E4A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:07:06 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "165", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "DD1EFC4C-7DE6-4372-9D24-47B3198E8E4A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJwYXlsb2FkIjogeyJjaGFubmVscyI6IFsidGVzdC1jaGFubmVsMiJdLCAiZ3JvdXAiOiAidGVzdC1jaGFubmVsLWdyb3VwIn0sICJzZXJ2aWNlIjogImNoYW5uZWwtcmVnaXN0cnkiLCAiZXJyb3IiOiBmYWxzZX0=" + }, + "type" : 2 + }, + { + "id" : "DD1EFC4C-7DE6-4372-9D24-47B3198E8E4A", + "type" : 4 + }, + { + "id" : "33B4A316-38EE-4149-BA5B-7A2DAD90DE3C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "33B4A316-38EE-4149-BA5B-7A2DAD90DE3C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:07:08 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "33B4A316-38EE-4149-BA5B-7A2DAD90DE3C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "33B4A316-38EE-4149-BA5B-7A2DAD90DE3C", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldDeleteMessagesForChannelAndReceiveStatusWithExpectedOperationAndCategory.json b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldDeleteMessagesForChannelAndReceiveStatusWithExpectedOperationAndCategory.json new file mode 100644 index 000000000..ab77d09e3 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldDeleteMessagesForChannelAndReceiveStatusWithExpectedOperationAndCategory.json @@ -0,0 +1,674 @@ +[ + { + "id" : "3BC76FB9-1CF8-433D-BE12-19E11710B3BF", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?meta=%7B%22time%22:1577918412%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "3BC76FB9-1CF8-433D-BE12-19E11710B3BF", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?uuid=Serhii&meta=%7B%22time%22:1577918412%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:07:08 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "3BC76FB9-1CF8-433D-BE12-19E11710B3BF", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjI4ODQ3Njg1NCJd" + }, + "type" : 2 + }, + { + "id" : "3BC76FB9-1CF8-433D-BE12-19E11710B3BF", + "type" : 4 + }, + { + "id" : "B1FF07CC-AA6F-43B1-A847-63921862AB9E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "B1FF07CC-AA6F-43B1-A847-63921862AB9E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:07:09 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B1FF07CC-AA6F-43B1-A847-63921862AB9E", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjI5NDQ3MTcxMCJd" + }, + "type" : 2 + }, + { + "id" : "B1FF07CC-AA6F-43B1-A847-63921862AB9E", + "type" : 4 + }, + { + "id" : "56DEA4C6-0C8E-4B6F-B101-B42E5CBA8F83", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?meta=%7B%22time%22:1577918414%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "56DEA4C6-0C8E-4B6F-B101-B42E5CBA8F83", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?uuid=Serhii&meta=%7B%22time%22:1577918414%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:07:10 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "56DEA4C6-0C8E-4B6F-B101-B42E5CBA8F83", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjMwMDE1NDE2OCJd" + }, + "type" : 2 + }, + { + "id" : "56DEA4C6-0C8E-4B6F-B101-B42E5CBA8F83", + "type" : 4 + }, + { + "id" : "4CCA5893-F6E7-4974-9642-3B699A9E5210", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "4CCA5893-F6E7-4974-9642-3B699A9E5210", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:07:10 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "4CCA5893-F6E7-4974-9642-3B699A9E5210", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjMwNTgwNzUzOCJd" + }, + "type" : 2 + }, + { + "id" : "4CCA5893-F6E7-4974-9642-3B699A9E5210", + "type" : 4 + }, + { + "id" : "9865F4BD-8385-4E66-89F8-47F69F2CA1AA", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%204%22,%22time%22:1577918416%7D?meta=%7B%22time%22:1577918416%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "9865F4BD-8385-4E66-89F8-47F69F2CA1AA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%204%22,%22time%22:1577918416%7D?uuid=Serhii&meta=%7B%22time%22:1577918416%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:07:11 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9865F4BD-8385-4E66-89F8-47F69F2CA1AA", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjMxMTQ5NDI3NSJd" + }, + "type" : 2 + }, + { + "id" : "9865F4BD-8385-4E66-89F8-47F69F2CA1AA", + "type" : 4 + }, + { + "id" : "E075B2DE-BB1A-49B4-94A5-3BC5A24ABB25", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%205%22,%22time%22:1577918417%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "E075B2DE-BB1A-49B4-94A5-3BC5A24ABB25", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%205%22,%22time%22:1577918417%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:07:11 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E075B2DE-BB1A-49B4-94A5-3BC5A24ABB25", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjMxNzEzOTI5MSJd" + }, + "type" : 2 + }, + { + "id" : "E075B2DE-BB1A-49B4-94A5-3BC5A24ABB25", + "type" : 4 + }, + { + "id" : "B1F02766-E5EB-4CB2-BBB0-19A08FC3CAB6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%206%22,%22time%22:1577918418%7D?meta=%7B%22time%22:1577918418%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "B1F02766-E5EB-4CB2-BBB0-19A08FC3CAB6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%206%22,%22time%22:1577918418%7D?uuid=Serhii&meta=%7B%22time%22:1577918418%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:07:12 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B1F02766-E5EB-4CB2-BBB0-19A08FC3CAB6", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjMyMjc1MzE3MyJd" + }, + "type" : 2 + }, + { + "id" : "B1F02766-E5EB-4CB2-BBB0-19A08FC3CAB6", + "type" : 4 + }, + { + "id" : "78616473-3065-4B7A-A62B-090C0A48AF96", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%207%22,%22time%22:1577918419%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "78616473-3065-4B7A-A62B-090C0A48AF96", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%207%22,%22time%22:1577918419%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:07:12 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "78616473-3065-4B7A-A62B-090C0A48AF96", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjMyODQ1NTY0MiJd" + }, + "type" : 2 + }, + { + "id" : "78616473-3065-4B7A-A62B-090C0A48AF96", + "type" : 4 + }, + { + "id" : "16B9A10D-6236-4067-8E8A-BF35CE96F631", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%208%22,%22time%22:1577918420%7D?meta=%7B%22time%22:1577918420%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "16B9A10D-6236-4067-8E8A-BF35CE96F631", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%208%22,%22time%22:1577918420%7D?uuid=Serhii&meta=%7B%22time%22:1577918420%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:07:13 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "16B9A10D-6236-4067-8E8A-BF35CE96F631", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjMzNDEzODAzMyJd" + }, + "type" : 2 + }, + { + "id" : "16B9A10D-6236-4067-8E8A-BF35CE96F631", + "type" : 4 + }, + { + "id" : "E123685C-3599-4F2A-95D2-E05E393900A2", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%209%22,%22time%22:1577918421%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "E123685C-3599-4F2A-95D2-E05E393900A2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%209%22,%22time%22:1577918421%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:07:13 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E123685C-3599-4F2A-95D2-E05E393900A2", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjMzOTkzNDczNiJd" + }, + "type" : 2 + }, + { + "id" : "E123685C-3599-4F2A-95D2-E05E393900A2", + "type" : 4 + }, + { + "id" : "2E7A809C-C2D8-46B5-833B-46B8A98D032B", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2E7A809C-C2D8-46B5-833B-46B8A98D032B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:07:17 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "52", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "2E7A809C-C2D8-46B5-833B-46B8A98D032B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJlcnJvciI6IGZhbHNlLCAiZXJyb3JfbWVzc2FnZSI6ICIifQ==" + }, + "type" : 2 + }, + { + "id" : "2E7A809C-C2D8-46B5-833B-46B8A98D032B", + "type" : 4 + }, + { + "id" : "D9DC1B2F-7935-4A62-B956-83A39E3233AB", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&count=100" + }, + "type" : 0 + }, + { + "id" : "D9DC1B2F-7935-4A62-B956-83A39E3233AB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&count=100", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:07:17 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "8", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D9DC1B2F-7935-4A62-B956-83A39E3233AB", + "data" : { + "cls" : "NSData", + "base64" : "W1tdLDAsMF0=" + }, + "type" : 2 + }, + { + "id" : "D9DC1B2F-7935-4A62-B956-83A39E3233AB", + "type" : 4 + }, + { + "id" : "6BF94BEB-E48E-48D5-B8FF-408DFB3191F9", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "6BF94BEB-E48E-48D5-B8FF-408DFB3191F9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:07:17 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "52", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "6BF94BEB-E48E-48D5-B8FF-408DFB3191F9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJlcnJvciI6IGZhbHNlLCAiZXJyb3JfbWVzc2FnZSI6ICIifQ==" + }, + "type" : 2 + }, + { + "id" : "6BF94BEB-E48E-48D5-B8FF-408DFB3191F9", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldDeleteMessagesForChannelExcludingSpecifiedStartAndIncludingEndTimetokenWhenStartAndEndIsSet.json b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldDeleteMessagesForChannelExcludingSpecifiedStartAndIncludingEndTimetokenWhenStartAndEndIsSet.json new file mode 100644 index 000000000..5d1904afa --- /dev/null +++ b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldDeleteMessagesForChannelExcludingSpecifiedStartAndIncludingEndTimetokenWhenStartAndEndIsSet.json @@ -0,0 +1,674 @@ +[ + { + "id" : "CD9B528C-D18A-4D8F-ADB2-37EF344C1163", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?meta=%7B%22time%22:1577918412%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "CD9B528C-D18A-4D8F-ADB2-37EF344C1163", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?uuid=Serhii&meta=%7B%22time%22:1577918412%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:07:21 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "CD9B528C-D18A-4D8F-ADB2-37EF344C1163", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjQxNjI0NTIxNCJd" + }, + "type" : 2 + }, + { + "id" : "CD9B528C-D18A-4D8F-ADB2-37EF344C1163", + "type" : 4 + }, + { + "id" : "488C362A-1762-4099-936D-5FF0A135A6C8", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "488C362A-1762-4099-936D-5FF0A135A6C8", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:07:22 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "488C362A-1762-4099-936D-5FF0A135A6C8", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjQyMjI2OTY5OCJd" + }, + "type" : 2 + }, + { + "id" : "488C362A-1762-4099-936D-5FF0A135A6C8", + "type" : 4 + }, + { + "id" : "849EB360-C46D-469E-B7A9-5564C0F8E598", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?meta=%7B%22time%22:1577918414%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "849EB360-C46D-469E-B7A9-5564C0F8E598", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?uuid=Serhii&meta=%7B%22time%22:1577918414%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:07:22 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "849EB360-C46D-469E-B7A9-5564C0F8E598", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjQyNzkzMzQxNiJd" + }, + "type" : 2 + }, + { + "id" : "849EB360-C46D-469E-B7A9-5564C0F8E598", + "type" : 4 + }, + { + "id" : "D737D2E2-C918-44DD-A748-CB8D7B339467", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "D737D2E2-C918-44DD-A748-CB8D7B339467", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:07:23 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D737D2E2-C918-44DD-A748-CB8D7B339467", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjQzMzY1MjE0OCJd" + }, + "type" : 2 + }, + { + "id" : "D737D2E2-C918-44DD-A748-CB8D7B339467", + "type" : 4 + }, + { + "id" : "A4278BDB-E2AD-408C-AA90-F34EA51C4C79", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%204%22,%22time%22:1577918416%7D?meta=%7B%22time%22:1577918416%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "A4278BDB-E2AD-408C-AA90-F34EA51C4C79", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%204%22,%22time%22:1577918416%7D?uuid=Serhii&meta=%7B%22time%22:1577918416%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:07:23 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "A4278BDB-E2AD-408C-AA90-F34EA51C4C79", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjQzOTMyNTY5NiJd" + }, + "type" : 2 + }, + { + "id" : "A4278BDB-E2AD-408C-AA90-F34EA51C4C79", + "type" : 4 + }, + { + "id" : "C95BB4D8-C7AD-44A7-A31B-382410F64AF3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%205%22,%22time%22:1577918417%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "C95BB4D8-C7AD-44A7-A31B-382410F64AF3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%205%22,%22time%22:1577918417%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:07:24 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C95BB4D8-C7AD-44A7-A31B-382410F64AF3", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjQ0NTAwNjA1MSJd" + }, + "type" : 2 + }, + { + "id" : "C95BB4D8-C7AD-44A7-A31B-382410F64AF3", + "type" : 4 + }, + { + "id" : "3512BCB5-53F5-4E3B-AD18-30BA4ADA3D26", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%206%22,%22time%22:1577918418%7D?meta=%7B%22time%22:1577918418%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "3512BCB5-53F5-4E3B-AD18-30BA4ADA3D26", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%206%22,%22time%22:1577918418%7D?uuid=Serhii&meta=%7B%22time%22:1577918418%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:07:25 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "3512BCB5-53F5-4E3B-AD18-30BA4ADA3D26", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjQ1MDYwMDUxMCJd" + }, + "type" : 2 + }, + { + "id" : "3512BCB5-53F5-4E3B-AD18-30BA4ADA3D26", + "type" : 4 + }, + { + "id" : "5EF6115F-B5C8-4086-A3E9-58E37B0E5727", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%207%22,%22time%22:1577918419%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "5EF6115F-B5C8-4086-A3E9-58E37B0E5727", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%207%22,%22time%22:1577918419%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:07:25 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "5EF6115F-B5C8-4086-A3E9-58E37B0E5727", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjQ1NjMyNDcwMiJd" + }, + "type" : 2 + }, + { + "id" : "5EF6115F-B5C8-4086-A3E9-58E37B0E5727", + "type" : 4 + }, + { + "id" : "2E4C8C86-0EC0-47C8-A7D6-BDB75F93900C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%208%22,%22time%22:1577918420%7D?meta=%7B%22time%22:1577918420%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "2E4C8C86-0EC0-47C8-A7D6-BDB75F93900C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%208%22,%22time%22:1577918420%7D?uuid=Serhii&meta=%7B%22time%22:1577918420%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:07:26 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "2E4C8C86-0EC0-47C8-A7D6-BDB75F93900C", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjQ2MTk5ODc1NCJd" + }, + "type" : 2 + }, + { + "id" : "2E4C8C86-0EC0-47C8-A7D6-BDB75F93900C", + "type" : 4 + }, + { + "id" : "3D4225A5-28F9-4375-8E5E-A7AE07BE37D1", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%209%22,%22time%22:1577918421%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "3D4225A5-28F9-4375-8E5E-A7AE07BE37D1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%209%22,%22time%22:1577918421%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:07:26 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "3D4225A5-28F9-4375-8E5E-A7AE07BE37D1", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjQ2NzY0OTY2NiJd" + }, + "type" : 2 + }, + { + "id" : "3D4225A5-28F9-4375-8E5E-A7AE07BE37D1", + "type" : 4 + }, + { + "id" : "39BDC818-342C-4714-9A24-88E4852B78DB", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?end=15782692461998754&start=15782692416245214&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "39BDC818-342C-4714-9A24-88E4852B78DB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?end=15782692461998754&start=15782692416245214&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:07:30 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "52", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "39BDC818-342C-4714-9A24-88E4852B78DB", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJlcnJvciI6IGZhbHNlLCAiZXJyb3JfbWVzc2FnZSI6ICIifQ==" + }, + "type" : 2 + }, + { + "id" : "39BDC818-342C-4714-9A24-88E4852B78DB", + "type" : 4 + }, + { + "id" : "1BED4E43-0B38-40AC-8DB0-2EEBDFBCB359", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&count=100" + }, + "type" : 0 + }, + { + "id" : "1BED4E43-0B38-40AC-8DB0-2EEBDFBCB359", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&count=100", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:07:30 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "131", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "1BED4E43-0B38-40AC-8DB0-2EEBDFBCB359", + "data" : { + "cls" : "NSData", + "base64" : "W1t7Im1lc3NhZ2VJZHgiOiJtZXNzYWdlOiAwIiwidGltZSI6MTU3NzkxODQxMn0seyJtZXNzYWdlSWR4IjoibWVzc2FnZTogOSIsInRpbWUiOjE1Nzc5MTg0MjF9XSwxNTc4MjY5MjQxNjI0NTIxNCwxNTc4MjY5MjQ2NzY0OTY2Nl0=" + }, + "type" : 2 + }, + { + "id" : "1BED4E43-0B38-40AC-8DB0-2EEBDFBCB359", + "type" : 4 + }, + { + "id" : "058D4901-44AC-4772-8571-6552CF9D1806", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "058D4901-44AC-4772-8571-6552CF9D1806", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:07:30 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "52", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "058D4901-44AC-4772-8571-6552CF9D1806", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJlcnJvciI6IGZhbHNlLCAiZXJyb3JfbWVzc2FnZSI6ICIifQ==" + }, + "type" : 2 + }, + { + "id" : "058D4901-44AC-4772-8571-6552CF9D1806", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldDeleteMessagesForChannelExcludingSpecifiedTimetokenAndOlderWhenStartIsSet.json b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldDeleteMessagesForChannelExcludingSpecifiedTimetokenAndOlderWhenStartIsSet.json new file mode 100644 index 000000000..af2518ec4 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldDeleteMessagesForChannelExcludingSpecifiedTimetokenAndOlderWhenStartIsSet.json @@ -0,0 +1,674 @@ +[ + { + "id" : "D7986E87-9FD1-4994-AFB3-AC0EABD6F28E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?meta=%7B%22time%22:1577918412%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "D7986E87-9FD1-4994-AFB3-AC0EABD6F28E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?uuid=Serhii&meta=%7B%22time%22:1577918412%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:07:34 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D7986E87-9FD1-4994-AFB3-AC0EABD6F28E", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjU0NDU5NjYxOCJd" + }, + "type" : 2 + }, + { + "id" : "D7986E87-9FD1-4994-AFB3-AC0EABD6F28E", + "type" : 4 + }, + { + "id" : "6598F370-ADC8-40F2-BA53-6223C284D48C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "6598F370-ADC8-40F2-BA53-6223C284D48C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:07:35 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "6598F370-ADC8-40F2-BA53-6223C284D48C", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjU1MDYzMzQ4NiJd" + }, + "type" : 2 + }, + { + "id" : "6598F370-ADC8-40F2-BA53-6223C284D48C", + "type" : 4 + }, + { + "id" : "7DA857F7-DD40-471F-95C3-34965DE86381", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?meta=%7B%22time%22:1577918414%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "7DA857F7-DD40-471F-95C3-34965DE86381", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?uuid=Serhii&meta=%7B%22time%22:1577918414%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:07:35 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "7DA857F7-DD40-471F-95C3-34965DE86381", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjU1NjQzNTczOCJd" + }, + "type" : 2 + }, + { + "id" : "7DA857F7-DD40-471F-95C3-34965DE86381", + "type" : 4 + }, + { + "id" : "D0BAC1D6-11F0-4227-B317-01CBF753599B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "D0BAC1D6-11F0-4227-B317-01CBF753599B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:07:36 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D0BAC1D6-11F0-4227-B317-01CBF753599B", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjU2MjE4MTAwOCJd" + }, + "type" : 2 + }, + { + "id" : "D0BAC1D6-11F0-4227-B317-01CBF753599B", + "type" : 4 + }, + { + "id" : "05EC460A-DC6A-41E8-B21C-8B20BFC9DAF8", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%204%22,%22time%22:1577918416%7D?meta=%7B%22time%22:1577918416%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "05EC460A-DC6A-41E8-B21C-8B20BFC9DAF8", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%204%22,%22time%22:1577918416%7D?uuid=Serhii&meta=%7B%22time%22:1577918416%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:07:36 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "05EC460A-DC6A-41E8-B21C-8B20BFC9DAF8", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjU2Nzg1MjgxMSJd" + }, + "type" : 2 + }, + { + "id" : "05EC460A-DC6A-41E8-B21C-8B20BFC9DAF8", + "type" : 4 + }, + { + "id" : "2803A497-963D-47D3-A88D-A3AD45FF14B4", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%205%22,%22time%22:1577918417%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "2803A497-963D-47D3-A88D-A3AD45FF14B4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%205%22,%22time%22:1577918417%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:07:37 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "2803A497-963D-47D3-A88D-A3AD45FF14B4", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjU3MzYyMjQyMyJd" + }, + "type" : 2 + }, + { + "id" : "2803A497-963D-47D3-A88D-A3AD45FF14B4", + "type" : 4 + }, + { + "id" : "B2FF8BAA-1BBE-472B-9518-3DA2669C37AF", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%206%22,%22time%22:1577918418%7D?meta=%7B%22time%22:1577918418%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "B2FF8BAA-1BBE-472B-9518-3DA2669C37AF", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%206%22,%22time%22:1577918418%7D?uuid=Serhii&meta=%7B%22time%22:1577918418%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:07:37 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B2FF8BAA-1BBE-472B-9518-3DA2669C37AF", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjU3OTMyNTE3NSJd" + }, + "type" : 2 + }, + { + "id" : "B2FF8BAA-1BBE-472B-9518-3DA2669C37AF", + "type" : 4 + }, + { + "id" : "85E15296-FF96-4302-8DBB-495C8716FBD1", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%207%22,%22time%22:1577918419%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "85E15296-FF96-4302-8DBB-495C8716FBD1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%207%22,%22time%22:1577918419%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:07:38 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "85E15296-FF96-4302-8DBB-495C8716FBD1", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjU4NDk0NzkyOSJd" + }, + "type" : 2 + }, + { + "id" : "85E15296-FF96-4302-8DBB-495C8716FBD1", + "type" : 4 + }, + { + "id" : "190F465D-45A0-45A9-984B-D29958898C20", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%208%22,%22time%22:1577918420%7D?meta=%7B%22time%22:1577918420%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "190F465D-45A0-45A9-984B-D29958898C20", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%208%22,%22time%22:1577918420%7D?uuid=Serhii&meta=%7B%22time%22:1577918420%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:07:39 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "190F465D-45A0-45A9-984B-D29958898C20", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjU5MDYxOTgwMyJd" + }, + "type" : 2 + }, + { + "id" : "190F465D-45A0-45A9-984B-D29958898C20", + "type" : 4 + }, + { + "id" : "BF8450CC-D22E-4E5B-908C-F68D997C6700", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%209%22,%22time%22:1577918421%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "BF8450CC-D22E-4E5B-908C-F68D997C6700", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%209%22,%22time%22:1577918421%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:07:39 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "BF8450CC-D22E-4E5B-908C-F68D997C6700", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjU5NjIzMTg4OSJd" + }, + "type" : 2 + }, + { + "id" : "BF8450CC-D22E-4E5B-908C-F68D997C6700", + "type" : 4 + }, + { + "id" : "66936966-5014-4E9F-923A-542DC471DE81", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&start=15782692573622423&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "66936966-5014-4E9F-923A-542DC471DE81", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&start=15782692573622423&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:07:43 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "52", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "66936966-5014-4E9F-923A-542DC471DE81", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJlcnJvciI6IGZhbHNlLCAiZXJyb3JfbWVzc2FnZSI6ICIifQ==" + }, + "type" : 2 + }, + { + "id" : "66936966-5014-4E9F-923A-542DC471DE81", + "type" : 4 + }, + { + "id" : "8E25E68C-BE34-4921-9B3D-08412BF6E091", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&count=100" + }, + "type" : 0 + }, + { + "id" : "8E25E68C-BE34-4921-9B3D-08412BF6E091", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&count=100", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:07:43 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "269", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "8E25E68C-BE34-4921-9B3D-08412BF6E091", + "data" : { + "cls" : "NSData", + "base64" : "W1t7Im1lc3NhZ2VJZHgiOiJtZXNzYWdlOiA1IiwidGltZSI6MTU3NzkxODQxN30seyJtZXNzYWdlSWR4IjoibWVzc2FnZTogNiIsInRpbWUiOjE1Nzc5MTg0MTh9LHsibWVzc2FnZUlkeCI6Im1lc3NhZ2U6IDciLCJ0aW1lIjoxNTc3OTE4NDE5fSx7Im1lc3NhZ2VJZHgiOiJtZXNzYWdlOiA4IiwidGltZSI6MTU3NzkxODQyMH0seyJtZXNzYWdlSWR4IjoibWVzc2FnZTogOSIsInRpbWUiOjE1Nzc5MTg0MjF9XSwxNTc4MjY5MjU3MzYyMjQyMywxNTc4MjY5MjU5NjIzMTg4OV0=" + }, + "type" : 2 + }, + { + "id" : "8E25E68C-BE34-4921-9B3D-08412BF6E091", + "type" : 4 + }, + { + "id" : "2587FB18-1FA3-462B-8E4D-C59AFAEE7FA1", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2587FB18-1FA3-462B-8E4D-C59AFAEE7FA1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:07:43 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "52", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "2587FB18-1FA3-462B-8E4D-C59AFAEE7FA1", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJlcnJvciI6IGZhbHNlLCAiZXJyb3JfbWVzc2FnZSI6ICIifQ==" + }, + "type" : 2 + }, + { + "id" : "2587FB18-1FA3-462B-8E4D-C59AFAEE7FA1", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldDeleteMessagesForChannelIncludingSpecifiedTimetokenAndNewerWhenEndIsSet.json b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldDeleteMessagesForChannelIncludingSpecifiedTimetokenAndNewerWhenEndIsSet.json new file mode 100644 index 000000000..5f436b9f2 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldDeleteMessagesForChannelIncludingSpecifiedTimetokenAndNewerWhenEndIsSet.json @@ -0,0 +1,674 @@ +[ + { + "id" : "AB32EE46-B592-4E67-8276-1A423051D67F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?meta=%7B%22time%22:1577918412%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "AB32EE46-B592-4E67-8276-1A423051D67F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?uuid=Serhii&meta=%7B%22time%22:1577918412%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:07:47 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "AB32EE46-B592-4E67-8276-1A423051D67F", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjY3MjY1MDcwNCJd" + }, + "type" : 2 + }, + { + "id" : "AB32EE46-B592-4E67-8276-1A423051D67F", + "type" : 4 + }, + { + "id" : "AC8F20B2-41CF-433C-8E96-1719DF4675A5", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "AC8F20B2-41CF-433C-8E96-1719DF4675A5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:07:47 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "AC8F20B2-41CF-433C-8E96-1719DF4675A5", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjY3ODI5NTA5OSJd" + }, + "type" : 2 + }, + { + "id" : "AC8F20B2-41CF-433C-8E96-1719DF4675A5", + "type" : 4 + }, + { + "id" : "8DF411F4-DE22-4C63-8CC8-9C35E1FA3D42", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?meta=%7B%22time%22:1577918414%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "8DF411F4-DE22-4C63-8CC8-9C35E1FA3D42", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?uuid=Serhii&meta=%7B%22time%22:1577918414%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:07:48 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "8DF411F4-DE22-4C63-8CC8-9C35E1FA3D42", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjY4NDA0MzExOCJd" + }, + "type" : 2 + }, + { + "id" : "8DF411F4-DE22-4C63-8CC8-9C35E1FA3D42", + "type" : 4 + }, + { + "id" : "621C7F81-2933-4264-BEA9-F54558FFABBE", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "621C7F81-2933-4264-BEA9-F54558FFABBE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:07:48 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "621C7F81-2933-4264-BEA9-F54558FFABBE", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjY4OTcxNDUzNSJd" + }, + "type" : 2 + }, + { + "id" : "621C7F81-2933-4264-BEA9-F54558FFABBE", + "type" : 4 + }, + { + "id" : "8D3B4B86-7764-4CA6-AF0C-16C9DFC9C54E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%204%22,%22time%22:1577918416%7D?meta=%7B%22time%22:1577918416%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "8D3B4B86-7764-4CA6-AF0C-16C9DFC9C54E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%204%22,%22time%22:1577918416%7D?uuid=Serhii&meta=%7B%22time%22:1577918416%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:07:49 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "8D3B4B86-7764-4CA6-AF0C-16C9DFC9C54E", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjY5NTQ3NTgxNSJd" + }, + "type" : 2 + }, + { + "id" : "8D3B4B86-7764-4CA6-AF0C-16C9DFC9C54E", + "type" : 4 + }, + { + "id" : "67231C12-6210-4560-AC59-BCCA21EBA899", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%205%22,%22time%22:1577918417%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "67231C12-6210-4560-AC59-BCCA21EBA899", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%205%22,%22time%22:1577918417%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:07:50 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "67231C12-6210-4560-AC59-BCCA21EBA899", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjcwMTEzMjM2OCJd" + }, + "type" : 2 + }, + { + "id" : "67231C12-6210-4560-AC59-BCCA21EBA899", + "type" : 4 + }, + { + "id" : "3D6A2D3D-B11A-4C5F-AE64-3AA8DEE510C5", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%206%22,%22time%22:1577918418%7D?meta=%7B%22time%22:1577918418%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "3D6A2D3D-B11A-4C5F-AE64-3AA8DEE510C5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%206%22,%22time%22:1577918418%7D?uuid=Serhii&meta=%7B%22time%22:1577918418%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:07:50 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "3D6A2D3D-B11A-4C5F-AE64-3AA8DEE510C5", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjcwNjg2MzEzOCJd" + }, + "type" : 2 + }, + { + "id" : "3D6A2D3D-B11A-4C5F-AE64-3AA8DEE510C5", + "type" : 4 + }, + { + "id" : "BCBCF7C7-B17A-4250-AD6D-E7E37E49A7E2", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%207%22,%22time%22:1577918419%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "BCBCF7C7-B17A-4250-AD6D-E7E37E49A7E2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%207%22,%22time%22:1577918419%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:07:51 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "BCBCF7C7-B17A-4250-AD6D-E7E37E49A7E2", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjcxMjU4NDU4NCJd" + }, + "type" : 2 + }, + { + "id" : "BCBCF7C7-B17A-4250-AD6D-E7E37E49A7E2", + "type" : 4 + }, + { + "id" : "9AF8D512-0733-4FCF-BC50-67E80B42EA48", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%208%22,%22time%22:1577918420%7D?meta=%7B%22time%22:1577918420%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "9AF8D512-0733-4FCF-BC50-67E80B42EA48", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%208%22,%22time%22:1577918420%7D?uuid=Serhii&meta=%7B%22time%22:1577918420%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:07:51 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9AF8D512-0733-4FCF-BC50-67E80B42EA48", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjcxODMxNDc1MiJd" + }, + "type" : 2 + }, + { + "id" : "9AF8D512-0733-4FCF-BC50-67E80B42EA48", + "type" : 4 + }, + { + "id" : "2F790BC3-B6D1-45DA-8DF7-672311CA750B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%209%22,%22time%22:1577918421%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "2F790BC3-B6D1-45DA-8DF7-672311CA750B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%209%22,%22time%22:1577918421%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:07:52 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "2F790BC3-B6D1-45DA-8DF7-672311CA750B", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjcyNDAyMDM0NiJd" + }, + "type" : 2 + }, + { + "id" : "2F790BC3-B6D1-45DA-8DF7-672311CA750B", + "type" : 4 + }, + { + "id" : "466929A5-4517-4777-94B2-C7CB4612976E", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&end=15782692701132368&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "466929A5-4517-4777-94B2-C7CB4612976E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&end=15782692701132368&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:07:56 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "52", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "466929A5-4517-4777-94B2-C7CB4612976E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJlcnJvciI6IGZhbHNlLCAiZXJyb3JfbWVzc2FnZSI6ICIifQ==" + }, + "type" : 2 + }, + { + "id" : "466929A5-4517-4777-94B2-C7CB4612976E", + "type" : 4 + }, + { + "id" : "252D2AD2-A10B-48AB-AC3E-12BF5271F5A6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&count=100" + }, + "type" : 0 + }, + { + "id" : "252D2AD2-A10B-48AB-AC3E-12BF5271F5A6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&count=100", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:07:56 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "269", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "252D2AD2-A10B-48AB-AC3E-12BF5271F5A6", + "data" : { + "cls" : "NSData", + "base64" : "W1t7Im1lc3NhZ2VJZHgiOiJtZXNzYWdlOiAwIiwidGltZSI6MTU3NzkxODQxMn0seyJtZXNzYWdlSWR4IjoibWVzc2FnZTogMSIsInRpbWUiOjE1Nzc5MTg0MTN9LHsibWVzc2FnZUlkeCI6Im1lc3NhZ2U6IDIiLCJ0aW1lIjoxNTc3OTE4NDE0fSx7Im1lc3NhZ2VJZHgiOiJtZXNzYWdlOiAzIiwidGltZSI6MTU3NzkxODQxNX0seyJtZXNzYWdlSWR4IjoibWVzc2FnZTogNCIsInRpbWUiOjE1Nzc5MTg0MTZ9XSwxNTc4MjY5MjY3MjY1MDcwNCwxNTc4MjY5MjY5NTQ3NTgxNV0=" + }, + "type" : 2 + }, + { + "id" : "252D2AD2-A10B-48AB-AC3E-12BF5271F5A6", + "type" : 4 + }, + { + "id" : "F0114EB4-00EC-4D6E-A711-0533EC30F773", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F0114EB4-00EC-4D6E-A711-0533EC30F773", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:07:56 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "52", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F0114EB4-00EC-4D6E-A711-0533EC30F773", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJlcnJvciI6IGZhbHNlLCAiZXJyb3JfbWVzc2FnZSI6ICIifQ==" + }, + "type" : 2 + }, + { + "id" : "F0114EB4-00EC-4D6E-A711-0533EC30F773", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldDeleteMessagesForChannelUsingBuilderPatternInterface.json b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldDeleteMessagesForChannelUsingBuilderPatternInterface.json new file mode 100644 index 000000000..b87bdb324 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldDeleteMessagesForChannelUsingBuilderPatternInterface.json @@ -0,0 +1,674 @@ +[ + { + "id" : "3D0F067A-DCA2-493B-B8D6-F89E4F99FA21", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?meta=%7B%22time%22:1577918412%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "3D0F067A-DCA2-493B-B8D6-F89E4F99FA21", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?uuid=Serhii&meta=%7B%22time%22:1577918412%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:08:00 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "3D0F067A-DCA2-493B-B8D6-F89E4F99FA21", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjgwMDEwMDI1NyJd" + }, + "type" : 2 + }, + { + "id" : "3D0F067A-DCA2-493B-B8D6-F89E4F99FA21", + "type" : 4 + }, + { + "id" : "4AF663FF-9AA9-4E2D-913D-60613EA388F0", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "4AF663FF-9AA9-4E2D-913D-60613EA388F0", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:08:00 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "4AF663FF-9AA9-4E2D-913D-60613EA388F0", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjgwNTY5NTU3MSJd" + }, + "type" : 2 + }, + { + "id" : "4AF663FF-9AA9-4E2D-913D-60613EA388F0", + "type" : 4 + }, + { + "id" : "0BABBC98-BA62-4579-ACB5-D835121829C9", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?meta=%7B%22time%22:1577918414%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "0BABBC98-BA62-4579-ACB5-D835121829C9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?uuid=Serhii&meta=%7B%22time%22:1577918414%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:08:01 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "0BABBC98-BA62-4579-ACB5-D835121829C9", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjgxMTM2MTcwMCJd" + }, + "type" : 2 + }, + { + "id" : "0BABBC98-BA62-4579-ACB5-D835121829C9", + "type" : 4 + }, + { + "id" : "2E31512C-690B-4042-8651-DDA142FEE036", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "2E31512C-690B-4042-8651-DDA142FEE036", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:08:01 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "2E31512C-690B-4042-8651-DDA142FEE036", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjgxNzEzMzAyOCJd" + }, + "type" : 2 + }, + { + "id" : "2E31512C-690B-4042-8651-DDA142FEE036", + "type" : 4 + }, + { + "id" : "97205598-0D5C-4FE7-A4FD-FA8EF25EE3C0", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%204%22,%22time%22:1577918416%7D?meta=%7B%22time%22:1577918416%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "97205598-0D5C-4FE7-A4FD-FA8EF25EE3C0", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%204%22,%22time%22:1577918416%7D?uuid=Serhii&meta=%7B%22time%22:1577918416%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:08:02 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "97205598-0D5C-4FE7-A4FD-FA8EF25EE3C0", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjgyMjgyNTIwOCJd" + }, + "type" : 2 + }, + { + "id" : "97205598-0D5C-4FE7-A4FD-FA8EF25EE3C0", + "type" : 4 + }, + { + "id" : "6BFD4C43-0A89-40B0-9255-8D2D0BE36DB0", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%205%22,%22time%22:1577918417%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "6BFD4C43-0A89-40B0-9255-8D2D0BE36DB0", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%205%22,%22time%22:1577918417%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:08:02 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "6BFD4C43-0A89-40B0-9255-8D2D0BE36DB0", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjgyODY0NDAzMCJd" + }, + "type" : 2 + }, + { + "id" : "6BFD4C43-0A89-40B0-9255-8D2D0BE36DB0", + "type" : 4 + }, + { + "id" : "DFFE4ACD-4994-4542-92B0-B6B96BAA5D34", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%206%22,%22time%22:1577918418%7D?meta=%7B%22time%22:1577918418%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "DFFE4ACD-4994-4542-92B0-B6B96BAA5D34", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%206%22,%22time%22:1577918418%7D?uuid=Serhii&meta=%7B%22time%22:1577918418%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:08:03 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "DFFE4ACD-4994-4542-92B0-B6B96BAA5D34", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjgzNDMzNTE0MCJd" + }, + "type" : 2 + }, + { + "id" : "DFFE4ACD-4994-4542-92B0-B6B96BAA5D34", + "type" : 4 + }, + { + "id" : "9E8287C3-12A8-4B3E-9FF2-A0EC64BF3164", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%207%22,%22time%22:1577918419%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "9E8287C3-12A8-4B3E-9FF2-A0EC64BF3164", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%207%22,%22time%22:1577918419%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:08:03 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9E8287C3-12A8-4B3E-9FF2-A0EC64BF3164", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjgzOTkzODQzNCJd" + }, + "type" : 2 + }, + { + "id" : "9E8287C3-12A8-4B3E-9FF2-A0EC64BF3164", + "type" : 4 + }, + { + "id" : "7457ADCC-7D3C-4F8E-903D-83D17055257E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%208%22,%22time%22:1577918420%7D?meta=%7B%22time%22:1577918420%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "7457ADCC-7D3C-4F8E-903D-83D17055257E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%208%22,%22time%22:1577918420%7D?uuid=Serhii&meta=%7B%22time%22:1577918420%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:08:04 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "7457ADCC-7D3C-4F8E-903D-83D17055257E", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5Mjg0NTY1ODY4NiJd" + }, + "type" : 2 + }, + { + "id" : "7457ADCC-7D3C-4F8E-903D-83D17055257E", + "type" : 4 + }, + { + "id" : "B8BB4F6A-D477-4BF2-9094-25A6373981E8", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%209%22,%22time%22:1577918421%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "B8BB4F6A-D477-4BF2-9094-25A6373981E8", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%209%22,%22time%22:1577918421%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:08:05 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B8BB4F6A-D477-4BF2-9094-25A6373981E8", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5Mjg1MTMxODg0MyJd" + }, + "type" : 2 + }, + { + "id" : "B8BB4F6A-D477-4BF2-9094-25A6373981E8", + "type" : 4 + }, + { + "id" : "0C7078E0-14EA-43FD-B8BB-129A41562E71", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "0C7078E0-14EA-43FD-B8BB-129A41562E71", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:08:08 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "52", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "0C7078E0-14EA-43FD-B8BB-129A41562E71", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJlcnJvciI6IGZhbHNlLCAiZXJyb3JfbWVzc2FnZSI6ICIifQ==" + }, + "type" : 2 + }, + { + "id" : "0C7078E0-14EA-43FD-B8BB-129A41562E71", + "type" : 4 + }, + { + "id" : "AFF923F4-C222-4C78-831B-59CB9FDA57B1", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&count=100" + }, + "type" : 0 + }, + { + "id" : "AFF923F4-C222-4C78-831B-59CB9FDA57B1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&count=100", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:08:08 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "8", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "AFF923F4-C222-4C78-831B-59CB9FDA57B1", + "data" : { + "cls" : "NSData", + "base64" : "W1tdLDAsMF0=" + }, + "type" : 2 + }, + { + "id" : "AFF923F4-C222-4C78-831B-59CB9FDA57B1", + "type" : 4 + }, + { + "id" : "7430E63A-BF00-42BB-8E96-4A34C49AF70C", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "7430E63A-BF00-42BB-8E96-4A34C49AF70C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:08:08 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "52", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "7430E63A-BF00-42BB-8E96-4A34C49AF70C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJlcnJvciI6IGZhbHNlLCAiZXJyb3JfbWVzc2FnZSI6ICIifQ==" + }, + "type" : 2 + }, + { + "id" : "7430E63A-BF00-42BB-8E96-4A34C49AF70C", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchHistoryForChannelAndReceiveResultWithExpectedOperation.json b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchHistoryForChannelAndReceiveResultWithExpectedOperation.json new file mode 100644 index 000000000..b336fc27f --- /dev/null +++ b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchHistoryForChannelAndReceiveResultWithExpectedOperation.json @@ -0,0 +1,314 @@ +[ + { + "id" : "A6C2C07E-4C72-41BB-93C2-DCA12FE113AC", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?meta=%7B%22time%22:1577918412%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "A6C2C07E-4C72-41BB-93C2-DCA12FE113AC", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?uuid=Serhii&meta=%7B%22time%22:1577918412%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:08:12 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "A6C2C07E-4C72-41BB-93C2-DCA12FE113AC", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjkyNzU5MzkzOSJd" + }, + "type" : 2 + }, + { + "id" : "A6C2C07E-4C72-41BB-93C2-DCA12FE113AC", + "type" : 4 + }, + { + "id" : "1B441F96-2531-48F7-A31F-B6049DFFA3C8", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "1B441F96-2531-48F7-A31F-B6049DFFA3C8", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:08:13 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "1B441F96-2531-48F7-A31F-B6049DFFA3C8", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjkzMzc3Mzc0MCJd" + }, + "type" : 2 + }, + { + "id" : "1B441F96-2531-48F7-A31F-B6049DFFA3C8", + "type" : 4 + }, + { + "id" : "6EB652F8-FA62-4527-81F2-A07D72BF4B0A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?meta=%7B%22time%22:1577918414%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "6EB652F8-FA62-4527-81F2-A07D72BF4B0A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?uuid=Serhii&meta=%7B%22time%22:1577918414%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:08:13 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "6EB652F8-FA62-4527-81F2-A07D72BF4B0A", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MjkzOTQzNzU5NCJd" + }, + "type" : 2 + }, + { + "id" : "6EB652F8-FA62-4527-81F2-A07D72BF4B0A", + "type" : 4 + }, + { + "id" : "7D8C721E-E8AF-433B-94C7-8525AEC0B89B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "7D8C721E-E8AF-433B-94C7-8525AEC0B89B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:08:14 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "7D8C721E-E8AF-433B-94C7-8525AEC0B89B", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5Mjk0NTEwOTE1NCJd" + }, + "type" : 2 + }, + { + "id" : "7D8C721E-E8AF-433B-94C7-8525AEC0B89B", + "type" : 4 + }, + { + "id" : "D487C2E6-4B00-4686-B3D6-040BAC263301", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&count=100" + }, + "type" : 0 + }, + { + "id" : "D487C2E6-4B00-4686-B3D6-040BAC263301", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&count=100", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:08:18 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "223", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D487C2E6-4B00-4686-B3D6-040BAC263301", + "data" : { + "cls" : "NSData", + "base64" : "W1t7Im1lc3NhZ2VJZHgiOiJtZXNzYWdlOiAwIiwidGltZSI6MTU3NzkxODQxMn0seyJtZXNzYWdlSWR4IjoibWVzc2FnZTogMSIsInRpbWUiOjE1Nzc5MTg0MTN9LHsibWVzc2FnZUlkeCI6Im1lc3NhZ2U6IDIiLCJ0aW1lIjoxNTc3OTE4NDE0fSx7Im1lc3NhZ2VJZHgiOiJtZXNzYWdlOiAzIiwidGltZSI6MTU3NzkxODQxNX1dLDE1NzgyNjkyOTI3NTkzOTM5LDE1NzgyNjkyOTQ1MTA5MTU0XQ==" + }, + "type" : 2 + }, + { + "id" : "D487C2E6-4B00-4686-B3D6-040BAC263301", + "type" : 4 + }, + { + "id" : "A92FC38A-3EDA-4B1B-8620-DA39B2A2425A", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A92FC38A-3EDA-4B1B-8620-DA39B2A2425A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:08:18 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "52", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "A92FC38A-3EDA-4B1B-8620-DA39B2A2425A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJlcnJvciI6IGZhbHNlLCAiZXJyb3JfbWVzc2FnZSI6ICIifQ==" + }, + "type" : 2 + }, + { + "id" : "A92FC38A-3EDA-4B1B-8620-DA39B2A2425A", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchHistoryForChannelInSpecifiedTimeframeWhenStartAndEndIsSet.json b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchHistoryForChannelInSpecifiedTimeframeWhenStartAndEndIsSet.json new file mode 100644 index 000000000..bac49b734 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchHistoryForChannelInSpecifiedTimeframeWhenStartAndEndIsSet.json @@ -0,0 +1,365 @@ +[ + { + "id" : "9B4596AF-8484-4DAE-BCDB-4F325A849F67", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?meta=%7B%22time%22:1577918412%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "9B4596AF-8484-4DAE-BCDB-4F325A849F67", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?uuid=Serhii&meta=%7B%22time%22:1577918412%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:08:22 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9B4596AF-8484-4DAE-BCDB-4F325A849F67", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MzAyMTEyMzkxMCJd" + }, + "type" : 2 + }, + { + "id" : "9B4596AF-8484-4DAE-BCDB-4F325A849F67", + "type" : 4 + }, + { + "id" : "695693E5-4C18-4895-B3F0-9F5C798E8D79", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "695693E5-4C18-4895-B3F0-9F5C798E8D79", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:08:22 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "695693E5-4C18-4895-B3F0-9F5C798E8D79", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MzAyNjgzNjU1MCJd" + }, + "type" : 2 + }, + { + "id" : "695693E5-4C18-4895-B3F0-9F5C798E8D79", + "type" : 4 + }, + { + "id" : "D971A6BC-FA60-4C77-9921-0D9B013C1432", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?meta=%7B%22time%22:1577918414%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "D971A6BC-FA60-4C77-9921-0D9B013C1432", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?uuid=Serhii&meta=%7B%22time%22:1577918414%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:08:23 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D971A6BC-FA60-4C77-9921-0D9B013C1432", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MzAzMjUwNDU5NCJd" + }, + "type" : 2 + }, + { + "id" : "D971A6BC-FA60-4C77-9921-0D9B013C1432", + "type" : 4 + }, + { + "id" : "C19E1C9F-ECA5-467C-8FC7-32396E8AE519", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "C19E1C9F-ECA5-467C-8FC7-32396E8AE519", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:08:23 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C19E1C9F-ECA5-467C-8FC7-32396E8AE519", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MzAzODE3NTgzNiJd" + }, + "type" : 2 + }, + { + "id" : "C19E1C9F-ECA5-467C-8FC7-32396E8AE519", + "type" : 4 + }, + { + "id" : "B1452D79-7367-4CBB-9021-7604365E375E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%204%22,%22time%22:1577918416%7D?meta=%7B%22time%22:1577918416%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "B1452D79-7367-4CBB-9021-7604365E375E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%204%22,%22time%22:1577918416%7D?uuid=Serhii&meta=%7B%22time%22:1577918416%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:08:24 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B1452D79-7367-4CBB-9021-7604365E375E", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MzA0MzgwOTYxNyJd" + }, + "type" : 2 + }, + { + "id" : "B1452D79-7367-4CBB-9021-7604365E375E", + "type" : 4 + }, + { + "id" : "7AE7AEF3-F038-45CA-AFB3-E005B923FB75", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?end=15782693032504594&start=15782693026836550&reverse=1&count=100&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "7AE7AEF3-F038-45CA-AFB3-E005B923FB75", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?end=15782693032504594&start=15782693026836550&reverse=1&count=100&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:08:28 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "85", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "7AE7AEF3-F038-45CA-AFB3-E005B923FB75", + "data" : { + "cls" : "NSData", + "base64" : "W1t7Im1lc3NhZ2VJZHgiOiJtZXNzYWdlOiAyIiwidGltZSI6MTU3NzkxODQxNH1dLDE1NzgyNjkzMDMyNTA0NTk0LDE1NzgyNjkzMDMyNTA0NTk0XQ==" + }, + "type" : 2 + }, + { + "id" : "7AE7AEF3-F038-45CA-AFB3-E005B923FB75", + "type" : 4 + }, + { + "id" : "CAECF3D9-7A66-4EFA-B982-C17C8CB51D06", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "CAECF3D9-7A66-4EFA-B982-C17C8CB51D06", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:08:28 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "52", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "CAECF3D9-7A66-4EFA-B982-C17C8CB51D06", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJlcnJvciI6IGZhbHNlLCAiZXJyb3JfbWVzc2FnZSI6ICIifQ==" + }, + "type" : 2 + }, + { + "id" : "CAECF3D9-7A66-4EFA-B982-C17C8CB51D06", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchHistoryForChannelUsingBuilderPatternInterface.json b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchHistoryForChannelUsingBuilderPatternInterface.json new file mode 100644 index 000000000..f1d74734a --- /dev/null +++ b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchHistoryForChannelUsingBuilderPatternInterface.json @@ -0,0 +1,314 @@ +[ + { + "id" : "AB21396C-EE02-4D94-AFF4-23FC7BB96740", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?meta=%7B%22time%22:1577918412%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "AB21396C-EE02-4D94-AFF4-23FC7BB96740", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?uuid=Serhii&meta=%7B%22time%22:1577918412%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:08:31 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "AB21396C-EE02-4D94-AFF4-23FC7BB96740", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MzExOTc2NTk1OCJd" + }, + "type" : 2 + }, + { + "id" : "AB21396C-EE02-4D94-AFF4-23FC7BB96740", + "type" : 4 + }, + { + "id" : "694A0B0C-1086-4767-8E6B-CE4868CD176D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "694A0B0C-1086-4767-8E6B-CE4868CD176D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:08:32 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "694A0B0C-1086-4767-8E6B-CE4868CD176D", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MzEyNTg3NDA0NyJd" + }, + "type" : 2 + }, + { + "id" : "694A0B0C-1086-4767-8E6B-CE4868CD176D", + "type" : 4 + }, + { + "id" : "87543582-69CD-48BB-AC8B-63E40C62E92E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?meta=%7B%22time%22:1577918414%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "87543582-69CD-48BB-AC8B-63E40C62E92E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?uuid=Serhii&meta=%7B%22time%22:1577918414%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:08:33 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "87543582-69CD-48BB-AC8B-63E40C62E92E", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MzEzMTYyMzc2NSJd" + }, + "type" : 2 + }, + { + "id" : "87543582-69CD-48BB-AC8B-63E40C62E92E", + "type" : 4 + }, + { + "id" : "B9AE74A6-4660-4176-A6F6-036929466023", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "B9AE74A6-4660-4176-A6F6-036929466023", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:08:33 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B9AE74A6-4660-4176-A6F6-036929466023", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MzEzNzMyNjA4NyJd" + }, + "type" : 2 + }, + { + "id" : "B9AE74A6-4660-4176-A6F6-036929466023", + "type" : 4 + }, + { + "id" : "96A5F338-21CA-47DC-B977-867D68FDA7BB", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "96A5F338-21CA-47DC-B977-867D68FDA7BB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:08:37 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "223", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "96A5F338-21CA-47DC-B977-867D68FDA7BB", + "data" : { + "cls" : "NSData", + "base64" : "W1t7Im1lc3NhZ2VJZHgiOiJtZXNzYWdlOiAwIiwidGltZSI6MTU3NzkxODQxMn0seyJtZXNzYWdlSWR4IjoibWVzc2FnZTogMSIsInRpbWUiOjE1Nzc5MTg0MTN9LHsibWVzc2FnZUlkeCI6Im1lc3NhZ2U6IDIiLCJ0aW1lIjoxNTc3OTE4NDE0fSx7Im1lc3NhZ2VJZHgiOiJtZXNzYWdlOiAzIiwidGltZSI6MTU3NzkxODQxNX1dLDE1NzgyNjkzMTE5NzY1OTU4LDE1NzgyNjkzMTM3MzI2MDg3XQ==" + }, + "type" : 2 + }, + { + "id" : "96A5F338-21CA-47DC-B977-867D68FDA7BB", + "type" : 4 + }, + { + "id" : "1AB7B29C-D7F7-46F1-AA6D-DABEB4C1B680", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1AB7B29C-D7F7-46F1-AA6D-DABEB4C1B680", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:08:37 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "52", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "1AB7B29C-D7F7-46F1-AA6D-DABEB4C1B680", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJlcnJvciI6IGZhbHNlLCAiZXJyb3JfbWVzc2FnZSI6ICIifQ==" + }, + "type" : 2 + }, + { + "id" : "1AB7B29C-D7F7-46F1-AA6D-DABEB4C1B680", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchHistoryForChannelWithActionsAndReceiveResultWithExpectedOperation.json b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchHistoryForChannelWithActionsAndReceiveResultWithExpectedOperation.json new file mode 100644 index 000000000..c993e9bac --- /dev/null +++ b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchHistoryForChannelWithActionsAndReceiveResultWithExpectedOperation.json @@ -0,0 +1,692 @@ +[ + { + "id" : "E131290F-A6AF-4636-9B63-569FAAF98302", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?meta=%7B%22time%22:1577918412%7D&uuid=Serhii&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E131290F-A6AF-4636-9B63-569FAAF98302", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&meta=%7B%22time%22:1577918412%7D&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 01:14:34 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E131290F-A6AF-4636-9B63-569FAAF98302", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTgxMDM4MDc0NDMzMjM4OSJd" + }, + "type" : 2 + }, + { + "id" : "E131290F-A6AF-4636-9B63-569FAAF98302", + "type" : 4 + }, + { + "id" : "604BE245-F69D-4AB0-AEF0-5135B2F4000C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?uuid=Serhii&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "604BE245-F69D-4AB0-AEF0-5135B2F4000C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 01:14:35 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "604BE245-F69D-4AB0-AEF0-5135B2F4000C", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTgxMDM4MDc1MDMxMzY3NiJd" + }, + "type" : 2 + }, + { + "id" : "604BE245-F69D-4AB0-AEF0-5135B2F4000C", + "type" : 4 + }, + { + "id" : "300862A0-7911-4987-AF67-DE0A752D1DF0", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "49", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ0eXBlIjoicmVjZWlwdCIsInZhbHVlIjoidmFsdWUyIn0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15810380744332389?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "300862A0-7911-4987-AF67-DE0A752D1DF0", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15810380744332389?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Fri, 07 Feb 2020 01:14:38 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "190", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "300862A0-7911-4987-AF67-DE0A752D1DF0", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogeyJtZXNzYWdlVGltZXRva2VuIjogIjE1ODEwMzgwNzQ0MzMyMzg5IiwgInR5cGUiOiAicmVjZWlwdCIsICJ1dWlkIjogIlNlcmhpaSIsICJ2YWx1ZSI6ICJ2YWx1ZTIiLCAiYWN0aW9uVGltZXRva2VuIjogIjE1ODEwMzgwNzg2NzcwMzMwIn19" + }, + "type" : 2 + }, + { + "id" : "300862A0-7911-4987-AF67-DE0A752D1DF0", + "type" : 4 + }, + { + "id" : "EF645DF1-9480-4CE4-BB1A-46AAE44E3779", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "48", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ0eXBlIjoiY3VzdG9tIiwidmFsdWUiOiJ2YWx1ZTMifQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15810380744332389?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "EF645DF1-9480-4CE4-BB1A-46AAE44E3779", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15810380744332389?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Fri, 07 Feb 2020 01:14:39 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "189", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "EF645DF1-9480-4CE4-BB1A-46AAE44E3779", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogeyJtZXNzYWdlVGltZXRva2VuIjogIjE1ODEwMzgwNzQ0MzMyMzg5IiwgInR5cGUiOiAiY3VzdG9tIiwgInV1aWQiOiAiU2VyaGlpIiwgInZhbHVlIjogInZhbHVlMyIsICJhY3Rpb25UaW1ldG9rZW4iOiAiMTU4MTAzODA3OTMxNjI4NDAifX0=" + }, + "type" : 2 + }, + { + "id" : "EF645DF1-9480-4CE4-BB1A-46AAE44E3779", + "type" : 4 + }, + { + "id" : "EF1B3949-1584-49B2-83E0-C62780767D85", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "50", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ0eXBlIjoicmVhY3Rpb24iLCJ2YWx1ZSI6InZhbHVlNCJ9" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15810380744332389?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "EF1B3949-1584-49B2-83E0-C62780767D85", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15810380744332389?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Fri, 07 Feb 2020 01:14:40 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "191", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "EF1B3949-1584-49B2-83E0-C62780767D85", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogeyJtZXNzYWdlVGltZXRva2VuIjogIjE1ODEwMzgwNzQ0MzMyMzg5IiwgInR5cGUiOiAicmVhY3Rpb24iLCAidXVpZCI6ICJTZXJoaWkiLCAidmFsdWUiOiAidmFsdWU0IiwgImFjdGlvblRpbWV0b2tlbiI6ICIxNTgxMDM4MDc5OTUwMzIwMCJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "EF1B3949-1584-49B2-83E0-C62780767D85", + "type" : 4 + }, + { + "id" : "6D2C2A32-D5D6-4079-B8EC-2FF99139B6E6", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "49", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ0eXBlIjoicmVjZWlwdCIsInZhbHVlIjoidmFsdWU1In0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15810380744332389?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "6D2C2A32-D5D6-4079-B8EC-2FF99139B6E6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15810380744332389?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Fri, 07 Feb 2020 01:14:40 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "190", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "6D2C2A32-D5D6-4079-B8EC-2FF99139B6E6", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogeyJtZXNzYWdlVGltZXRva2VuIjogIjE1ODEwMzgwNzQ0MzMyMzg5IiwgInR5cGUiOiAicmVjZWlwdCIsICJ1dWlkIjogIlNlcmhpaSIsICJ2YWx1ZSI6ICJ2YWx1ZTUiLCAiYWN0aW9uVGltZXRva2VuIjogIjE1ODEwMzgwODA1Nzc1ODEwIn19" + }, + "type" : 2 + }, + { + "id" : "6D2C2A32-D5D6-4079-B8EC-2FF99139B6E6", + "type" : 4 + }, + { + "id" : "5580D044-4591-4920-A6D9-219C9BE018B9", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "49", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ0eXBlIjoicmVjZWlwdCIsInZhbHVlIjoidmFsdWUyIn0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15810380750313676?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "5580D044-4591-4920-A6D9-219C9BE018B9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15810380750313676?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Fri, 07 Feb 2020 01:14:41 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "190", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "5580D044-4591-4920-A6D9-219C9BE018B9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogeyJtZXNzYWdlVGltZXRva2VuIjogIjE1ODEwMzgwNzUwMzEzNjc2IiwgInR5cGUiOiAicmVjZWlwdCIsICJ1dWlkIjogIlNlcmhpaSIsICJ2YWx1ZSI6ICJ2YWx1ZTIiLCAiYWN0aW9uVGltZXRva2VuIjogIjE1ODEwMzgwODEyMTY5ODkwIn19" + }, + "type" : 2 + }, + { + "id" : "5580D044-4591-4920-A6D9-219C9BE018B9", + "type" : 4 + }, + { + "id" : "9F116AAA-9059-4917-9164-F320AEC6904B", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "48", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ0eXBlIjoiY3VzdG9tIiwidmFsdWUiOiJ2YWx1ZTMifQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15810380750313676?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9F116AAA-9059-4917-9164-F320AEC6904B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15810380750313676?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Fri, 07 Feb 2020 01:14:41 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "189", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9F116AAA-9059-4917-9164-F320AEC6904B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogeyJtZXNzYWdlVGltZXRva2VuIjogIjE1ODEwMzgwNzUwMzEzNjc2IiwgInR5cGUiOiAiY3VzdG9tIiwgInV1aWQiOiAiU2VyaGlpIiwgInZhbHVlIjogInZhbHVlMyIsICJhY3Rpb25UaW1ldG9rZW4iOiAiMTU4MTAzODA4MTg2NTkzNjAifX0=" + }, + "type" : 2 + }, + { + "id" : "9F116AAA-9059-4917-9164-F320AEC6904B", + "type" : 4 + }, + { + "id" : "252F0D64-5D0F-4F9D-9EF0-85B59AD956ED", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "50", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ0eXBlIjoicmVhY3Rpb24iLCJ2YWx1ZSI6InZhbHVlNCJ9" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15810380750313676?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "252F0D64-5D0F-4F9D-9EF0-85B59AD956ED", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15810380750313676?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Fri, 07 Feb 2020 01:14:42 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "191", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "252F0D64-5D0F-4F9D-9EF0-85B59AD956ED", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogeyJtZXNzYWdlVGltZXRva2VuIjogIjE1ODEwMzgwNzUwMzEzNjc2IiwgInR5cGUiOiAicmVhY3Rpb24iLCAidXVpZCI6ICJTZXJoaWkiLCAidmFsdWUiOiAidmFsdWU0IiwgImFjdGlvblRpbWV0b2tlbiI6ICIxNTgxMDM4MDgyNTAzODE5MCJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "252F0D64-5D0F-4F9D-9EF0-85B59AD956ED", + "type" : 4 + }, + { + "id" : "45D0DEDD-CA46-4376-9C2A-A52ECC7B4B35", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "49", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ0eXBlIjoicmVjZWlwdCIsInZhbHVlIjoidmFsdWU1In0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15810380750313676?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "45D0DEDD-CA46-4376-9C2A-A52ECC7B4B35", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15810380750313676?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Fri, 07 Feb 2020 01:14:43 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "190", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "45D0DEDD-CA46-4376-9C2A-A52ECC7B4B35", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogeyJtZXNzYWdlVGltZXRva2VuIjogIjE1ODEwMzgwNzUwMzEzNjc2IiwgInR5cGUiOiAicmVjZWlwdCIsICJ1dWlkIjogIlNlcmhpaSIsICJ2YWx1ZSI6ICJ2YWx1ZTUiLCAiYWN0aW9uVGltZXRva2VuIjogIjE1ODEwMzgwODMzNjkwNTYwIn19" + }, + "type" : 2 + }, + { + "id" : "45D0DEDD-CA46-4376-9C2A-A52ECC7B4B35", + "type" : 4 + }, + { + "id" : "B4BA1340-D1B4-42A6-BF70-209AD73A0690", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history-with-actions\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B4BA1340-D1B4-42A6-BF70-209AD73A0690", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history-with-actions\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Connection" : "keep-alive", + "Date" : "Fri, 07 Feb 2020 01:14:47 GMT", + "Content-Encoding" : "gzip", + "Cache-Control" : "no-cache", + "Transfer-Encoding" : "Identity" + } + }, + "type" : 1 + }, + { + "id" : "B4BA1340-D1B4-42A6-BF70-209AD73A0690", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJjaGFubmVscyI6IHsidGVzdC1jaGFubmVsIjogW3sibWVzc2FnZSI6IHsibWVzc2FnZUlkeCI6ICJtZXNzYWdlOiAwIiwgInRpbWUiOiAxNTc3OTE4NDEyfSwgInRpbWV0b2tlbiI6ICIxNTgxMDM4MDc0NDMzMjM4OSIsICJhY3Rpb25zIjogeyJyZWFjdGlvbiI6IHsidmFsdWU0IjogW3sidXVpZCI6ICJTZXJoaWkiLCAiYWN0aW9uVGltZXRva2VuIjogIjE1ODEwMzgwNzk5NTAzMjAwIn1dfSwgInJlY2VpcHQiOiB7InZhbHVlMiI6IFt7InV1aWQiOiAiU2VyaGlpIiwgImFjdGlvblRpbWV0b2tlbiI6ICIxNTgxMDM4MDc4Njc3MDMzMCJ9XSwgInZhbHVlNSI6IFt7InV1aWQiOiAiU2VyaGlpIiwgImFjdGlvblRpbWV0b2tlbiI6ICIxNTgxMDM4MDgwNTc3NTgxMCJ9XX0sICJjdXN0b20iOiB7InZhbHVlMyI6IFt7InV1aWQiOiAiU2VyaGlpIiwgImFjdGlvblRpbWV0b2tlbiI6ICIxNTgxMDM4MDc5MzE2Mjg0MCJ9XX19fSwgeyJtZXNzYWdlIjogeyJtZXNzYWdlSWR4IjogIm1lc3NhZ2U6IDEiLCAidGltZSI6IDE1Nzc5MTg0MTN9LCAidGltZXRva2VuIjogIjE1ODEwMzgwNzUwMzEzNjc2IiwgImFjdGlvbnMiOiB7InJlYWN0aW9uIjogeyJ2YWx1ZTQiOiBbeyJ1dWlkIjogIlNlcmhpaSIsICJhY3Rpb25UaW1ldG9rZW4iOiAiMTU4MTAzODA4MjUwMzgxOTAifV19LCAicmVjZWlwdCI6IHsidmFsdWUyIjogW3sidXVpZCI6ICJTZXJoaWkiLCAiYWN0aW9uVGltZXRva2VuIjogIjE1ODEwMzgwODEyMTY5ODkwIn1dLCAidmFsdWU1IjogW3sidXVpZCI6ICJTZXJoaWkiLCAiYWN0aW9uVGltZXRva2VuIjogIjE1ODEwMzgwODMzNjkwNTYwIn1dfSwgImN1c3RvbSI6IHsidmFsdWUzIjogW3sidXVpZCI6ICJTZXJoaWkiLCAiYWN0aW9uVGltZXRva2VuIjogIjE1ODEwMzgwODE4NjU5MzYwIn1dfX19XX0sICJlcnJvcl9tZXNzYWdlIjogIiIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "B4BA1340-D1B4-42A6-BF70-209AD73A0690", + "type" : 4 + }, + { + "id" : "DD58BE93-8DB9-483D-9D10-ED22DA931533", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "DD58BE93-8DB9-483D-9D10-ED22DA931533", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Fri, 07 Feb 2020 01:14:47 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "52", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "DD58BE93-8DB9-483D-9D10-ED22DA931533", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJlcnJvciI6IGZhbHNlLCAiZXJyb3JfbWVzc2FnZSI6ICIifQ==" + }, + "type" : 2 + }, + { + "id" : "DD58BE93-8DB9-483D-9D10-ED22DA931533", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchHistoryForChannelWithEncryptedMessagesAndDecrypt.json b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchHistoryForChannelWithEncryptedMessagesAndDecrypt.json new file mode 100644 index 000000000..19dfb541c --- /dev/null +++ b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchHistoryForChannelWithEncryptedMessagesAndDecrypt.json @@ -0,0 +1,314 @@ +[ + { + "id" : "33C8FADB-0E72-49A9-AFC9-25678245916C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22z+B2MpQJ7ri4gAOIFdNBFU1BE127LyyL0MVTE9pfJlCu4sDLpC87FvEQjGAk3Hl+%22?meta=%7B%22time%22:1577918412%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "33C8FADB-0E72-49A9-AFC9-25678245916C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22z+B2MpQJ7ri4gAOIFdNBFU1BE127LyyL0MVTE9pfJlCu4sDLpC87FvEQjGAk3Hl+%22?uuid=Serhii&meta=%7B%22time%22:1577918412%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:08:57 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "33C8FADB-0E72-49A9-AFC9-25678245916C", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MzM3MjgxMjg0OSJd" + }, + "type" : 2 + }, + { + "id" : "33C8FADB-0E72-49A9-AFC9-25678245916C", + "type" : 4 + }, + { + "id" : "B3D8FEFF-AF4C-4005-8F45-A42A66076D4C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22z+B2MpQJ7ri4gAOIFdNBFT+DtesWEPfNq1tLjm+7k2Sn4\/teQlTqjYfaTOoRbRFW%22?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "B3D8FEFF-AF4C-4005-8F45-A42A66076D4C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22z+B2MpQJ7ri4gAOIFdNBFT+DtesWEPfNq1tLjm+7k2Sn4\/teQlTqjYfaTOoRbRFW%22?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:08:57 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B3D8FEFF-AF4C-4005-8F45-A42A66076D4C", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MzM3ODQwNzI3NyJd" + }, + "type" : 2 + }, + { + "id" : "B3D8FEFF-AF4C-4005-8F45-A42A66076D4C", + "type" : 4 + }, + { + "id" : "F75936BD-8733-4D89-A4B0-E1FA4BF9708E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22z+B2MpQJ7ri4gAOIFdNBFfiXTRlO\/N\/KSRO8BFTB0J8zlClpBZDVf94+klPiuFxK%22?meta=%7B%22time%22:1577918414%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "F75936BD-8733-4D89-A4B0-E1FA4BF9708E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22z+B2MpQJ7ri4gAOIFdNBFfiXTRlO\/N\/KSRO8BFTB0J8zlClpBZDVf94+klPiuFxK%22?uuid=Serhii&meta=%7B%22time%22:1577918414%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:08:58 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F75936BD-8733-4D89-A4B0-E1FA4BF9708E", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MzM4NDA3OTc3MiJd" + }, + "type" : 2 + }, + { + "id" : "F75936BD-8733-4D89-A4B0-E1FA4BF9708E", + "type" : 4 + }, + { + "id" : "76E08C79-6BB0-40B6-9851-9B019B178B0E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22z+B2MpQJ7ri4gAOIFdNBFSebUNbHSxAy3NB1UerqW9PdFPQMgZIooB9P814XfP\/Q%22?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "76E08C79-6BB0-40B6-9851-9B019B178B0E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22z+B2MpQJ7ri4gAOIFdNBFSebUNbHSxAy3NB1UerqW9PdFPQMgZIooB9P814XfP\/Q%22?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:08:58 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "76E08C79-6BB0-40B6-9851-9B019B178B0E", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MzM4OTgzMTMyOCJd" + }, + "type" : 2 + }, + { + "id" : "76E08C79-6BB0-40B6-9851-9B019B178B0E", + "type" : 4 + }, + { + "id" : "823AA5C3-9E9C-420C-BBCC-1B2121086A34", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?include_meta=1&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "823AA5C3-9E9C-420C-BBCC-1B2121086A34", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?include_meta=1&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:09:02 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "429", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "823AA5C3-9E9C-420C-BBCC-1B2121086A34", + "data" : { + "cls" : "NSData", + "base64" : "W1t7Im1lc3NhZ2UiOiJ6K0IyTXBRSjdyaTRnQU9JRmROQkZVMUJFMTI3THl5TDBNVlRFOXBmSmxDdTRzRExwQzg3RnZFUWpHQWszSGwrIiwibWV0YSI6eyJ0aW1lIjoxNTc3OTE4NDEyfX0seyJtZXNzYWdlIjoieitCMk1wUUo3cmk0Z0FPSUZkTkJGVCtEdGVzV0VQZk5xMXRMam0rN2syU240L3RlUWxUcWpZZmFUT29SYlJGVyIsIm1ldGEiOiIifSx7Im1lc3NhZ2UiOiJ6K0IyTXBRSjdyaTRnQU9JRmROQkZmaVhUUmxPL04vS1NSTzhCRlRCMEo4emxDbHBCWkRWZjk0K2tsUGl1RnhLIiwibWV0YSI6eyJ0aW1lIjoxNTc3OTE4NDE0fX0seyJtZXNzYWdlIjoieitCMk1wUUo3cmk0Z0FPSUZkTkJGU2ViVU5iSFN4QXkzTkIxVWVycVc5UGRGUFFNZ1pJb29COVA4MTRYZlAvUSIsIm1ldGEiOiIifV0sMTU3ODI2OTMzNzI4MTI4NDksMTU3ODI2OTMzODk4MzEzMjhd" + }, + "type" : 2 + }, + { + "id" : "823AA5C3-9E9C-420C-BBCC-1B2121086A34", + "type" : 4 + }, + { + "id" : "E32B24DA-8184-49CE-A875-7F32EBD824EE", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E32B24DA-8184-49CE-A875-7F32EBD824EE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:09:02 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "52", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E32B24DA-8184-49CE-A875-7F32EBD824EE", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJlcnJvciI6IGZhbHNlLCAiZXJyb3JfbWVzc2FnZSI6ICIifQ==" + }, + "type" : 2 + }, + { + "id" : "E32B24DA-8184-49CE-A875-7F32EBD824EE", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchHistoryForChannelWithEncryptedMessagesAndFailToDecryptWhenDifferentCipherKeyIsSet.json b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchHistoryForChannelWithEncryptedMessagesAndFailToDecryptWhenDifferentCipherKeyIsSet.json new file mode 100644 index 000000000..c2d8d9837 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchHistoryForChannelWithEncryptedMessagesAndFailToDecryptWhenDifferentCipherKeyIsSet.json @@ -0,0 +1,314 @@ +[ + { + "id" : "019C43C2-EE87-49E7-974F-EBB6A094284A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22z+B2MpQJ7ri4gAOIFdNBFU1BE127LyyL0MVTE9pfJlCu4sDLpC87FvEQjGAk3Hl+%22?meta=%7B%22time%22:1577918412%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "019C43C2-EE87-49E7-974F-EBB6A094284A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22z+B2MpQJ7ri4gAOIFdNBFU1BE127LyyL0MVTE9pfJlCu4sDLpC87FvEQjGAk3Hl+%22?uuid=Serhii&meta=%7B%22time%22:1577918412%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:09:06 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "019C43C2-EE87-49E7-974F-EBB6A094284A", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MzQ2NTI0MjUxOSJd" + }, + "type" : 2 + }, + { + "id" : "019C43C2-EE87-49E7-974F-EBB6A094284A", + "type" : 4 + }, + { + "id" : "FF640CC9-01E6-4E47-932B-D3DAA7297BEC", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22z+B2MpQJ7ri4gAOIFdNBFT+DtesWEPfNq1tLjm+7k2Sn4\/teQlTqjYfaTOoRbRFW%22?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "FF640CC9-01E6-4E47-932B-D3DAA7297BEC", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22z+B2MpQJ7ri4gAOIFdNBFT+DtesWEPfNq1tLjm+7k2Sn4\/teQlTqjYfaTOoRbRFW%22?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:09:07 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "FF640CC9-01E6-4E47-932B-D3DAA7297BEC", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MzQ3MTMxNjEwMCJd" + }, + "type" : 2 + }, + { + "id" : "FF640CC9-01E6-4E47-932B-D3DAA7297BEC", + "type" : 4 + }, + { + "id" : "697564FC-DAEF-43FA-BC2A-F045D0014926", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22z+B2MpQJ7ri4gAOIFdNBFfiXTRlO\/N\/KSRO8BFTB0J8zlClpBZDVf94+klPiuFxK%22?meta=%7B%22time%22:1577918414%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "697564FC-DAEF-43FA-BC2A-F045D0014926", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22z+B2MpQJ7ri4gAOIFdNBFfiXTRlO\/N\/KSRO8BFTB0J8zlClpBZDVf94+klPiuFxK%22?uuid=Serhii&meta=%7B%22time%22:1577918414%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:09:07 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "697564FC-DAEF-43FA-BC2A-F045D0014926", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MzQ3Njk4NzAyOCJd" + }, + "type" : 2 + }, + { + "id" : "697564FC-DAEF-43FA-BC2A-F045D0014926", + "type" : 4 + }, + { + "id" : "AE186688-CA85-4B85-BAD7-E7F46535BD96", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22z+B2MpQJ7ri4gAOIFdNBFSebUNbHSxAy3NB1UerqW9PdFPQMgZIooB9P814XfP\/Q%22?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "AE186688-CA85-4B85-BAD7-E7F46535BD96", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22z+B2MpQJ7ri4gAOIFdNBFSebUNbHSxAy3NB1UerqW9PdFPQMgZIooB9P814XfP\/Q%22?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:09:08 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "AE186688-CA85-4B85-BAD7-E7F46535BD96", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MzQ4MjY4ODE1NSJd" + }, + "type" : 2 + }, + { + "id" : "AE186688-CA85-4B85-BAD7-E7F46535BD96", + "type" : 4 + }, + { + "id" : "EB1AD70A-674D-49C5-84D9-85338244A77E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history-with-actions\/sub-key\/demo\/channel\/test-channel?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "EB1AD70A-674D-49C5-84D9-85338244A77E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history-with-actions\/sub-key\/demo\/channel\/test-channel?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:09:12 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "558", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "EB1AD70A-674D-49C5-84D9-85338244A77E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJjaGFubmVscyI6IHsidGVzdC1jaGFubmVsIjogW3sibWVzc2FnZSI6ICJ6K0IyTXBRSjdyaTRnQU9JRmROQkZVMUJFMTI3THl5TDBNVlRFOXBmSmxDdTRzRExwQzg3RnZFUWpHQWszSGwrIiwgInRpbWV0b2tlbiI6ICIxNTc4MjY5MzQ2NTI0MjUxOSJ9LCB7Im1lc3NhZ2UiOiAieitCMk1wUUo3cmk0Z0FPSUZkTkJGVCtEdGVzV0VQZk5xMXRMam0rN2syU240L3RlUWxUcWpZZmFUT29SYlJGVyIsICJ0aW1ldG9rZW4iOiAiMTU3ODI2OTM0NzEzMTYxMDAifSwgeyJtZXNzYWdlIjogInorQjJNcFFKN3JpNGdBT0lGZE5CRmZpWFRSbE8vTi9LU1JPOEJGVEIwSjh6bENscEJaRFZmOTQra2xQaXVGeEsiLCAidGltZXRva2VuIjogIjE1NzgyNjkzNDc2OTg3MDI4In0sIHsibWVzc2FnZSI6ICJ6K0IyTXBRSjdyaTRnQU9JRmROQkZTZWJVTmJIU3hBeTNOQjFVZXJxVzlQZEZQUU1nWklvb0I5UDgxNFhmUC9RIiwgInRpbWV0b2tlbiI6ICIxNTc4MjY5MzQ4MjY4ODE1NSJ9XX0sICJlcnJvcl9tZXNzYWdlIjogIiIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "EB1AD70A-674D-49C5-84D9-85338244A77E", + "type" : 4 + }, + { + "id" : "8F74B848-4F98-4B63-B3A4-14955B28C5EE", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "8F74B848-4F98-4B63-B3A4-14955B28C5EE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:09:12 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "52", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "8F74B848-4F98-4B63-B3A4-14955B28C5EE", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJlcnJvciI6IGZhbHNlLCAiZXJyb3JfbWVzc2FnZSI6ICIifQ==" + }, + "type" : 2 + }, + { + "id" : "8F74B848-4F98-4B63-B3A4-14955B28C5EE", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchHistoryForChannelWithMetadataWhenFlagIsSet.json b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchHistoryForChannelWithMetadataWhenFlagIsSet.json new file mode 100644 index 000000000..a794e55be --- /dev/null +++ b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchHistoryForChannelWithMetadataWhenFlagIsSet.json @@ -0,0 +1,314 @@ +[ + { + "id" : "68294DD8-5C9B-4E5F-8A5E-1125E2FCBB89", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?meta=%7B%22time%22:1577918412%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "68294DD8-5C9B-4E5F-8A5E-1125E2FCBB89", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?uuid=Serhii&meta=%7B%22time%22:1577918412%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:09:15 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "68294DD8-5C9B-4E5F-8A5E-1125E2FCBB89", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MzU1OTgzMTMyOSJd" + }, + "type" : 2 + }, + { + "id" : "68294DD8-5C9B-4E5F-8A5E-1125E2FCBB89", + "type" : 4 + }, + { + "id" : "DCC6C545-9D06-47DB-8D9B-50DBAAE47B20", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "DCC6C545-9D06-47DB-8D9B-50DBAAE47B20", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:09:16 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "DCC6C545-9D06-47DB-8D9B-50DBAAE47B20", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MzU2NTQ5MzQxNyJd" + }, + "type" : 2 + }, + { + "id" : "DCC6C545-9D06-47DB-8D9B-50DBAAE47B20", + "type" : 4 + }, + { + "id" : "FB02567E-8172-4799-9994-85E059840D69", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?meta=%7B%22time%22:1577918414%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "FB02567E-8172-4799-9994-85E059840D69", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?uuid=Serhii&meta=%7B%22time%22:1577918414%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:09:17 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "FB02567E-8172-4799-9994-85E059840D69", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MzU3MTEwNzc2MiJd" + }, + "type" : 2 + }, + { + "id" : "FB02567E-8172-4799-9994-85E059840D69", + "type" : 4 + }, + { + "id" : "2D00D12E-9414-40CE-87DB-7B347E91FDA9", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "2D00D12E-9414-40CE-87DB-7B347E91FDA9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:09:17 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "2D00D12E-9414-40CE-87DB-7B347E91FDA9", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MzU3Njc0NjE5MyJd" + }, + "type" : 2 + }, + { + "id" : "2D00D12E-9414-40CE-87DB-7B347E91FDA9", + "type" : 4 + }, + { + "id" : "3E4105F5-90EA-4051-B047-F682E4A44D4E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?include_meta=1&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3E4105F5-90EA-4051-B047-F682E4A44D4E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?include_meta=1&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:09:21 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "345", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "3E4105F5-90EA-4051-B047-F682E4A44D4E", + "data" : { + "cls" : "NSData", + "base64" : "W1t7Im1lc3NhZ2UiOnsibWVzc2FnZUlkeCI6Im1lc3NhZ2U6IDAiLCJ0aW1lIjoxNTc3OTE4NDEyfSwibWV0YSI6eyJ0aW1lIjoxNTc3OTE4NDEyfX0seyJtZXNzYWdlIjp7Im1lc3NhZ2VJZHgiOiJtZXNzYWdlOiAxIiwidGltZSI6MTU3NzkxODQxM30sIm1ldGEiOiIifSx7Im1lc3NhZ2UiOnsibWVzc2FnZUlkeCI6Im1lc3NhZ2U6IDIiLCJ0aW1lIjoxNTc3OTE4NDE0fSwibWV0YSI6eyJ0aW1lIjoxNTc3OTE4NDE0fX0seyJtZXNzYWdlIjp7Im1lc3NhZ2VJZHgiOiJtZXNzYWdlOiAzIiwidGltZSI6MTU3NzkxODQxNX0sIm1ldGEiOiIifV0sMTU3ODI2OTM1NTk4MzEzMjksMTU3ODI2OTM1NzY3NDYxOTNd" + }, + "type" : 2 + }, + { + "id" : "3E4105F5-90EA-4051-B047-F682E4A44D4E", + "type" : 4 + }, + { + "id" : "6F35700A-44FB-45B9-871C-378BEB987891", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "6F35700A-44FB-45B9-871C-378BEB987891", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:09:21 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "52", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "6F35700A-44FB-45B9-871C-378BEB987891", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJlcnJvciI6IGZhbHNlLCAiZXJyb3JfbWVzc2FnZSI6ICIifQ==" + }, + "type" : 2 + }, + { + "id" : "6F35700A-44FB-45B9-871C-378BEB987891", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchHistoryForChannelWithTimetokenWhenFlagItSet.json b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchHistoryForChannelWithTimetokenWhenFlagItSet.json new file mode 100644 index 000000000..89c020166 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchHistoryForChannelWithTimetokenWhenFlagItSet.json @@ -0,0 +1,314 @@ +[ + { + "id" : "7FDCA4C4-49E6-47CE-A46F-E833107E70A8", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?meta=%7B%22time%22:1577918412%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "7FDCA4C4-49E6-47CE-A46F-E833107E70A8", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?uuid=Serhii&meta=%7B%22time%22:1577918412%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:09:25 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "7FDCA4C4-49E6-47CE-A46F-E833107E70A8", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MzY1MjEwNzA4OSJd" + }, + "type" : 2 + }, + { + "id" : "7FDCA4C4-49E6-47CE-A46F-E833107E70A8", + "type" : 4 + }, + { + "id" : "9C680673-E892-4BB4-B6BC-C679A7E0C175", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "9C680673-E892-4BB4-B6BC-C679A7E0C175", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:09:25 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9C680673-E892-4BB4-B6BC-C679A7E0C175", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MzY1Nzc5NDUxMCJd" + }, + "type" : 2 + }, + { + "id" : "9C680673-E892-4BB4-B6BC-C679A7E0C175", + "type" : 4 + }, + { + "id" : "B4264925-7827-44A6-B941-8C946FED3953", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?meta=%7B%22time%22:1577918414%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "B4264925-7827-44A6-B941-8C946FED3953", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?uuid=Serhii&meta=%7B%22time%22:1577918414%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:09:26 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B4264925-7827-44A6-B941-8C946FED3953", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MzY2MzUwNTQ4NyJd" + }, + "type" : 2 + }, + { + "id" : "B4264925-7827-44A6-B941-8C946FED3953", + "type" : 4 + }, + { + "id" : "D691BA49-9376-47A3-9EE9-8CB047B93788", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "D691BA49-9376-47A3-9EE9-8CB047B93788", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:09:26 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D691BA49-9376-47A3-9EE9-8CB047B93788", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MzY2OTE0Mjc4OCJd" + }, + "type" : 2 + }, + { + "id" : "D691BA49-9376-47A3-9EE9-8CB047B93788", + "type" : 4 + }, + { + "id" : "9A4E98FA-C79C-41D2-9ABF-83129E9CDDBA", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?count=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&include_token=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "9A4E98FA-C79C-41D2-9ABF-83129E9CDDBA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?count=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&include_token=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:09:30 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "391", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9A4E98FA-C79C-41D2-9ABF-83129E9CDDBA", + "data" : { + "cls" : "NSData", + "base64" : "W1t7Im1lc3NhZ2UiOnsibWVzc2FnZUlkeCI6Im1lc3NhZ2U6IDAiLCJ0aW1lIjoxNTc3OTE4NDEyfSwidGltZXRva2VuIjoxNTc4MjY5MzY1MjEwNzA4OX0seyJtZXNzYWdlIjp7Im1lc3NhZ2VJZHgiOiJtZXNzYWdlOiAxIiwidGltZSI6MTU3NzkxODQxM30sInRpbWV0b2tlbiI6MTU3ODI2OTM2NTc3OTQ1MTB9LHsibWVzc2FnZSI6eyJtZXNzYWdlSWR4IjoibWVzc2FnZTogMiIsInRpbWUiOjE1Nzc5MTg0MTR9LCJ0aW1ldG9rZW4iOjE1NzgyNjkzNjYzNTA1NDg3fSx7Im1lc3NhZ2UiOnsibWVzc2FnZUlkeCI6Im1lc3NhZ2U6IDMiLCJ0aW1lIjoxNTc3OTE4NDE1fSwidGltZXRva2VuIjoxNTc4MjY5MzY2OTE0Mjc4OH1dLDE1NzgyNjkzNjUyMTA3MDg5LDE1NzgyNjkzNjY5MTQyNzg4XQ==" + }, + "type" : 2 + }, + { + "id" : "9A4E98FA-C79C-41D2-9ABF-83129E9CDDBA", + "type" : 4 + }, + { + "id" : "9D9D5450-E307-4342-B37C-B905C10E079B", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9D9D5450-E307-4342-B37C-B905C10E079B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:09:30 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "52", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9D9D5450-E307-4342-B37C-B905C10E079B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJlcnJvciI6IGZhbHNlLCAiZXJyb3JfbWVzc2FnZSI6ICIifQ==" + }, + "type" : 2 + }, + { + "id" : "9D9D5450-E307-4342-B37C-B905C10E079B", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchHistoryWithActionsUsingBuilderPatternInterface.json b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchHistoryWithActionsUsingBuilderPatternInterface.json new file mode 100644 index 000000000..819c0098b --- /dev/null +++ b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchHistoryWithActionsUsingBuilderPatternInterface.json @@ -0,0 +1,692 @@ +[ + { + "id" : "B6912AA3-CE35-48FE-B633-49B93B25D750", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?meta=%7B%22time%22:1577918412%7D&uuid=Serhii&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B6912AA3-CE35-48FE-B633-49B93B25D750", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&meta=%7B%22time%22:1577918412%7D&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 01:12:42 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B6912AA3-CE35-48FE-B633-49B93B25D750", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTgxMDM3OTYyNjA0MjI1MiJd" + }, + "type" : 2 + }, + { + "id" : "B6912AA3-CE35-48FE-B633-49B93B25D750", + "type" : 4 + }, + { + "id" : "6A630111-1B6A-4AB4-821D-DE8D4AEA2F7F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?uuid=Serhii&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "6A630111-1B6A-4AB4-821D-DE8D4AEA2F7F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 01:12:43 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "6A630111-1B6A-4AB4-821D-DE8D4AEA2F7F", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTgxMDM3OTYzMTY1MzQ3OSJd" + }, + "type" : 2 + }, + { + "id" : "6A630111-1B6A-4AB4-821D-DE8D4AEA2F7F", + "type" : 4 + }, + { + "id" : "4F22FB80-4026-4D3C-AF21-93EB68420062", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "49", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ0eXBlIjoicmVjZWlwdCIsInZhbHVlIjoidmFsdWUyIn0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15810379626042252?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "4F22FB80-4026-4D3C-AF21-93EB68420062", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15810379626042252?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Fri, 07 Feb 2020 01:12:46 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "190", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "4F22FB80-4026-4D3C-AF21-93EB68420062", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogeyJtZXNzYWdlVGltZXRva2VuIjogIjE1ODEwMzc5NjI2MDQyMjUyIiwgInR5cGUiOiAicmVjZWlwdCIsICJ1dWlkIjogIlNlcmhpaSIsICJ2YWx1ZSI6ICJ2YWx1ZTIiLCAiYWN0aW9uVGltZXRva2VuIjogIjE1ODEwMzc5NjY4MDAzOTYwIn19" + }, + "type" : 2 + }, + { + "id" : "4F22FB80-4026-4D3C-AF21-93EB68420062", + "type" : 4 + }, + { + "id" : "CA074CE6-1D50-47AB-A699-BBC60B6A18E4", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "48", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ0eXBlIjoiY3VzdG9tIiwidmFsdWUiOiJ2YWx1ZTMifQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15810379626042252?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "CA074CE6-1D50-47AB-A699-BBC60B6A18E4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15810379626042252?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Fri, 07 Feb 2020 01:12:47 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "189", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "CA074CE6-1D50-47AB-A699-BBC60B6A18E4", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogeyJtZXNzYWdlVGltZXRva2VuIjogIjE1ODEwMzc5NjI2MDQyMjUyIiwgInR5cGUiOiAiY3VzdG9tIiwgInV1aWQiOiAiU2VyaGlpIiwgInZhbHVlIjogInZhbHVlMyIsICJhY3Rpb25UaW1ldG9rZW4iOiAiMTU4MTAzNzk2NzQ1MzQ5MjAifX0=" + }, + "type" : 2 + }, + { + "id" : "CA074CE6-1D50-47AB-A699-BBC60B6A18E4", + "type" : 4 + }, + { + "id" : "F8EDD9E9-CFE4-4A40-B47A-2912CE684904", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "50", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ0eXBlIjoicmVhY3Rpb24iLCJ2YWx1ZSI6InZhbHVlNCJ9" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15810379626042252?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F8EDD9E9-CFE4-4A40-B47A-2912CE684904", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15810379626042252?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Fri, 07 Feb 2020 01:12:48 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "191", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F8EDD9E9-CFE4-4A40-B47A-2912CE684904", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogeyJtZXNzYWdlVGltZXRva2VuIjogIjE1ODEwMzc5NjI2MDQyMjUyIiwgInR5cGUiOiAicmVhY3Rpb24iLCAidXVpZCI6ICJTZXJoaWkiLCAidmFsdWUiOiAidmFsdWU0IiwgImFjdGlvblRpbWV0b2tlbiI6ICIxNTgxMDM3OTY4MDk1MDY3MCJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "F8EDD9E9-CFE4-4A40-B47A-2912CE684904", + "type" : 4 + }, + { + "id" : "9B38E897-20E8-41BA-ADF3-100FB09162BE", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "49", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ0eXBlIjoicmVjZWlwdCIsInZhbHVlIjoidmFsdWU1In0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15810379626042252?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9B38E897-20E8-41BA-ADF3-100FB09162BE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15810379626042252?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Fri, 07 Feb 2020 01:12:48 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "190", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9B38E897-20E8-41BA-ADF3-100FB09162BE", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogeyJtZXNzYWdlVGltZXRva2VuIjogIjE1ODEwMzc5NjI2MDQyMjUyIiwgInR5cGUiOiAicmVjZWlwdCIsICJ1dWlkIjogIlNlcmhpaSIsICJ2YWx1ZSI6ICJ2YWx1ZTUiLCAiYWN0aW9uVGltZXRva2VuIjogIjE1ODEwMzc5Njg3Mzc1MzkwIn19" + }, + "type" : 2 + }, + { + "id" : "9B38E897-20E8-41BA-ADF3-100FB09162BE", + "type" : 4 + }, + { + "id" : "662EF545-0430-437D-A9BF-588A8C1EA2CD", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "49", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ0eXBlIjoicmVjZWlwdCIsInZhbHVlIjoidmFsdWUyIn0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15810379631653479?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "662EF545-0430-437D-A9BF-588A8C1EA2CD", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15810379631653479?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Fri, 07 Feb 2020 01:12:49 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "190", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "662EF545-0430-437D-A9BF-588A8C1EA2CD", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogeyJtZXNzYWdlVGltZXRva2VuIjogIjE1ODEwMzc5NjMxNjUzNDc5IiwgInR5cGUiOiAicmVjZWlwdCIsICJ1dWlkIjogIlNlcmhpaSIsICJ2YWx1ZSI6ICJ2YWx1ZTIiLCAiYWN0aW9uVGltZXRva2VuIjogIjE1ODEwMzc5NjkzNzQ2MzgwIn19" + }, + "type" : 2 + }, + { + "id" : "662EF545-0430-437D-A9BF-588A8C1EA2CD", + "type" : 4 + }, + { + "id" : "1A5B7578-250A-447B-B299-A58F98564F62", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "48", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ0eXBlIjoiY3VzdG9tIiwidmFsdWUiOiJ2YWx1ZTMifQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15810379631653479?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1A5B7578-250A-447B-B299-A58F98564F62", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15810379631653479?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Fri, 07 Feb 2020 01:12:50 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "189", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "1A5B7578-250A-447B-B299-A58F98564F62", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogeyJtZXNzYWdlVGltZXRva2VuIjogIjE1ODEwMzc5NjMxNjUzNDc5IiwgInR5cGUiOiAiY3VzdG9tIiwgInV1aWQiOiAiU2VyaGlpIiwgInZhbHVlIjogInZhbHVlMyIsICJhY3Rpb25UaW1ldG9rZW4iOiAiMTU4MTAzNzk3MDAyMDA4ODAifX0=" + }, + "type" : 2 + }, + { + "id" : "1A5B7578-250A-447B-B299-A58F98564F62", + "type" : 4 + }, + { + "id" : "0D042EA9-09F3-4F11-9B58-D6AE1AC67837", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "50", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ0eXBlIjoicmVhY3Rpb24iLCJ2YWx1ZSI6InZhbHVlNCJ9" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15810379631653479?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "0D042EA9-09F3-4F11-9B58-D6AE1AC67837", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15810379631653479?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Fri, 07 Feb 2020 01:12:50 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "191", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "0D042EA9-09F3-4F11-9B58-D6AE1AC67837", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogeyJtZXNzYWdlVGltZXRva2VuIjogIjE1ODEwMzc5NjMxNjUzNDc5IiwgInR5cGUiOiAicmVhY3Rpb24iLCAidXVpZCI6ICJTZXJoaWkiLCAidmFsdWUiOiAidmFsdWU0IiwgImFjdGlvblRpbWV0b2tlbiI6ICIxNTgxMDM3OTcwNjYxNTg0MCJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "0D042EA9-09F3-4F11-9B58-D6AE1AC67837", + "type" : 4 + }, + { + "id" : "66503B01-1E63-4A56-B06B-6D409D232269", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "49", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ0eXBlIjoicmVjZWlwdCIsInZhbHVlIjoidmFsdWU1In0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15810379631653479?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "66503B01-1E63-4A56-B06B-6D409D232269", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15810379631653479?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Fri, 07 Feb 2020 01:12:51 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "190", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "66503B01-1E63-4A56-B06B-6D409D232269", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogeyJtZXNzYWdlVGltZXRva2VuIjogIjE1ODEwMzc5NjMxNjUzNDc5IiwgInR5cGUiOiAicmVjZWlwdCIsICJ1dWlkIjogIlNlcmhpaSIsICJ2YWx1ZSI6ICJ2YWx1ZTUiLCAiYWN0aW9uVGltZXRva2VuIjogIjE1ODEwMzc5NzEzMDI5NjIwIn19" + }, + "type" : 2 + }, + { + "id" : "66503B01-1E63-4A56-B06B-6D409D232269", + "type" : 4 + }, + { + "id" : "7C271514-9DFD-473D-8A67-B702FD6EF23E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history-with-actions\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&max=16&include_meta=1" + }, + "type" : 0 + }, + { + "id" : "7C271514-9DFD-473D-8A67-B702FD6EF23E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history-with-actions\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&max=16&include_meta=1", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Connection" : "keep-alive", + "Date" : "Fri, 07 Feb 2020 01:12:55 GMT", + "Content-Encoding" : "gzip", + "Cache-Control" : "no-cache", + "Transfer-Encoding" : "Identity" + } + }, + "type" : 1 + }, + { + "id" : "7C271514-9DFD-473D-8A67-B702FD6EF23E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJjaGFubmVscyI6IHsidGVzdC1jaGFubmVsIjogW3sibWVzc2FnZSI6IHsibWVzc2FnZUlkeCI6ICJtZXNzYWdlOiAwIiwgInRpbWUiOiAxNTc3OTE4NDEyfSwgInRpbWV0b2tlbiI6ICIxNTgxMDM3OTYyNjA0MjI1MiIsICJtZXRhIjogeyJ0aW1lIjogMTU3NzkxODQxMn0sICJhY3Rpb25zIjogeyJyZWFjdGlvbiI6IHsidmFsdWU0IjogW3sidXVpZCI6ICJTZXJoaWkiLCAiYWN0aW9uVGltZXRva2VuIjogIjE1ODEwMzc5NjgwOTUwNjcwIn1dfSwgInJlY2VpcHQiOiB7InZhbHVlNSI6IFt7InV1aWQiOiAiU2VyaGlpIiwgImFjdGlvblRpbWV0b2tlbiI6ICIxNTgxMDM3OTY4NzM3NTM5MCJ9XSwgInZhbHVlMiI6IFt7InV1aWQiOiAiU2VyaGlpIiwgImFjdGlvblRpbWV0b2tlbiI6ICIxNTgxMDM3OTY2ODAwMzk2MCJ9XX0sICJjdXN0b20iOiB7InZhbHVlMyI6IFt7InV1aWQiOiAiU2VyaGlpIiwgImFjdGlvblRpbWV0b2tlbiI6ICIxNTgxMDM3OTY3NDUzNDkyMCJ9XX19fSwgeyJtZXNzYWdlIjogeyJtZXNzYWdlSWR4IjogIm1lc3NhZ2U6IDEiLCAidGltZSI6IDE1Nzc5MTg0MTN9LCAidGltZXRva2VuIjogIjE1ODEwMzc5NjMxNjUzNDc5IiwgIm1ldGEiOiAiIiwgImFjdGlvbnMiOiB7InJlYWN0aW9uIjogeyJ2YWx1ZTQiOiBbeyJ1dWlkIjogIlNlcmhpaSIsICJhY3Rpb25UaW1ldG9rZW4iOiAiMTU4MTAzNzk3MDY2MTU4NDAifV19LCAicmVjZWlwdCI6IHsidmFsdWU1IjogW3sidXVpZCI6ICJTZXJoaWkiLCAiYWN0aW9uVGltZXRva2VuIjogIjE1ODEwMzc5NzEzMDI5NjIwIn1dLCAidmFsdWUyIjogW3sidXVpZCI6ICJTZXJoaWkiLCAiYWN0aW9uVGltZXRva2VuIjogIjE1ODEwMzc5NjkzNzQ2MzgwIn1dfSwgImN1c3RvbSI6IHsidmFsdWUzIjogW3sidXVpZCI6ICJTZXJoaWkiLCAiYWN0aW9uVGltZXRva2VuIjogIjE1ODEwMzc5NzAwMjAwODgwIn1dfX19XX0sICJlcnJvcl9tZXNzYWdlIjogIiIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "7C271514-9DFD-473D-8A67-B702FD6EF23E", + "type" : 4 + }, + { + "id" : "45FDDAFC-84D0-43C6-9046-357C0B458219", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "45FDDAFC-84D0-43C6-9046-357C0B458219", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Fri, 07 Feb 2020 01:12:55 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "52", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "45FDDAFC-84D0-43C6-9046-357C0B458219", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJlcnJvciI6IGZhbHNlLCAiZXJyb3JfbWVzc2FnZSI6ICIifQ==" + }, + "type" : 2 + }, + { + "id" : "45FDDAFC-84D0-43C6-9046-357C0B458219", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchMessagesCountForChannelAndReceiveResultWithExpectedOperation.json b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchMessagesCountForChannelAndReceiveResultWithExpectedOperation.json new file mode 100644 index 000000000..2df729e58 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchMessagesCountForChannelAndReceiveResultWithExpectedOperation.json @@ -0,0 +1,674 @@ +[ + { + "id" : "ED642988-8E2D-45E0-9B21-D9FC07CEC9CC", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?meta=%7B%22time%22:1577918412%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "ED642988-8E2D-45E0-9B21-D9FC07CEC9CC", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?uuid=Serhii&meta=%7B%22time%22:1577918412%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:09:50 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "ED642988-8E2D-45E0-9B21-D9FC07CEC9CC", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MzkwNTc5MzYxNSJd" + }, + "type" : 2 + }, + { + "id" : "ED642988-8E2D-45E0-9B21-D9FC07CEC9CC", + "type" : 4 + }, + { + "id" : "1C54FDED-4045-4904-93B6-E71E38AFAB52", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "1C54FDED-4045-4904-93B6-E71E38AFAB52", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:09:51 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "1C54FDED-4045-4904-93B6-E71E38AFAB52", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MzkxMTgwNDMwNyJd" + }, + "type" : 2 + }, + { + "id" : "1C54FDED-4045-4904-93B6-E71E38AFAB52", + "type" : 4 + }, + { + "id" : "D29BBE57-59C3-4F73-88B2-F5D1B30DEEF6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?meta=%7B%22time%22:1577918414%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "D29BBE57-59C3-4F73-88B2-F5D1B30DEEF6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?uuid=Serhii&meta=%7B%22time%22:1577918414%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:09:51 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D29BBE57-59C3-4F73-88B2-F5D1B30DEEF6", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MzkxNzQxNjYxOCJd" + }, + "type" : 2 + }, + { + "id" : "D29BBE57-59C3-4F73-88B2-F5D1B30DEEF6", + "type" : 4 + }, + { + "id" : "FE99007D-3D40-4B0D-BB98-B13D3758D2C8", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "FE99007D-3D40-4B0D-BB98-B13D3758D2C8", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:09:52 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "FE99007D-3D40-4B0D-BB98-B13D3758D2C8", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MzkyMzEyOTUxOCJd" + }, + "type" : 2 + }, + { + "id" : "FE99007D-3D40-4B0D-BB98-B13D3758D2C8", + "type" : 4 + }, + { + "id" : "C6145D98-09DF-47FB-9907-CFC1E1941389", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22messageIdx%22:%22message:%204%22,%22time%22:1577918416%7D?meta=%7B%22time%22:1577918416%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "C6145D98-09DF-47FB-9907-CFC1E1941389", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22messageIdx%22:%22message:%204%22,%22time%22:1577918416%7D?uuid=Serhii&meta=%7B%22time%22:1577918416%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:09:52 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C6145D98-09DF-47FB-9907-CFC1E1941389", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5MzkyODgxMzcxOSJd" + }, + "type" : 2 + }, + { + "id" : "C6145D98-09DF-47FB-9907-CFC1E1941389", + "type" : 4 + }, + { + "id" : "3447C319-1C54-464A-BB80-10E5C0836543", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?meta=%7B%22time%22:1577918412%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "3447C319-1C54-464A-BB80-10E5C0836543", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?uuid=Serhii&meta=%7B%22time%22:1577918412%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:09:56 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "3447C319-1C54-464A-BB80-10E5C0836543", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5Mzk2NTI0NDE3OSJd" + }, + "type" : 2 + }, + { + "id" : "3447C319-1C54-464A-BB80-10E5C0836543", + "type" : 4 + }, + { + "id" : "BF5EBB82-2DC6-47F8-BF92-E92B19D4ED07", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "BF5EBB82-2DC6-47F8-BF92-E92B19D4ED07", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:09:57 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "BF5EBB82-2DC6-47F8-BF92-E92B19D4ED07", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5Mzk3MDg3MjA3MiJd" + }, + "type" : 2 + }, + { + "id" : "BF5EBB82-2DC6-47F8-BF92-E92B19D4ED07", + "type" : 4 + }, + { + "id" : "7E717986-8D12-46C1-9717-DF5078DEE328", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?meta=%7B%22time%22:1577918414%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "7E717986-8D12-46C1-9717-DF5078DEE328", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?uuid=Serhii&meta=%7B%22time%22:1577918414%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:09:57 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "7E717986-8D12-46C1-9717-DF5078DEE328", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5Mzk3NjY1MjA1OSJd" + }, + "type" : 2 + }, + { + "id" : "7E717986-8D12-46C1-9717-DF5078DEE328", + "type" : 4 + }, + { + "id" : "34C7067A-36A7-4814-8935-E0FB67D76BCE", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "34C7067A-36A7-4814-8935-E0FB67D76BCE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:09:58 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "34C7067A-36A7-4814-8935-E0FB67D76BCE", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5Mzk4MjM0MzI4MyJd" + }, + "type" : 2 + }, + { + "id" : "34C7067A-36A7-4814-8935-E0FB67D76BCE", + "type" : 4 + }, + { + "id" : "D92377D8-E891-4E19-82D6-47AB82CEFCF0", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22messageIdx%22:%22message:%204%22,%22time%22:1577918416%7D?meta=%7B%22time%22:1577918416%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "D92377D8-E891-4E19-82D6-47AB82CEFCF0", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22messageIdx%22:%22message:%204%22,%22time%22:1577918416%7D?uuid=Serhii&meta=%7B%22time%22:1577918416%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:09:58 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D92377D8-E891-4E19-82D6-47AB82CEFCF0", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5Mzk4ODA3NTIxNyJd" + }, + "type" : 2 + }, + { + "id" : "D92377D8-E891-4E19-82D6-47AB82CEFCF0", + "type" : 4 + }, + { + "id" : "0B4BE5C3-39B9-4E64-9A1B-4CA343F6FCE9", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/message-counts\/test-channel1,test-channel2?uuid=Serhii&channelsTimetoken=15782693917416618,15782693976652059&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "0B4BE5C3-39B9-4E64-9A1B-4CA343F6FCE9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/message-counts\/test-channel1,test-channel2?uuid=Serhii&channelsTimetoken=15782693917416618,15782693976652059&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:10:02 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "531", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "0B4BE5C3-39B9-4E64-9A1B-4CA343F6FCE9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJlcnJvciI6IGZhbHNlLCAiZXJyb3JfbWVzc2FnZSI6ICIiLCAiY2hhbm5lbHMiOiB7InRlc3QtY2hhbm5lbDEiOjIsInRlc3QtY2hhbm5lbDIiOjJ9LCAibW9yZSI6IHsidGVzdC1jaGFubmVsMSI6IHsidXJsIjogIi92My9oaXN0b3J5L3N1Yi1rZXkvZGVtby9tZXNzYWdlLWNvdW50cy90ZXN0LWNoYW5uZWwxP3RpbWV0b2tlbj0xNTc4MjY5MzkyODgxMzcxOSIsICJpc19tb3JlIjogZmFsc2V9LCAidGVzdC1jaGFubmVsMiI6IHsidXJsIjogIi92My9oaXN0b3J5L3N1Yi1rZXkvZGVtby9tZXNzYWdlLWNvdW50cy90ZXN0LWNoYW5uZWwyP3RpbWV0b2tlbj0xNTc4MjY5Mzk4ODA3NTIxNyIsICJpc19tb3JlIjogZmFsc2V9fX0=" + }, + "type" : 2 + }, + { + "id" : "0B4BE5C3-39B9-4E64-9A1B-4CA343F6FCE9", + "type" : 4 + }, + { + "id" : "5B4DB16E-3E8A-4592-83BD-34234CB05A26", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "5B4DB16E-3E8A-4592-83BD-34234CB05A26", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:10:02 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "52", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "5B4DB16E-3E8A-4592-83BD-34234CB05A26", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJlcnJvciI6IGZhbHNlLCAiZXJyb3JfbWVzc2FnZSI6ICIifQ==" + }, + "type" : 2 + }, + { + "id" : "5B4DB16E-3E8A-4592-83BD-34234CB05A26", + "type" : 4 + }, + { + "id" : "B99F8434-0AD2-4F4A-927E-DD00E792D160", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel2?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B99F8434-0AD2-4F4A-927E-DD00E792D160", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel2?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:10:02 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "52", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B99F8434-0AD2-4F4A-927E-DD00E792D160", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJlcnJvciI6IGZhbHNlLCAiZXJyb3JfbWVzc2FnZSI6ICIifQ==" + }, + "type" : 2 + }, + { + "id" : "B99F8434-0AD2-4F4A-927E-DD00E792D160", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchMessagesCountForChannelAndSingleTimetokenForFewChannels.json b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchMessagesCountForChannelAndSingleTimetokenForFewChannels.json new file mode 100644 index 000000000..636cee584 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchMessagesCountForChannelAndSingleTimetokenForFewChannels.json @@ -0,0 +1,674 @@ +[ + { + "id" : "A346BD28-F252-4BD1-9808-AEAB2B8E6D42", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?meta=%7B%22time%22:1577918412%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "A346BD28-F252-4BD1-9808-AEAB2B8E6D42", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?uuid=Serhii&meta=%7B%22time%22:1577918412%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:10:06 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "A346BD28-F252-4BD1-9808-AEAB2B8E6D42", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDA2NDU1NDk2MSJd" + }, + "type" : 2 + }, + { + "id" : "A346BD28-F252-4BD1-9808-AEAB2B8E6D42", + "type" : 4 + }, + { + "id" : "D0BFBCB8-03A9-4F72-B27F-1CBC6FC5EEC2", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "D0BFBCB8-03A9-4F72-B27F-1CBC6FC5EEC2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:10:07 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D0BFBCB8-03A9-4F72-B27F-1CBC6FC5EEC2", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDA3MDU1OTc0OCJd" + }, + "type" : 2 + }, + { + "id" : "D0BFBCB8-03A9-4F72-B27F-1CBC6FC5EEC2", + "type" : 4 + }, + { + "id" : "B8926B68-C7E3-4EC3-A20F-E2DBDA05FADE", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?meta=%7B%22time%22:1577918414%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "B8926B68-C7E3-4EC3-A20F-E2DBDA05FADE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?uuid=Serhii&meta=%7B%22time%22:1577918414%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:10:07 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B8926B68-C7E3-4EC3-A20F-E2DBDA05FADE", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDA3NjI4ODY4MCJd" + }, + "type" : 2 + }, + { + "id" : "B8926B68-C7E3-4EC3-A20F-E2DBDA05FADE", + "type" : 4 + }, + { + "id" : "4D4F1ED4-EE34-4D0A-BACC-961C6B0F7FB9", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "4D4F1ED4-EE34-4D0A-BACC-961C6B0F7FB9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:10:08 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "4D4F1ED4-EE34-4D0A-BACC-961C6B0F7FB9", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDA4MjEwNjU3MSJd" + }, + "type" : 2 + }, + { + "id" : "4D4F1ED4-EE34-4D0A-BACC-961C6B0F7FB9", + "type" : 4 + }, + { + "id" : "E1602200-BAE2-429C-A3AA-CF0C8756AD17", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22messageIdx%22:%22message:%204%22,%22time%22:1577918416%7D?meta=%7B%22time%22:1577918416%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "E1602200-BAE2-429C-A3AA-CF0C8756AD17", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22messageIdx%22:%22message:%204%22,%22time%22:1577918416%7D?uuid=Serhii&meta=%7B%22time%22:1577918416%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:10:08 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E1602200-BAE2-429C-A3AA-CF0C8756AD17", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDA4NzgwNjg5NiJd" + }, + "type" : 2 + }, + { + "id" : "E1602200-BAE2-429C-A3AA-CF0C8756AD17", + "type" : 4 + }, + { + "id" : "BC4A11C1-DEF4-4225-8D12-E1A868FA6044", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?meta=%7B%22time%22:1577918412%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "BC4A11C1-DEF4-4225-8D12-E1A868FA6044", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?uuid=Serhii&meta=%7B%22time%22:1577918412%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:10:12 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "BC4A11C1-DEF4-4225-8D12-E1A868FA6044", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDEyNDIyOTI3NSJd" + }, + "type" : 2 + }, + { + "id" : "BC4A11C1-DEF4-4225-8D12-E1A868FA6044", + "type" : 4 + }, + { + "id" : "7A461E3F-D2E7-4BCE-86FE-A1F6B8038E23", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "7A461E3F-D2E7-4BCE-86FE-A1F6B8038E23", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:10:12 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "7A461E3F-D2E7-4BCE-86FE-A1F6B8038E23", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDEyOTk2MjM4OCJd" + }, + "type" : 2 + }, + { + "id" : "7A461E3F-D2E7-4BCE-86FE-A1F6B8038E23", + "type" : 4 + }, + { + "id" : "998EB5EC-9BF7-4003-B3D3-3EB4A012F23A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?meta=%7B%22time%22:1577918414%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "998EB5EC-9BF7-4003-B3D3-3EB4A012F23A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?uuid=Serhii&meta=%7B%22time%22:1577918414%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:10:13 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "998EB5EC-9BF7-4003-B3D3-3EB4A012F23A", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDEzNTYzMjAyMiJd" + }, + "type" : 2 + }, + { + "id" : "998EB5EC-9BF7-4003-B3D3-3EB4A012F23A", + "type" : 4 + }, + { + "id" : "395FBD3E-FEC7-484F-A614-457F4461DC02", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "395FBD3E-FEC7-484F-A614-457F4461DC02", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:10:14 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "395FBD3E-FEC7-484F-A614-457F4461DC02", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDE0MTMwMTY4MSJd" + }, + "type" : 2 + }, + { + "id" : "395FBD3E-FEC7-484F-A614-457F4461DC02", + "type" : 4 + }, + { + "id" : "6D015A6E-32F2-4A14-B132-D2F092788604", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22messageIdx%22:%22message:%204%22,%22time%22:1577918416%7D?meta=%7B%22time%22:1577918416%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "6D015A6E-32F2-4A14-B132-D2F092788604", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22messageIdx%22:%22message:%204%22,%22time%22:1577918416%7D?uuid=Serhii&meta=%7B%22time%22:1577918416%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:10:14 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "6D015A6E-32F2-4A14-B132-D2F092788604", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDE0Njg5MzQwNiJd" + }, + "type" : 2 + }, + { + "id" : "6D015A6E-32F2-4A14-B132-D2F092788604", + "type" : 4 + }, + { + "id" : "9DA05331-4AB7-41D5-9A50-E9BC7349BEED", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/message-counts\/test-channel1,test-channel2?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&timetoken=15782694076288680" + }, + "type" : 0 + }, + { + "id" : "9DA05331-4AB7-41D5-9A50-E9BC7349BEED", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/message-counts\/test-channel1,test-channel2?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&timetoken=15782694076288680", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:10:18 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "531", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9DA05331-4AB7-41D5-9A50-E9BC7349BEED", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJlcnJvciI6IGZhbHNlLCAiZXJyb3JfbWVzc2FnZSI6ICIiLCAiY2hhbm5lbHMiOiB7InRlc3QtY2hhbm5lbDEiOjIsInRlc3QtY2hhbm5lbDIiOjV9LCAibW9yZSI6IHsidGVzdC1jaGFubmVsMSI6IHsidXJsIjogIi92My9oaXN0b3J5L3N1Yi1rZXkvZGVtby9tZXNzYWdlLWNvdW50cy90ZXN0LWNoYW5uZWwxP3RpbWV0b2tlbj0xNTc4MjY5NDA4NzgwNjg5NiIsICJpc19tb3JlIjogZmFsc2V9LCAidGVzdC1jaGFubmVsMiI6IHsidXJsIjogIi92My9oaXN0b3J5L3N1Yi1rZXkvZGVtby9tZXNzYWdlLWNvdW50cy90ZXN0LWNoYW5uZWwyP3RpbWV0b2tlbj0xNTc4MjY5NDE0Njg5MzQwNiIsICJpc19tb3JlIjogZmFsc2V9fX0=" + }, + "type" : 2 + }, + { + "id" : "9DA05331-4AB7-41D5-9A50-E9BC7349BEED", + "type" : 4 + }, + { + "id" : "E02DF16F-161B-4E4F-A2A2-0D75581ED1F3", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E02DF16F-161B-4E4F-A2A2-0D75581ED1F3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:10:18 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "52", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E02DF16F-161B-4E4F-A2A2-0D75581ED1F3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJlcnJvciI6IGZhbHNlLCAiZXJyb3JfbWVzc2FnZSI6ICIifQ==" + }, + "type" : 2 + }, + { + "id" : "E02DF16F-161B-4E4F-A2A2-0D75581ED1F3", + "type" : 4 + }, + { + "id" : "2A00275D-D7A7-4087-97BF-F84B7D1890F9", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel2?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2A00275D-D7A7-4087-97BF-F84B7D1890F9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel2?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:10:18 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "52", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "2A00275D-D7A7-4087-97BF-F84B7D1890F9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJlcnJvciI6IGZhbHNlLCAiZXJyb3JfbWVzc2FnZSI6ICIifQ==" + }, + "type" : 2 + }, + { + "id" : "2A00275D-D7A7-4087-97BF-F84B7D1890F9", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchMessagesForEachChannelUsingBuilderPatternInterfaceWhenLimitIsSet.json b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchMessagesForEachChannelUsingBuilderPatternInterfaceWhenLimitIsSet.json new file mode 100644 index 000000000..4b756ff5f --- /dev/null +++ b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchMessagesForEachChannelUsingBuilderPatternInterfaceWhenLimitIsSet.json @@ -0,0 +1,572 @@ +[ + { + "id" : "9DEC4918-732C-4C67-9F3C-943B24CE9CA8", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?meta=%7B%22time%22:1577918412%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "9DEC4918-732C-4C67-9F3C-943B24CE9CA8", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?uuid=Serhii&meta=%7B%22time%22:1577918412%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:10:22 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9DEC4918-732C-4C67-9F3C-943B24CE9CA8", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDIyMjU3NDIxMyJd" + }, + "type" : 2 + }, + { + "id" : "9DEC4918-732C-4C67-9F3C-943B24CE9CA8", + "type" : 4 + }, + { + "id" : "CEE6C81B-993D-4DF9-99FE-0D50C8C0D6E9", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "CEE6C81B-993D-4DF9-99FE-0D50C8C0D6E9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:10:22 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "CEE6C81B-993D-4DF9-99FE-0D50C8C0D6E9", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDIyODEyNzQwNCJd" + }, + "type" : 2 + }, + { + "id" : "CEE6C81B-993D-4DF9-99FE-0D50C8C0D6E9", + "type" : 4 + }, + { + "id" : "8A086D8A-E435-4F3D-A93C-0644C6967A83", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?meta=%7B%22time%22:1577918414%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "8A086D8A-E435-4F3D-A93C-0644C6967A83", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?uuid=Serhii&meta=%7B%22time%22:1577918414%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:10:23 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "8A086D8A-E435-4F3D-A93C-0644C6967A83", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDIzMzgwMDgxNyJd" + }, + "type" : 2 + }, + { + "id" : "8A086D8A-E435-4F3D-A93C-0644C6967A83", + "type" : 4 + }, + { + "id" : "42B7F28D-FEE9-4018-8A6F-1CDD5B080860", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "42B7F28D-FEE9-4018-8A6F-1CDD5B080860", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:10:23 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "42B7F28D-FEE9-4018-8A6F-1CDD5B080860", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDIzOTUyODU2MiJd" + }, + "type" : 2 + }, + { + "id" : "42B7F28D-FEE9-4018-8A6F-1CDD5B080860", + "type" : 4 + }, + { + "id" : "F2FF6F0E-C481-4302-A462-88B70EE0C5B6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?meta=%7B%22time%22:1577918412%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "F2FF6F0E-C481-4302-A462-88B70EE0C5B6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?uuid=Serhii&meta=%7B%22time%22:1577918412%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:10:27 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F2FF6F0E-C481-4302-A462-88B70EE0C5B6", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDI3NTczMTAyOCJd" + }, + "type" : 2 + }, + { + "id" : "F2FF6F0E-C481-4302-A462-88B70EE0C5B6", + "type" : 4 + }, + { + "id" : "47DB937A-FD6B-45A6-848C-F9B235DA8503", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "47DB937A-FD6B-45A6-848C-F9B235DA8503", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:10:28 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "47DB937A-FD6B-45A6-848C-F9B235DA8503", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDI4MTM2OTI0OCJd" + }, + "type" : 2 + }, + { + "id" : "47DB937A-FD6B-45A6-848C-F9B235DA8503", + "type" : 4 + }, + { + "id" : "D84F08BA-A31A-4248-94D2-1A1C41B24B62", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?meta=%7B%22time%22:1577918414%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "D84F08BA-A31A-4248-94D2-1A1C41B24B62", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?uuid=Serhii&meta=%7B%22time%22:1577918414%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:10:28 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D84F08BA-A31A-4248-94D2-1A1C41B24B62", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDI4Njk2Mjk3NiJd" + }, + "type" : 2 + }, + { + "id" : "D84F08BA-A31A-4248-94D2-1A1C41B24B62", + "type" : 4 + }, + { + "id" : "ED9AE637-B18E-4BF2-A800-123C297ED084", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "ED9AE637-B18E-4BF2-A800-123C297ED084", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:10:29 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "ED9AE637-B18E-4BF2-A800-123C297ED084", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDI5MjY5NDgxNCJd" + }, + "type" : 2 + }, + { + "id" : "ED9AE637-B18E-4BF2-A800-123C297ED084", + "type" : 4 + }, + { + "id" : "AEADC576-6FC7-47F8-B919-330B73CB1BCE", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel1,test-channel2?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&max=20&include_meta=1" + }, + "type" : 0 + }, + { + "id" : "AEADC576-6FC7-47F8-B919-330B73CB1BCE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel1,test-channel2?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&max=20&include_meta=1", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:10:32 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "999", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "AEADC576-6FC7-47F8-B919-330B73CB1BCE", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJlcnJvciI6IGZhbHNlLCAiZXJyb3JfbWVzc2FnZSI6ICIiLCAiY2hhbm5lbHMiOiB7InRlc3QtY2hhbm5lbDEiOlt7Im1lc3NhZ2UiOnsibWVzc2FnZUlkeCI6Im1lc3NhZ2U6IDAiLCJ0aW1lIjoxNTc3OTE4NDEyfSwibWV0YSI6eyJ0aW1lIjoxNTc3OTE4NDEyfSwidGltZXRva2VuIjoiMTU3ODI2OTQyMjI1NzQyMTMifSx7Im1lc3NhZ2UiOnsibWVzc2FnZUlkeCI6Im1lc3NhZ2U6IDEiLCJ0aW1lIjoxNTc3OTE4NDEzfSwibWV0YSI6IiIsInRpbWV0b2tlbiI6IjE1NzgyNjk0MjI4MTI3NDA0In0seyJtZXNzYWdlIjp7Im1lc3NhZ2VJZHgiOiJtZXNzYWdlOiAyIiwidGltZSI6MTU3NzkxODQxNH0sIm1ldGEiOnsidGltZSI6MTU3NzkxODQxNH0sInRpbWV0b2tlbiI6IjE1NzgyNjk0MjMzODAwODE3In0seyJtZXNzYWdlIjp7Im1lc3NhZ2VJZHgiOiJtZXNzYWdlOiAzIiwidGltZSI6MTU3NzkxODQxNX0sIm1ldGEiOiIiLCJ0aW1ldG9rZW4iOiIxNTc4MjY5NDIzOTUyODU2MiJ9XSwidGVzdC1jaGFubmVsMiI6W3sibWVzc2FnZSI6eyJtZXNzYWdlSWR4IjoibWVzc2FnZTogMCIsInRpbWUiOjE1Nzc5MTg0MTJ9LCJtZXRhIjp7InRpbWUiOjE1Nzc5MTg0MTJ9LCJ0aW1ldG9rZW4iOiIxNTc4MjY5NDI3NTczMTAyOCJ9LHsibWVzc2FnZSI6eyJtZXNzYWdlSWR4IjoibWVzc2FnZTogMSIsInRpbWUiOjE1Nzc5MTg0MTN9LCJtZXRhIjoiIiwidGltZXRva2VuIjoiMTU3ODI2OTQyODEzNjkyNDgifSx7Im1lc3NhZ2UiOnsibWVzc2FnZUlkeCI6Im1lc3NhZ2U6IDIiLCJ0aW1lIjoxNTc3OTE4NDE0fSwibWV0YSI6eyJ0aW1lIjoxNTc3OTE4NDE0fSwidGltZXRva2VuIjoiMTU3ODI2OTQyODY5NjI5NzYifSx7Im1lc3NhZ2UiOnsibWVzc2FnZUlkeCI6Im1lc3NhZ2U6IDMiLCJ0aW1lIjoxNTc3OTE4NDE1fSwibWV0YSI6IiIsInRpbWV0b2tlbiI6IjE1NzgyNjk0MjkyNjk0ODE0In1dfX0=" + }, + "type" : 2 + }, + { + "id" : "AEADC576-6FC7-47F8-B919-330B73CB1BCE", + "type" : 4 + }, + { + "id" : "EEE7F608-C311-44A5-9441-4A532BFDFB1F", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "EEE7F608-C311-44A5-9441-4A532BFDFB1F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:10:32 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "52", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "EEE7F608-C311-44A5-9441-4A532BFDFB1F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJlcnJvciI6IGZhbHNlLCAiZXJyb3JfbWVzc2FnZSI6ICIifQ==" + }, + "type" : 2 + }, + { + "id" : "EEE7F608-C311-44A5-9441-4A532BFDFB1F", + "type" : 4 + }, + { + "id" : "5867FF69-24F4-4A77-B2DB-63588A6DE3C4", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel2?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "5867FF69-24F4-4A77-B2DB-63588A6DE3C4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel2?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:10:33 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "52", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "5867FF69-24F4-4A77-B2DB-63588A6DE3C4", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJlcnJvciI6IGZhbHNlLCAiZXJyb3JfbWVzc2FnZSI6ICIifQ==" + }, + "type" : 2 + }, + { + "id" : "5867FF69-24F4-4A77-B2DB-63588A6DE3C4", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchNewerChannelHistoryPageWhenCalledWithLimitAndStart.json b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchNewerChannelHistoryPageWhenCalledWithLimitAndStart.json new file mode 100644 index 000000000..a1116fac1 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchNewerChannelHistoryPageWhenCalledWithLimitAndStart.json @@ -0,0 +1,674 @@ +[ + { + "id" : "27DE85C4-2AB0-498F-8223-B8BA8279082D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?meta=%7B%22time%22:1577918412%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "27DE85C4-2AB0-498F-8223-B8BA8279082D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?uuid=Serhii&meta=%7B%22time%22:1577918412%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:10:36 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "27DE85C4-2AB0-498F-8223-B8BA8279082D", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDM2ODgxODQ3OCJd" + }, + "type" : 2 + }, + { + "id" : "27DE85C4-2AB0-498F-8223-B8BA8279082D", + "type" : 4 + }, + { + "id" : "FE651956-F2DA-4C53-8800-3E851267DAE5", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "FE651956-F2DA-4C53-8800-3E851267DAE5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:10:37 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "FE651956-F2DA-4C53-8800-3E851267DAE5", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDM3NDQ3OTU4MyJd" + }, + "type" : 2 + }, + { + "id" : "FE651956-F2DA-4C53-8800-3E851267DAE5", + "type" : 4 + }, + { + "id" : "FAAA6E3F-5E61-4ED5-93FC-476D54D2AEFF", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?meta=%7B%22time%22:1577918414%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "FAAA6E3F-5E61-4ED5-93FC-476D54D2AEFF", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?uuid=Serhii&meta=%7B%22time%22:1577918414%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:10:38 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "FAAA6E3F-5E61-4ED5-93FC-476D54D2AEFF", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDM4MDE1MjQyMSJd" + }, + "type" : 2 + }, + { + "id" : "FAAA6E3F-5E61-4ED5-93FC-476D54D2AEFF", + "type" : 4 + }, + { + "id" : "8A7B16A8-4080-4960-8894-171D786A262F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "8A7B16A8-4080-4960-8894-171D786A262F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:10:38 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "8A7B16A8-4080-4960-8894-171D786A262F", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDM4NTk0ODczMCJd" + }, + "type" : 2 + }, + { + "id" : "8A7B16A8-4080-4960-8894-171D786A262F", + "type" : 4 + }, + { + "id" : "A24B1FC5-8997-4BFA-BD61-4805449F587F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%204%22,%22time%22:1577918416%7D?meta=%7B%22time%22:1577918416%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "A24B1FC5-8997-4BFA-BD61-4805449F587F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%204%22,%22time%22:1577918416%7D?uuid=Serhii&meta=%7B%22time%22:1577918416%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:10:39 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "A24B1FC5-8997-4BFA-BD61-4805449F587F", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDM5MTczNDM3MCJd" + }, + "type" : 2 + }, + { + "id" : "A24B1FC5-8997-4BFA-BD61-4805449F587F", + "type" : 4 + }, + { + "id" : "70C2B6AB-E0B6-4A21-AA7C-CEB257E48729", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%205%22,%22time%22:1577918417%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "70C2B6AB-E0B6-4A21-AA7C-CEB257E48729", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%205%22,%22time%22:1577918417%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:10:39 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "70C2B6AB-E0B6-4A21-AA7C-CEB257E48729", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDM5NzQxNjE2NiJd" + }, + "type" : 2 + }, + { + "id" : "70C2B6AB-E0B6-4A21-AA7C-CEB257E48729", + "type" : 4 + }, + { + "id" : "E4851EE7-40FD-48D6-8A58-767DEBD3C8CA", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%206%22,%22time%22:1577918418%7D?meta=%7B%22time%22:1577918418%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "E4851EE7-40FD-48D6-8A58-767DEBD3C8CA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%206%22,%22time%22:1577918418%7D?uuid=Serhii&meta=%7B%22time%22:1577918418%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:10:40 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E4851EE7-40FD-48D6-8A58-767DEBD3C8CA", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDQwMzAwOTY0MCJd" + }, + "type" : 2 + }, + { + "id" : "E4851EE7-40FD-48D6-8A58-767DEBD3C8CA", + "type" : 4 + }, + { + "id" : "27B4CDC6-87F5-46EF-912A-9DB55D8FF196", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%207%22,%22time%22:1577918419%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "27B4CDC6-87F5-46EF-912A-9DB55D8FF196", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%207%22,%22time%22:1577918419%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:10:40 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "27B4CDC6-87F5-46EF-912A-9DB55D8FF196", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDQwODY2MjgwMyJd" + }, + "type" : 2 + }, + { + "id" : "27B4CDC6-87F5-46EF-912A-9DB55D8FF196", + "type" : 4 + }, + { + "id" : "8E4CA2AA-E356-4C8A-8ED2-E3A2F093CA21", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%208%22,%22time%22:1577918420%7D?meta=%7B%22time%22:1577918420%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "8E4CA2AA-E356-4C8A-8ED2-E3A2F093CA21", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%208%22,%22time%22:1577918420%7D?uuid=Serhii&meta=%7B%22time%22:1577918420%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:10:41 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "8E4CA2AA-E356-4C8A-8ED2-E3A2F093CA21", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDQxNDM4NDY2OCJd" + }, + "type" : 2 + }, + { + "id" : "8E4CA2AA-E356-4C8A-8ED2-E3A2F093CA21", + "type" : 4 + }, + { + "id" : "B0311120-C47D-4E59-B01D-62053F321A00", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%209%22,%22time%22:1577918421%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "B0311120-C47D-4E59-B01D-62053F321A00", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%209%22,%22time%22:1577918421%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:10:42 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B0311120-C47D-4E59-B01D-62053F321A00", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDQyMDA4NzUyNSJd" + }, + "type" : 2 + }, + { + "id" : "B0311120-C47D-4E59-B01D-62053F321A00", + "type" : 4 + }, + { + "id" : "F13CA0AC-8D37-429F-B0F6-04D00DF3505B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?reverse=1&count=5&pnsdk=PubNub-ObjC-iOS\/4.x.x&include_token=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "F13CA0AC-8D37-429F-B0F6-04D00DF3505B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?reverse=1&count=5&pnsdk=PubNub-ObjC-iOS\/4.x.x&include_token=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:10:45 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "479", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F13CA0AC-8D37-429F-B0F6-04D00DF3505B", + "data" : { + "cls" : "NSData", + "base64" : "W1t7Im1lc3NhZ2UiOnsibWVzc2FnZUlkeCI6Im1lc3NhZ2U6IDAiLCJ0aW1lIjoxNTc3OTE4NDEyfSwidGltZXRva2VuIjoxNTc4MjY5NDM2ODgxODQ3OH0seyJtZXNzYWdlIjp7Im1lc3NhZ2VJZHgiOiJtZXNzYWdlOiAxIiwidGltZSI6MTU3NzkxODQxM30sInRpbWV0b2tlbiI6MTU3ODI2OTQzNzQ0Nzk1ODN9LHsibWVzc2FnZSI6eyJtZXNzYWdlSWR4IjoibWVzc2FnZTogMiIsInRpbWUiOjE1Nzc5MTg0MTR9LCJ0aW1ldG9rZW4iOjE1NzgyNjk0MzgwMTUyNDIxfSx7Im1lc3NhZ2UiOnsibWVzc2FnZUlkeCI6Im1lc3NhZ2U6IDMiLCJ0aW1lIjoxNTc3OTE4NDE1fSwidGltZXRva2VuIjoxNTc4MjY5NDM4NTk0ODczMH0seyJtZXNzYWdlIjp7Im1lc3NhZ2VJZHgiOiJtZXNzYWdlOiA0IiwidGltZSI6MTU3NzkxODQxNn0sInRpbWV0b2tlbiI6MTU3ODI2OTQzOTE3MzQzNzB9XSwxNTc4MjY5NDM2ODgxODQ3OCwxNTc4MjY5NDM5MTczNDM3MF0=" + }, + "type" : 2 + }, + { + "id" : "F13CA0AC-8D37-429F-B0F6-04D00DF3505B", + "type" : 4 + }, + { + "id" : "73ACA56C-45EF-4AC0-97AA-F229F04E9C4A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?start=15782694391734370&reverse=1&count=5&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&include_token=1" + }, + "type" : 0 + }, + { + "id" : "73ACA56C-45EF-4AC0-97AA-F229F04E9C4A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?start=15782694391734370&reverse=1&count=5&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&include_token=1", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:10:45 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "479", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "73ACA56C-45EF-4AC0-97AA-F229F04E9C4A", + "data" : { + "cls" : "NSData", + "base64" : "W1t7Im1lc3NhZ2UiOnsibWVzc2FnZUlkeCI6Im1lc3NhZ2U6IDUiLCJ0aW1lIjoxNTc3OTE4NDE3fSwidGltZXRva2VuIjoxNTc4MjY5NDM5NzQxNjE2Nn0seyJtZXNzYWdlIjp7Im1lc3NhZ2VJZHgiOiJtZXNzYWdlOiA2IiwidGltZSI6MTU3NzkxODQxOH0sInRpbWV0b2tlbiI6MTU3ODI2OTQ0MDMwMDk2NDB9LHsibWVzc2FnZSI6eyJtZXNzYWdlSWR4IjoibWVzc2FnZTogNyIsInRpbWUiOjE1Nzc5MTg0MTl9LCJ0aW1ldG9rZW4iOjE1NzgyNjk0NDA4NjYyODAzfSx7Im1lc3NhZ2UiOnsibWVzc2FnZUlkeCI6Im1lc3NhZ2U6IDgiLCJ0aW1lIjoxNTc3OTE4NDIwfSwidGltZXRva2VuIjoxNTc4MjY5NDQxNDM4NDY2OH0seyJtZXNzYWdlIjp7Im1lc3NhZ2VJZHgiOiJtZXNzYWdlOiA5IiwidGltZSI6MTU3NzkxODQyMX0sInRpbWV0b2tlbiI6MTU3ODI2OTQ0MjAwODc1MjV9XSwxNTc4MjY5NDM5NzQxNjE2NiwxNTc4MjY5NDQyMDA4NzUyNV0=" + }, + "type" : 2 + }, + { + "id" : "73ACA56C-45EF-4AC0-97AA-F229F04E9C4A", + "type" : 4 + }, + { + "id" : "60D29A78-F3E7-417B-BCAF-AFD2059577BE", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "60D29A78-F3E7-417B-BCAF-AFD2059577BE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:10:45 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "52", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "60D29A78-F3E7-417B-BCAF-AFD2059577BE", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJlcnJvciI6IGZhbHNlLCAiZXJyb3JfbWVzc2FnZSI6ICIifQ==" + }, + "type" : 2 + }, + { + "id" : "60D29A78-F3E7-417B-BCAF-AFD2059577BE", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchOlderChannelHistoryPageWhenCalledWithLimitAndStartAndReceiveResultWithExpectedOperation.json b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchOlderChannelHistoryPageWhenCalledWithLimitAndStartAndReceiveResultWithExpectedOperation.json new file mode 100644 index 000000000..41bef8902 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchOlderChannelHistoryPageWhenCalledWithLimitAndStartAndReceiveResultWithExpectedOperation.json @@ -0,0 +1,674 @@ +[ + { + "id" : "4AEC90A4-1B5D-49C9-94F6-AE92781830F0", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?meta=%7B%22time%22:1577918412%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "4AEC90A4-1B5D-49C9-94F6-AE92781830F0", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?uuid=Serhii&meta=%7B%22time%22:1577918412%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:10:49 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "4AEC90A4-1B5D-49C9-94F6-AE92781830F0", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDQ5NjIyNjQ3NyJd" + }, + "type" : 2 + }, + { + "id" : "4AEC90A4-1B5D-49C9-94F6-AE92781830F0", + "type" : 4 + }, + { + "id" : "FEBF8529-5A70-4798-A7E1-6ABDB6DAF1D2", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "FEBF8529-5A70-4798-A7E1-6ABDB6DAF1D2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:10:50 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "FEBF8529-5A70-4798-A7E1-6ABDB6DAF1D2", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDUwMTg5NDQxMCJd" + }, + "type" : 2 + }, + { + "id" : "FEBF8529-5A70-4798-A7E1-6ABDB6DAF1D2", + "type" : 4 + }, + { + "id" : "515124E4-50D6-435A-B985-925AD70EE1C2", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?meta=%7B%22time%22:1577918414%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "515124E4-50D6-435A-B985-925AD70EE1C2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?uuid=Serhii&meta=%7B%22time%22:1577918414%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:10:50 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "515124E4-50D6-435A-B985-925AD70EE1C2", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDUwNzQ5MjExOCJd" + }, + "type" : 2 + }, + { + "id" : "515124E4-50D6-435A-B985-925AD70EE1C2", + "type" : 4 + }, + { + "id" : "65486D0C-D556-4B70-AF47-08D0AE5FFF38", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "65486D0C-D556-4B70-AF47-08D0AE5FFF38", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:10:51 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "65486D0C-D556-4B70-AF47-08D0AE5FFF38", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDUxMzE0NTkxMCJd" + }, + "type" : 2 + }, + { + "id" : "65486D0C-D556-4B70-AF47-08D0AE5FFF38", + "type" : 4 + }, + { + "id" : "5B527EDC-69DA-4247-88DF-8C6DEFE51117", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%204%22,%22time%22:1577918416%7D?meta=%7B%22time%22:1577918416%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "5B527EDC-69DA-4247-88DF-8C6DEFE51117", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%204%22,%22time%22:1577918416%7D?uuid=Serhii&meta=%7B%22time%22:1577918416%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:10:51 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "5B527EDC-69DA-4247-88DF-8C6DEFE51117", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDUxODgyNjI4MSJd" + }, + "type" : 2 + }, + { + "id" : "5B527EDC-69DA-4247-88DF-8C6DEFE51117", + "type" : 4 + }, + { + "id" : "939D08B6-71AE-4C39-A394-03D562000C03", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%205%22,%22time%22:1577918417%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "939D08B6-71AE-4C39-A394-03D562000C03", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%205%22,%22time%22:1577918417%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:10:52 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "939D08B6-71AE-4C39-A394-03D562000C03", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDUyNDQ3ODQzMyJd" + }, + "type" : 2 + }, + { + "id" : "939D08B6-71AE-4C39-A394-03D562000C03", + "type" : 4 + }, + { + "id" : "E4928131-CB4E-4EBC-A3A7-5A09345E74DB", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%206%22,%22time%22:1577918418%7D?meta=%7B%22time%22:1577918418%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "E4928131-CB4E-4EBC-A3A7-5A09345E74DB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%206%22,%22time%22:1577918418%7D?uuid=Serhii&meta=%7B%22time%22:1577918418%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:10:53 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E4928131-CB4E-4EBC-A3A7-5A09345E74DB", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDUzMDA5MTc4MyJd" + }, + "type" : 2 + }, + { + "id" : "E4928131-CB4E-4EBC-A3A7-5A09345E74DB", + "type" : 4 + }, + { + "id" : "872DD6AB-4C47-4524-ADDC-F847FEDB8FC1", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%207%22,%22time%22:1577918419%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "872DD6AB-4C47-4524-ADDC-F847FEDB8FC1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%207%22,%22time%22:1577918419%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:10:53 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "872DD6AB-4C47-4524-ADDC-F847FEDB8FC1", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDUzNTgwMjkwMyJd" + }, + "type" : 2 + }, + { + "id" : "872DD6AB-4C47-4524-ADDC-F847FEDB8FC1", + "type" : 4 + }, + { + "id" : "A671E806-1186-438A-80CC-A7378F1FBC0F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%208%22,%22time%22:1577918420%7D?meta=%7B%22time%22:1577918420%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "A671E806-1186-438A-80CC-A7378F1FBC0F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%208%22,%22time%22:1577918420%7D?uuid=Serhii&meta=%7B%22time%22:1577918420%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:10:54 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "A671E806-1186-438A-80CC-A7378F1FBC0F", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDU0MTQ3OTk2NyJd" + }, + "type" : 2 + }, + { + "id" : "A671E806-1186-438A-80CC-A7378F1FBC0F", + "type" : 4 + }, + { + "id" : "F0525BC4-FAD2-4BB1-910B-332FDA5A6C58", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%209%22,%22time%22:1577918421%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "F0525BC4-FAD2-4BB1-910B-332FDA5A6C58", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%209%22,%22time%22:1577918421%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:10:54 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F0525BC4-FAD2-4BB1-910B-332FDA5A6C58", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDU0NzE1MjE3MiJd" + }, + "type" : 2 + }, + { + "id" : "F0525BC4-FAD2-4BB1-910B-332FDA5A6C58", + "type" : 4 + }, + { + "id" : "0EC1C3AA-5C42-4702-BB41-82FB438644CC", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?count=5&pnsdk=PubNub-ObjC-iOS\/4.x.x&include_token=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "0EC1C3AA-5C42-4702-BB41-82FB438644CC", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?count=5&pnsdk=PubNub-ObjC-iOS\/4.x.x&include_token=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:10:58 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "479", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "0EC1C3AA-5C42-4702-BB41-82FB438644CC", + "data" : { + "cls" : "NSData", + "base64" : "W1t7Im1lc3NhZ2UiOnsibWVzc2FnZUlkeCI6Im1lc3NhZ2U6IDUiLCJ0aW1lIjoxNTc3OTE4NDE3fSwidGltZXRva2VuIjoxNTc4MjY5NDUyNDQ3ODQzM30seyJtZXNzYWdlIjp7Im1lc3NhZ2VJZHgiOiJtZXNzYWdlOiA2IiwidGltZSI6MTU3NzkxODQxOH0sInRpbWV0b2tlbiI6MTU3ODI2OTQ1MzAwOTE3ODN9LHsibWVzc2FnZSI6eyJtZXNzYWdlSWR4IjoibWVzc2FnZTogNyIsInRpbWUiOjE1Nzc5MTg0MTl9LCJ0aW1ldG9rZW4iOjE1NzgyNjk0NTM1ODAyOTAzfSx7Im1lc3NhZ2UiOnsibWVzc2FnZUlkeCI6Im1lc3NhZ2U6IDgiLCJ0aW1lIjoxNTc3OTE4NDIwfSwidGltZXRva2VuIjoxNTc4MjY5NDU0MTQ3OTk2N30seyJtZXNzYWdlIjp7Im1lc3NhZ2VJZHgiOiJtZXNzYWdlOiA5IiwidGltZSI6MTU3NzkxODQyMX0sInRpbWV0b2tlbiI6MTU3ODI2OTQ1NDcxNTIxNzJ9XSwxNTc4MjY5NDUyNDQ3ODQzMywxNTc4MjY5NDU0NzE1MjE3Ml0=" + }, + "type" : 2 + }, + { + "id" : "0EC1C3AA-5C42-4702-BB41-82FB438644CC", + "type" : 4 + }, + { + "id" : "9DF6DA3C-15D6-4160-B163-D3CD97ADA2BA", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?start=15782694524478433&count=5&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&include_token=1" + }, + "type" : 0 + }, + { + "id" : "9DF6DA3C-15D6-4160-B163-D3CD97ADA2BA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?start=15782694524478433&count=5&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&include_token=1", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:10:58 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "479", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9DF6DA3C-15D6-4160-B163-D3CD97ADA2BA", + "data" : { + "cls" : "NSData", + "base64" : "W1t7Im1lc3NhZ2UiOnsibWVzc2FnZUlkeCI6Im1lc3NhZ2U6IDAiLCJ0aW1lIjoxNTc3OTE4NDEyfSwidGltZXRva2VuIjoxNTc4MjY5NDQ5NjIyNjQ3N30seyJtZXNzYWdlIjp7Im1lc3NhZ2VJZHgiOiJtZXNzYWdlOiAxIiwidGltZSI6MTU3NzkxODQxM30sInRpbWV0b2tlbiI6MTU3ODI2OTQ1MDE4OTQ0MTB9LHsibWVzc2FnZSI6eyJtZXNzYWdlSWR4IjoibWVzc2FnZTogMiIsInRpbWUiOjE1Nzc5MTg0MTR9LCJ0aW1ldG9rZW4iOjE1NzgyNjk0NTA3NDkyMTE4fSx7Im1lc3NhZ2UiOnsibWVzc2FnZUlkeCI6Im1lc3NhZ2U6IDMiLCJ0aW1lIjoxNTc3OTE4NDE1fSwidGltZXRva2VuIjoxNTc4MjY5NDUxMzE0NTkxMH0seyJtZXNzYWdlIjp7Im1lc3NhZ2VJZHgiOiJtZXNzYWdlOiA0IiwidGltZSI6MTU3NzkxODQxNn0sInRpbWV0b2tlbiI6MTU3ODI2OTQ1MTg4MjYyODF9XSwxNTc4MjY5NDQ5NjIyNjQ3NywxNTc4MjY5NDUxODgyNjI4MV0=" + }, + "type" : 2 + }, + { + "id" : "9DF6DA3C-15D6-4160-B163-D3CD97ADA2BA", + "type" : 4 + }, + { + "id" : "76EFAB7D-4074-4888-9B77-D9960402C0E0", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "76EFAB7D-4074-4888-9B77-D9960402C0E0", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:10:58 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "52", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "76EFAB7D-4074-4888-9B77-D9960402C0E0", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJlcnJvciI6IGZhbHNlLCAiZXJyb3JfbWVzc2FnZSI6ICIifQ==" + }, + "type" : 2 + }, + { + "id" : "76EFAB7D-4074-4888-9B77-D9960402C0E0", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchOneMessageForEachChannelUsingBuilderPatternInterfaceAndReceiveResultWithExpectedOperation.json b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchOneMessageForEachChannelUsingBuilderPatternInterfaceAndReceiveResultWithExpectedOperation.json new file mode 100644 index 000000000..bb50f7d16 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldFetchOneMessageForEachChannelUsingBuilderPatternInterfaceAndReceiveResultWithExpectedOperation.json @@ -0,0 +1,572 @@ +[ + { + "id" : "ADF2052F-B459-4589-B5B1-4F880B1168F1", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?meta=%7B%22time%22:1577918412%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "ADF2052F-B459-4589-B5B1-4F880B1168F1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?uuid=Serhii&meta=%7B%22time%22:1577918412%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:11:02 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "ADF2052F-B459-4589-B5B1-4F880B1168F1", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDYyNjcwNTI5MyJd" + }, + "type" : 2 + }, + { + "id" : "ADF2052F-B459-4589-B5B1-4F880B1168F1", + "type" : 4 + }, + { + "id" : "22916942-62C4-4E08-A0CB-2C69D633B2EA", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "22916942-62C4-4E08-A0CB-2C69D633B2EA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:11:03 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "22916942-62C4-4E08-A0CB-2C69D633B2EA", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDYzMjI5ODYwMCJd" + }, + "type" : 2 + }, + { + "id" : "22916942-62C4-4E08-A0CB-2C69D633B2EA", + "type" : 4 + }, + { + "id" : "1FD84061-CC5D-495E-8F37-D14D413040D6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?meta=%7B%22time%22:1577918414%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "1FD84061-CC5D-495E-8F37-D14D413040D6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?uuid=Serhii&meta=%7B%22time%22:1577918414%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:11:03 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "1FD84061-CC5D-495E-8F37-D14D413040D6", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDYzNzk2MTI2MCJd" + }, + "type" : 2 + }, + { + "id" : "1FD84061-CC5D-495E-8F37-D14D413040D6", + "type" : 4 + }, + { + "id" : "B2B51E39-AFE0-4F8B-9B7A-1AB132EFB5E2", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "B2B51E39-AFE0-4F8B-9B7A-1AB132EFB5E2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:11:04 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B2B51E39-AFE0-4F8B-9B7A-1AB132EFB5E2", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDY0MzYzMzY5NyJd" + }, + "type" : 2 + }, + { + "id" : "B2B51E39-AFE0-4F8B-9B7A-1AB132EFB5E2", + "type" : 4 + }, + { + "id" : "33AA7C49-5C6F-44C6-AFA8-71DC4289C581", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?meta=%7B%22time%22:1577918412%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "33AA7C49-5C6F-44C6-AFA8-71DC4289C581", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?uuid=Serhii&meta=%7B%22time%22:1577918412%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:11:07 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "33AA7C49-5C6F-44C6-AFA8-71DC4289C581", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDY3OTkwMDM0NyJd" + }, + "type" : 2 + }, + { + "id" : "33AA7C49-5C6F-44C6-AFA8-71DC4289C581", + "type" : 4 + }, + { + "id" : "0FECA5E4-572E-4540-8137-81DF4A7CA6D4", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "0FECA5E4-572E-4540-8137-81DF4A7CA6D4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:11:08 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "0FECA5E4-572E-4540-8137-81DF4A7CA6D4", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDY4NTY4MzQzMSJd" + }, + "type" : 2 + }, + { + "id" : "0FECA5E4-572E-4540-8137-81DF4A7CA6D4", + "type" : 4 + }, + { + "id" : "FC5F2267-CB47-4258-867F-C26A723BC97A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?meta=%7B%22time%22:1577918414%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "FC5F2267-CB47-4258-867F-C26A723BC97A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?uuid=Serhii&meta=%7B%22time%22:1577918414%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:11:09 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "FC5F2267-CB47-4258-867F-C26A723BC97A", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDY5MTM5NzA1MSJd" + }, + "type" : 2 + }, + { + "id" : "FC5F2267-CB47-4258-867F-C26A723BC97A", + "type" : 4 + }, + { + "id" : "D9C369E5-ADD6-4927-8F9A-F94594ADE8C3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "D9C369E5-ADD6-4927-8F9A-F94594ADE8C3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:11:09 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D9C369E5-ADD6-4927-8F9A-F94594ADE8C3", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDY5NzEyOTY1NSJd" + }, + "type" : 2 + }, + { + "id" : "D9C369E5-ADD6-4927-8F9A-F94594ADE8C3", + "type" : 4 + }, + { + "id" : "B500D1B9-C48D-4942-9EF5-9923892FB265", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel1,test-channel2?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B500D1B9-C48D-4942-9EF5-9923892FB265", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel1,test-channel2?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:11:13 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "311", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B500D1B9-C48D-4942-9EF5-9923892FB265", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJlcnJvciI6IGZhbHNlLCAiZXJyb3JfbWVzc2FnZSI6ICIiLCAiY2hhbm5lbHMiOiB7InRlc3QtY2hhbm5lbDIiOlt7Im1lc3NhZ2UiOnsibWVzc2FnZUlkeCI6Im1lc3NhZ2U6IDMiLCJ0aW1lIjoxNTc3OTE4NDE1fSwidGltZXRva2VuIjoiMTU3ODI2OTQ2OTcxMjk2NTUifV0sInRlc3QtY2hhbm5lbDEiOlt7Im1lc3NhZ2UiOnsibWVzc2FnZUlkeCI6Im1lc3NhZ2U6IDMiLCJ0aW1lIjoxNTc3OTE4NDE1fSwidGltZXRva2VuIjoiMTU3ODI2OTQ2NDM2MzM2OTcifV19fQ==" + }, + "type" : 2 + }, + { + "id" : "B500D1B9-C48D-4942-9EF5-9923892FB265", + "type" : 4 + }, + { + "id" : "7DAF2EAA-9101-4F7E-90EE-B79977C3A6B8", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "7DAF2EAA-9101-4F7E-90EE-B79977C3A6B8", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:11:13 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "52", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "7DAF2EAA-9101-4F7E-90EE-B79977C3A6B8", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJlcnJvciI6IGZhbHNlLCAiZXJyb3JfbWVzc2FnZSI6ICIifQ==" + }, + "type" : 2 + }, + { + "id" : "7DAF2EAA-9101-4F7E-90EE-B79977C3A6B8", + "type" : 4 + }, + { + "id" : "ABD79014-918A-4B44-9D9A-6791CF2C4608", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel2?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "ABD79014-918A-4B44-9D9A-6791CF2C4608", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel2?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:11:13 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "52", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "ABD79014-918A-4B44-9D9A-6791CF2C4608", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJlcnJvciI6IGZhbHNlLCAiZXJyb3JfbWVzc2FnZSI6ICIifQ==" + }, + "type" : 2 + }, + { + "id" : "ABD79014-918A-4B44-9D9A-6791CF2C4608", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldNotDeleteMessagesForChannelAndReceiveBadRequestStatusWhenChannelIsNil.json b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldNotDeleteMessagesForChannelAndReceiveBadRequestStatusWhenChannelIsNil.json new file mode 100644 index 000000000..11c56a5f4 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNHistoryIntegrationTests.bundle/ItShouldNotDeleteMessagesForChannelAndReceiveBadRequestStatusWhenChannelIsNil.json @@ -0,0 +1,314 @@ +[ + { + "id" : "C7B9DF33-F9E5-43F5-AC58-CA6CA6B4566E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?meta=%7B%22time%22:1577918412%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "C7B9DF33-F9E5-43F5-AC58-CA6CA6B4566E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?uuid=Serhii&meta=%7B%22time%22:1577918412%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:11:17 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C7B9DF33-F9E5-43F5-AC58-CA6CA6B4566E", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDc3NzcxMzYwOCJd" + }, + "type" : 2 + }, + { + "id" : "C7B9DF33-F9E5-43F5-AC58-CA6CA6B4566E", + "type" : 4 + }, + { + "id" : "C33F7CF6-EE06-4485-9DAD-B23D0F5B1B09", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "C33F7CF6-EE06-4485-9DAD-B23D0F5B1B09", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:11:18 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C33F7CF6-EE06-4485-9DAD-B23D0F5B1B09", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDc4NDU1ODMyMiJd" + }, + "type" : 2 + }, + { + "id" : "C33F7CF6-EE06-4485-9DAD-B23D0F5B1B09", + "type" : 4 + }, + { + "id" : "51F18536-42F2-47B4-A3BA-DC95B3048D0E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?meta=%7B%22time%22:1577918414%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "51F18536-42F2-47B4-A3BA-DC95B3048D0E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%202%22,%22time%22:1577918414%7D?uuid=Serhii&meta=%7B%22time%22:1577918414%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:11:19 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "51F18536-42F2-47B4-A3BA-DC95B3048D0E", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDc5MDI3OTA0MiJd" + }, + "type" : 2 + }, + { + "id" : "51F18536-42F2-47B4-A3BA-DC95B3048D0E", + "type" : 4 + }, + { + "id" : "FC0E7B88-A0BA-4FAB-A4CF-B28D81A4494D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "FC0E7B88-A0BA-4FAB-A4CF-B28D81A4494D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%203%22,%22time%22:1577918415%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:11:19 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "FC0E7B88-A0BA-4FAB-A4CF-B28D81A4494D", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjY5NDc5NTk4MzEyNSJd" + }, + "type" : 2 + }, + { + "id" : "FC0E7B88-A0BA-4FAB-A4CF-B28D81A4494D", + "type" : 4 + }, + { + "id" : "E1A4CABD-B87B-4A07-B847-6E2D531CA23D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&count=100" + }, + "type" : 0 + }, + { + "id" : "E1A4CABD-B87B-4A07-B847-6E2D531CA23D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&count=100", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:11:23 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "223", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E1A4CABD-B87B-4A07-B847-6E2D531CA23D", + "data" : { + "cls" : "NSData", + "base64" : "W1t7Im1lc3NhZ2VJZHgiOiJtZXNzYWdlOiAwIiwidGltZSI6MTU3NzkxODQxMn0seyJtZXNzYWdlSWR4IjoibWVzc2FnZTogMSIsInRpbWUiOjE1Nzc5MTg0MTN9LHsibWVzc2FnZUlkeCI6Im1lc3NhZ2U6IDIiLCJ0aW1lIjoxNTc3OTE4NDE0fSx7Im1lc3NhZ2VJZHgiOiJtZXNzYWdlOiAzIiwidGltZSI6MTU3NzkxODQxNX1dLDE1NzgyNjk0Nzc3NzEzNjA4LDE1NzgyNjk0Nzk1OTgzMTI1XQ==" + }, + "type" : 2 + }, + { + "id" : "E1A4CABD-B87B-4A07-B847-6E2D531CA23D", + "type" : 4 + }, + { + "id" : "3AD94B40-970F-4CB7-A60D-26035647122C", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3AD94B40-970F-4CB7-A60D-26035647122C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:11:23 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "52", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "3AD94B40-970F-4CB7-A60D-26035647122C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJlcnJvciI6IGZhbHNlLCAiZXJyb3JfbWVzc2FnZSI6ICIifQ==" + }, + "type" : 2 + }, + { + "id" : "3AD94B40-970F-4CB7-A60D-26035647122C", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldAddMembersAndReceiveStatusWithExpectedOperationAndCategory.json b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldAddMembersAndReceiveStatusWithExpectedOperationAndCategory.json new file mode 100644 index 000000000..c85fe9fcf --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldAddMembersAndReceiveStatusWithExpectedOperationAndCategory.json @@ -0,0 +1,540 @@ +[ + { + "id" : "21850A42-1EA2-4B0D-917F-60450226DE9D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "21850A42-1EA2-4B0D-917F-60450226DE9D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:36:01 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "21850A42-1EA2-4B0D-917F-60450226DE9D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "21850A42-1EA2-4B0D-917F-60450226DE9D", + "type" : 4 + }, + { + "id" : "94B3A8A7-21E5-4F61-8564-FB14C0D8A466", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "94B3A8A7-21E5-4F61-8564-FB14C0D8A466", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:36:01 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "94B3A8A7-21E5-4F61-8564-FB14C0D8A466", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "94B3A8A7-21E5-4F61-8564-FB14C0D8A466", + "type" : 4 + }, + { + "id" : "306C8EB8-95B8-45D9-ACD7-34C583126A43", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "306C8EB8-95B8-45D9-ACD7-34C583126A43", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:36:01 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "306C8EB8-95B8-45D9-ACD7-34C583126A43", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozNjowMS40MzA3ODdaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6MzY6MDEuNDMwNzg3WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "306C8EB8-95B8-45D9-ACD7-34C583126A43", + "type" : 4 + }, + { + "id" : "05B8A778-9F7F-4179-ACE3-3D12DC4B9214", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "05B8A778-9F7F-4179-ACE3-3D12DC4B9214", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:36:03 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "05B8A778-9F7F-4179-ACE3-3D12DC4B9214", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM2OjAzLjA0MDI5MVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozNjowMy4wNDAyOTFaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "05B8A778-9F7F-4179-ACE3-3D12DC4B9214", + "type" : 4 + }, + { + "id" : "FBC9DE35-9134-4F94-B4FC-A47159F281BC", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "136", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiS2ltLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "FBC9DE35-9134-4F94-B4FC-A47159F281BC", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:36:04 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "FBC9DE35-9134-4F94-B4FC-A47159F281BC", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM2OjAzLjY4MTE5M1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozNjowMy42ODExOTNaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In19" + }, + "type" : 2 + }, + { + "id" : "FBC9DE35-9134-4F94-B4FC-A47159F281BC", + "type" : 4 + }, + { + "id" : "AD68A459-8E19-4852-8001-58059D8DB46D", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "265", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciIsImN1c3RvbSI6eyJ1c2VyLW1lbWJlci1jdXN0b20iOiJTZXJoaWktdXNlci1pZGVudGlmaWVyLWN1c3RvbS1kYXRhLTEifX0seyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJjdXN0b20iOnsidXNlci1tZW1iZXItY3VzdG9tIjoiS2ltLXVzZXItaWRlbnRpZmllci1jdXN0b20tZGF0YS0yIn19XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "AD68A459-8E19-4852-8001-58059D8DB46D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:36:07 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "AD68A459-8E19-4852-8001-58059D8DB46D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjp7InVzZXItbWVtYmVyLWN1c3RvbSI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXItY3VzdG9tLWRhdGEtMSJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozNjowNS43MjI4OTlaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6MzY6MDUuNzIyODk5WiIsImVUYWciOiJBWlBJdzVmdjg5YmhLUSJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjp7InVzZXItbWVtYmVyLWN1c3RvbSI6IktpbS11c2VyLWlkZW50aWZpZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozNjowNi40MjYxNDFaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6MzY6MDYuNDI2MTQxWiIsImVUYWciOiJBZkgxOC9YdXo5YlN4QUUifV0sIm5leHQiOiJNZyJ9" + }, + "type" : 2 + }, + { + "id" : "AD68A459-8E19-4852-8001-58059D8DB46D", + "type" : 4 + }, + { + "id" : "8B566BC5-EF8D-4E9D-A5FB-F304F45012A4", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "101", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "8B566BC5-EF8D-4E9D-A5FB-F304F45012A4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:36:09 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "8B566BC5-EF8D-4E9D-A5FB-F304F45012A4", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "8B566BC5-EF8D-4E9D-A5FB-F304F45012A4", + "type" : 4 + }, + { + "id" : "B956BA6F-2F68-47F4-969E-4A93D29D728C", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B956BA6F-2F68-47F4-969E-4A93D29D728C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:36:10 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "B956BA6F-2F68-47F4-969E-4A93D29D728C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "B956BA6F-2F68-47F4-969E-4A93D29D728C", + "type" : 4 + }, + { + "id" : "AD334878-B0A6-434D-84A3-84A94ABB65AB", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "AD334878-B0A6-434D-84A3-84A94ABB65AB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:36:11 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "AD334878-B0A6-434D-84A3-84A94ABB65AB", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "AD334878-B0A6-434D-84A3-84A94ABB65AB", + "type" : 4 + }, + { + "id" : "01DE3625-A2DA-4047-92B7-5A8C95E3EACA", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "01DE3625-A2DA-4047-92B7-5A8C95E3EACA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:36:12 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "01DE3625-A2DA-4047-92B7-5A8C95E3EACA", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "01DE3625-A2DA-4047-92B7-5A8C95E3EACA", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldAddMembersAndReturnFilteredUserInformationWhenFilterIsSet.json b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldAddMembersAndReturnFilteredUserInformationWhenFilterIsSet.json new file mode 100644 index 000000000..3265df8ea --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldAddMembersAndReturnFilteredUserInformationWhenFilterIsSet.json @@ -0,0 +1,540 @@ +[ + { + "id" : "2F0BB509-FA86-4CE0-983C-481A8719EDF6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2F0BB509-FA86-4CE0-983C-481A8719EDF6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:36:14 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "2F0BB509-FA86-4CE0-983C-481A8719EDF6", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "2F0BB509-FA86-4CE0-983C-481A8719EDF6", + "type" : 4 + }, + { + "id" : "4E2169D1-F3D9-4FFD-B622-F4A5E70D8B4F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "4E2169D1-F3D9-4FFD-B622-F4A5E70D8B4F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:36:15 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "4E2169D1-F3D9-4FFD-B622-F4A5E70D8B4F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "4E2169D1-F3D9-4FFD-B622-F4A5E70D8B4F", + "type" : 4 + }, + { + "id" : "463BC77B-260F-4B1C-8C96-1EF9222A639D", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "463BC77B-260F-4B1C-8C96-1EF9222A639D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:36:15 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "463BC77B-260F-4B1C-8C96-1EF9222A639D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozNjoxNS4xODk1NTRaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6MzY6MTUuMTg5NTU0WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "463BC77B-260F-4B1C-8C96-1EF9222A639D", + "type" : 4 + }, + { + "id" : "2EB704BA-6743-498C-ADD8-73B26BE23035", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2EB704BA-6743-498C-ADD8-73B26BE23035", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:36:17 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "2EB704BA-6743-498C-ADD8-73B26BE23035", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM2OjE2LjgwMjQ1NFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozNjoxNi44MDI0NTRaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "2EB704BA-6743-498C-ADD8-73B26BE23035", + "type" : 4 + }, + { + "id" : "7F494E05-E2C2-4413-B0DC-6592DA03913A", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "136", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiS2ltLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "7F494E05-E2C2-4413-B0DC-6592DA03913A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:36:17 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "7F494E05-E2C2-4413-B0DC-6592DA03913A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM2OjE3LjM4NDQ5MloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozNjoxNy4zODQ0OTJaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In19" + }, + "type" : 2 + }, + { + "id" : "7F494E05-E2C2-4413-B0DC-6592DA03913A", + "type" : 4 + }, + { + "id" : "59DB98B2-DB8A-4EAD-A8B4-FF012DA975F7", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "98", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?filter=user.name%20like%20'K*'&count=1&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&include=user,user.custom&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "59DB98B2-DB8A-4EAD-A8B4-FF012DA975F7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?filter=user.name%20like%20'K*'&count=1&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&include=user,user.custom&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:36:21 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "59DB98B2-DB8A-4EAD-A8B4-FF012DA975F7", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIiwidXNlciI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM2OjE3LjM4NDQ5MloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozNjoxNy4zODQ0OTJaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM2OjIwLjA3MjU2MloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozNjoyMC4wNzI1NjJaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn1dLCJ0b3RhbENvdW50IjoxLCJuZXh0IjoiTVEifQ==" + }, + "type" : 2 + }, + { + "id" : "59DB98B2-DB8A-4EAD-A8B4-FF012DA975F7", + "type" : 4 + }, + { + "id" : "7E0EC756-1E33-481D-8C52-398C603C52D3", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "55", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiS2ltLXVzZXItaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "7E0EC756-1E33-481D-8C52-398C603C52D3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:36:23 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "185", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "7E0EC756-1E33-481D-8C52-398C603C52D3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDE6MzY6MTkuMzc3MjQ0WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM2OjE5LjM3NzI0NFoiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifV0sIm5leHQiOiJNUSJ9" + }, + "type" : 2 + }, + { + "id" : "7E0EC756-1E33-481D-8C52-398C603C52D3", + "type" : 4 + }, + { + "id" : "34974D67-A0CC-4AF3-A5A3-5DA932EAB45B", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "34974D67-A0CC-4AF3-A5A3-5DA932EAB45B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:36:24 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "34974D67-A0CC-4AF3-A5A3-5DA932EAB45B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "34974D67-A0CC-4AF3-A5A3-5DA932EAB45B", + "type" : 4 + }, + { + "id" : "F4B787A3-AAEA-47E5-8DA9-2CDA54069D17", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F4B787A3-AAEA-47E5-8DA9-2CDA54069D17", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:36:25 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "F4B787A3-AAEA-47E5-8DA9-2CDA54069D17", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "F4B787A3-AAEA-47E5-8DA9-2CDA54069D17", + "type" : 4 + }, + { + "id" : "6AD2099E-3D7C-444D-AEF0-455B246B4686", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "6AD2099E-3D7C-444D-AEF0-455B246B4686", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:36:26 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "6AD2099E-3D7C-444D-AEF0-455B246B4686", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "6AD2099E-3D7C-444D-AEF0-455B246B4686", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldAddMembersAndReturnSortedUserInformationWhenSortIsSet.json b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldAddMembersAndReturnSortedUserInformationWhenSortIsSet.json new file mode 100644 index 000000000..0219ef9de --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldAddMembersAndReturnSortedUserInformationWhenSortIsSet.json @@ -0,0 +1,756 @@ +[ + { + "id" : "7AB39A29-4FD2-4395-B4AE-A553BE9EAC60", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "7AB39A29-4FD2-4395-B4AE-A553BE9EAC60", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:12:10 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "7AB39A29-4FD2-4395-B4AE-A553BE9EAC60", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "7AB39A29-4FD2-4395-B4AE-A553BE9EAC60", + "type" : 4 + }, + { + "id" : "2C3F9E82-09C8-41F9-9E74-1CEBF58F5532", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2C3F9E82-09C8-41F9-9E74-1CEBF58F5532", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:12:10 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "2C3F9E82-09C8-41F9-9E74-1CEBF58F5532", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "2C3F9E82-09C8-41F9-9E74-1CEBF58F5532", + "type" : 4 + }, + { + "id" : "58B6EC32-B4C6-4236-9823-46BD97C1EB12", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "58B6EC32-B4C6-4236-9823-46BD97C1EB12", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:12:10 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "58B6EC32-B4C6-4236-9823-46BD97C1EB12", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMToxMjoxMC4zMzQ3NjFaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MTI6MTAuMzM0NzYxWiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "58B6EC32-B4C6-4236-9823-46BD97C1EB12", + "type" : 4 + }, + { + "id" : "91E74DF8-041D-41CB-95EE-52D7395A5627", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "91E74DF8-041D-41CB-95EE-52D7395A5627", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:12:12 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "91E74DF8-041D-41CB-95EE-52D7395A5627", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEyOjExLjkzNTc4NVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMToxMjoxMS45MzU3ODVaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "91E74DF8-041D-41CB-95EE-52D7395A5627", + "type" : 4 + }, + { + "id" : "177D17CB-1FDD-4759-8E5B-D46450902902", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "136", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiS2ltLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "177D17CB-1FDD-4759-8E5B-D46450902902", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:12:13 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "177D17CB-1FDD-4759-8E5B-D46450902902", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEyOjEyLjU0MDcxWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEyOjEyLjU0MDcxWiIsImVUYWciOiJBYmpMeS9MTnY3SFZOdyJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "177D17CB-1FDD-4759-8E5B-D46450902902", + "type" : 4 + }, + { + "id" : "640BAF63-523D-4122-A97E-A1E79B44577C", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "152", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkVhcmxpbmUiLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiRWFybGluZS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiRWFybGluZS1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "640BAF63-523D-4122-A97E-A1E79B44577C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:12:13 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "640BAF63-523D-4122-A97E-A1E79B44577C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkVhcmxpbmUiLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IkVhcmxpbmUtY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IkVhcmxpbmUtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMToxMjoxMy4xNTYyMDdaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MTI6MTMuMTU2MjA3WiIsImVUYWciOiJBZDZienJuY3JLVzNyUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "640BAF63-523D-4122-A97E-A1E79B44577C", + "type" : 4 + }, + { + "id" : "C5394E72-E3DB-4BB3-8C92-8ECD45A4D376", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "140", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkdsZW4iLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiR2xlbi1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiR2xlbi1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C5394E72-E3DB-4BB3-8C92-8ECD45A4D376", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:12:14 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "C5394E72-E3DB-4BB3-8C92-8ECD45A4D376", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkdsZW4iLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IkdsZW4tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IkdsZW4tY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMToxMjoxMy43NjkyMzFaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MTI6MTMuNzY5MjMxWiIsImVUYWciOiJBZi81d01TaDNyZUlkQSJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "C5394E72-E3DB-4BB3-8C92-8ECD45A4D376", + "type" : 4 + }, + { + "id" : "EF5ADD08-B77F-4C8B-8361-6F74F66BDDE3", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "189", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn0seyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIn0seyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?sort=user.name:desc&count=1&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&include=user,user.custom&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "EF5ADD08-B77F-4C8B-8361-6F74F66BDDE3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?sort=user.name:desc&count=1&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&include=user,user.custom&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:12:18 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "EF5ADD08-B77F-4C8B-8361-6F74F66BDDE3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwidXNlciI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEyOjExLjkzNTc4NVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMToxMjoxMS45MzU3ODVaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEyOjE1LjgzMTQ3N1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMToxMjoxNS44MzE0NzdaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJ1c2VyIjp7ImlkIjoiS2ltLXVzZXItaWRlbnRpZmllciIsIm5hbWUiOiJLaW0iLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IktpbS1jdXN0b20tZGF0YS0xIiwidXNlci1jdXN0b20yIjoiS2ltLWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDE6MTI6MTIuNTQwNzFaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MTI6MTIuNTQwNzFaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEyOjE2LjUyNzc3OFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMToxMjoxNi41Mjc3NzhaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIiwidXNlciI6eyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkdsZW4iLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IkdsZW4tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IkdsZW4tY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMToxMjoxMy43NjkyMzFaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MTI6MTMuNzY5MjMxWiIsImVUYWciOiJBZi81d01TaDNyZUlkQSJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMToxMjoxNy45MTk1MzRaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MTI6MTcuOTE5NTM0WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9LHsiaWQiOiJFYXJsaW5lLXVzZXItaWRlbnRpZmllciIsInVzZXIiOnsiaWQiOiJFYXJsaW5lLXVzZXItaWRlbnRpZmllciIsIm5hbWUiOiJFYXJsaW5lIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJFYXJsaW5lLWN1c3RvbS1kYXRhLTEiLCJ1c2VyLWN1c3RvbTIiOiJFYXJsaW5lLWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDE6MTI6MTMuMTU2MjA3WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEyOjEzLjE1NjIwN1oiLCJlVGFnIjoiQWQ2YnpybmNyS1czclFFIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEyOjE3LjIyMzU1M1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMToxMjoxNy4yMjM1NTNaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn1dLCJ0b3RhbENvdW50Ijo0LCJuZXh0IjoiTkEifQ==" + }, + "type" : 2 + }, + { + "id" : "EF5ADD08-B77F-4C8B-8361-6F74F66BDDE3", + "type" : 4 + }, + { + "id" : "A0BA64FC-97A6-477F-9646-7A1B38D78AB9", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "192", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn0seyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIn0seyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A0BA64FC-97A6-477F-9646-7A1B38D78AB9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:12:21 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "A0BA64FC-97A6-477F-9646-7A1B38D78AB9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "A0BA64FC-97A6-477F-9646-7A1B38D78AB9", + "type" : 4 + }, + { + "id" : "0A26BABE-6F15-4719-B052-19F56075C05E", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "0A26BABE-6F15-4719-B052-19F56075C05E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:12:21 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "0A26BABE-6F15-4719-B052-19F56075C05E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "0A26BABE-6F15-4719-B052-19F56075C05E", + "type" : 4 + }, + { + "id" : "0EC6DE6F-BCAB-4838-8E4B-8975CD72C485", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "0EC6DE6F-BCAB-4838-8E4B-8975CD72C485", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:12:22 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "0EC6DE6F-BCAB-4838-8E4B-8975CD72C485", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "0EC6DE6F-BCAB-4838-8E4B-8975CD72C485", + "type" : 4 + }, + { + "id" : "6F574AE7-3808-449B-A7EC-EE63327CCBF1", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Earline-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "6F574AE7-3808-449B-A7EC-EE63327CCBF1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Earline-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:12:23 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "6F574AE7-3808-449B-A7EC-EE63327CCBF1", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "6F574AE7-3808-449B-A7EC-EE63327CCBF1", + "type" : 4 + }, + { + "id" : "CE91081E-9977-433B-8BA2-386219B5DC2F", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Glen-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "CE91081E-9977-433B-8BA2-386219B5DC2F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Glen-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:12:24 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "CE91081E-9977-433B-8BA2-386219B5DC2F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "CE91081E-9977-433B-8BA2-386219B5DC2F", + "type" : 4 + }, + { + "id" : "67FDB65D-211F-45EC-8609-DCE244FFF74C", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "67FDB65D-211F-45EC-8609-DCE244FFF74C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:12:26 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "67FDB65D-211F-45EC-8609-DCE244FFF74C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "67FDB65D-211F-45EC-8609-DCE244FFF74C", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldAddMembersAndReturnUserInformationWhenUserIncludeFlagIsSet.json b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldAddMembersAndReturnUserInformationWhenUserIncludeFlagIsSet.json new file mode 100644 index 000000000..59c1ae512 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldAddMembersAndReturnUserInformationWhenUserIncludeFlagIsSet.json @@ -0,0 +1,540 @@ +[ + { + "id" : "483E6557-50A6-462B-A109-94AA8058C347", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "483E6557-50A6-462B-A109-94AA8058C347", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:36:28 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "483E6557-50A6-462B-A109-94AA8058C347", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "483E6557-50A6-462B-A109-94AA8058C347", + "type" : 4 + }, + { + "id" : "029D867C-B600-4053-86DB-FC7BE0A4146B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "029D867C-B600-4053-86DB-FC7BE0A4146B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:36:29 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "029D867C-B600-4053-86DB-FC7BE0A4146B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "029D867C-B600-4053-86DB-FC7BE0A4146B", + "type" : 4 + }, + { + "id" : "353DF77B-BA06-4D8E-94E8-08370EA0A7E6", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "353DF77B-BA06-4D8E-94E8-08370EA0A7E6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:36:29 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "353DF77B-BA06-4D8E-94E8-08370EA0A7E6", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozNjoyOS4xMjY1NTNaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6MzY6MjkuMTI2NTUzWiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "353DF77B-BA06-4D8E-94E8-08370EA0A7E6", + "type" : 4 + }, + { + "id" : "5057F58F-B7DA-499C-8DD8-329367E36E0B", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "5057F58F-B7DA-499C-8DD8-329367E36E0B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:36:31 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "5057F58F-B7DA-499C-8DD8-329367E36E0B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM2OjMwLjcyNjQyNVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozNjozMC43MjY0MjVaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "5057F58F-B7DA-499C-8DD8-329367E36E0B", + "type" : 4 + }, + { + "id" : "6D29C888-7A1D-4C6F-B44B-948CE7D1B8E5", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "136", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiS2ltLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "6D29C888-7A1D-4C6F-B44B-948CE7D1B8E5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:36:31 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "6D29C888-7A1D-4C6F-B44B-948CE7D1B8E5", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM2OjMxLjMwNjU1MVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozNjozMS4zMDY1NTFaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In19" + }, + "type" : 2 + }, + { + "id" : "6D29C888-7A1D-4C6F-B44B-948CE7D1B8E5", + "type" : 4 + }, + { + "id" : "39859564-B322-4884-BC77-6051D8E2486A", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "98", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=user,user.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "39859564-B322-4884-BC77-6051D8E2486A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=user,user.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:36:34 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "39859564-B322-4884-BC77-6051D8E2486A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwidXNlciI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM2OjMwLjcyNjQyNVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozNjozMC43MjY0MjVaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM2OjMzLjMwNjQ0OFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozNjozMy4zMDY0NDhaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJ1c2VyIjp7ImlkIjoiS2ltLXVzZXItaWRlbnRpZmllciIsIm5hbWUiOiJLaW0iLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IktpbS1jdXN0b20tZGF0YS0xIiwidXNlci1jdXN0b20yIjoiS2ltLWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDE6MzY6MzEuMzA2NTUxWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM2OjMxLjMwNjU1MVoiLCJlVGFnIjoiQWJqTHkvTE52N0hWTncifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDE6MzY6MzQuMDA0NDE4WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM2OjM0LjAwNDQxOFoiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifV0sIm5leHQiOiJNZyJ9" + }, + "type" : 2 + }, + { + "id" : "39859564-B322-4884-BC77-6051D8E2486A", + "type" : 4 + }, + { + "id" : "95D670E4-CD5B-4502-A54C-4A7B7EABE0FC", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "101", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "95D670E4-CD5B-4502-A54C-4A7B7EABE0FC", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:36:36 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "95D670E4-CD5B-4502-A54C-4A7B7EABE0FC", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "95D670E4-CD5B-4502-A54C-4A7B7EABE0FC", + "type" : 4 + }, + { + "id" : "62170330-B1BE-4686-B80C-16507C552E4C", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "62170330-B1BE-4686-B80C-16507C552E4C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:36:37 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "62170330-B1BE-4686-B80C-16507C552E4C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "62170330-B1BE-4686-B80C-16507C552E4C", + "type" : 4 + }, + { + "id" : "9B7FD841-D5C1-4110-9974-36D4104D3832", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9B7FD841-D5C1-4110-9974-36D4104D3832", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:36:39 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "9B7FD841-D5C1-4110-9974-36D4104D3832", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "9B7FD841-D5C1-4110-9974-36D4104D3832", + "type" : 4 + }, + { + "id" : "333186EE-5065-49A9-9592-E9B493A29390", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "333186EE-5065-49A9-9592-E9B493A29390", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:36:40 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "333186EE-5065-49A9-9592-E9B493A29390", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "333186EE-5065-49A9-9592-E9B493A29390", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldAddMembersAndTriggerCreateEventOnSpaceChannel.json b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldAddMembersAndTriggerCreateEventOnSpaceChannel.json new file mode 100644 index 000000000..caaab3330 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldAddMembersAndTriggerCreateEventOnSpaceChannel.json @@ -0,0 +1,834 @@ +[ + { + "id" : "8868F890-5DE4-428C-A460-0CC7A70A1BD3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "8868F890-5DE4-428C-A460-0CC7A70A1BD3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:36:42 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "8868F890-5DE4-428C-A460-0CC7A70A1BD3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "8868F890-5DE4-428C-A460-0CC7A70A1BD3", + "type" : 4 + }, + { + "id" : "B825E55D-1F20-424D-B6FA-3FA04C35D7DB", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B825E55D-1F20-424D-B6FA-3FA04C35D7DB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:36:42 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "B825E55D-1F20-424D-B6FA-3FA04C35D7DB", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "B825E55D-1F20-424D-B6FA-3FA04C35D7DB", + "type" : 4 + }, + { + "id" : "BBF8A5E8-5C25-4340-8E8D-6770B61FD6EE", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "BBF8A5E8-5C25-4340-8E8D-6770B61FD6EE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:36:43 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "BBF8A5E8-5C25-4340-8E8D-6770B61FD6EE", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozNjo0My4yODgzMTRaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6MzY6NDMuMjg4MzE0WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "BBF8A5E8-5C25-4340-8E8D-6770B61FD6EE", + "type" : 4 + }, + { + "id" : "6241A3EE-CEE1-4276-A56F-7A94624AF388", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "6241A3EE-CEE1-4276-A56F-7A94624AF388", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:36:45 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "6241A3EE-CEE1-4276-A56F-7A94624AF388", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM2OjQ0Ljk1NDkxM1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozNjo0NC45NTQ5MTNaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "6241A3EE-CEE1-4276-A56F-7A94624AF388", + "type" : 4 + }, + { + "id" : "137DD1CC-F48A-4FC3-B074-DE0A505EADC7", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "136", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiS2ltLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "137DD1CC-F48A-4FC3-B074-DE0A505EADC7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:36:46 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "137DD1CC-F48A-4FC3-B074-DE0A505EADC7", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM2OjQ1LjUzOTYxNVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozNjo0NS41Mzk2MTVaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In19" + }, + "type" : 2 + }, + { + "id" : "137DD1CC-F48A-4FC3-B074-DE0A505EADC7", + "type" : 4 + }, + { + "id" : "F7128E8F-D922-400A-B5D4-308CA8BCF3F3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&tt=0&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F7128E8F-D922-400A-B5D4-308CA8BCF3F3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&tt=0&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 01:36:47 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F7128E8F-D922-400A-B5D4-308CA8BCF3F3", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDM5NDA3MTgxODkxOCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "F7128E8F-D922-400A-B5D4-308CA8BCF3F3", + "type" : 4 + }, + { + "id" : "D2AE2C78-A561-427B-89A0-877777E6157A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810394071818918&tr=12" + }, + "type" : 0 + }, + { + "id" : "3A245DF8-DB6C-4D7B-B781-54BC003CC1F4", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "98", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=serhii&include=user,user.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D2AE2C78-A561-427B-89A0-877777E6157A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810394071818918&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 01:36:48 GMT", + "Content-Length" : "507", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D2AE2C78-A561-427B-89A0-877777E6157A", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDM5NDA4NDQzODExNiIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJlIjoyLCJwIjp7InQiOiIxNTgxMDM5NDA4NDQxMzgwMyIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIiwiZCI6eyJzb3VyY2UiOiJvYmplY3RzIiwidmVyc2lvbiI6IjEuMCIsImV2ZW50IjoiY3JlYXRlIiwidHlwZSI6Im1lbWJlcnNoaXAiLCJkYXRhIjp7ImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM2OjQ3LjgyNTgzNjc3MloiLCJjdXN0b20iOm51bGwsImVUYWciOiJBWTM5bUpLSy8vQzBWQSIsInNwYWNlSWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozNjo0Ny44MjU4MzY3NzJaIiwidXNlcklkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9fX1dfQ==" + }, + "type" : 2 + }, + { + "id" : "D2AE2C78-A561-427B-89A0-877777E6157A", + "type" : 4 + }, + { + "id" : "FED45A38-4F62-4294-9F4D-70DC31A6FA14", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810394084438116&tr=12" + }, + "type" : 0 + }, + { + "id" : "FED45A38-4F62-4294-9F4D-70DC31A6FA14", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810394084438116&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 01:36:49 GMT", + "Content-Length" : "504", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "FED45A38-4F62-4294-9F4D-70DC31A6FA14", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDM5NDA5MTQ5NTAyNSIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJlIjoyLCJwIjp7InQiOiIxNTgxMDM5NDA5MTQ2OTM1MSIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIiwiZCI6eyJzb3VyY2UiOiJvYmplY3RzIiwidmVyc2lvbiI6IjEuMCIsImV2ZW50IjoiY3JlYXRlIiwidHlwZSI6Im1lbWJlcnNoaXAiLCJkYXRhIjp7ImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM2OjQ4LjUyODU0Nzc5OVoiLCJjdXN0b20iOm51bGwsImVUYWciOiJBWTM5bUpLSy8vQzBWQSIsInNwYWNlSWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozNjo0OC41Mjg1NDc3OTlaIiwidXNlcklkIjoiS2ltLXVzZXItaWRlbnRpZmllciJ9fX1dfQ==" + }, + "type" : 2 + }, + { + "id" : "FED45A38-4F62-4294-9F4D-70DC31A6FA14", + "type" : 4 + }, + { + "id" : "6B55E70E-46CA-45D2-803C-A9B8BF23D380", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810394091495025&tr=12" + }, + "type" : 0 + }, + { + "id" : "6B55E70E-46CA-45D2-803C-A9B8BF23D380", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810394091495025&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810394091495025&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "96225236-740F-4F90-AB88-38C62082FD49", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/Chanted-space-identifier\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3A245DF8-DB6C-4D7B-B781-54BC003CC1F4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=serhii&include=user,user.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:36:49 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "3A245DF8-DB6C-4D7B-B781-54BC003CC1F4", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwidXNlciI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM2OjQ0Ljk1NDkxM1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozNjo0NC45NTQ5MTNaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM2OjQ3LjgyNTgzN1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozNjo0Ny44MjU4MzdaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJ1c2VyIjp7ImlkIjoiS2ltLXVzZXItaWRlbnRpZmllciIsIm5hbWUiOiJLaW0iLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IktpbS1jdXN0b20tZGF0YS0xIiwidXNlci1jdXN0b20yIjoiS2ltLWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDE6MzY6NDUuNTM5NjE1WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM2OjQ1LjUzOTYxNVoiLCJlVGFnIjoiQWJqTHkvTE52N0hWTncifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDE6MzY6NDguNTI4NTQ4WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM2OjQ4LjUyODU0OFoiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifV0sIm5leHQiOiJNZyJ9" + }, + "type" : 2 + }, + { + "id" : "3A245DF8-DB6C-4D7B-B781-54BC003CC1F4", + "type" : 4 + }, + { + "id" : "96225236-740F-4F90-AB88-38C62082FD49", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/Chanted-space-identifier\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Fri, 07 Feb 2020 01:36:49 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "96225236-740F-4F90-AB88-38C62082FD49", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "96225236-740F-4F90-AB88-38C62082FD49", + "type" : 4 + }, + { + "id" : "8CAA8F83-EA5B-453D-ABEE-2AD456AB1DEF", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "8CAA8F83-EA5B-453D-ABEE-2AD456AB1DEF", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:36:49 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "8CAA8F83-EA5B-453D-ABEE-2AD456AB1DEF", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDE6MzY6NDcuODI1ODM3WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM2OjQ3LjgyNTgzN1oiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiS2ltLXVzZXItaWRlbnRpZmllciIsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM2OjQ4LjUyODU0OFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozNjo0OC41Mjg1NDhaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn1dLCJuZXh0IjoiTWcifQ==" + }, + "type" : 2 + }, + { + "id" : "8CAA8F83-EA5B-453D-ABEE-2AD456AB1DEF", + "type" : 4 + }, + { + "id" : "BFA0A79C-9196-4BE9-A90E-0BEC4C7B242B", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "101", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "BFA0A79C-9196-4BE9-A90E-0BEC4C7B242B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:36:52 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "BFA0A79C-9196-4BE9-A90E-0BEC4C7B242B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "BFA0A79C-9196-4BE9-A90E-0BEC4C7B242B", + "type" : 4 + }, + { + "id" : "F6A611DF-3C69-4883-8C9B-DCC586877DE5", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F6A611DF-3C69-4883-8C9B-DCC586877DE5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:36:52 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "F6A611DF-3C69-4883-8C9B-DCC586877DE5", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "F6A611DF-3C69-4883-8C9B-DCC586877DE5", + "type" : 4 + }, + { + "id" : "699868C6-4013-48B6-8700-CE796FAE87D2", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "699868C6-4013-48B6-8700-CE796FAE87D2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:36:53 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "699868C6-4013-48B6-8700-CE796FAE87D2", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "699868C6-4013-48B6-8700-CE796FAE87D2", + "type" : 4 + }, + { + "id" : "E05153D5-5114-4608-AB75-4E28284CD1DE", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E05153D5-5114-4608-AB75-4E28284CD1DE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:36:55 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "E05153D5-5114-4608-AB75-4E28284CD1DE", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "E05153D5-5114-4608-AB75-4E28284CD1DE", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldAddMembersAndTriggerCreateEventOnUserChannel.json b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldAddMembersAndTriggerCreateEventOnUserChannel.json new file mode 100644 index 000000000..c275b3d3b --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldAddMembersAndTriggerCreateEventOnUserChannel.json @@ -0,0 +1,675 @@ +[ + { + "id" : "BB57F8B7-2199-4DA5-862C-2AA74EE22E87", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "BB57F8B7-2199-4DA5-862C-2AA74EE22E87", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:36:57 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "BB57F8B7-2199-4DA5-862C-2AA74EE22E87", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "BB57F8B7-2199-4DA5-862C-2AA74EE22E87", + "type" : 4 + }, + { + "id" : "CF9BF9DB-0156-41F6-B17E-64E81A18E776", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "CF9BF9DB-0156-41F6-B17E-64E81A18E776", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:36:57 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "CF9BF9DB-0156-41F6-B17E-64E81A18E776", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "CF9BF9DB-0156-41F6-B17E-64E81A18E776", + "type" : 4 + }, + { + "id" : "F45E9839-FC43-4FB5-A462-1B31DD234083", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F45E9839-FC43-4FB5-A462-1B31DD234083", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:36:58 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "F45E9839-FC43-4FB5-A462-1B31DD234083", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozNjo1OC4wODg0NzhaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6MzY6NTguMDg4NDc4WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "F45E9839-FC43-4FB5-A462-1B31DD234083", + "type" : 4 + }, + { + "id" : "6A8935CB-A1EE-4B17-BDF1-A6C5BB805015", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "6A8935CB-A1EE-4B17-BDF1-A6C5BB805015", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:37:00 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "6A8935CB-A1EE-4B17-BDF1-A6C5BB805015", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM2OjU5LjcxMDcyNVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozNjo1OS43MTA3MjVaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "6A8935CB-A1EE-4B17-BDF1-A6C5BB805015", + "type" : 4 + }, + { + "id" : "887051AE-7ACF-4958-B271-38B71FAEB80E", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "136", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiS2ltLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "887051AE-7ACF-4958-B271-38B71FAEB80E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:37:00 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "887051AE-7ACF-4958-B271-38B71FAEB80E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM3OjAwLjI5ODU3M1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozNzowMC4yOTg1NzNaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In19" + }, + "type" : 2 + }, + { + "id" : "887051AE-7ACF-4958-B271-38B71FAEB80E", + "type" : 4 + }, + { + "id" : "53D338F5-72A3-42B0-AE16-5EB8E45BFE1E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&tt=0&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "53D338F5-72A3-42B0-AE16-5EB8E45BFE1E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&tt=0&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 01:37:02 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "53D338F5-72A3-42B0-AE16-5EB8E45BFE1E", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDM5NDIxOTk5NDY4NyIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "53D338F5-72A3-42B0-AE16-5EB8E45BFE1E", + "type" : 4 + }, + { + "id" : "59747AF6-78D8-40CE-9108-D1E1FE696853", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810394219994687&tr=12" + }, + "type" : 0 + }, + { + "id" : "C9BE7370-55A9-488F-9C5C-A3B0432C2AA4", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "98", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=serhii&include=user,user.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "59747AF6-78D8-40CE-9108-D1E1FE696853", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810394219994687&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 01:37:03 GMT", + "Content-Length" : "505", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "59747AF6-78D8-40CE-9108-D1E1FE696853", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDM5NDIzMzA0NTExNSIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJlIjoyLCJwIjp7InQiOiIxNTgxMDM5NDIzMzAzODI4NiIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciIsImQiOnsic291cmNlIjoib2JqZWN0cyIsInZlcnNpb24iOiIxLjAiLCJldmVudCI6ImNyZWF0ZSIsInR5cGUiOiJtZW1iZXJzaGlwIiwiZGF0YSI6eyJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozNzowMi42OTI4ODMwNTRaIiwiY3VzdG9tIjpudWxsLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEiLCJzcGFjZUlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzc6MDIuNjkyODgzMDU0WiIsInVzZXJJZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIifX19XX0=" + }, + "type" : 2 + }, + { + "id" : "59747AF6-78D8-40CE-9108-D1E1FE696853", + "type" : 4 + }, + { + "id" : "C007C44D-C90F-4B0E-88BA-26CA1DCB1E2F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810394233045115&tr=12" + }, + "type" : 0 + }, + { + "id" : "C007C44D-C90F-4B0E-88BA-26CA1DCB1E2F", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810394233045115&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810394233045115&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "2F5B4791-C617-4E77-BDCB-90BB8E480937", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/Serhii-user-identifier\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2F5B4791-C617-4E77-BDCB-90BB8E480937", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/Serhii-user-identifier\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Fri, 07 Feb 2020 01:37:03 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "2F5B4791-C617-4E77-BDCB-90BB8E480937", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "2F5B4791-C617-4E77-BDCB-90BB8E480937", + "type" : 4 + }, + { + "id" : "700B1DBF-E941-4BD7-90CD-FA811FD38CAD", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C9BE7370-55A9-488F-9C5C-A3B0432C2AA4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=serhii&include=user,user.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:37:04 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "C9BE7370-55A9-488F-9C5C-A3B0432C2AA4", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwidXNlciI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM2OjU5LjcxMDcyNVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozNjo1OS43MTA3MjVaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM3OjAyLjY5Mjg4M1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozNzowMi42OTI4ODNaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJ1c2VyIjp7ImlkIjoiS2ltLXVzZXItaWRlbnRpZmllciIsIm5hbWUiOiJLaW0iLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IktpbS1jdXN0b20tZGF0YS0xIiwidXNlci1jdXN0b20yIjoiS2ltLWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzc6MDAuMjk4NTczWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM3OjAwLjI5ODU3M1oiLCJlVGFnIjoiQWJqTHkvTE52N0hWTncifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzc6MDMuMzg4MTI5WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM3OjAzLjM4ODEyOVoiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifV0sIm5leHQiOiJNZyJ9" + }, + "type" : 2 + }, + { + "id" : "C9BE7370-55A9-488F-9C5C-A3B0432C2AA4", + "type" : 4 + }, + { + "id" : "700B1DBF-E941-4BD7-90CD-FA811FD38CAD", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:37:04 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "700B1DBF-E941-4BD7-90CD-FA811FD38CAD", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "700B1DBF-E941-4BD7-90CD-FA811FD38CAD", + "type" : 4 + }, + { + "id" : "35E480A6-B80A-4EAA-A238-4E4C2B4DEFDF", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "35E480A6-B80A-4EAA-A238-4E4C2B4DEFDF", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:37:05 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "35E480A6-B80A-4EAA-A238-4E4C2B4DEFDF", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "35E480A6-B80A-4EAA-A238-4E4C2B4DEFDF", + "type" : 4 + }, + { + "id" : "9ADDE596-8A40-4548-8182-A3B6B567AD5E", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9ADDE596-8A40-4548-8182-A3B6B567AD5E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:37:07 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "9ADDE596-8A40-4548-8182-A3B6B567AD5E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "9ADDE596-8A40-4548-8182-A3B6B567AD5E", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldDeleteMembersAndReceiveStatusWithExpectedOperationAndCategory.json b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldDeleteMembersAndReceiveStatusWithExpectedOperationAndCategory.json new file mode 100644 index 000000000..fe3531fd5 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldDeleteMembersAndReceiveStatusWithExpectedOperationAndCategory.json @@ -0,0 +1,652 @@ +[ + { + "id" : "30858CDE-D7E0-4771-8743-AFFA2E5BBE2C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "30858CDE-D7E0-4771-8743-AFFA2E5BBE2C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:23:30 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "30858CDE-D7E0-4771-8743-AFFA2E5BBE2C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "30858CDE-D7E0-4771-8743-AFFA2E5BBE2C", + "type" : 4 + }, + { + "id" : "3B41D416-A510-4C02-A34D-5FA0D03CB4A5", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3B41D416-A510-4C02-A34D-5FA0D03CB4A5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:23:30 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "3B41D416-A510-4C02-A34D-5FA0D03CB4A5", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "3B41D416-A510-4C02-A34D-5FA0D03CB4A5", + "type" : 4 + }, + { + "id" : "ABA77E74-8A45-456E-9297-2FB9E2946D4D", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "ABA77E74-8A45-456E-9297-2FB9E2946D4D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 13:23:30 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "ABA77E74-8A45-456E-9297-2FB9E2946D4D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMzoyMzozMC4zMzEyNjlaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMTM6MjM6MzAuMzMxMjY5WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "ABA77E74-8A45-456E-9297-2FB9E2946D4D", + "type" : 4 + }, + { + "id" : "9B83CE4B-8DB6-4540-B3D8-56C70092B595", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9B83CE4B-8DB6-4540-B3D8-56C70092B595", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 13:23:32 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "9B83CE4B-8DB6-4540-B3D8-56C70092B595", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDEzOjIzOjMxLjk0NjEyOVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMzoyMzozMS45NDYxMjlaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "9B83CE4B-8DB6-4540-B3D8-56C70092B595", + "type" : 4 + }, + { + "id" : "63A503D2-CA24-497E-B150-B5D06EEA302E", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "136", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiS2ltLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "63A503D2-CA24-497E-B150-B5D06EEA302E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 13:23:33 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "63A503D2-CA24-497E-B150-B5D06EEA302E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDEzOjIzOjMyLjUyNTEwNVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMzoyMzozMi41MjUxMDVaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In19" + }, + "type" : 2 + }, + { + "id" : "63A503D2-CA24-497E-B150-B5D06EEA302E", + "type" : 4 + }, + { + "id" : "A00E84FD-48E1-4E16-ACA7-908B9B81E51B", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "98", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A00E84FD-48E1-4E16-ACA7-908B9B81E51B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 13:23:36 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "A00E84FD-48E1-4E16-ACA7-908B9B81E51B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMzoyMzozNC41MjEwN1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMzoyMzozNC41MjEwN1oiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiS2ltLXVzZXItaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMTM6MjM6MzUuMjE1OTU0WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDEzOjIzOjM1LjIxNTk1NFoiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifV0sIm5leHQiOiJNZyJ9" + }, + "type" : 2 + }, + { + "id" : "A00E84FD-48E1-4E16-ACA7-908B9B81E51B", + "type" : 4 + }, + { + "id" : "010F8EFC-6B0A-4412-8407-24A112EAC934", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "58", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "010F8EFC-6B0A-4412-8407-24A112EAC934", + "data" : { + "status" : 404, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:23:38 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "196", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "010F8EFC-6B0A-4412-8407-24A112EAC934", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMzoyMzozNS4yMTU5NTRaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMTM6MjM6MzUuMjE1OTU0WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9XSwibmV4dCI6Ik1RIn0=" + }, + "type" : 2 + }, + { + "id" : "010F8EFC-6B0A-4412-8407-24A112EAC934", + "type" : 4 + }, + { + "id" : "010F8EFC-6B0A-4412-8407-24A112EAC938", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "58", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "010F8EFC-6B0A-4412-8407-24A112EAC938", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:23:38 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "196", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "010F8EFC-6B0A-4412-8407-24A112EAC938", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMzoyMzozNS4yMTU5NTRaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMTM6MjM6MzUuMjE1OTU0WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9XSwibmV4dCI6Ik1RIn0=" + }, + "type" : 2 + }, + { + "id" : "010F8EFC-6B0A-4412-8407-24A112EAC938", + "type" : 4 + }, + { + "id" : "031CAD1C-3846-4924-B0B5-EC411135A17B", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "55", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiS2ltLXVzZXItaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "031CAD1C-3846-4924-B0B5-EC411135A17B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:23:40 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "031CAD1C-3846-4924-B0B5-EC411135A17B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "031CAD1C-3846-4924-B0B5-EC411135A17B", + "type" : 4 + }, + { + "id" : "05CFD540-71DB-4171-A8D7-03996B663C2A", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "05CFD540-71DB-4171-A8D7-03996B663C2A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:23:41 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "05CFD540-71DB-4171-A8D7-03996B663C2A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "05CFD540-71DB-4171-A8D7-03996B663C2A", + "type" : 4 + }, + { + "id" : "F0B22254-72B2-4447-AFB2-29F0BBC2D4A5", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F0B22254-72B2-4447-AFB2-29F0BBC2D4A5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:23:42 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "F0B22254-72B2-4447-AFB2-29F0BBC2D4A5", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "F0B22254-72B2-4447-AFB2-29F0BBC2D4A5", + "type" : 4 + }, + { + "id" : "84B21FD8-6387-45D8-A398-5F4E8745F8B6", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "84B21FD8-6387-45D8-A398-5F4E8745F8B6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:23:43 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "84B21FD8-6387-45D8-A398-5F4E8745F8B6", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "84B21FD8-6387-45D8-A398-5F4E8745F8B6", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldDeleteMembersAndReturnFilteredUserInformationWhenFilterIsSet.json b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldDeleteMembersAndReturnFilteredUserInformationWhenFilterIsSet.json new file mode 100644 index 000000000..89382d317 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldDeleteMembersAndReturnFilteredUserInformationWhenFilterIsSet.json @@ -0,0 +1,598 @@ +[ + { + "id" : "4B71D914-87AA-4262-82E5-517E570338C5", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "4B71D914-87AA-4262-82E5-517E570338C5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:37:39 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "4B71D914-87AA-4262-82E5-517E570338C5", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "4B71D914-87AA-4262-82E5-517E570338C5", + "type" : 4 + }, + { + "id" : "2184D7D1-6C96-4765-AAC3-CC0DE15C08F6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2184D7D1-6C96-4765-AAC3-CC0DE15C08F6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:37:39 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "2184D7D1-6C96-4765-AAC3-CC0DE15C08F6", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "2184D7D1-6C96-4765-AAC3-CC0DE15C08F6", + "type" : 4 + }, + { + "id" : "2DDC45AA-04E2-4A19-B350-81EB8498B6C3", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2DDC45AA-04E2-4A19-B350-81EB8498B6C3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:37:40 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "2DDC45AA-04E2-4A19-B350-81EB8498B6C3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozNzozOS43MjM0NTFaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzc6MzkuNzIzNDUxWiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "2DDC45AA-04E2-4A19-B350-81EB8498B6C3", + "type" : 4 + }, + { + "id" : "1F56CB13-AE62-456A-B7B6-A935368A4734", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1F56CB13-AE62-456A-B7B6-A935368A4734", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:37:41 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "1F56CB13-AE62-456A-B7B6-A935368A4734", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM3OjQxLjM4ODgwNVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozNzo0MS4zODg4MDVaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "1F56CB13-AE62-456A-B7B6-A935368A4734", + "type" : 4 + }, + { + "id" : "42B8FF53-1D30-4EB6-950D-2291E106C220", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "136", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiS2ltLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "42B8FF53-1D30-4EB6-950D-2291E106C220", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:37:42 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "42B8FF53-1D30-4EB6-950D-2291E106C220", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM3OjQxLjk5MTYxMloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozNzo0MS45OTE2MTJaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In19" + }, + "type" : 2 + }, + { + "id" : "42B8FF53-1D30-4EB6-950D-2291E106C220", + "type" : 4 + }, + { + "id" : "5E402086-7C65-4F83-83F6-1225AE7BC276", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "98", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "5E402086-7C65-4F83-83F6-1225AE7BC276", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:37:45 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "5E402086-7C65-4F83-83F6-1225AE7BC276", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozNzo0NC4wMjU3MTZaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzc6NDQuMDI1NzE2WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozNzo0NC43MjU1NzRaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzc6NDQuNzI1NTc0WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9XSwibmV4dCI6Ik1nIn0=" + }, + "type" : 2 + }, + { + "id" : "5E402086-7C65-4F83-83F6-1225AE7BC276", + "type" : 4 + }, + { + "id" : "796906AB-046C-427F-81D5-805C21AB1D63", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "58", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?filter=user.name%20like%20'K*'&count=1&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&include=user,user.custom&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "796906AB-046C-427F-81D5-805C21AB1D63", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?filter=user.name%20like%20'K*'&count=1&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&include=user,user.custom&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:37:47 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "796906AB-046C-427F-81D5-805C21AB1D63", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIiwidXNlciI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM3OjQxLjk5MTYxMloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozNzo0MS45OTE2MTJaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM3OjQ0LjcyNTU3NFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozNzo0NC43MjU1NzRaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn1dLCJ0b3RhbENvdW50IjoxLCJuZXh0IjoiTVEifQ==" + }, + "type" : 2 + }, + { + "id" : "796906AB-046C-427F-81D5-805C21AB1D63", + "type" : 4 + }, + { + "id" : "706AE725-3E5E-4792-9276-F0F182A00D6E", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "55", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiS2ltLXVzZXItaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "706AE725-3E5E-4792-9276-F0F182A00D6E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:37:50 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "706AE725-3E5E-4792-9276-F0F182A00D6E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "706AE725-3E5E-4792-9276-F0F182A00D6E", + "type" : 4 + }, + { + "id" : "F95A0B63-3A12-4552-82FB-D1D71C0397E1", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F95A0B63-3A12-4552-82FB-D1D71C0397E1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:37:51 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "F95A0B63-3A12-4552-82FB-D1D71C0397E1", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "F95A0B63-3A12-4552-82FB-D1D71C0397E1", + "type" : 4 + }, + { + "id" : "29045478-524B-4DA6-BEBA-7B7DFE507665", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "29045478-524B-4DA6-BEBA-7B7DFE507665", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:37:51 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "29045478-524B-4DA6-BEBA-7B7DFE507665", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "29045478-524B-4DA6-BEBA-7B7DFE507665", + "type" : 4 + }, + { + "id" : "7D76DD40-2A1C-437A-A5F7-92936021031A", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "7D76DD40-2A1C-437A-A5F7-92936021031A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:37:53 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "7D76DD40-2A1C-437A-A5F7-92936021031A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "7D76DD40-2A1C-437A-A5F7-92936021031A", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldDeleteMembersAndReturnSortedUserInformationWhenSortIsSet.json b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldDeleteMembersAndReturnSortedUserInformationWhenSortIsSet.json new file mode 100644 index 000000000..30f1283ee --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldDeleteMembersAndReturnSortedUserInformationWhenSortIsSet.json @@ -0,0 +1,922 @@ +[ + { + "id" : "CC433FE6-D2A3-4868-B292-2FD35A7D1CF4", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "CC433FE6-D2A3-4868-B292-2FD35A7D1CF4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:04:31 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "CC433FE6-D2A3-4868-B292-2FD35A7D1CF4", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "CC433FE6-D2A3-4868-B292-2FD35A7D1CF4", + "type" : 4 + }, + { + "id" : "F0463E6E-8AE5-4489-9D2A-FE5E13F62598", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F0463E6E-8AE5-4489-9D2A-FE5E13F62598", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:04:31 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "F0463E6E-8AE5-4489-9D2A-FE5E13F62598", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "F0463E6E-8AE5-4489-9D2A-FE5E13F62598", + "type" : 4 + }, + { + "id" : "23C8F1E7-757D-4F5F-B72E-298949FC579A", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "23C8F1E7-757D-4F5F-B72E-298949FC579A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:04:32 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "23C8F1E7-757D-4F5F-B72E-298949FC579A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMTowNDozMi4wNzkzMVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMTowNDozMi4wNzkzMVoiLCJlVGFnIjoiQWNXajlPVFF3TWFtcFFFIn19" + }, + "type" : 2 + }, + { + "id" : "23C8F1E7-757D-4F5F-B72E-298949FC579A", + "type" : 4 + }, + { + "id" : "D2D53E8B-B732-41C8-A969-2E36950D166E", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D2D53E8B-B732-41C8-A969-2E36950D166E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:04:34 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "D2D53E8B-B732-41C8-A969-2E36950D166E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjA0OjMzLjY5MzEwMloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMTowNDozMy42OTMxMDJaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "D2D53E8B-B732-41C8-A969-2E36950D166E", + "type" : 4 + }, + { + "id" : "80B34D8C-6549-4D69-B0A8-D94348D68F46", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "136", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiS2ltLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "80B34D8C-6549-4D69-B0A8-D94348D68F46", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:04:34 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "80B34D8C-6549-4D69-B0A8-D94348D68F46", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjA0OjM0LjI5NTY2OFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMTowNDozNC4yOTU2NjhaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In19" + }, + "type" : 2 + }, + { + "id" : "80B34D8C-6549-4D69-B0A8-D94348D68F46", + "type" : 4 + }, + { + "id" : "06FC7C4B-AE8E-4B58-96BE-C114C9D1EA8E", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "152", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkVhcmxpbmUiLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiRWFybGluZS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiRWFybGluZS1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "06FC7C4B-AE8E-4B58-96BE-C114C9D1EA8E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:04:35 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "06FC7C4B-AE8E-4B58-96BE-C114C9D1EA8E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkVhcmxpbmUiLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IkVhcmxpbmUtY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IkVhcmxpbmUtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMTowNDozNC45MTQ4MzlaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MDQ6MzQuOTE0ODM5WiIsImVUYWciOiJBZDZienJuY3JLVzNyUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "06FC7C4B-AE8E-4B58-96BE-C114C9D1EA8E", + "type" : 4 + }, + { + "id" : "6478061E-9138-448C-A69E-3B2EAFAE8564", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "140", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkdsZW4iLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiR2xlbi1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiR2xlbi1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "6478061E-9138-448C-A69E-3B2EAFAE8564", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:04:36 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "6478061E-9138-448C-A69E-3B2EAFAE8564", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkdsZW4iLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IkdsZW4tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IkdsZW4tY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMTowNDozNS41MjIyNzhaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MDQ6MzUuNTIyMjc4WiIsImVUYWciOiJBZi81d01TaDNyZUlkQSJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "6478061E-9138-448C-A69E-3B2EAFAE8564", + "type" : 4 + }, + { + "id" : "31156542-478D-483B-882A-7C5DCABAA932", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "152", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6Ik5pY29sYXMiLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiTmljb2xhcy1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiTmljb2xhcy1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "31156542-478D-483B-882A-7C5DCABAA932", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:04:36 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "31156542-478D-483B-882A-7C5DCABAA932", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6Ik5pY29sYXMiLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6Ik5pY29sYXMtY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6Ik5pY29sYXMtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMTowNDozNi4xMzgxMzFaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MDQ6MzYuMTM4MTMxWiIsImVUYWciOiJBZGlKbC96NHNPYU4rZ0UifX0=" + }, + "type" : 2 + }, + { + "id" : "31156542-478D-483B-882A-7C5DCABAA932", + "type" : 4 + }, + { + "id" : "C5C83198-DB9E-4280-8D96-EB5221030718", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "236", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn0seyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIn0seyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIn0seyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=custom,user&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C5C83198-DB9E-4280-8D96-EB5221030718", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=custom,user&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:04:41 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "C5C83198-DB9E-4280-8D96-EB5221030718", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJ1c2VyIjp7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciIsIm5hbWUiOiJTZXJoaWkiLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDE6MDQ6MzMuNjkzMTAyWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAxOjA0OjMzLjY5MzEwMloiLCJlVGFnIjoiQWVQMjY3ZmF1dmJCUEEifSwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDE6MDQ6MzguMTM5MjA0WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAxOjA0OjM4LjEzOTIwNFoiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiS2ltLXVzZXItaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwidXNlciI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjA0OjM0LjI5NTY2OFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMTowNDozNC4yOTU2NjhaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjA0OjM4LjgzNDA4M1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMTowNDozOC44MzQwODNaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJ1c2VyIjp7ImlkIjoiRWFybGluZS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiRWFybGluZSIsImV4dGVybmFsSWQiOm51bGwsInByb2ZpbGVVcmwiOm51bGwsImVtYWlsIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMTowNDozNC45MTQ4MzlaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MDQ6MzQuOTE0ODM5WiIsImVUYWciOiJBZDZienJuY3JLVzNyUUUifSwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDE6MDQ6MzkuNTI5MDI1WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAxOjA0OjM5LjUyOTAyNVoiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiR2xlbi11c2VyLWlkZW50aWZpZXIiLCJjdXN0b20iOm51bGwsInVzZXIiOnsiaWQiOiJHbGVuLXVzZXItaWRlbnRpZmllciIsIm5hbWUiOiJHbGVuIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjA0OjM1LjUyMjI3OFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMTowNDozNS41MjIyNzhaIiwiZVRhZyI6IkFmLzV3TVNoM3JlSWRBIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjA0OjQwLjIyNDgxNloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMTowNDo0MC4yMjQ4MTZaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJ1c2VyIjp7ImlkIjoiTmljb2xhcy11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiTmljb2xhcyIsImV4dGVybmFsSWQiOm51bGwsInByb2ZpbGVVcmwiOm51bGwsImVtYWlsIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMTowNDozNi4xMzgxMzFaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MDQ6MzYuMTM4MTMxWiIsImVUYWciOiJBZGlKbC96NHNPYU4rZ0UifSwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDE6MDQ6NDAuOTE5ODAxWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAxOjA0OjQwLjkxOTgwMVoiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifV0sIm5leHQiOiJOUSJ9" + }, + "type" : 2 + }, + { + "id" : "C5C83198-DB9E-4280-8D96-EB5221030718", + "type" : 4 + }, + { + "id" : "6CCF0B75-F758-4C90-B72B-B09C5E4816D3", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "58", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?sort=user.name:desc,created&count=1&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&include=user,user.custom&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "6CCF0B75-F758-4C90-B72B-B09C5E4816D3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?sort=user.name:desc,created&count=1&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&include=user,user.custom&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:04:44 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "6CCF0B75-F758-4C90-B72B-B09C5E4816D3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJOaWNvbGFzLXVzZXItaWRlbnRpZmllciIsInVzZXIiOnsiaWQiOiJOaWNvbGFzLXVzZXItaWRlbnRpZmllciIsIm5hbWUiOiJOaWNvbGFzIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJOaWNvbGFzLWN1c3RvbS1kYXRhLTEiLCJ1c2VyLWN1c3RvbTIiOiJOaWNvbGFzLWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDE6MDQ6MzYuMTM4MTMxWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAxOjA0OjM2LjEzODEzMVoiLCJlVGFnIjoiQWRpSmwvejRzT2FOK2dFIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjA0OjQwLjkxOTgwMVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMTowNDo0MC45MTk4MDFaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJ1c2VyIjp7ImlkIjoiS2ltLXVzZXItaWRlbnRpZmllciIsIm5hbWUiOiJLaW0iLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IktpbS1jdXN0b20tZGF0YS0xIiwidXNlci1jdXN0b20yIjoiS2ltLWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDE6MDQ6MzQuMjk1NjY4WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAxOjA0OjM0LjI5NTY2OFoiLCJlVGFnIjoiQWJqTHkvTE52N0hWTncifSwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDE6MDQ6MzguODM0MDgzWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAxOjA0OjM4LjgzNDA4M1oiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiR2xlbi11c2VyLWlkZW50aWZpZXIiLCJ1c2VyIjp7ImlkIjoiR2xlbi11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiR2xlbiIsImV4dGVybmFsSWQiOm51bGwsInByb2ZpbGVVcmwiOm51bGwsImVtYWlsIjpudWxsLCJjdXN0b20iOnsidXNlci1jdXN0b20xIjoiR2xlbi1jdXN0b20tZGF0YS0xIiwidXNlci1jdXN0b20yIjoiR2xlbi1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjA0OjM1LjUyMjI3OFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMTowNDozNS41MjIyNzhaIiwiZVRhZyI6IkFmLzV3TVNoM3JlSWRBIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjA0OjQwLjIyNDgxNloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMTowNDo0MC4yMjQ4MTZaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIiwidXNlciI6eyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkVhcmxpbmUiLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IkVhcmxpbmUtY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IkVhcmxpbmUtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMTowNDozNC45MTQ4MzlaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MDQ6MzQuOTE0ODM5WiIsImVUYWciOiJBZDZienJuY3JLVzNyUUUifSwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDE6MDQ6MzkuNTI5MDI1WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAxOjA0OjM5LjUyOTAyNVoiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifV0sInRvdGFsQ291bnQiOjQsIm5leHQiOiJOQSJ9" + }, + "type" : 2 + }, + { + "id" : "6CCF0B75-F758-4C90-B72B-B09C5E4816D3", + "type" : 4 + }, + { + "id" : "64CCF060-A51B-4355-A4BB-DA13782C4733", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "193", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiS2ltLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJFYXJsaW5lLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJHbGVuLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJOaWNvbGFzLXVzZXItaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "64CCF060-A51B-4355-A4BB-DA13782C4733", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:04:46 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "64CCF060-A51B-4355-A4BB-DA13782C4733", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "64CCF060-A51B-4355-A4BB-DA13782C4733", + "type" : 4 + }, + { + "id" : "7C773C36-9222-4FCE-BACC-2B55E04AE64F", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "7C773C36-9222-4FCE-BACC-2B55E04AE64F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:04:47 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "7C773C36-9222-4FCE-BACC-2B55E04AE64F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "7C773C36-9222-4FCE-BACC-2B55E04AE64F", + "type" : 4 + }, + { + "id" : "D768A70A-2598-4AD8-9D8C-E7A023A6427D", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D768A70A-2598-4AD8-9D8C-E7A023A6427D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:04:47 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "D768A70A-2598-4AD8-9D8C-E7A023A6427D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "D768A70A-2598-4AD8-9D8C-E7A023A6427D", + "type" : 4 + }, + { + "id" : "7042207B-ECDB-48C6-8F8B-37E0B24B1F0E", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Earline-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "7042207B-ECDB-48C6-8F8B-37E0B24B1F0E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Earline-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:04:48 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "7042207B-ECDB-48C6-8F8B-37E0B24B1F0E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "7042207B-ECDB-48C6-8F8B-37E0B24B1F0E", + "type" : 4 + }, + { + "id" : "9FC852B1-900E-4984-9436-A15DF2789736", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Glen-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9FC852B1-900E-4984-9436-A15DF2789736", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Glen-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:04:49 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "9FC852B1-900E-4984-9436-A15DF2789736", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "9FC852B1-900E-4984-9436-A15DF2789736", + "type" : 4 + }, + { + "id" : "1D861413-1D5E-4A98-B743-A85295233063", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Nicolas-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1D861413-1D5E-4A98-B743-A85295233063", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Nicolas-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:04:50 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "1D861413-1D5E-4A98-B743-A85295233063", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "1D861413-1D5E-4A98-B743-A85295233063", + "type" : 4 + }, + { + "id" : "4116E709-B1A3-49ED-8798-EBD0DB7EC24C", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "4116E709-B1A3-49ED-8798-EBD0DB7EC24C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:04:52 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "4116E709-B1A3-49ED-8798-EBD0DB7EC24C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "4116E709-B1A3-49ED-8798-EBD0DB7EC24C", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldDeleteMembersAndReturnUserInformationWhenUserIncludeFlagIsSet.json b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldDeleteMembersAndReturnUserInformationWhenUserIncludeFlagIsSet.json new file mode 100644 index 000000000..82e441a60 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldDeleteMembersAndReturnUserInformationWhenUserIncludeFlagIsSet.json @@ -0,0 +1,598 @@ +[ + { + "id" : "A6E94074-D07D-4570-AC1F-7113E6DFA546", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A6E94074-D07D-4570-AC1F-7113E6DFA546", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:37:55 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "A6E94074-D07D-4570-AC1F-7113E6DFA546", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "A6E94074-D07D-4570-AC1F-7113E6DFA546", + "type" : 4 + }, + { + "id" : "28F792E0-E82C-4D37-8BA6-11A5EEF4D446", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "28F792E0-E82C-4D37-8BA6-11A5EEF4D446", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:37:55 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "28F792E0-E82C-4D37-8BA6-11A5EEF4D446", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "28F792E0-E82C-4D37-8BA6-11A5EEF4D446", + "type" : 4 + }, + { + "id" : "22012F2E-782D-4A88-BC97-AD782D4ADB70", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "22012F2E-782D-4A88-BC97-AD782D4ADB70", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:37:56 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "22012F2E-782D-4A88-BC97-AD782D4ADB70", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozNzo1NS45NjQzMjRaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzc6NTUuOTY0MzI0WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "22012F2E-782D-4A88-BC97-AD782D4ADB70", + "type" : 4 + }, + { + "id" : "3EB69C12-50CD-4377-9BFF-7F5E15C0EE0E", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3EB69C12-50CD-4377-9BFF-7F5E15C0EE0E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:37:58 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "3EB69C12-50CD-4377-9BFF-7F5E15C0EE0E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM3OjU3LjU2ODkxN1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozNzo1Ny41Njg5MTdaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "3EB69C12-50CD-4377-9BFF-7F5E15C0EE0E", + "type" : 4 + }, + { + "id" : "73E923EE-6F78-4372-B33A-AE1D3E3874B5", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "136", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiS2ltLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "73E923EE-6F78-4372-B33A-AE1D3E3874B5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:37:58 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "73E923EE-6F78-4372-B33A-AE1D3E3874B5", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM3OjU4LjE2NzI5NVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozNzo1OC4xNjcyOTVaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In19" + }, + "type" : 2 + }, + { + "id" : "73E923EE-6F78-4372-B33A-AE1D3E3874B5", + "type" : 4 + }, + { + "id" : "40BCF716-6415-45ED-8105-F37C8F69BE18", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "98", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "40BCF716-6415-45ED-8105-F37C8F69BE18", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:38:01 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "40BCF716-6415-45ED-8105-F37C8F69BE18", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozODowMC4xODMzMTVaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzg6MDAuMTgzMzE1WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozODowMC44Nzc3NThaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzg6MDAuODc3NzU4WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9XSwibmV4dCI6Ik1nIn0=" + }, + "type" : 2 + }, + { + "id" : "40BCF716-6415-45ED-8105-F37C8F69BE18", + "type" : 4 + }, + { + "id" : "CDC6E4D2-F2FC-4B1C-BAA9-25960CA652C0", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "58", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=user,user.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "CDC6E4D2-F2FC-4B1C-BAA9-25960CA652C0", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=user,user.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:38:03 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "CDC6E4D2-F2FC-4B1C-BAA9-25960CA652C0", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIiwidXNlciI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM3OjU4LjE2NzI5NVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozNzo1OC4xNjcyOTVaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM4OjAwLjg3Nzc1OFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozODowMC44Nzc3NThaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn1dLCJuZXh0IjoiTVEifQ==" + }, + "type" : 2 + }, + { + "id" : "CDC6E4D2-F2FC-4B1C-BAA9-25960CA652C0", + "type" : 4 + }, + { + "id" : "2C33DB45-15C4-4ABC-A3C2-8FB00AE61EB4", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "55", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiS2ltLXVzZXItaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2C33DB45-15C4-4ABC-A3C2-8FB00AE61EB4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:38:06 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "2C33DB45-15C4-4ABC-A3C2-8FB00AE61EB4", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "2C33DB45-15C4-4ABC-A3C2-8FB00AE61EB4", + "type" : 4 + }, + { + "id" : "A1EA7906-EF3E-4DCB-9DC6-C11C6D287B1C", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A1EA7906-EF3E-4DCB-9DC6-C11C6D287B1C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:38:06 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "A1EA7906-EF3E-4DCB-9DC6-C11C6D287B1C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "A1EA7906-EF3E-4DCB-9DC6-C11C6D287B1C", + "type" : 4 + }, + { + "id" : "D3DFB381-A293-48DE-835A-BB8C325F3054", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D3DFB381-A293-48DE-835A-BB8C325F3054", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:38:07 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "D3DFB381-A293-48DE-835A-BB8C325F3054", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "D3DFB381-A293-48DE-835A-BB8C325F3054", + "type" : 4 + }, + { + "id" : "62F5870E-3902-426E-A1DD-748C8EFFD2D5", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "62F5870E-3902-426E-A1DD-748C8EFFD2D5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:38:09 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "62F5870E-3902-426E-A1DD-748C8EFFD2D5", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "62F5870E-3902-426E-A1DD-748C8EFFD2D5", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldDeleteMembersAndTriggerDeleteEventOnSpaceChannel.json b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldDeleteMembersAndTriggerDeleteEventOnSpaceChannel.json new file mode 100644 index 000000000..d9e1d3c06 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldDeleteMembersAndTriggerDeleteEventOnSpaceChannel.json @@ -0,0 +1,782 @@ +[ + { + "id" : "E609AFAC-2A7A-4AD2-9CE5-7F121AB6C9ED", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E609AFAC-2A7A-4AD2-9CE5-7F121AB6C9ED", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:38:11 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "E609AFAC-2A7A-4AD2-9CE5-7F121AB6C9ED", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "E609AFAC-2A7A-4AD2-9CE5-7F121AB6C9ED", + "type" : 4 + }, + { + "id" : "E2D983B3-8909-4D67-A1C3-2B4EC699FAEC", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E2D983B3-8909-4D67-A1C3-2B4EC699FAEC", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:38:11 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "E2D983B3-8909-4D67-A1C3-2B4EC699FAEC", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "E2D983B3-8909-4D67-A1C3-2B4EC699FAEC", + "type" : 4 + }, + { + "id" : "107081E6-10F2-4670-8FE1-4B440BB114F5", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "107081E6-10F2-4670-8FE1-4B440BB114F5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:38:12 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "107081E6-10F2-4670-8FE1-4B440BB114F5", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozODoxMi4wMjE0MzJaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzg6MTIuMDIxNDMyWiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "107081E6-10F2-4670-8FE1-4B440BB114F5", + "type" : 4 + }, + { + "id" : "E8F016C8-6804-4433-9621-0F98A83704D3", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E8F016C8-6804-4433-9621-0F98A83704D3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:38:14 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "E8F016C8-6804-4433-9621-0F98A83704D3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM4OjEzLjYzNzE1WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM4OjEzLjYzNzE1WiIsImVUYWciOiJBZVAyNjdmYXV2YkJQQSJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "E8F016C8-6804-4433-9621-0F98A83704D3", + "type" : 4 + }, + { + "id" : "0C0286E3-0695-4C13-97EA-BCFE82284895", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "136", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiS2ltLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "0C0286E3-0695-4C13-97EA-BCFE82284895", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:38:14 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "0C0286E3-0695-4C13-97EA-BCFE82284895", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM4OjE0LjI0MDczOFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozODoxNC4yNDA3MzhaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In19" + }, + "type" : 2 + }, + { + "id" : "0C0286E3-0695-4C13-97EA-BCFE82284895", + "type" : 4 + }, + { + "id" : "DE4E49A2-3205-465F-A3B2-461F0C7B4922", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "98", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "DE4E49A2-3205-465F-A3B2-461F0C7B4922", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:38:17 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "DE4E49A2-3205-465F-A3B2-461F0C7B4922", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozODoxNi4yODgzMjlaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzg6MTYuMjg4MzI5WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozODoxNi45OTA3MTFaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzg6MTYuOTkwNzExWiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9XSwibmV4dCI6Ik1nIn0=" + }, + "type" : 2 + }, + { + "id" : "DE4E49A2-3205-465F-A3B2-461F0C7B4922", + "type" : 4 + }, + { + "id" : "0439B1D5-75A7-4B84-83E8-9266B3FED6BF", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&tt=0&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "0439B1D5-75A7-4B84-83E8-9266B3FED6BF", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&tt=0&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 01:38:19 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "0439B1D5-75A7-4B84-83E8-9266B3FED6BF", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDM5NDk3NjA5MzkwNiIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "0439B1D5-75A7-4B84-83E8-9266B3FED6BF", + "type" : 4 + }, + { + "id" : "B0FC7422-45FE-4964-A553-6DDFECD6A6A2", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810394976093906&tr=12" + }, + "type" : 0 + }, + { + "id" : "E1AB254C-4F37-4C03-A348-BA28F3F6DD57", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "101", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=serhii&include=user,user.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B0FC7422-45FE-4964-A553-6DDFECD6A6A2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810394976093906&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 01:38:20 GMT", + "Content-Length" : "383", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B0FC7422-45FE-4964-A553-6DDFECD6A6A2", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDM5NTAwMDY3NDgzMCIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJlIjoyLCJwIjp7InQiOiIxNTgxMDM5NTAwMDY1MTkyOCIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIiwiZCI6eyJzb3VyY2UiOiJvYmplY3RzIiwidmVyc2lvbiI6IjEuMCIsImV2ZW50IjoiZGVsZXRlIiwidHlwZSI6Im1lbWJlcnNoaXAiLCJkYXRhIjp7InNwYWNlSWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJ1c2VySWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIn19fV19" + }, + "type" : 2 + }, + { + "id" : "B0FC7422-45FE-4964-A553-6DDFECD6A6A2", + "type" : 4 + }, + { + "id" : "E2B867C3-4C76-4C04-807B-59171FD1B910", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810395000674830&tr=12" + }, + "type" : 0 + }, + { + "id" : "E2B867C3-4C76-4C04-807B-59171FD1B910", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810395000674830&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 01:38:20 GMT", + "Content-Length" : "380", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E2B867C3-4C76-4C04-807B-59171FD1B910", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDM5NTAwMDY4NjY1NCIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJlIjoyLCJwIjp7InQiOiIxNTgxMDM5NTAwMDY2MzE2NyIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIiwiZCI6eyJzb3VyY2UiOiJvYmplY3RzIiwidmVyc2lvbiI6IjEuMCIsImV2ZW50IjoiZGVsZXRlIiwidHlwZSI6Im1lbWJlcnNoaXAiLCJkYXRhIjp7InNwYWNlSWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJ1c2VySWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn19fV19" + }, + "type" : 2 + }, + { + "id" : "E2B867C3-4C76-4C04-807B-59171FD1B910", + "type" : 4 + }, + { + "id" : "1627AA5B-863F-4613-BA81-5EBEFA3832F1", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810395000686654&tr=12" + }, + "type" : 0 + }, + { + "id" : "1627AA5B-863F-4613-BA81-5EBEFA3832F1", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810395000686654&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810395000686654&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "70018A09-FEA3-4087-A134-55EB15E25DB9", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/Chanted-space-identifier\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E1AB254C-4F37-4C03-A348-BA28F3F6DD57", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=serhii&include=user,user.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:38:20 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "E1AB254C-4F37-4C03-A348-BA28F3F6DD57", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "E1AB254C-4F37-4C03-A348-BA28F3F6DD57", + "type" : 4 + }, + { + "id" : "70018A09-FEA3-4087-A134-55EB15E25DB9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/Chanted-space-identifier\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Fri, 07 Feb 2020 01:38:20 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "70018A09-FEA3-4087-A134-55EB15E25DB9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "70018A09-FEA3-4087-A134-55EB15E25DB9", + "type" : 4 + }, + { + "id" : "2764BF34-760E-4A56-BD33-3489D45AF298", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2764BF34-760E-4A56-BD33-3489D45AF298", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:38:21 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "2764BF34-760E-4A56-BD33-3489D45AF298", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "2764BF34-760E-4A56-BD33-3489D45AF298", + "type" : 4 + }, + { + "id" : "32B53E8E-B1AC-46C8-8B1B-851F298794CC", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "32B53E8E-B1AC-46C8-8B1B-851F298794CC", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:38:22 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "32B53E8E-B1AC-46C8-8B1B-851F298794CC", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "32B53E8E-B1AC-46C8-8B1B-851F298794CC", + "type" : 4 + }, + { + "id" : "FD9EFDBB-D7AB-4F47-BF90-51E4964F70EA", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "FD9EFDBB-D7AB-4F47-BF90-51E4964F70EA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:38:23 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "FD9EFDBB-D7AB-4F47-BF90-51E4964F70EA", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "FD9EFDBB-D7AB-4F47-BF90-51E4964F70EA", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldDeleteMembersAndTriggerDeleteEventOnUserChannel.json b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldDeleteMembersAndTriggerDeleteEventOnUserChannel.json new file mode 100644 index 000000000..b2841fcec --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldDeleteMembersAndTriggerDeleteEventOnUserChannel.json @@ -0,0 +1,731 @@ +[ + { + "id" : "A6B6142A-1C44-45B5-BACC-1FFC044AD03B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A6B6142A-1C44-45B5-BACC-1FFC044AD03B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:38:25 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "A6B6142A-1C44-45B5-BACC-1FFC044AD03B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "A6B6142A-1C44-45B5-BACC-1FFC044AD03B", + "type" : 4 + }, + { + "id" : "197CF2AC-4EC2-4321-BE3B-EDE49E5D086A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "197CF2AC-4EC2-4321-BE3B-EDE49E5D086A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:38:26 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "197CF2AC-4EC2-4321-BE3B-EDE49E5D086A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "197CF2AC-4EC2-4321-BE3B-EDE49E5D086A", + "type" : 4 + }, + { + "id" : "F4039E4F-F90B-4BC5-ADD9-1D23CC7FEB27", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F4039E4F-F90B-4BC5-ADD9-1D23CC7FEB27", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:38:26 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "F4039E4F-F90B-4BC5-ADD9-1D23CC7FEB27", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozODoyNi40NjQxMzlaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzg6MjYuNDY0MTM5WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "F4039E4F-F90B-4BC5-ADD9-1D23CC7FEB27", + "type" : 4 + }, + { + "id" : "BCB6F446-57BD-4A9F-A8EA-B1E7FADECE37", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "BCB6F446-57BD-4A9F-A8EA-B1E7FADECE37", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:38:28 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "BCB6F446-57BD-4A9F-A8EA-B1E7FADECE37", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM4OjI4LjE3MTk3NVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozODoyOC4xNzE5NzVaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "BCB6F446-57BD-4A9F-A8EA-B1E7FADECE37", + "type" : 4 + }, + { + "id" : "449389CB-FD2D-46D5-A6CB-E41B1374C524", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "136", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiS2ltLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "449389CB-FD2D-46D5-A6CB-E41B1374C524", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:38:29 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "449389CB-FD2D-46D5-A6CB-E41B1374C524", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM4OjI4Ljc4NTg4MVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozODoyOC43ODU4ODFaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In19" + }, + "type" : 2 + }, + { + "id" : "449389CB-FD2D-46D5-A6CB-E41B1374C524", + "type" : 4 + }, + { + "id" : "C49693B9-7E61-41A2-A275-5E5F5ADA2151", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "98", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C49693B9-7E61-41A2-A275-5E5F5ADA2151", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:38:32 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "C49693B9-7E61-41A2-A275-5E5F5ADA2151", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozODozMC44MjA4NzJaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzg6MzAuODIwODcyWiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozODozMS41MTkwMjVaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzg6MzEuNTE5MDI1WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9XSwibmV4dCI6Ik1nIn0=" + }, + "type" : 2 + }, + { + "id" : "C49693B9-7E61-41A2-A275-5E5F5ADA2151", + "type" : 4 + }, + { + "id" : "9C5582AA-E9B4-4177-9316-82D7409E0897", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&tt=0&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9C5582AA-E9B4-4177-9316-82D7409E0897", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&tt=0&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 01:38:33 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9C5582AA-E9B4-4177-9316-82D7409E0897", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDM5NTExNDQ1MjgyNSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "9C5582AA-E9B4-4177-9316-82D7409E0897", + "type" : 4 + }, + { + "id" : "2BA5A6B4-BE28-453B-9C1C-1E7D36C3B8D3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810395114452825&tr=12" + }, + "type" : 0 + }, + { + "id" : "5A66E324-5601-4EEF-A1EC-4C8EA611DEBD", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "101", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=serhii&include=user,user.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2BA5A6B4-BE28-453B-9C1C-1E7D36C3B8D3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810395114452825&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 01:38:34 GMT", + "Content-Length" : "381", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "2BA5A6B4-BE28-453B-9C1C-1E7D36C3B8D3", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDM5NTE0NTY5MDM5NyIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJlIjoyLCJwIjp7InQiOiIxNTgxMDM5NTE0NTY4MzIwOSIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciIsImQiOnsic291cmNlIjoib2JqZWN0cyIsInZlcnNpb24iOiIxLjAiLCJldmVudCI6ImRlbGV0ZSIsInR5cGUiOiJtZW1iZXJzaGlwIiwiZGF0YSI6eyJzcGFjZUlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIiwidXNlcklkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9fX1dfQ==" + }, + "type" : 2 + }, + { + "id" : "2BA5A6B4-BE28-453B-9C1C-1E7D36C3B8D3", + "type" : 4 + }, + { + "id" : "7A9B66B5-7BCD-44EA-89E1-F1A302659181", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810395145690397&tr=12" + }, + "type" : 0 + }, + { + "id" : "7A9B66B5-7BCD-44EA-89E1-F1A302659181", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810395145690397&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810395145690397&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "072A78F5-BC42-495D-B338-1AF2B10708AD", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/Serhii-user-identifier\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "5A66E324-5601-4EEF-A1EC-4C8EA611DEBD", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=serhii&include=user,user.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:38:34 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "5A66E324-5601-4EEF-A1EC-4C8EA611DEBD", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "5A66E324-5601-4EEF-A1EC-4C8EA611DEBD", + "type" : 4 + }, + { + "id" : "072A78F5-BC42-495D-B338-1AF2B10708AD", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/Serhii-user-identifier\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Fri, 07 Feb 2020 01:38:34 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "072A78F5-BC42-495D-B338-1AF2B10708AD", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "072A78F5-BC42-495D-B338-1AF2B10708AD", + "type" : 4 + }, + { + "id" : "23574BBD-87EA-4108-877E-8D8E4F3D9579", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "23574BBD-87EA-4108-877E-8D8E4F3D9579", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:38:35 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "23574BBD-87EA-4108-877E-8D8E4F3D9579", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "23574BBD-87EA-4108-877E-8D8E4F3D9579", + "type" : 4 + }, + { + "id" : "74D368BA-8218-46F9-9CD4-D81775FF4031", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "74D368BA-8218-46F9-9CD4-D81775FF4031", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:38:36 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "74D368BA-8218-46F9-9CD4-D81775FF4031", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "74D368BA-8218-46F9-9CD4-D81775FF4031", + "type" : 4 + }, + { + "id" : "E4F69DBC-AFDA-4965-8B30-ABD588EF690B", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E4F69DBC-AFDA-4965-8B30-ABD588EF690B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:38:38 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "E4F69DBC-AFDA-4965-8B30-ABD588EF690B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "E4F69DBC-AFDA-4965-8B30-ABD588EF690B", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldFetchFilteredMembersWhenFilterIsSet.json b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldFetchFilteredMembersWhenFilterIsSet.json new file mode 100644 index 000000000..2857431a3 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldFetchFilteredMembersWhenFilterIsSet.json @@ -0,0 +1,1022 @@ +[ + { + "id" : "84F35F6A-752C-413E-94EE-9A95E630D67A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "84F35F6A-752C-413E-94EE-9A95E630D67A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:38:40 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "84F35F6A-752C-413E-94EE-9A95E630D67A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "84F35F6A-752C-413E-94EE-9A95E630D67A", + "type" : 4 + }, + { + "id" : "1C1D4FCA-6636-4D7D-9B06-395841336049", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1C1D4FCA-6636-4D7D-9B06-395841336049", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:38:40 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "1C1D4FCA-6636-4D7D-9B06-395841336049", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "1C1D4FCA-6636-4D7D-9B06-395841336049", + "type" : 4 + }, + { + "id" : "CF0FE6BB-6456-42BC-964B-AF57DE50D648", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "CF0FE6BB-6456-42BC-964B-AF57DE50D648", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:38:41 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "CF0FE6BB-6456-42BC-964B-AF57DE50D648", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozODo0MC45NjEwNVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozODo0MC45NjEwNVoiLCJlVGFnIjoiQWNXajlPVFF3TWFtcFFFIn19" + }, + "type" : 2 + }, + { + "id" : "CF0FE6BB-6456-42BC-964B-AF57DE50D648", + "type" : 4 + }, + { + "id" : "DEF25E35-7096-404E-A53C-071ABD6FCF56", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "DEF25E35-7096-404E-A53C-071ABD6FCF56", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:38:43 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "DEF25E35-7096-404E-A53C-071ABD6FCF56", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM4OjQyLjYyMDQwOFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozODo0Mi42MjA0MDhaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "DEF25E35-7096-404E-A53C-071ABD6FCF56", + "type" : 4 + }, + { + "id" : "18FC5C97-CCC3-47E6-85A9-985ED38EE0A9", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "136", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiS2ltLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "18FC5C97-CCC3-47E6-85A9-985ED38EE0A9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:38:43 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "18FC5C97-CCC3-47E6-85A9-985ED38EE0A9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM4OjQzLjIwMDMwOFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozODo0My4yMDAzMDhaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In19" + }, + "type" : 2 + }, + { + "id" : "18FC5C97-CCC3-47E6-85A9-985ED38EE0A9", + "type" : 4 + }, + { + "id" : "DEB997DF-3754-432B-AACE-323115EEA80F", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "152", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkVhcmxpbmUiLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiRWFybGluZS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiRWFybGluZS1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "DEB997DF-3754-432B-AACE-323115EEA80F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:38:44 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "DEB997DF-3754-432B-AACE-323115EEA80F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkVhcmxpbmUiLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IkVhcmxpbmUtY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IkVhcmxpbmUtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozODo0My43Nzk4MjJaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzg6NDMuNzc5ODIyWiIsImVUYWciOiJBZDZienJuY3JLVzNyUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "DEB997DF-3754-432B-AACE-323115EEA80F", + "type" : 4 + }, + { + "id" : "54F92A82-70FE-42A7-ABD5-29789A3810F8", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "140", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkdsZW4iLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiR2xlbi1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiR2xlbi1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "54F92A82-70FE-42A7-ABD5-29789A3810F8", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:38:44 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "54F92A82-70FE-42A7-ABD5-29789A3810F8", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkdsZW4iLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IkdsZW4tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IkdsZW4tY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozODo0NC4zNTUyNTlaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzg6NDQuMzU1MjU5WiIsImVUYWciOiJBZi81d01TaDNyZUlkQSJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "54F92A82-70FE-42A7-ABD5-29789A3810F8", + "type" : 4 + }, + { + "id" : "9D9B8446-0D71-400A-892E-9170B5448B46", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "152", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6Ik5pY29sYXMiLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiTmljb2xhcy1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiTmljb2xhcy1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9D9B8446-0D71-400A-892E-9170B5448B46", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:38:45 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "9D9B8446-0D71-400A-892E-9170B5448B46", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6Ik5pY29sYXMiLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6Ik5pY29sYXMtY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6Ik5pY29sYXMtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozODo0NC45NjEyOVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozODo0NC45NjEyOVoiLCJlVGFnIjoiQWRpSmwvejRzT2FOK2dFIn19" + }, + "type" : 2 + }, + { + "id" : "9D9B8446-0D71-400A-892E-9170B5448B46", + "type" : 4 + }, + { + "id" : "39D248EA-983F-4CF9-9D21-B45FB08BD3C7", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "152", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNoYW5ub24tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IlNoYW5ub24iLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiU2hhbm5vbi1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2hhbm5vbi1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "39D248EA-983F-4CF9-9D21-B45FB08BD3C7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:38:46 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "39D248EA-983F-4CF9-9D21-B45FB08BD3C7", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNoYW5ub24tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IlNoYW5ub24iLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IlNoYW5ub24tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNoYW5ub24tY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozODo0NS41Mzk5NVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozODo0NS41Mzk5NVoiLCJlVGFnIjoiQWRHeGhzTy8wdmlXVEEifX0=" + }, + "type" : 2 + }, + { + "id" : "39D248EA-983F-4CF9-9D21-B45FB08BD3C7", + "type" : 4 + }, + { + "id" : "3BBCAF6C-C627-4EE9-A310-BF1405E90620", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "283", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn0seyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIn0seyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIn0seyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIn0seyJpZCI6IlNoYW5ub24tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3BBCAF6C-C627-4EE9-A310-BF1405E90620", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:38:51 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "3BBCAF6C-C627-4EE9-A310-BF1405E90620", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozODo0Ny41NDIzMjFaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzg6NDcuNTQyMzIxWiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozODo0OC4yNDA0MDhaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzg6NDguMjQwNDA4WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9LHsiaWQiOiJFYXJsaW5lLXVzZXItaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzg6NDguOTM4NTQzWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM4OjQ4LjkzODU0M1oiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiR2xlbi11c2VyLWlkZW50aWZpZXIiLCJjdXN0b20iOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM4OjQ5LjYzNjQxOFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozODo0OS42MzY0MThaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozODo1MC4zMzQ0NThaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzg6NTAuMzM0NDU4WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9LHsiaWQiOiJTaGFubm9uLXVzZXItaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzg6NTEuMDMyNTQ3WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM4OjUxLjAzMjU0N1oiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifV0sIm5leHQiOiJOZyJ9" + }, + "type" : 2 + }, + { + "id" : "3BBCAF6C-C627-4EE9-A310-BF1405E90620", + "type" : 4 + }, + { + "id" : "098A8A17-1D08-4E59-B103-2DA17ABA0B6B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?filter=user.name%20like%20'Gl*'&count=1&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "098A8A17-1D08-4E59-B103-2DA17ABA0B6B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?filter=user.name%20like%20'Gl*'&count=1&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:38:53 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "198", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "098A8A17-1D08-4E59-B103-2DA17ABA0B6B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJHbGVuLXVzZXItaWRlbnRpZmllciIsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM4OjQ5LjYzNjQxOFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozODo0OS42MzY0MThaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn1dLCJ0b3RhbENvdW50IjoxLCJuZXh0IjoiTVEifQ==" + }, + "type" : 2 + }, + { + "id" : "098A8A17-1D08-4E59-B103-2DA17ABA0B6B", + "type" : 4 + }, + { + "id" : "5C209B29-48FB-4367-87BA-4CEC14FCE889", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "286", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn0seyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIn0seyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIn0seyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIn0seyJpZCI6IlNoYW5ub24tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "5C209B29-48FB-4367-87BA-4CEC14FCE889", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:38:55 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "5C209B29-48FB-4367-87BA-4CEC14FCE889", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "5C209B29-48FB-4367-87BA-4CEC14FCE889", + "type" : 4 + }, + { + "id" : "3BEF7EC1-DB53-47DA-B2AC-2652D8B625F9", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3BEF7EC1-DB53-47DA-B2AC-2652D8B625F9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:38:56 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "3BEF7EC1-DB53-47DA-B2AC-2652D8B625F9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "3BEF7EC1-DB53-47DA-B2AC-2652D8B625F9", + "type" : 4 + }, + { + "id" : "B1FCB441-35A0-44E3-AE9D-9CEAD065C4A6", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B1FCB441-35A0-44E3-AE9D-9CEAD065C4A6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:38:57 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "B1FCB441-35A0-44E3-AE9D-9CEAD065C4A6", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "B1FCB441-35A0-44E3-AE9D-9CEAD065C4A6", + "type" : 4 + }, + { + "id" : "39ACCB6D-BFFD-4975-AF7C-19811497C367", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Earline-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "39ACCB6D-BFFD-4975-AF7C-19811497C367", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Earline-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:38:58 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "39ACCB6D-BFFD-4975-AF7C-19811497C367", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "39ACCB6D-BFFD-4975-AF7C-19811497C367", + "type" : 4 + }, + { + "id" : "64AD196D-6605-4D16-BF83-291349750810", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Glen-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "64AD196D-6605-4D16-BF83-291349750810", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Glen-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:38:59 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "64AD196D-6605-4D16-BF83-291349750810", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "64AD196D-6605-4D16-BF83-291349750810", + "type" : 4 + }, + { + "id" : "3705FBC4-EF67-4493-A275-819AFE56ECA4", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Nicolas-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3705FBC4-EF67-4493-A275-819AFE56ECA4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Nicolas-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:39:00 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "3705FBC4-EF67-4493-A275-819AFE56ECA4", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "3705FBC4-EF67-4493-A275-819AFE56ECA4", + "type" : 4 + }, + { + "id" : "16CE7862-AE43-4A14-95DD-93D3AF35D665", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Shannon-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "16CE7862-AE43-4A14-95DD-93D3AF35D665", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Shannon-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:39:01 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "16CE7862-AE43-4A14-95DD-93D3AF35D665", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "16CE7862-AE43-4A14-95DD-93D3AF35D665", + "type" : 4 + }, + { + "id" : "99279AF8-5636-48C1-9ECF-D5DC89C6CF8B", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "99279AF8-5636-48C1-9ECF-D5DC89C6CF8B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:39:02 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "99279AF8-5636-48C1-9ECF-D5DC89C6CF8B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "99279AF8-5636-48C1-9ECF-D5DC89C6CF8B", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldFetchMembersAndReceiveResultWithExpectedOperation.json b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldFetchMembersAndReceiveResultWithExpectedOperation.json new file mode 100644 index 000000000..fd1d64b0b --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldFetchMembersAndReceiveResultWithExpectedOperation.json @@ -0,0 +1,1076 @@ +[ + { + "id" : "567A21CF-9047-4F73-9827-5B7CB3969129", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "567A21CF-9047-4F73-9827-5B7CB3969129", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:39:04 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "567A21CF-9047-4F73-9827-5B7CB3969129", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "567A21CF-9047-4F73-9827-5B7CB3969129", + "type" : 4 + }, + { + "id" : "04C63190-FD0A-45AF-AD13-F28E7E5963AE", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "04C63190-FD0A-45AF-AD13-F28E7E5963AE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:39:05 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "04C63190-FD0A-45AF-AD13-F28E7E5963AE", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "04C63190-FD0A-45AF-AD13-F28E7E5963AE", + "type" : 4 + }, + { + "id" : "37FF9200-106D-40D1-B164-985E5C262F03", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "37FF9200-106D-40D1-B164-985E5C262F03", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:39:05 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "37FF9200-106D-40D1-B164-985E5C262F03", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozOTowNS4xNzU4MzFaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzk6MDUuMTc1ODMxWiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "37FF9200-106D-40D1-B164-985E5C262F03", + "type" : 4 + }, + { + "id" : "F20B8F1D-BDE8-460F-AB8A-EC4324D56AA2", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F20B8F1D-BDE8-460F-AB8A-EC4324D56AA2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:39:07 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "F20B8F1D-BDE8-460F-AB8A-EC4324D56AA2", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM5OjA2Ljc3NzQ1NVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozOTowNi43Nzc0NTVaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "F20B8F1D-BDE8-460F-AB8A-EC4324D56AA2", + "type" : 4 + }, + { + "id" : "BD8D0220-22F4-46E8-A1BE-B51F6164C79B", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "136", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiS2ltLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "BD8D0220-22F4-46E8-A1BE-B51F6164C79B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:39:07 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "BD8D0220-22F4-46E8-A1BE-B51F6164C79B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM5OjA3LjM1Nzg4M1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozOTowNy4zNTc4ODNaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In19" + }, + "type" : 2 + }, + { + "id" : "BD8D0220-22F4-46E8-A1BE-B51F6164C79B", + "type" : 4 + }, + { + "id" : "8A0CB2EA-D458-4CB5-B6E8-743697919783", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "152", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkVhcmxpbmUiLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiRWFybGluZS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiRWFybGluZS1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "8A0CB2EA-D458-4CB5-B6E8-743697919783", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:39:08 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "8A0CB2EA-D458-4CB5-B6E8-743697919783", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkVhcmxpbmUiLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IkVhcmxpbmUtY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IkVhcmxpbmUtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozOTowOC4wMDE1ODZaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzk6MDguMDAxNTg2WiIsImVUYWciOiJBZDZienJuY3JLVzNyUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "8A0CB2EA-D458-4CB5-B6E8-743697919783", + "type" : 4 + }, + { + "id" : "07EB5F29-142C-4AA6-BB13-486199AA2A1F", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "140", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkdsZW4iLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiR2xlbi1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiR2xlbi1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "07EB5F29-142C-4AA6-BB13-486199AA2A1F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:39:09 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "07EB5F29-142C-4AA6-BB13-486199AA2A1F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkdsZW4iLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IkdsZW4tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IkdsZW4tY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozOTowOC41ODAxNloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozOTowOC41ODAxNloiLCJlVGFnIjoiQWYvNXdNU2gzcmVJZEEifX0=" + }, + "type" : 2 + }, + { + "id" : "07EB5F29-142C-4AA6-BB13-486199AA2A1F", + "type" : 4 + }, + { + "id" : "CAB4C3C0-70D0-40F7-AAC8-A2834E907065", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "152", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6Ik5pY29sYXMiLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiTmljb2xhcy1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiTmljb2xhcy1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "CAB4C3C0-70D0-40F7-AAC8-A2834E907065", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:39:09 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "CAB4C3C0-70D0-40F7-AAC8-A2834E907065", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6Ik5pY29sYXMiLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6Ik5pY29sYXMtY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6Ik5pY29sYXMtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozOTowOS4xNTY2NVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozOTowOS4xNTY2NVoiLCJlVGFnIjoiQWRpSmwvejRzT2FOK2dFIn19" + }, + "type" : 2 + }, + { + "id" : "CAB4C3C0-70D0-40F7-AAC8-A2834E907065", + "type" : 4 + }, + { + "id" : "5027D2A2-A818-49A7-B3B5-7DC7773848F1", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "152", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNoYW5ub24tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IlNoYW5ub24iLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiU2hhbm5vbi1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2hhbm5vbi1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "5027D2A2-A818-49A7-B3B5-7DC7773848F1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:39:10 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "5027D2A2-A818-49A7-B3B5-7DC7773848F1", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNoYW5ub24tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IlNoYW5ub24iLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IlNoYW5ub24tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNoYW5ub24tY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozOTowOS43NDQ2ODRaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzk6MDkuNzQ0Njg0WiIsImVUYWciOiJBZEd4aHNPLzB2aVdUQSJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "5027D2A2-A818-49A7-B3B5-7DC7773848F1", + "type" : 4 + }, + { + "id" : "9FA117C2-60CE-446A-96FE-31E579281C65", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "283", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn0seyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIn0seyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIn0seyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIn0seyJpZCI6IlNoYW5ub24tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9FA117C2-60CE-446A-96FE-31E579281C65", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:39:16 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "9FA117C2-60CE-446A-96FE-31E579281C65", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozOToxMS43OTYxODNaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzk6MTEuNzk2MTgzWiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozOToxMi40OTg1ODVaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzk6MTIuNDk4NTg1WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9LHsiaWQiOiJFYXJsaW5lLXVzZXItaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzk6MTMuMjAwNTFaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzk6MTMuMjAwNTFaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozOToxMy45MDI0MjJaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzk6MTMuOTAyNDIyWiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9LHsiaWQiOiJOaWNvbGFzLXVzZXItaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzk6MTQuNjA0NTk5WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM5OjE0LjYwNDU5OVoiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiU2hhbm5vbi11c2VyLWlkZW50aWZpZXIiLCJjdXN0b20iOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM5OjE1LjMwNjUxOFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozOToxNS4zMDY1MThaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn1dLCJuZXh0IjoiTmcifQ==" + }, + "type" : 2 + }, + { + "id" : "9FA117C2-60CE-446A-96FE-31E579281C65", + "type" : 4 + }, + { + "id" : "EBEFF159-DE94-4983-A51B-FEBD10765400", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "EBEFF159-DE94-4983-A51B-FEBD10765400", + "data" : { + "status" : 404, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:39:17 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "EBEFF159-DE94-4983-A51B-FEBD10765400", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzk6MTEuNzk2MTgzWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM5OjExLjc5NjE4M1oiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiS2ltLXVzZXItaWRlbnRpZmllciIsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM5OjEyLjQ5ODU4NVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozOToxMi40OTg1ODVaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIiwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzk6MTMuMjAwNTFaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzk6MTMuMjAwNTFaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIiwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzk6MTMuOTAyNDIyWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM5OjEzLjkwMjQyMloiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiTmljb2xhcy11c2VyLWlkZW50aWZpZXIiLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozOToxNC42MDQ1OTlaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzk6MTQuNjA0NTk5WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9LHsiaWQiOiJTaGFubm9uLXVzZXItaWRlbnRpZmllciIsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM5OjE1LjMwNjUxOFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozOToxNS4zMDY1MThaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn1dLCJuZXh0IjoiTmcifQ==" + }, + "type" : 2 + }, + { + "id" : "EBEFF159-DE94-4983-A51B-FEBD10765400", + "type" : 4 + }, + { + "id" : "EBEFF159-DE94-4983-A51B-FEBD10765401", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "EBEFF159-DE94-4983-A51B-FEBD10765401", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:39:17 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "EBEFF159-DE94-4983-A51B-FEBD10765401", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzk6MTEuNzk2MTgzWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM5OjExLjc5NjE4M1oiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiS2ltLXVzZXItaWRlbnRpZmllciIsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM5OjEyLjQ5ODU4NVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozOToxMi40OTg1ODVaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIiwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzk6MTMuMjAwNTFaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzk6MTMuMjAwNTFaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIiwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzk6MTMuOTAyNDIyWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM5OjEzLjkwMjQyMloiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiTmljb2xhcy11c2VyLWlkZW50aWZpZXIiLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozOToxNC42MDQ1OTlaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzk6MTQuNjA0NTk5WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9LHsiaWQiOiJTaGFubm9uLXVzZXItaWRlbnRpZmllciIsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM5OjE1LjMwNjUxOFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozOToxNS4zMDY1MThaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn1dLCJuZXh0IjoiTmcifQ==" + }, + "type" : 2 + }, + { + "id" : "EBEFF159-DE94-4983-A51B-FEBD10765401", + "type" : 4 + }, + { + "id" : "C9E98ACD-EA6D-4682-B822-9E2E31F27000", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "286", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn0seyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIn0seyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIn0seyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIn0seyJpZCI6IlNoYW5ub24tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C9E98ACD-EA6D-4682-B822-9E2E31F27000", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:39:34 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "C9E98ACD-EA6D-4682-B822-9E2E31F27000", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "C9E98ACD-EA6D-4682-B822-9E2E31F27000", + "type" : 4 + }, + { + "id" : "DB0BE808-BB96-43AB-BF88-663E509D367A", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "DB0BE808-BB96-43AB-BF88-663E509D367A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:39:35 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "DB0BE808-BB96-43AB-BF88-663E509D367A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "DB0BE808-BB96-43AB-BF88-663E509D367A", + "type" : 4 + }, + { + "id" : "F63A7A19-B49E-4E9B-8261-005454BE0B43", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F63A7A19-B49E-4E9B-8261-005454BE0B43", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:39:36 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "F63A7A19-B49E-4E9B-8261-005454BE0B43", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "F63A7A19-B49E-4E9B-8261-005454BE0B43", + "type" : 4 + }, + { + "id" : "76BE6014-3D9F-4859-8B12-B063424B844F", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Earline-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "76BE6014-3D9F-4859-8B12-B063424B844F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Earline-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:39:37 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "76BE6014-3D9F-4859-8B12-B063424B844F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "76BE6014-3D9F-4859-8B12-B063424B844F", + "type" : 4 + }, + { + "id" : "EA4BC3AA-2E3E-4B9F-B39E-2A5188035439", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Glen-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "EA4BC3AA-2E3E-4B9F-B39E-2A5188035439", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Glen-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:39:38 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "EA4BC3AA-2E3E-4B9F-B39E-2A5188035439", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "EA4BC3AA-2E3E-4B9F-B39E-2A5188035439", + "type" : 4 + }, + { + "id" : "646B0BCA-AE53-47AE-8CA7-08FC3F9E130D", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Nicolas-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "646B0BCA-AE53-47AE-8CA7-08FC3F9E130D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Nicolas-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:39:39 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "646B0BCA-AE53-47AE-8CA7-08FC3F9E130D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "646B0BCA-AE53-47AE-8CA7-08FC3F9E130D", + "type" : 4 + }, + { + "id" : "F6334F70-0BEB-444A-974C-691AA073A636", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Shannon-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F6334F70-0BEB-444A-974C-691AA073A636", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Shannon-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:39:40 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "F6334F70-0BEB-444A-974C-691AA073A636", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "F6334F70-0BEB-444A-974C-691AA073A636", + "type" : 4 + }, + { + "id" : "09F76509-2AF2-4D10-9AB3-DA42C19053D9", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "09F76509-2AF2-4D10-9AB3-DA42C19053D9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:39:41 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "09F76509-2AF2-4D10-9AB3-DA42C19053D9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "09F76509-2AF2-4D10-9AB3-DA42C19053D9", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldFetchMembersWhenLimitIsSet.json b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldFetchMembersWhenLimitIsSet.json new file mode 100644 index 000000000..4324562c5 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldFetchMembersWhenLimitIsSet.json @@ -0,0 +1,1024 @@ +[ + { + "id" : "62EB2004-902D-42E5-A1DA-583753CF80C9", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "62EB2004-902D-42E5-A1DA-583753CF80C9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:39:43 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "62EB2004-902D-42E5-A1DA-583753CF80C9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "62EB2004-902D-42E5-A1DA-583753CF80C9", + "type" : 4 + }, + { + "id" : "9A417821-7914-467D-A066-F1C3B142EC5B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9A417821-7914-467D-A066-F1C3B142EC5B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:39:43 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "9A417821-7914-467D-A066-F1C3B142EC5B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "9A417821-7914-467D-A066-F1C3B142EC5B", + "type" : 4 + }, + { + "id" : "159185B1-2CB3-423D-97E3-4836768C910E", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "159185B1-2CB3-423D-97E3-4836768C910E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:39:44 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "159185B1-2CB3-423D-97E3-4836768C910E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozOTo0NC4wNjg2NjRaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzk6NDQuMDY4NjY0WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "159185B1-2CB3-423D-97E3-4836768C910E", + "type" : 4 + }, + { + "id" : "C602D19F-64F5-4732-8114-6D4E3A04BDF8", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C602D19F-64F5-4732-8114-6D4E3A04BDF8", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:39:46 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "C602D19F-64F5-4732-8114-6D4E3A04BDF8", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM5OjQ1LjcwMDU2OVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozOTo0NS43MDA1NjlaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "C602D19F-64F5-4732-8114-6D4E3A04BDF8", + "type" : 4 + }, + { + "id" : "5A1B06B7-7D9C-4BA0-8388-19B15A7B4D36", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "136", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiS2ltLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "5A1B06B7-7D9C-4BA0-8388-19B15A7B4D36", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:39:46 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "5A1B06B7-7D9C-4BA0-8388-19B15A7B4D36", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM5OjQ2LjMwNjIxNloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozOTo0Ni4zMDYyMTZaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In19" + }, + "type" : 2 + }, + { + "id" : "5A1B06B7-7D9C-4BA0-8388-19B15A7B4D36", + "type" : 4 + }, + { + "id" : "E7017462-9653-42BF-8326-11FFEC27656D", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "152", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkVhcmxpbmUiLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiRWFybGluZS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiRWFybGluZS1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E7017462-9653-42BF-8326-11FFEC27656D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:39:47 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "E7017462-9653-42BF-8326-11FFEC27656D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkVhcmxpbmUiLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IkVhcmxpbmUtY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IkVhcmxpbmUtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozOTo0Ni45MTg2OTlaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzk6NDYuOTE4Njk5WiIsImVUYWciOiJBZDZienJuY3JLVzNyUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "E7017462-9653-42BF-8326-11FFEC27656D", + "type" : 4 + }, + { + "id" : "229071AE-3FDA-4707-9F2D-B06D53B094DE", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "140", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkdsZW4iLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiR2xlbi1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiR2xlbi1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "229071AE-3FDA-4707-9F2D-B06D53B094DE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:39:48 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "229071AE-3FDA-4707-9F2D-B06D53B094DE", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkdsZW4iLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IkdsZW4tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IkdsZW4tY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozOTo0Ny41MzU3ODFaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzk6NDcuNTM1NzgxWiIsImVUYWciOiJBZi81d01TaDNyZUlkQSJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "229071AE-3FDA-4707-9F2D-B06D53B094DE", + "type" : 4 + }, + { + "id" : "75A14004-0B00-49DC-9CBD-521DB868FB20", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "152", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6Ik5pY29sYXMiLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiTmljb2xhcy1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiTmljb2xhcy1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "75A14004-0B00-49DC-9CBD-521DB868FB20", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:39:48 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "75A14004-0B00-49DC-9CBD-521DB868FB20", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6Ik5pY29sYXMiLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6Ik5pY29sYXMtY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6Ik5pY29sYXMtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozOTo0OC4xNDg5NThaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzk6NDguMTQ4OTU4WiIsImVUYWciOiJBZGlKbC96NHNPYU4rZ0UifX0=" + }, + "type" : 2 + }, + { + "id" : "75A14004-0B00-49DC-9CBD-521DB868FB20", + "type" : 4 + }, + { + "id" : "83F91744-5F20-458D-8191-25D7D5E2F62D", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "152", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNoYW5ub24tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IlNoYW5ub24iLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiU2hhbm5vbi1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2hhbm5vbi1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "83F91744-5F20-458D-8191-25D7D5E2F62D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:39:49 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "83F91744-5F20-458D-8191-25D7D5E2F62D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNoYW5ub24tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IlNoYW5ub24iLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IlNoYW5ub24tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNoYW5ub24tY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozOTo0OC43NjQ0MDJaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzk6NDguNzY0NDAyWiIsImVUYWciOiJBZEd4aHNPLzB2aVdUQSJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "83F91744-5F20-458D-8191-25D7D5E2F62D", + "type" : 4 + }, + { + "id" : "9588D340-A32B-49F5-A661-15D558AB129F", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "450", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciIsImN1c3RvbSI6eyJ1c2VyLW1lbWJlci1jdXN0b20iOiJTZXJoaWktdXNlci1pZGVudGlmaWVyLWN1c3RvbS1kYXRhLTEifX0seyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJjdXN0b20iOnsidXNlci1tZW1iZXItY3VzdG9tIjoiS2ltLXVzZXItaWRlbnRpZmllci1jdXN0b20tZGF0YS0yIn19LHsiaWQiOiJFYXJsaW5lLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJHbGVuLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJOaWNvbGFzLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJTaGFubm9uLXVzZXItaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9588D340-A32B-49F5-A661-15D558AB129F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:39:55 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "9588D340-A32B-49F5-A661-15D558AB129F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjp7InVzZXItbWVtYmVyLWN1c3RvbSI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXItY3VzdG9tLWRhdGEtMSJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozOTo1MC43OTQxOFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozOTo1MC43OTQxOFoiLCJlVGFnIjoiQWUrdjQ0U3B2cUNqaXdFIn0seyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJjdXN0b20iOnsidXNlci1tZW1iZXItY3VzdG9tIjoiS2ltLXVzZXItaWRlbnRpZmllci1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM5OjUxLjQ5NjQ3N1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozOTo1MS40OTY0NzdaIiwiZVRhZyI6IkFZT256YnJwKzVuRGRRIn0seyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozOTo1Mi4zMzkzNTVaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzk6NTIuMzM5MzU1WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9LHsiaWQiOiJHbGVuLXVzZXItaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzk6NTMuMDQxNDEzWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM5OjUzLjA0MTQxM1oiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiTmljb2xhcy11c2VyLWlkZW50aWZpZXIiLCJjdXN0b20iOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM5OjUzLjc0NDM0MVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozOTo1My43NDQzNDFaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IlNoYW5ub24tdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozOTo1NC40NDY4MDdaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6Mzk6NTQuNDQ2ODA3WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9XSwibmV4dCI6Ik5nIn0=" + }, + "type" : 2 + }, + { + "id" : "9588D340-A32B-49F5-A661-15D558AB129F", + "type" : 4 + }, + { + "id" : "AD6DDF78-5695-4C0A-933D-6B5152A05C63", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?count=1&limit=2&pnsdk=PubNub-ObjC-iOS\/4.x.x&include=custom&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "AD6DDF78-5695-4C0A-933D-6B5152A05C63", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?count=1&limit=2&pnsdk=PubNub-ObjC-iOS\/4.x.x&include=custom&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:39:56 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "AD6DDF78-5695-4C0A-933D-6B5152A05C63", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjp7InVzZXItbWVtYmVyLWN1c3RvbSI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXItY3VzdG9tLWRhdGEtMSJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTozOTo1MC43OTQxOFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozOTo1MC43OTQxOFoiLCJlVGFnIjoiQWUrdjQ0U3B2cUNqaXdFIn0seyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJjdXN0b20iOnsidXNlci1tZW1iZXItY3VzdG9tIjoiS2ltLXVzZXItaWRlbnRpZmllci1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjM5OjUxLjQ5NjQ3N1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTozOTo1MS40OTY0NzdaIiwiZVRhZyI6IkFZT256YnJwKzVuRGRRIn1dLCJ0b3RhbENvdW50Ijo2LCJuZXh0IjoiTWcifQ==" + }, + "type" : 2 + }, + { + "id" : "AD6DDF78-5695-4C0A-933D-6B5152A05C63", + "type" : 4 + }, + { + "id" : "0472C0C8-1F14-4073-8E07-A82E65EE0845", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "286", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn0seyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIn0seyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIn0seyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIn0seyJpZCI6IlNoYW5ub24tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "0472C0C8-1F14-4073-8E07-A82E65EE0845", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:39:58 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "0472C0C8-1F14-4073-8E07-A82E65EE0845", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "0472C0C8-1F14-4073-8E07-A82E65EE0845", + "type" : 4 + }, + { + "id" : "41708A07-D2EB-49E5-8DC6-3F6027A3BC15", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "41708A07-D2EB-49E5-8DC6-3F6027A3BC15", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:39:59 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "41708A07-D2EB-49E5-8DC6-3F6027A3BC15", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "41708A07-D2EB-49E5-8DC6-3F6027A3BC15", + "type" : 4 + }, + { + "id" : "43DEF1D6-2248-441D-9433-012B4E3418A0", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "43DEF1D6-2248-441D-9433-012B4E3418A0", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:40:00 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "43DEF1D6-2248-441D-9433-012B4E3418A0", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "43DEF1D6-2248-441D-9433-012B4E3418A0", + "type" : 4 + }, + { + "id" : "655CFD97-571C-44A8-AEEC-37225625ADBF", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Earline-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "655CFD97-571C-44A8-AEEC-37225625ADBF", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Earline-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:40:01 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "655CFD97-571C-44A8-AEEC-37225625ADBF", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "655CFD97-571C-44A8-AEEC-37225625ADBF", + "type" : 4 + }, + { + "id" : "C4E7B157-6C4B-4F2A-8B79-14A0CE67EB2E", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Glen-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C4E7B157-6C4B-4F2A-8B79-14A0CE67EB2E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Glen-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:40:02 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "C4E7B157-6C4B-4F2A-8B79-14A0CE67EB2E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "C4E7B157-6C4B-4F2A-8B79-14A0CE67EB2E", + "type" : 4 + }, + { + "id" : "C91A0704-CF60-4DB3-82BE-6D7577AD2F9C", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Nicolas-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C91A0704-CF60-4DB3-82BE-6D7577AD2F9C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Nicolas-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:40:03 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "C91A0704-CF60-4DB3-82BE-6D7577AD2F9C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "C91A0704-CF60-4DB3-82BE-6D7577AD2F9C", + "type" : 4 + }, + { + "id" : "49DCE858-2AB1-4B4D-93E9-9E7CFA3AC59B", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Shannon-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "49DCE858-2AB1-4B4D-93E9-9E7CFA3AC59B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Shannon-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:40:04 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "49DCE858-2AB1-4B4D-93E9-9E7CFA3AC59B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "49DCE858-2AB1-4B4D-93E9-9E7CFA3AC59B", + "type" : 4 + }, + { + "id" : "ADD29F50-F9AE-4FBC-B5C3-F38F7F39EB19", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "ADD29F50-F9AE-4FBC-B5C3-F38F7F39EB19", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:40:06 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "ADD29F50-F9AE-4FBC-B5C3-F38F7F39EB19", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "ADD29F50-F9AE-4FBC-B5C3-F38F7F39EB19", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldFetchNextMembershipPageWhenStartAndLimitIsSet.json b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldFetchNextMembershipPageWhenStartAndLimitIsSet.json new file mode 100644 index 000000000..c5ca225ba --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldFetchNextMembershipPageWhenStartAndLimitIsSet.json @@ -0,0 +1,1076 @@ +[ + { + "id" : "E1C05FF8-7DE0-4651-9EDA-97732E4261DB", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E1C05FF8-7DE0-4651-9EDA-97732E4261DB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:40:08 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "E1C05FF8-7DE0-4651-9EDA-97732E4261DB", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "E1C05FF8-7DE0-4651-9EDA-97732E4261DB", + "type" : 4 + }, + { + "id" : "5EEE5A79-222F-4814-AD9E-D170C487C24A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "5EEE5A79-222F-4814-AD9E-D170C487C24A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:40:08 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "5EEE5A79-222F-4814-AD9E-D170C487C24A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "5EEE5A79-222F-4814-AD9E-D170C487C24A", + "type" : 4 + }, + { + "id" : "1DE84929-DFBA-4659-8F55-62EEF5F4BA55", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1DE84929-DFBA-4659-8F55-62EEF5F4BA55", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:40:09 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "1DE84929-DFBA-4659-8F55-62EEF5F4BA55", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MDowOC44MzUxNTJaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6NDA6MDguODM1MTUyWiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "1DE84929-DFBA-4659-8F55-62EEF5F4BA55", + "type" : 4 + }, + { + "id" : "9A7B1435-7BAD-48CF-B39D-B92892CBD23B", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9A7B1435-7BAD-48CF-B39D-B92892CBD23B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:40:10 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "9A7B1435-7BAD-48CF-B39D-B92892CBD23B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQwOjEwLjQ0ODg4NFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MDoxMC40NDg4ODRaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "9A7B1435-7BAD-48CF-B39D-B92892CBD23B", + "type" : 4 + }, + { + "id" : "00B7B72A-DEB2-4439-9508-0B1D140311C4", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "136", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiS2ltLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "00B7B72A-DEB2-4439-9508-0B1D140311C4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:40:11 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "00B7B72A-DEB2-4439-9508-0B1D140311C4", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQwOjExLjA0OTk2N1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MDoxMS4wNDk5NjdaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In19" + }, + "type" : 2 + }, + { + "id" : "00B7B72A-DEB2-4439-9508-0B1D140311C4", + "type" : 4 + }, + { + "id" : "9D833A77-C499-4006-AF4B-E3A68ACB1D52", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "152", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkVhcmxpbmUiLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiRWFybGluZS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiRWFybGluZS1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9D833A77-C499-4006-AF4B-E3A68ACB1D52", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:40:12 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "9D833A77-C499-4006-AF4B-E3A68ACB1D52", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkVhcmxpbmUiLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IkVhcmxpbmUtY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IkVhcmxpbmUtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MDoxMS43MDY3NTNaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6NDA6MTEuNzA2NzUzWiIsImVUYWciOiJBZDZienJuY3JLVzNyUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "9D833A77-C499-4006-AF4B-E3A68ACB1D52", + "type" : 4 + }, + { + "id" : "C8E460FC-82F5-4DBF-8AA0-1D12446CF1E9", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "140", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkdsZW4iLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiR2xlbi1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiR2xlbi1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C8E460FC-82F5-4DBF-8AA0-1D12446CF1E9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:40:12 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "C8E460FC-82F5-4DBF-8AA0-1D12446CF1E9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkdsZW4iLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IkdsZW4tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IkdsZW4tY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MDoxMi4zMTIyMzhaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6NDA6MTIuMzEyMjM4WiIsImVUYWciOiJBZi81d01TaDNyZUlkQSJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "C8E460FC-82F5-4DBF-8AA0-1D12446CF1E9", + "type" : 4 + }, + { + "id" : "F256C093-584C-4CAD-8ED8-9730F6953379", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "152", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6Ik5pY29sYXMiLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiTmljb2xhcy1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiTmljb2xhcy1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F256C093-584C-4CAD-8ED8-9730F6953379", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:40:13 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "F256C093-584C-4CAD-8ED8-9730F6953379", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6Ik5pY29sYXMiLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6Ik5pY29sYXMtY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6Ik5pY29sYXMtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MDoxMi44OTAyNzNaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6NDA6MTIuODkwMjczWiIsImVUYWciOiJBZGlKbC96NHNPYU4rZ0UifX0=" + }, + "type" : 2 + }, + { + "id" : "F256C093-584C-4CAD-8ED8-9730F6953379", + "type" : 4 + }, + { + "id" : "1B293439-5451-4F2A-B301-C6FC017FC9C2", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "152", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNoYW5ub24tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IlNoYW5ub24iLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiU2hhbm5vbi1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2hhbm5vbi1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1B293439-5451-4F2A-B301-C6FC017FC9C2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:40:13 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "1B293439-5451-4F2A-B301-C6FC017FC9C2", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNoYW5ub24tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IlNoYW5ub24iLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IlNoYW5ub24tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNoYW5ub24tY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MDoxMy40NzM0OTNaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6NDA6MTMuNDczNDkzWiIsImVUYWciOiJBZEd4aHNPLzB2aVdUQSJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "1B293439-5451-4F2A-B301-C6FC017FC9C2", + "type" : 4 + }, + { + "id" : "E88DB76A-86E7-48A7-B88C-8F83F14F62CF", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "283", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn0seyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIn0seyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIn0seyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIn0seyJpZCI6IlNoYW5ub24tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E88DB76A-86E7-48A7-B88C-8F83F14F62CF", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:40:19 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "E88DB76A-86E7-48A7-B88C-8F83F14F62CF", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MDoxNS40NzI5ODZaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6NDA6MTUuNDcyOTg2WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MDoxNi4xNjgzNjVaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6NDA6MTYuMTY4MzY1WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9LHsiaWQiOiJFYXJsaW5lLXVzZXItaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDE6NDA6MTYuODYzNTc2WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQwOjE2Ljg2MzU3NloiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiR2xlbi11c2VyLWlkZW50aWZpZXIiLCJjdXN0b20iOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQwOjE3LjU1ODY2N1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MDoxNy41NTg2NjdaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MDoxOC4yNTM5MDJaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6NDA6MTguMjUzOTAyWiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9LHsiaWQiOiJTaGFubm9uLXVzZXItaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDE6NDA6MTguOTQ5MDEzWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQwOjE4Ljk0OTAxM1oiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifV0sIm5leHQiOiJOZyJ9" + }, + "type" : 2 + }, + { + "id" : "E88DB76A-86E7-48A7-B88C-8F83F14F62CF", + "type" : 4 + }, + { + "id" : "EEC3D2D3-4C99-46A9-ACE3-A152CC8E6BCC", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?count=1&pnsdk=PubNub-ObjC-iOS\/4.x.x&limit=4&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "EEC3D2D3-4C99-46A9-ACE3-A152CC8E6BCC", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?count=1&pnsdk=PubNub-ObjC-iOS\/4.x.x&limit=4&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:40:21 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "EEC3D2D3-4C99-46A9-ACE3-A152CC8E6BCC", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDE6NDA6MTUuNDcyOTg2WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQwOjE1LjQ3Mjk4NloiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiS2ltLXVzZXItaWRlbnRpZmllciIsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQwOjE2LjE2ODM2NVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MDoxNi4xNjgzNjVaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIiwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDE6NDA6MTYuODYzNTc2WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQwOjE2Ljg2MzU3NloiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiR2xlbi11c2VyLWlkZW50aWZpZXIiLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MDoxNy41NTg2NjdaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6NDA6MTcuNTU4NjY3WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9XSwidG90YWxDb3VudCI6NiwibmV4dCI6Ik5BIn0=" + }, + "type" : 2 + }, + { + "id" : "EEC3D2D3-4C99-46A9-ACE3-A152CC8E6BCC", + "type" : 4 + }, + { + "id" : "5515FCBB-C8BA-4638-9C66-3A41B1C1D03F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?start=NA&count=1&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&limit=100" + }, + "type" : 0 + }, + { + "id" : "5515FCBB-C8BA-4638-9C66-3A41B1C1D03F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?start=NA&count=1&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&limit=100", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:40:21 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "5515FCBB-C8BA-4638-9C66-3A41B1C1D03F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJOaWNvbGFzLXVzZXItaWRlbnRpZmllciIsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQwOjE4LjI1MzkwMloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MDoxOC4yNTM5MDJaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IlNoYW5ub24tdXNlci1pZGVudGlmaWVyIiwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDE6NDA6MTguOTQ5MDEzWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQwOjE4Ljk0OTAxM1oiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifV0sInRvdGFsQ291bnQiOjYsIm5leHQiOiJOZyIsInByZXYiOiJOQSJ9" + }, + "type" : 2 + }, + { + "id" : "5515FCBB-C8BA-4638-9C66-3A41B1C1D03F", + "type" : 4 + }, + { + "id" : "086C2763-7550-4349-864E-E0243EA3F69F", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "286", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn0seyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIn0seyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIn0seyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIn0seyJpZCI6IlNoYW5ub24tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "086C2763-7550-4349-864E-E0243EA3F69F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:40:24 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "086C2763-7550-4349-864E-E0243EA3F69F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "086C2763-7550-4349-864E-E0243EA3F69F", + "type" : 4 + }, + { + "id" : "3EA76467-671E-4E32-AD99-1D09203BF374", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3EA76467-671E-4E32-AD99-1D09203BF374", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:40:25 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "3EA76467-671E-4E32-AD99-1D09203BF374", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "3EA76467-671E-4E32-AD99-1D09203BF374", + "type" : 4 + }, + { + "id" : "D54A7BFF-59E4-488B-AE2E-C50098BAFCCE", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D54A7BFF-59E4-488B-AE2E-C50098BAFCCE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:40:26 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "D54A7BFF-59E4-488B-AE2E-C50098BAFCCE", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "D54A7BFF-59E4-488B-AE2E-C50098BAFCCE", + "type" : 4 + }, + { + "id" : "C638E999-049C-4ECC-8D8C-17789B033406", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Earline-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C638E999-049C-4ECC-8D8C-17789B033406", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Earline-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:40:26 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "C638E999-049C-4ECC-8D8C-17789B033406", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "C638E999-049C-4ECC-8D8C-17789B033406", + "type" : 4 + }, + { + "id" : "8C96DFA8-3F9D-455F-8F80-C727608CDC8C", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Glen-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "8C96DFA8-3F9D-455F-8F80-C727608CDC8C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Glen-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:40:27 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "8C96DFA8-3F9D-455F-8F80-C727608CDC8C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "8C96DFA8-3F9D-455F-8F80-C727608CDC8C", + "type" : 4 + }, + { + "id" : "CD876E2F-B35B-4FDE-B8A6-82BE442C4F53", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Nicolas-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "CD876E2F-B35B-4FDE-B8A6-82BE442C4F53", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Nicolas-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:40:28 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "CD876E2F-B35B-4FDE-B8A6-82BE442C4F53", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "CD876E2F-B35B-4FDE-B8A6-82BE442C4F53", + "type" : 4 + }, + { + "id" : "FA728351-D61A-4AF3-AAB4-06700FEC3A40", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Shannon-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "FA728351-D61A-4AF3-AAB4-06700FEC3A40", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Shannon-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:40:29 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "FA728351-D61A-4AF3-AAB4-06700FEC3A40", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "FA728351-D61A-4AF3-AAB4-06700FEC3A40", + "type" : 4 + }, + { + "id" : "0A56ABF3-DEB5-41AA-B3D4-A4E547DA6416", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "0A56ABF3-DEB5-41AA-B3D4-A4E547DA6416", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:40:31 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "0A56ABF3-DEB5-41AA-B3D4-A4E547DA6416", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "0A56ABF3-DEB5-41AA-B3D4-A4E547DA6416", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldFetchOrderedMembersWhenOrderIsSet.json b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldFetchOrderedMembersWhenOrderIsSet.json new file mode 100644 index 000000000..51f80be50 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldFetchOrderedMembersWhenOrderIsSet.json @@ -0,0 +1,1024 @@ +[ + { + "id" : "4DBEB55A-1D6A-4AAC-86E4-42CDE1F120E3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "4DBEB55A-1D6A-4AAC-86E4-42CDE1F120E3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:10:51 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "4DBEB55A-1D6A-4AAC-86E4-42CDE1F120E3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "4DBEB55A-1D6A-4AAC-86E4-42CDE1F120E3", + "type" : 4 + }, + { + "id" : "DDA0E24D-D3C3-4ED4-B9BF-27658F286611", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "DDA0E24D-D3C3-4ED4-B9BF-27658F286611", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:10:51 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "DDA0E24D-D3C3-4ED4-B9BF-27658F286611", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "DDA0E24D-D3C3-4ED4-B9BF-27658F286611", + "type" : 4 + }, + { + "id" : "80B4D14F-B7DA-467C-BD96-262095AA9439", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "80B4D14F-B7DA-467C-BD96-262095AA9439", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:10:52 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "80B4D14F-B7DA-467C-BD96-262095AA9439", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMToxMDo1Mi4wNzM4NzJaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MTA6NTIuMDczODcyWiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "80B4D14F-B7DA-467C-BD96-262095AA9439", + "type" : 4 + }, + { + "id" : "BCE37C0D-8589-4A6F-A65A-970FEB01D79B", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "BCE37C0D-8589-4A6F-A65A-970FEB01D79B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:10:54 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "BCE37C0D-8589-4A6F-A65A-970FEB01D79B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEwOjUzLjY3MTc2MloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMToxMDo1My42NzE3NjJaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "BCE37C0D-8589-4A6F-A65A-970FEB01D79B", + "type" : 4 + }, + { + "id" : "96E4385F-ED54-4AD0-8728-A0DE005A94D5", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "136", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiS2ltLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "96E4385F-ED54-4AD0-8728-A0DE005A94D5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:10:54 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "96E4385F-ED54-4AD0-8728-A0DE005A94D5", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEwOjU0LjI0OTEyMloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMToxMDo1NC4yNDkxMjJaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In19" + }, + "type" : 2 + }, + { + "id" : "96E4385F-ED54-4AD0-8728-A0DE005A94D5", + "type" : 4 + }, + { + "id" : "00E83680-8D23-4063-90B2-8D52B313B790", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "152", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkVhcmxpbmUiLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiRWFybGluZS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiRWFybGluZS1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "00E83680-8D23-4063-90B2-8D52B313B790", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:10:55 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "00E83680-8D23-4063-90B2-8D52B313B790", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkVhcmxpbmUiLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IkVhcmxpbmUtY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IkVhcmxpbmUtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMToxMDo1NC44MjgxMTJaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MTA6NTQuODI4MTEyWiIsImVUYWciOiJBZDZienJuY3JLVzNyUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "00E83680-8D23-4063-90B2-8D52B313B790", + "type" : 4 + }, + { + "id" : "D4474079-52A3-4F90-8557-14AEF2C932A5", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "140", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkdsZW4iLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiR2xlbi1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiR2xlbi1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D4474079-52A3-4F90-8557-14AEF2C932A5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:10:55 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "D4474079-52A3-4F90-8557-14AEF2C932A5", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkdsZW4iLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IkdsZW4tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IkdsZW4tY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMToxMDo1NS40MDYyMTdaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MTA6NTUuNDA2MjE3WiIsImVUYWciOiJBZi81d01TaDNyZUlkQSJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "D4474079-52A3-4F90-8557-14AEF2C932A5", + "type" : 4 + }, + { + "id" : "9BE086BC-36D5-471B-8747-B70B8D13AD0E", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "152", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6Ik5pY29sYXMiLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiTmljb2xhcy1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiTmljb2xhcy1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9BE086BC-36D5-471B-8747-B70B8D13AD0E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:10:56 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "9BE086BC-36D5-471B-8747-B70B8D13AD0E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6Ik5pY29sYXMiLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6Ik5pY29sYXMtY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6Ik5pY29sYXMtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMToxMDo1NS45ODYzNTlaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MTA6NTUuOTg2MzU5WiIsImVUYWciOiJBZGlKbC96NHNPYU4rZ0UifX0=" + }, + "type" : 2 + }, + { + "id" : "9BE086BC-36D5-471B-8747-B70B8D13AD0E", + "type" : 4 + }, + { + "id" : "F84A2966-C935-4653-9E6E-D9FCEB5BB9E6", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "152", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNoYW5ub24tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IlNoYW5ub24iLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiU2hhbm5vbi1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2hhbm5vbi1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F84A2966-C935-4653-9E6E-D9FCEB5BB9E6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:10:57 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "F84A2966-C935-4653-9E6E-D9FCEB5BB9E6", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNoYW5ub24tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IlNoYW5ub24iLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IlNoYW5ub24tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNoYW5ub24tY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMToxMDo1Ni41NjM0NTVaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MTA6NTYuNTYzNDU1WiIsImVUYWciOiJBZEd4aHNPLzB2aVdUQSJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "F84A2966-C935-4653-9E6E-D9FCEB5BB9E6", + "type" : 4 + }, + { + "id" : "296DED13-A917-4D37-A2DB-06D1E09E7017", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "283", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn0seyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIn0seyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIn0seyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIn0seyJpZCI6IlNoYW5ub24tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=custom,user&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "296DED13-A917-4D37-A2DB-06D1E09E7017", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=custom,user&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:11:02 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "296DED13-A917-4D37-A2DB-06D1E09E7017", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJ1c2VyIjp7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciIsIm5hbWUiOiJTZXJoaWkiLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDE6MTA6NTMuNjcxNzYyWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEwOjUzLjY3MTc2MloiLCJlVGFnIjoiQWVQMjY3ZmF1dmJCUEEifSwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDE6MTA6NTguNTU3NTY0WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEwOjU4LjU1NzU2NFoiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiS2ltLXVzZXItaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwidXNlciI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEwOjU0LjI0OTEyMloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMToxMDo1NC4yNDkxMjJaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEwOjU5LjI1MzQwOFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMToxMDo1OS4yNTM0MDhaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJ1c2VyIjp7ImlkIjoiRWFybGluZS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiRWFybGluZSIsImV4dGVybmFsSWQiOm51bGwsInByb2ZpbGVVcmwiOm51bGwsImVtYWlsIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMToxMDo1NC44MjgxMTJaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MTA6NTQuODI4MTEyWiIsImVUYWciOiJBZDZienJuY3JLVzNyUUUifSwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDE6MTA6NTkuOTQ5NjAyWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEwOjU5Ljk0OTYwMloiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiR2xlbi11c2VyLWlkZW50aWZpZXIiLCJjdXN0b20iOm51bGwsInVzZXIiOnsiaWQiOiJHbGVuLXVzZXItaWRlbnRpZmllciIsIm5hbWUiOiJHbGVuIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEwOjU1LjQwNjIxN1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMToxMDo1NS40MDYyMTdaIiwiZVRhZyI6IkFmLzV3TVNoM3JlSWRBIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjExOjAwLjY0NTYxOVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMToxMTowMC42NDU2MTlaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJ1c2VyIjp7ImlkIjoiTmljb2xhcy11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiTmljb2xhcyIsImV4dGVybmFsSWQiOm51bGwsInByb2ZpbGVVcmwiOm51bGwsImVtYWlsIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMToxMDo1NS45ODYzNTlaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MTA6NTUuOTg2MzU5WiIsImVUYWciOiJBZGlKbC96NHNPYU4rZ0UifSwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDE6MTE6MDEuMzQxODI3WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAxOjExOjAxLjM0MTgyN1oiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiU2hhbm5vbi11c2VyLWlkZW50aWZpZXIiLCJjdXN0b20iOm51bGwsInVzZXIiOnsiaWQiOiJTaGFubm9uLXVzZXItaWRlbnRpZmllciIsIm5hbWUiOiJTaGFubm9uIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEwOjU2LjU2MzQ1NVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMToxMDo1Ni41NjM0NTVaIiwiZVRhZyI6IkFkR3hoc08vMHZpV1RBIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjExOjAyLjAzNzY5MloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMToxMTowMi4wMzc2OTJaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn1dLCJuZXh0IjoiTmcifQ==" + }, + "type" : 2 + }, + { + "id" : "296DED13-A917-4D37-A2DB-06D1E09E7017", + "type" : 4 + }, + { + "id" : "1EF58ACA-73E9-4C50-A058-C41600335191", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?sort=user.name:desc,created&count=1&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&include=custom,user&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "1EF58ACA-73E9-4C50-A058-C41600335191", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?sort=user.name:desc,created&count=1&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&include=custom,user&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:11:04 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "1EF58ACA-73E9-4C50-A058-C41600335191", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTaGFubm9uLXVzZXItaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwidXNlciI6eyJpZCI6IlNoYW5ub24tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IlNoYW5ub24iLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDE6MTA6NTYuNTYzNDU1WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEwOjU2LjU2MzQ1NVoiLCJlVGFnIjoiQWRHeGhzTy8wdmlXVEEifSwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDE6MTE6MDIuMDM3NjkyWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAxOjExOjAyLjAzNzY5MloiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwidXNlciI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEwOjUzLjY3MTc2MloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMToxMDo1My42NzE3NjJaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEwOjU4LjU1NzU2NFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMToxMDo1OC41NTc1NjRaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJ1c2VyIjp7ImlkIjoiTmljb2xhcy11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiTmljb2xhcyIsImV4dGVybmFsSWQiOm51bGwsInByb2ZpbGVVcmwiOm51bGwsImVtYWlsIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMToxMDo1NS45ODYzNTlaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MTA6NTUuOTg2MzU5WiIsImVUYWciOiJBZGlKbC96NHNPYU4rZ0UifSwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDE6MTE6MDEuMzQxODI3WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAxOjExOjAxLjM0MTgyN1oiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiS2ltLXVzZXItaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwidXNlciI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEwOjU0LjI0OTEyMloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMToxMDo1NC4yNDkxMjJaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEwOjU5LjI1MzQwOFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMToxMDo1OS4yNTM0MDhaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJ1c2VyIjp7ImlkIjoiR2xlbi11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiR2xlbiIsImV4dGVybmFsSWQiOm51bGwsInByb2ZpbGVVcmwiOm51bGwsImVtYWlsIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMToxMDo1NS40MDYyMTdaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MTA6NTUuNDA2MjE3WiIsImVUYWciOiJBZi81d01TaDNyZUlkQSJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMToxMTowMC42NDU2MTlaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MTE6MDAuNjQ1NjE5WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9LHsiaWQiOiJFYXJsaW5lLXVzZXItaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwidXNlciI6eyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkVhcmxpbmUiLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDE6MTA6NTQuODI4MTEyWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEwOjU0LjgyODExMloiLCJlVGFnIjoiQWQ2YnpybmNyS1czclFFIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEwOjU5Ljk0OTYwMloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMToxMDo1OS45NDk2MDJaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn1dLCJ0b3RhbENvdW50Ijo2LCJuZXh0IjoiTmcifQ==" + }, + "type" : 2 + }, + { + "id" : "1EF58ACA-73E9-4C50-A058-C41600335191", + "type" : 4 + }, + { + "id" : "864057F0-1A73-4AB1-9C2D-8EBA953C521C", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "286", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn0seyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIn0seyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIn0seyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIn0seyJpZCI6IlNoYW5ub24tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "864057F0-1A73-4AB1-9C2D-8EBA953C521C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:11:06 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "864057F0-1A73-4AB1-9C2D-8EBA953C521C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "864057F0-1A73-4AB1-9C2D-8EBA953C521C", + "type" : 4 + }, + { + "id" : "597CC42F-815D-417D-98B5-9937243551EF", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "597CC42F-815D-417D-98B5-9937243551EF", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:11:07 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "597CC42F-815D-417D-98B5-9937243551EF", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "597CC42F-815D-417D-98B5-9937243551EF", + "type" : 4 + }, + { + "id" : "DA3505DC-7BDB-4281-B3F9-DDB9650DA02F", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "DA3505DC-7BDB-4281-B3F9-DDB9650DA02F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:11:08 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "DA3505DC-7BDB-4281-B3F9-DDB9650DA02F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "DA3505DC-7BDB-4281-B3F9-DDB9650DA02F", + "type" : 4 + }, + { + "id" : "3D7A0FCF-DAE5-4784-AA10-44EE2B6F3E2D", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Earline-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3D7A0FCF-DAE5-4784-AA10-44EE2B6F3E2D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Earline-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:11:09 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "3D7A0FCF-DAE5-4784-AA10-44EE2B6F3E2D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "3D7A0FCF-DAE5-4784-AA10-44EE2B6F3E2D", + "type" : 4 + }, + { + "id" : "FAEB54FF-273B-43B8-A95C-F1BE053BAB98", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Glen-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "FAEB54FF-273B-43B8-A95C-F1BE053BAB98", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Glen-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:11:10 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "FAEB54FF-273B-43B8-A95C-F1BE053BAB98", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "FAEB54FF-273B-43B8-A95C-F1BE053BAB98", + "type" : 4 + }, + { + "id" : "3145CA5F-4666-47B3-BE01-FA04DB68AAB1", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Nicolas-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3145CA5F-4666-47B3-BE01-FA04DB68AAB1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Nicolas-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:11:11 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "3145CA5F-4666-47B3-BE01-FA04DB68AAB1", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "3145CA5F-4666-47B3-BE01-FA04DB68AAB1", + "type" : 4 + }, + { + "id" : "7A783E6D-063A-4696-A099-1662F3D25252", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Shannon-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "7A783E6D-063A-4696-A099-1662F3D25252", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Shannon-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:11:12 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "7A783E6D-063A-4696-A099-1662F3D25252", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "7A783E6D-063A-4696-A099-1662F3D25252", + "type" : 4 + }, + { + "id" : "3235E084-A073-4431-AA3A-9344F712B9F9", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3235E084-A073-4431-AA3A-9344F712B9F9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:11:13 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "3235E084-A073-4431-AA3A-9344F712B9F9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "3235E084-A073-4431-AA3A-9344F712B9F9", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldNotAddMembersWhenSpaceAlreadyHasTargetUsersAsMembers.json b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldNotAddMembersWhenSpaceAlreadyHasTargetUsersAsMembers.json new file mode 100644 index 000000000..6d1770177 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldNotAddMembersWhenSpaceAlreadyHasTargetUsersAsMembers.json @@ -0,0 +1,704 @@ +[ + { + "id" : "8D040FE0-DAE0-4DCE-898C-CA6F760D901C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "8D040FE0-DAE0-4DCE-898C-CA6F760D901C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:40:33 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "8D040FE0-DAE0-4DCE-898C-CA6F760D901C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "8D040FE0-DAE0-4DCE-898C-CA6F760D901C", + "type" : 4 + }, + { + "id" : "10EA7F49-4D17-4483-80E7-2F1114AFF629", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "10EA7F49-4D17-4483-80E7-2F1114AFF629", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:40:33 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "10EA7F49-4D17-4483-80E7-2F1114AFF629", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "10EA7F49-4D17-4483-80E7-2F1114AFF629", + "type" : 4 + }, + { + "id" : "8B8117F6-5FB9-4462-B3AF-DDBC2038FDA6", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "8B8117F6-5FB9-4462-B3AF-DDBC2038FDA6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:40:34 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "8B8117F6-5FB9-4462-B3AF-DDBC2038FDA6", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MDozMy42NTYxMjlaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6NDA6MzMuNjU2MTI5WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "8B8117F6-5FB9-4462-B3AF-DDBC2038FDA6", + "type" : 4 + }, + { + "id" : "A8F25D4A-8409-4E87-8C3C-A54ECB23A0E1", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A8F25D4A-8409-4E87-8C3C-A54ECB23A0E1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:40:35 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "A8F25D4A-8409-4E87-8C3C-A54ECB23A0E1", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQwOjM1LjI2NjQzN1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MDozNS4yNjY0MzdaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "A8F25D4A-8409-4E87-8C3C-A54ECB23A0E1", + "type" : 4 + }, + { + "id" : "BCAB7561-124D-4FB5-8ED6-4449B4111FAD", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "136", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiS2ltLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "BCAB7561-124D-4FB5-8ED6-4449B4111FAD", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:40:36 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "BCAB7561-124D-4FB5-8ED6-4449B4111FAD", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQwOjM1Ljg2NDQ5NVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MDozNS44NjQ0OTVaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In19" + }, + "type" : 2 + }, + { + "id" : "BCAB7561-124D-4FB5-8ED6-4449B4111FAD", + "type" : 4 + }, + { + "id" : "787DC3D6-9174-475A-82B8-1A943D8A443C", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "98", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=user,user.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "787DC3D6-9174-475A-82B8-1A943D8A443C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=user,user.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:40:39 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "787DC3D6-9174-475A-82B8-1A943D8A443C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwidXNlciI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQwOjM1LjI2NjQzN1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MDozNS4yNjY0MzdaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQwOjM3Ljk0NTc2OVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MDozNy45NDU3NjlaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJ1c2VyIjp7ImlkIjoiS2ltLXVzZXItaWRlbnRpZmllciIsIm5hbWUiOiJLaW0iLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IktpbS1jdXN0b20tZGF0YS0xIiwidXNlci1jdXN0b20yIjoiS2ltLWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDE6NDA6MzUuODY0NDk1WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQwOjM1Ljg2NDQ5NVoiLCJlVGFnIjoiQWJqTHkvTE52N0hWTncifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDE6NDA6MzguNjQwNTUyWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQwOjM4LjY0MDU1MloiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifV0sIm5leHQiOiJNZyJ9" + }, + "type" : 2 + }, + { + "id" : "787DC3D6-9174-475A-82B8-1A943D8A443C", + "type" : 4 + }, + { + "id" : "A615B9C8-382B-4478-A12D-30CA704D05A7", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "55", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=user,user.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A615B9C8-382B-4478-A12D-30CA704D05A7", + "data" : { + "status" : 400, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=user,user.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:40:40 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "193", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "A615B9C8-382B-4478-A12D-30CA704D05A7", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjQwMCwiZXJyb3IiOnsibWVzc2FnZSI6IkludmFsaWQgcmVxdWVzdCBpbnB1dC4iLCJzb3VyY2UiOiJvYmplY3RzIiwiZGV0YWlscyI6W3sibWVzc2FnZSI6IlVzZXIgd2l0aCBzcGVjaWZpZWQgaWQgaXMgYWxyZWFkeSBhIG1lbWJlci4iLCJsb2NhdGlvbiI6ImFkZFswXS5pZCIsImxvY2F0aW9uVHlwZSI6ImJvZHkifV19fQ==" + }, + "type" : 2 + }, + { + "id" : "A615B9C8-382B-4478-A12D-30CA704D05A7", + "type" : 4 + }, + { + "id" : "EC3871EB-CBF3-423C-B1BD-37DDC97E621B", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "55", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=user,user.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "EC3871EB-CBF3-423C-B1BD-37DDC97E621B", + "data" : { + "status" : 400, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=user,user.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:40:40 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "193", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "EC3871EB-CBF3-423C-B1BD-37DDC97E621B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjQwMCwiZXJyb3IiOnsibWVzc2FnZSI6IkludmFsaWQgcmVxdWVzdCBpbnB1dC4iLCJzb3VyY2UiOiJvYmplY3RzIiwiZGV0YWlscyI6W3sibWVzc2FnZSI6IlVzZXIgd2l0aCBzcGVjaWZpZWQgaWQgaXMgYWxyZWFkeSBhIG1lbWJlci4iLCJsb2NhdGlvbiI6ImFkZFswXS5pZCIsImxvY2F0aW9uVHlwZSI6ImJvZHkifV19fQ==" + }, + "type" : 2 + }, + { + "id" : "EC3871EB-CBF3-423C-B1BD-37DDC97E621B", + "type" : 4 + }, + { + "id" : "C21F8B3D-A6FF-4A45-8E88-DD0041FE02A0", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C21F8B3D-A6FF-4A45-8E88-DD0041FE02A0", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:40:41 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "C21F8B3D-A6FF-4A45-8E88-DD0041FE02A0", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDE6NDA6MzcuOTQ1NzY5WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQwOjM3Ljk0NTc2OVoiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiS2ltLXVzZXItaWRlbnRpZmllciIsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQwOjM4LjY0MDU1MloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MDozOC42NDA1NTJaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn1dLCJuZXh0IjoiTWcifQ==" + }, + "type" : 2 + }, + { + "id" : "C21F8B3D-A6FF-4A45-8E88-DD0041FE02A0", + "type" : 4 + }, + { + "id" : "158AFC8C-5800-46CC-BC29-678A902A34D9", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "101", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "158AFC8C-5800-46CC-BC29-678A902A34D9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:40:43 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "158AFC8C-5800-46CC-BC29-678A902A34D9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "158AFC8C-5800-46CC-BC29-678A902A34D9", + "type" : 4 + }, + { + "id" : "822CA113-8D3D-4DB7-8936-1D6D2744992F", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "822CA113-8D3D-4DB7-8936-1D6D2744992F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:40:44 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "822CA113-8D3D-4DB7-8936-1D6D2744992F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "822CA113-8D3D-4DB7-8936-1D6D2744992F", + "type" : 4 + }, + { + "id" : "A461D59E-571C-423F-B652-0683481B1B2F", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A461D59E-571C-423F-B652-0683481B1B2F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:40:45 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "A461D59E-571C-423F-B652-0683481B1B2F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "A461D59E-571C-423F-B652-0683481B1B2F", + "type" : 4 + }, + { + "id" : "A9CE2FA3-A27B-46C1-B422-FA98C8A6726F", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A9CE2FA3-A27B-46C1-B422-FA98C8A6726F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:40:47 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "A9CE2FA3-A27B-46C1-B422-FA98C8A6726F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "A9CE2FA3-A27B-46C1-B422-FA98C8A6726F", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldNotFetchMembersWhenSpaceObjectNotExists.json b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldNotFetchMembersWhenSpaceObjectNotExists.json new file mode 100644 index 000000000..7cee8609a --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldNotFetchMembersWhenSpaceObjectNotExists.json @@ -0,0 +1,202 @@ +[ + { + "id" : "09A3C509-CCF1-411E-947F-401087BA6873", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "09A3C509-CCF1-411E-947F-401087BA6873", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:40:49 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "09A3C509-CCF1-411E-947F-401087BA6873", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "09A3C509-CCF1-411E-947F-401087BA6873", + "type" : 4 + }, + { + "id" : "F5310B1D-0E34-4A9F-9A2E-2E0AC39A1EBC", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F5310B1D-0E34-4A9F-9A2E-2E0AC39A1EBC", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:40:49 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "F5310B1D-0E34-4A9F-9A2E-2E0AC39A1EBC", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "F5310B1D-0E34-4A9F-9A2E-2E0AC39A1EBC", + "type" : 4 + }, + { + "id" : "FC26E9D7-A71C-4D4D-A6B0-FE332761A085", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/not-existing-space\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "FC26E9D7-A71C-4D4D-A6B0-FE332761A085", + "data" : { + "status" : 404, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/not-existing-space\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:40:49 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "87", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "FC26E9D7-A71C-4D4D-A6B0-FE332761A085", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjQwNCwiZXJyb3IiOnsibWVzc2FnZSI6IlJlcXVlc3RlZCBvYmplY3Qgd2FzIG5vdCBmb3VuZC4iLCJzb3VyY2UiOiJvYmplY3RzIn19" + }, + "type" : 2 + }, + { + "id" : "FC26E9D7-A71C-4D4D-A6B0-FE332761A085", + "type" : 4 + }, + { + "id" : "5F1E8073-CE19-4803-827C-9BD2A1A092D9", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/not-existing-space\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "5F1E8073-CE19-4803-827C-9BD2A1A092D9", + "data" : { + "status" : 404, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/not-existing-space\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:40:49 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "87", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "5F1E8073-CE19-4803-827C-9BD2A1A092D9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjQwNCwiZXJyb3IiOnsibWVzc2FnZSI6IlJlcXVlc3RlZCBvYmplY3Qgd2FzIG5vdCBmb3VuZC4iLCJzb3VyY2UiOiJvYmplY3RzIn19" + }, + "type" : 2 + }, + { + "id" : "5F1E8073-CE19-4803-827C-9BD2A1A092D9", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldNotUpdateMembersWhenSpaceNotHaveSpecifiedUsersAsMembers.json b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldNotUpdateMembersWhenSpaceNotHaveSpecifiedUsersAsMembers.json new file mode 100644 index 000000000..93b8d7219 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldNotUpdateMembersWhenSpaceNotHaveSpecifiedUsersAsMembers.json @@ -0,0 +1,482 @@ +[ + { + "id" : "9CFC3CBD-BD25-46C7-BE2E-F129096ECD5A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9CFC3CBD-BD25-46C7-BE2E-F129096ECD5A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:40:50 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "9CFC3CBD-BD25-46C7-BE2E-F129096ECD5A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "9CFC3CBD-BD25-46C7-BE2E-F129096ECD5A", + "type" : 4 + }, + { + "id" : "D5991AD4-0AC9-4E16-8ED7-3E34C97AEEBA", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D5991AD4-0AC9-4E16-8ED7-3E34C97AEEBA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:40:50 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "D5991AD4-0AC9-4E16-8ED7-3E34C97AEEBA", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "D5991AD4-0AC9-4E16-8ED7-3E34C97AEEBA", + "type" : 4 + }, + { + "id" : "519B5251-AD2C-4A84-8D7B-817780484A1A", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "519B5251-AD2C-4A84-8D7B-817780484A1A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:40:51 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "519B5251-AD2C-4A84-8D7B-817780484A1A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MDo1MS4wODczNzlaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6NDA6NTEuMDg3Mzc5WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "519B5251-AD2C-4A84-8D7B-817780484A1A", + "type" : 4 + }, + { + "id" : "89383AFE-DCD1-406E-8F85-E659DCD37917", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "89383AFE-DCD1-406E-8F85-E659DCD37917", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:40:53 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "89383AFE-DCD1-406E-8F85-E659DCD37917", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQwOjUyLjc2MTU1OFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MDo1Mi43NjE1NThaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "89383AFE-DCD1-406E-8F85-E659DCD37917", + "type" : 4 + }, + { + "id" : "17B6B0D7-D8A4-4F6A-909B-5E28AD3E0514", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "136", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiS2ltLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "17B6B0D7-D8A4-4F6A-909B-5E28AD3E0514", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:40:53 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "17B6B0D7-D8A4-4F6A-909B-5E28AD3E0514", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQwOjUzLjM3NTA0N1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MDo1My4zNzUwNDdaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In19" + }, + "type" : 2 + }, + { + "id" : "17B6B0D7-D8A4-4F6A-909B-5E28AD3E0514", + "type" : 4 + }, + { + "id" : "45BAD1A9-847A-44B2-9DDF-8ECBE5765FE9", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "268", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ1cGRhdGUiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciIsImN1c3RvbSI6eyJ1c2VyLW1lbWJlci1jdXN0b20iOiJTZXJoaWktdXNlci1pZGVudGlmaWVyLWN1c3RvbS1kYXRhLTEifX0seyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJjdXN0b20iOnsidXNlci1tZW1iZXItY3VzdG9tIjoiS2ltLXVzZXItaWRlbnRpZmllci1jdXN0b20tZGF0YS0yIn19XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "45BAD1A9-847A-44B2-9DDF-8ECBE5765FE9", + "data" : { + "status" : 400, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:40:56 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "314", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "45BAD1A9-847A-44B2-9DDF-8ECBE5765FE9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjQwMCwiZXJyb3IiOnsibWVzc2FnZSI6IkludmFsaWQgcmVxdWVzdCBpbnB1dC4iLCJzb3VyY2UiOiJvYmplY3RzIiwiZGV0YWlscyI6W3sibWVzc2FnZSI6IlVzZXIgd2l0aCBzcGVjaWZpZWQgaWQgaXMgbm90IGFuIGV4aXN0aW5nIG1lbWJlci4iLCJsb2NhdGlvbiI6InVwZGF0ZVswXS5pZCIsImxvY2F0aW9uVHlwZSI6ImJvZHkifSx7Im1lc3NhZ2UiOiJVc2VyIHdpdGggc3BlY2lmaWVkIGlkIGlzIG5vdCBhbiBleGlzdGluZyBtZW1iZXIuIiwibG9jYXRpb24iOiJ1cGRhdGVbMV0uaWQiLCJsb2NhdGlvblR5cGUiOiJib2R5In1dfX0=" + }, + "type" : 2 + }, + { + "id" : "45BAD1A9-847A-44B2-9DDF-8ECBE5765FE9", + "type" : 4 + }, + { + "id" : "0DC71164-0F3D-4334-8979-C91FC6BFD273", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "0DC71164-0F3D-4334-8979-C91FC6BFD273", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:40:56 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "0DC71164-0F3D-4334-8979-C91FC6BFD273", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "0DC71164-0F3D-4334-8979-C91FC6BFD273", + "type" : 4 + }, + { + "id" : "EC33FAF6-2E10-4559-BCCB-068DAA6086B4", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "EC33FAF6-2E10-4559-BCCB-068DAA6086B4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:40:57 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "EC33FAF6-2E10-4559-BCCB-068DAA6086B4", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "EC33FAF6-2E10-4559-BCCB-068DAA6086B4", + "type" : 4 + }, + { + "id" : "4114F39A-218D-480D-AE11-A5A26B68D525", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "4114F39A-218D-480D-AE11-A5A26B68D525", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:40:59 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "4114F39A-218D-480D-AE11-A5A26B68D525", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "4114F39A-218D-480D-AE11-A5A26B68D525", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldTriggerDeleteMemberEventOnSpaceChannelWhenUserRemoved.json b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldTriggerDeleteMemberEventOnSpaceChannelWhenUserRemoved.json new file mode 100644 index 000000000..d31f82ec0 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldTriggerDeleteMemberEventOnSpaceChannelWhenUserRemoved.json @@ -0,0 +1,781 @@ +[ + { + "id" : "5E9FBD37-9844-4DB6-9F22-5B4F5797F77B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "5E9FBD37-9844-4DB6-9F22-5B4F5797F77B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:41:01 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "5E9FBD37-9844-4DB6-9F22-5B4F5797F77B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "5E9FBD37-9844-4DB6-9F22-5B4F5797F77B", + "type" : 4 + }, + { + "id" : "055B4D47-58D0-4F67-ADD5-868BA685BB3C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "055B4D47-58D0-4F67-ADD5-868BA685BB3C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:41:01 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "055B4D47-58D0-4F67-ADD5-868BA685BB3C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "055B4D47-58D0-4F67-ADD5-868BA685BB3C", + "type" : 4 + }, + { + "id" : "8839FD2E-7561-4282-B2A0-CAA4A9DEECA8", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "8839FD2E-7561-4282-B2A0-CAA4A9DEECA8", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:41:02 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "8839FD2E-7561-4282-B2A0-CAA4A9DEECA8", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MTowMi4wMDM0NzZaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6NDE6MDIuMDAzNDc2WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "8839FD2E-7561-4282-B2A0-CAA4A9DEECA8", + "type" : 4 + }, + { + "id" : "D8089472-10C2-4DD0-8789-905A8F82C994", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D8089472-10C2-4DD0-8789-905A8F82C994", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:41:04 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "D8089472-10C2-4DD0-8789-905A8F82C994", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQxOjAzLjYxMzMwM1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MTowMy42MTMzMDNaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "D8089472-10C2-4DD0-8789-905A8F82C994", + "type" : 4 + }, + { + "id" : "32A459D0-BAE1-4DBA-BF5A-00A0F2C17F64", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "136", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiS2ltLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "32A459D0-BAE1-4DBA-BF5A-00A0F2C17F64", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:41:04 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "32A459D0-BAE1-4DBA-BF5A-00A0F2C17F64", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQxOjA0LjE5NzkzNloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MTowNC4xOTc5MzZaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In19" + }, + "type" : 2 + }, + { + "id" : "32A459D0-BAE1-4DBA-BF5A-00A0F2C17F64", + "type" : 4 + }, + { + "id" : "8C2B0394-F425-4F2C-B7EE-0E911FC659C6", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "98", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "8C2B0394-F425-4F2C-B7EE-0E911FC659C6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:41:07 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "8C2B0394-F425-4F2C-B7EE-0E911FC659C6", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MTowNi4yNzA0NThaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6NDE6MDYuMjcwNDU4WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MTowNi45NjUzNTJaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6NDE6MDYuOTY1MzUyWiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9XSwibmV4dCI6Ik1nIn0=" + }, + "type" : 2 + }, + { + "id" : "8C2B0394-F425-4F2C-B7EE-0E911FC659C6", + "type" : 4 + }, + { + "id" : "6A5AB154-7A0E-416C-B4FC-E0D278086B8A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&tt=0&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "6A5AB154-7A0E-416C-B4FC-E0D278086B8A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&tt=0&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 01:41:09 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "6A5AB154-7A0E-416C-B4FC-E0D278086B8A", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDM5NjY3NTc4MDI0OCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "6A5AB154-7A0E-416C-B4FC-E0D278086B8A", + "type" : 4 + }, + { + "id" : "A2467EE9-AB3B-492C-AD85-7C1857A2AD31", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810396675780248&tr=12" + }, + "type" : 0 + }, + { + "id" : "5A24BAEC-DD2A-4936-A63B-6C1EBA88D117", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "5A24BAEC-DD2A-4936-A63B-6C1EBA88D117", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:41:10 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "A2467EE9-AB3B-492C-AD85-7C1857A2AD31", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810396675780248&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 01:41:10 GMT", + "Content-Length" : "322", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "5A24BAEC-DD2A-4936-A63B-6C1EBA88D117", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "A2467EE9-AB3B-492C-AD85-7C1857A2AD31", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDM5NjcwMDQ4MTc5NSIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJlIjoyLCJwIjp7InQiOiIxNTgxMDM5NjcwMDQ1MzMxNyIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIiwiZCI6eyJzb3VyY2UiOiJvYmplY3RzIiwidmVyc2lvbiI6IjEuMCIsImV2ZW50IjoiZGVsZXRlIiwidHlwZSI6InVzZXIiLCJkYXRhIjp7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9fX1dfQ==" + }, + "type" : 2 + }, + { + "id" : "5A24BAEC-DD2A-4936-A63B-6C1EBA88D117", + "type" : 4 + }, + { + "id" : "A2467EE9-AB3B-492C-AD85-7C1857A2AD31", + "type" : 4 + }, + { + "id" : "805715C1-685C-4F6D-82E6-806335181940", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810396700481795&tr=12" + }, + "type" : 0 + }, + { + "id" : "805715C1-685C-4F6D-82E6-806335181940", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810396700481795&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810396700481795&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "7FC52F53-FC63-4D1A-B177-1A5A24DF907D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/Chanted-space-identifier\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "7FC52F53-FC63-4D1A-B177-1A5A24DF907D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/Chanted-space-identifier\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Fri, 07 Feb 2020 01:41:10 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "7FC52F53-FC63-4D1A-B177-1A5A24DF907D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "7FC52F53-FC63-4D1A-B177-1A5A24DF907D", + "type" : 4 + }, + { + "id" : "42AC271A-9B98-421D-A1D7-8164093CCE5F", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "101", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "42AC271A-9B98-421D-A1D7-8164093CCE5F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:41:12 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "42AC271A-9B98-421D-A1D7-8164093CCE5F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "42AC271A-9B98-421D-A1D7-8164093CCE5F", + "type" : 4 + }, + { + "id" : "EED194BF-C26A-4E53-A7E0-F8B1B11EF623", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "EED194BF-C26A-4E53-A7E0-F8B1B11EF623", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:41:12 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "EED194BF-C26A-4E53-A7E0-F8B1B11EF623", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "EED194BF-C26A-4E53-A7E0-F8B1B11EF623", + "type" : 4 + }, + { + "id" : "2E8EFE37-5D63-4CDF-9398-29C7A9BC3BEF", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2E8EFE37-5D63-4CDF-9398-29C7A9BC3BEF", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:41:13 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "2E8EFE37-5D63-4CDF-9398-29C7A9BC3BEF", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "2E8EFE37-5D63-4CDF-9398-29C7A9BC3BEF", + "type" : 4 + }, + { + "id" : "14539188-84F5-4AF3-8DBE-0784F17D3B00", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "14539188-84F5-4AF3-8DBE-0784F17D3B00", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:41:15 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "14539188-84F5-4AF3-8DBE-0784F17D3B00", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "14539188-84F5-4AF3-8DBE-0784F17D3B00", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldTriggerUpdateMemberEventOnSpaceChannelWhenUserDataChanged.json b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldTriggerUpdateMemberEventOnSpaceChannelWhenUserDataChanged.json new file mode 100644 index 000000000..b50a7c690 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldTriggerUpdateMemberEventOnSpaceChannelWhenUserDataChanged.json @@ -0,0 +1,787 @@ +[ + { + "id" : "9884EA55-A30F-4956-B52E-CA0B8672E7C3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9884EA55-A30F-4956-B52E-CA0B8672E7C3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:41:17 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "9884EA55-A30F-4956-B52E-CA0B8672E7C3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "9884EA55-A30F-4956-B52E-CA0B8672E7C3", + "type" : 4 + }, + { + "id" : "DEB010C7-FBD1-4C15-86DA-1EDE243B3F0C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "DEB010C7-FBD1-4C15-86DA-1EDE243B3F0C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:41:17 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "DEB010C7-FBD1-4C15-86DA-1EDE243B3F0C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "DEB010C7-FBD1-4C15-86DA-1EDE243B3F0C", + "type" : 4 + }, + { + "id" : "F63E3D45-CC81-4C07-8CD9-81D5CEE310B4", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F63E3D45-CC81-4C07-8CD9-81D5CEE310B4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:41:18 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "F63E3D45-CC81-4C07-8CD9-81D5CEE310B4", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MToxOC4wMjE5MDJaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6NDE6MTguMDIxOTAyWiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "F63E3D45-CC81-4C07-8CD9-81D5CEE310B4", + "type" : 4 + }, + { + "id" : "9FA6C62F-B0BE-4977-B45F-3CDF51CF9254", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9FA6C62F-B0BE-4977-B45F-3CDF51CF9254", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:41:20 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "9FA6C62F-B0BE-4977-B45F-3CDF51CF9254", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQxOjE5LjcwMjI4N1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MToxOS43MDIyODdaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "9FA6C62F-B0BE-4977-B45F-3CDF51CF9254", + "type" : 4 + }, + { + "id" : "04396B9A-EEFF-4FDD-9EA1-A5B088BEDFCD", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "136", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiS2ltLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "04396B9A-EEFF-4FDD-9EA1-A5B088BEDFCD", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:41:20 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "04396B9A-EEFF-4FDD-9EA1-A5B088BEDFCD", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQxOjIwLjMwODY2WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQxOjIwLjMwODY2WiIsImVUYWciOiJBYmpMeS9MTnY3SFZOdyJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "04396B9A-EEFF-4FDD-9EA1-A5B088BEDFCD", + "type" : 4 + }, + { + "id" : "DBAD6A9A-45E3-42F8-9EA4-85EB003E4EEB", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "98", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "DBAD6A9A-45E3-42F8-9EA4-85EB003E4EEB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:41:23 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "DBAD6A9A-45E3-42F8-9EA4-85EB003E4EEB", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MToyMi4zNDI1NzRaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6NDE6MjIuMzQyNTc0WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MToyMy4wMzczMjhaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6NDE6MjMuMDM3MzI4WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9XSwibmV4dCI6Ik1nIn0=" + }, + "type" : 2 + }, + { + "id" : "DBAD6A9A-45E3-42F8-9EA4-85EB003E4EEB", + "type" : 4 + }, + { + "id" : "14DF26B4-79FA-4C53-B979-5FA276A124BE", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&tt=0&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "14DF26B4-79FA-4C53-B979-5FA276A124BE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&tt=0&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 01:41:25 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "14DF26B4-79FA-4C53-B979-5FA276A124BE", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDM5NjgzNjQ5NTAyMCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "14DF26B4-79FA-4C53-B979-5FA276A124BE", + "type" : 4 + }, + { + "id" : "2D14B69A-E0E1-4E4A-A288-6F7ADEF47410", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810396836495020&tr=12" + }, + "type" : 0 + }, + { + "id" : "EC9977E6-E054-4654-A324-F92E232AE673", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "123", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJjdXN0b20iOnsidXNlci1jdXN0b20iOiJTZXJoaWktdXNlci1pZGVudGlmaWVyLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?include=user,user.custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "EC9977E6-E054-4654-A324-F92E232AE673", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?include=user,user.custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:41:25 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "236", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "2D14B69A-E0E1-4E4A-A288-6F7ADEF47410", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810396836495020&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 01:41:25 GMT", + "Content-Length" : "464", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "EC9977E6-E054-4654-A324-F92E232AE673", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQxOjE5LjcwMjI4N1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MToyNS40OTU5OVoiLCJlVGFnIjoiQWFibXBjeWN2THFabWdFIn19" + }, + "type" : 2 + }, + { + "id" : "2D14B69A-E0E1-4E4A-A288-6F7ADEF47410", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDM5Njg1OTMzNDgwNyIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJlIjoyLCJwIjp7InQiOiIxNTgxMDM5Njg1OTMxMDgwMyIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIiwiZCI6eyJzb3VyY2UiOiJvYmplY3RzIiwidmVyc2lvbiI6IjEuMCIsImV2ZW50IjoidXBkYXRlIiwidHlwZSI6InVzZXIiLCJkYXRhIjp7ImN1c3RvbSI6eyJ1c2VyLWN1c3RvbSI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXItY3VzdG9tLWRhdGEtMSJ9LCJlVGFnIjoiQWFibXBjeWN2THFabWdFIiwiaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6NDE6MjUuNDk1OTlaIn19fV19" + }, + "type" : 2 + }, + { + "id" : "EC9977E6-E054-4654-A324-F92E232AE673", + "type" : 4 + }, + { + "id" : "2D14B69A-E0E1-4E4A-A288-6F7ADEF47410", + "type" : 4 + }, + { + "id" : "49E30957-DA31-4553-9E4C-F6CBE6593900", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810396859334807&tr=12" + }, + "type" : 0 + }, + { + "id" : "49E30957-DA31-4553-9E4C-F6CBE6593900", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810396859334807&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810396859334807&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "29F331DF-74B1-44A4-A681-685A70C44411", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/Chanted-space-identifier\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "29F331DF-74B1-44A4-A681-685A70C44411", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/Chanted-space-identifier\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Fri, 07 Feb 2020 01:41:26 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "29F331DF-74B1-44A4-A681-685A70C44411", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "29F331DF-74B1-44A4-A681-685A70C44411", + "type" : 4 + }, + { + "id" : "D6528C35-6903-41BC-A43E-4741EF9F2C90", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "101", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D6528C35-6903-41BC-A43E-4741EF9F2C90", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:41:28 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "D6528C35-6903-41BC-A43E-4741EF9F2C90", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "D6528C35-6903-41BC-A43E-4741EF9F2C90", + "type" : 4 + }, + { + "id" : "E16813FE-4648-4781-8411-B1292293BBCB", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E16813FE-4648-4781-8411-B1292293BBCB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:41:29 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "E16813FE-4648-4781-8411-B1292293BBCB", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "E16813FE-4648-4781-8411-B1292293BBCB", + "type" : 4 + }, + { + "id" : "A3E18586-7710-4B38-B7CA-3AEE3E514354", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A3E18586-7710-4B38-B7CA-3AEE3E514354", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:41:30 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "A3E18586-7710-4B38-B7CA-3AEE3E514354", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "A3E18586-7710-4B38-B7CA-3AEE3E514354", + "type" : 4 + }, + { + "id" : "2FCC4780-DBF6-4FE8-801C-6B1C9699CD1B", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2FCC4780-DBF6-4FE8-801C-6B1C9699CD1B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:41:31 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "2FCC4780-DBF6-4FE8-801C-6B1C9699CD1B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "2FCC4780-DBF6-4FE8-801C-6B1C9699CD1B", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldUpdateMembersAndReceiveStatusWithExpectedOperationAndCategory.json b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldUpdateMembersAndReceiveStatusWithExpectedOperationAndCategory.json new file mode 100644 index 000000000..119477c38 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldUpdateMembersAndReceiveStatusWithExpectedOperationAndCategory.json @@ -0,0 +1,598 @@ +[ + { + "id" : "C969D61D-81CD-4670-AE14-050752869F49", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C969D61D-81CD-4670-AE14-050752869F49", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:41:33 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "C969D61D-81CD-4670-AE14-050752869F49", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "C969D61D-81CD-4670-AE14-050752869F49", + "type" : 4 + }, + { + "id" : "2831C143-517D-46B5-9EDA-AC81B58AC2FF", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2831C143-517D-46B5-9EDA-AC81B58AC2FF", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:41:34 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "2831C143-517D-46B5-9EDA-AC81B58AC2FF", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "2831C143-517D-46B5-9EDA-AC81B58AC2FF", + "type" : 4 + }, + { + "id" : "88C9A5CE-F445-4EF5-85B8-7C3E4B69DA93", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "88C9A5CE-F445-4EF5-85B8-7C3E4B69DA93", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:41:34 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "88C9A5CE-F445-4EF5-85B8-7C3E4B69DA93", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MTozNC4yNDQwNjhaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6NDE6MzQuMjQ0MDY4WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "88C9A5CE-F445-4EF5-85B8-7C3E4B69DA93", + "type" : 4 + }, + { + "id" : "45CA9963-B871-46E6-8E4C-3037B08F0B9C", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "45CA9963-B871-46E6-8E4C-3037B08F0B9C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:41:36 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "45CA9963-B871-46E6-8E4C-3037B08F0B9C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQxOjM1Ljg0NDY2OVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MTozNS44NDQ2NjlaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "45CA9963-B871-46E6-8E4C-3037B08F0B9C", + "type" : 4 + }, + { + "id" : "F5C9326A-90B8-4983-9FAE-5FE84E809BFE", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "136", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiS2ltLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F5C9326A-90B8-4983-9FAE-5FE84E809BFE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:41:36 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "F5C9326A-90B8-4983-9FAE-5FE84E809BFE", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQxOjM2LjQzNTQ1NVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MTozNi40MzU0NTVaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In19" + }, + "type" : 2 + }, + { + "id" : "F5C9326A-90B8-4983-9FAE-5FE84E809BFE", + "type" : 4 + }, + { + "id" : "E9168F85-D98F-4476-BC7B-4BBB8E8E9186", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "265", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciIsImN1c3RvbSI6eyJ1c2VyLW1lbWJlci1jdXN0b20iOiJTZXJoaWktdXNlci1pZGVudGlmaWVyLWN1c3RvbS1kYXRhLTEifX0seyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJjdXN0b20iOnsidXNlci1tZW1iZXItY3VzdG9tIjoiS2ltLXVzZXItaWRlbnRpZmllci1jdXN0b20tZGF0YS0yIn19XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E9168F85-D98F-4476-BC7B-4BBB8E8E9186", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:41:39 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "E9168F85-D98F-4476-BC7B-4BBB8E8E9186", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjp7InVzZXItbWVtYmVyLWN1c3RvbSI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXItY3VzdG9tLWRhdGEtMSJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MTozOC41MjMyMzRaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6NDE6MzguNTIzMjM0WiIsImVUYWciOiJBWnE5eHZETDd2bTlJQSJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjp7InVzZXItbWVtYmVyLWN1c3RvbSI6IktpbS11c2VyLWlkZW50aWZpZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MTozOS4yMTc4OThaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6NDE6MzkuMjE3ODk4WiIsImVUYWciOiJBZDNMNGVldDZmblo4Z0UifV0sIm5leHQiOiJNZyJ9" + }, + "type" : 2 + }, + { + "id" : "E9168F85-D98F-4476-BC7B-4BBB8E8E9186", + "type" : 4 + }, + { + "id" : "ECC93F4D-EA3F-4AEC-878E-A904632CF07F", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "268", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ1cGRhdGUiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciIsImN1c3RvbSI6eyJ1c2VyLW1lbWJlci1jdXN0b20iOiJTZXJoaWktdXNlci1pZGVudGlmaWVyLWN1c3RvbS1kYXRhLTMifX0seyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJjdXN0b20iOnsidXNlci1tZW1iZXItY3VzdG9tIjoiS2ltLXVzZXItaWRlbnRpZmllci1jdXN0b20tZGF0YS00In19XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "ECC93F4D-EA3F-4AEC-878E-A904632CF07F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:41:42 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "ECC93F4D-EA3F-4AEC-878E-A904632CF07F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjp7InVzZXItbWVtYmVyLWN1c3RvbSI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXItY3VzdG9tLWRhdGEtMyJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MTozOC41MjMyMzRaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6NDE6NDEuNzk0NjczWiIsImVUYWciOiJBYmFTMVBIMitadmhFZyJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjp7InVzZXItbWVtYmVyLWN1c3RvbSI6IktpbS11c2VyLWlkZW50aWZpZXItY3VzdG9tLWRhdGEtNCJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MTozOS4yMTc4OThaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6NDE6NDIuMzE1NjU2WiIsImVUYWciOiJBZlhMOFpMS2hOYTREQSJ9XSwibmV4dCI6Ik1nIn0=" + }, + "type" : 2 + }, + { + "id" : "ECC93F4D-EA3F-4AEC-878E-A904632CF07F", + "type" : 4 + }, + { + "id" : "878444CB-CB50-4B40-919F-29FED6374180", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "101", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "878444CB-CB50-4B40-919F-29FED6374180", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:41:44 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "878444CB-CB50-4B40-919F-29FED6374180", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "878444CB-CB50-4B40-919F-29FED6374180", + "type" : 4 + }, + { + "id" : "8FAC24F2-64CA-475D-B9BB-46F64C619795", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "8FAC24F2-64CA-475D-B9BB-46F64C619795", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:41:45 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "8FAC24F2-64CA-475D-B9BB-46F64C619795", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "8FAC24F2-64CA-475D-B9BB-46F64C619795", + "type" : 4 + }, + { + "id" : "95F25251-F298-40C0-B3BF-9D757A409614", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "95F25251-F298-40C0-B3BF-9D757A409614", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:41:46 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "95F25251-F298-40C0-B3BF-9D757A409614", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "95F25251-F298-40C0-B3BF-9D757A409614", + "type" : 4 + }, + { + "id" : "B381030D-5623-4BC5-A028-E20DFD146391", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B381030D-5623-4BC5-A028-E20DFD146391", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:41:48 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "B381030D-5623-4BC5-A028-E20DFD146391", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "B381030D-5623-4BC5-A028-E20DFD146391", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldUpdateMembersAndReturnFilteredUserInformationWhenFilterIsSet.json b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldUpdateMembersAndReturnFilteredUserInformationWhenFilterIsSet.json new file mode 100644 index 000000000..0a4fef647 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldUpdateMembersAndReturnFilteredUserInformationWhenFilterIsSet.json @@ -0,0 +1,598 @@ +[ + { + "id" : "3E295062-3FAD-4F22-89D0-38368492C951", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3E295062-3FAD-4F22-89D0-38368492C951", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:41:50 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "3E295062-3FAD-4F22-89D0-38368492C951", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "3E295062-3FAD-4F22-89D0-38368492C951", + "type" : 4 + }, + { + "id" : "D5C9339A-6EDB-42F4-9FE4-CFA0BE086020", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D5C9339A-6EDB-42F4-9FE4-CFA0BE086020", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:41:50 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "D5C9339A-6EDB-42F4-9FE4-CFA0BE086020", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "D5C9339A-6EDB-42F4-9FE4-CFA0BE086020", + "type" : 4 + }, + { + "id" : "E075D9BE-6603-4064-B29A-9FF361EBCC5C", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E075D9BE-6603-4064-B29A-9FF361EBCC5C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:41:51 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "E075D9BE-6603-4064-B29A-9FF361EBCC5C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MTo1MC44NTg5MVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MTo1MC44NTg5MVoiLCJlVGFnIjoiQWNXajlPVFF3TWFtcFFFIn19" + }, + "type" : 2 + }, + { + "id" : "E075D9BE-6603-4064-B29A-9FF361EBCC5C", + "type" : 4 + }, + { + "id" : "19152DA5-9AA9-4380-BFF0-C32AB0931679", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "19152DA5-9AA9-4380-BFF0-C32AB0931679", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:41:52 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "19152DA5-9AA9-4380-BFF0-C32AB0931679", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQxOjUyLjQ2ODY2NVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MTo1Mi40Njg2NjVaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "19152DA5-9AA9-4380-BFF0-C32AB0931679", + "type" : 4 + }, + { + "id" : "FEEE2259-3A3E-4836-A43C-DF947B24B026", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "136", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiS2ltLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "FEEE2259-3A3E-4836-A43C-DF947B24B026", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:41:53 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "FEEE2259-3A3E-4836-A43C-DF947B24B026", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQxOjUzLjA0NzA4OVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MTo1My4wNDcwODlaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In19" + }, + "type" : 2 + }, + { + "id" : "FEEE2259-3A3E-4836-A43C-DF947B24B026", + "type" : 4 + }, + { + "id" : "55818594-EC6F-4AE8-8B03-9BF4EF74B9F6", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "98", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "55818594-EC6F-4AE8-8B03-9BF4EF74B9F6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:41:56 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "55818594-EC6F-4AE8-8B03-9BF4EF74B9F6", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MTo1NS4wNDM2NjJaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6NDE6NTUuMDQzNjYyWiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MTo1NS43NDU3NjlaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6NDE6NTUuNzQ1NzY5WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9XSwibmV4dCI6Ik1nIn0=" + }, + "type" : 2 + }, + { + "id" : "55818594-EC6F-4AE8-8B03-9BF4EF74B9F6", + "type" : 4 + }, + { + "id" : "9ADBF8D6-D56F-4FD5-99F1-9117F9B02FF0", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "268", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ1cGRhdGUiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciIsImN1c3RvbSI6eyJ1c2VyLW1lbWJlci1jdXN0b20iOiJTZXJoaWktdXNlci1pZGVudGlmaWVyLWN1c3RvbS1kYXRhLTEifX0seyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJjdXN0b20iOnsidXNlci1tZW1iZXItY3VzdG9tIjoiS2ltLXVzZXItaWRlbnRpZmllci1jdXN0b20tZGF0YS0yIn19XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?filter=user.name%20like%20'K*'&count=1&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&include=user,user.custom&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "9ADBF8D6-D56F-4FD5-99F1-9117F9B02FF0", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?filter=user.name%20like%20'K*'&count=1&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&include=user,user.custom&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:41:59 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "9ADBF8D6-D56F-4FD5-99F1-9117F9B02FF0", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIiwidXNlciI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQxOjUzLjA0NzA4OVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MTo1My4wNDcwODlaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQxOjU1Ljc0NTc2OVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MTo1OC43NDQyNjFaIiwiZVRhZyI6IkFZK2VtYWo0akluQ1hBIn1dLCJ0b3RhbENvdW50IjoxLCJuZXh0IjoiTVEifQ==" + }, + "type" : 2 + }, + { + "id" : "9ADBF8D6-D56F-4FD5-99F1-9117F9B02FF0", + "type" : 4 + }, + { + "id" : "9E352B1F-AA39-4E32-A8F6-8137AB3EE41A", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "101", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9E352B1F-AA39-4E32-A8F6-8137AB3EE41A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:42:01 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "9E352B1F-AA39-4E32-A8F6-8137AB3EE41A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "9E352B1F-AA39-4E32-A8F6-8137AB3EE41A", + "type" : 4 + }, + { + "id" : "1B8BB3F4-9F79-44EC-8F99-1D685B6DBF44", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1B8BB3F4-9F79-44EC-8F99-1D685B6DBF44", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:42:02 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "1B8BB3F4-9F79-44EC-8F99-1D685B6DBF44", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "1B8BB3F4-9F79-44EC-8F99-1D685B6DBF44", + "type" : 4 + }, + { + "id" : "F83B636B-7D42-4D86-B6AE-1A260A8D6EDC", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F83B636B-7D42-4D86-B6AE-1A260A8D6EDC", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:42:03 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "F83B636B-7D42-4D86-B6AE-1A260A8D6EDC", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "F83B636B-7D42-4D86-B6AE-1A260A8D6EDC", + "type" : 4 + }, + { + "id" : "BD76EE7A-0B74-493F-BD40-D4EB645FE56A", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "BD76EE7A-0B74-493F-BD40-D4EB645FE56A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:42:05 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "BD76EE7A-0B74-493F-BD40-D4EB645FE56A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "BD76EE7A-0B74-493F-BD40-D4EB645FE56A", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldUpdateMembersAndReturnSortedUserInformationWhenSortIsSet.json b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldUpdateMembersAndReturnSortedUserInformationWhenSortIsSet.json new file mode 100644 index 000000000..bf7a9a805 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldUpdateMembersAndReturnSortedUserInformationWhenSortIsSet.json @@ -0,0 +1,814 @@ +[ + { + "id" : "A483A5E8-A5A3-4447-A490-8119AAD02066", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A483A5E8-A5A3-4447-A490-8119AAD02066", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:00:50 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "A483A5E8-A5A3-4447-A490-8119AAD02066", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "A483A5E8-A5A3-4447-A490-8119AAD02066", + "type" : 4 + }, + { + "id" : "29ACA46B-6B61-42B6-81D0-0D3BB8532076", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "29ACA46B-6B61-42B6-81D0-0D3BB8532076", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:00:50 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "29ACA46B-6B61-42B6-81D0-0D3BB8532076", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "29ACA46B-6B61-42B6-81D0-0D3BB8532076", + "type" : 4 + }, + { + "id" : "CAC50141-32E7-4B20-B1EB-5151DB7066F3", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "CAC50141-32E7-4B20-B1EB-5151DB7066F3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:00:50 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "CAC50141-32E7-4B20-B1EB-5151DB7066F3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMTowMDo1MC40MzY0MThaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MDA6NTAuNDM2NDE4WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "CAC50141-32E7-4B20-B1EB-5151DB7066F3", + "type" : 4 + }, + { + "id" : "217E14DF-BE52-4790-99CC-CD2067F3ED51", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "217E14DF-BE52-4790-99CC-CD2067F3ED51", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:00:52 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "217E14DF-BE52-4790-99CC-CD2067F3ED51", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjAwOjUyLjA1NjIyMVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMTowMDo1Mi4wNTYyMjFaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "217E14DF-BE52-4790-99CC-CD2067F3ED51", + "type" : 4 + }, + { + "id" : "B8144645-CBDB-4168-BC02-789670630033", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "136", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiS2ltLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B8144645-CBDB-4168-BC02-789670630033", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:00:53 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "B8144645-CBDB-4168-BC02-789670630033", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjAwOjUyLjYzMDAxOFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMTowMDo1Mi42MzAwMThaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In19" + }, + "type" : 2 + }, + { + "id" : "B8144645-CBDB-4168-BC02-789670630033", + "type" : 4 + }, + { + "id" : "F2EA642F-AF82-4982-8066-5A29F408B77D", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "152", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkVhcmxpbmUiLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiRWFybGluZS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiRWFybGluZS1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F2EA642F-AF82-4982-8066-5A29F408B77D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:00:53 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "F2EA642F-AF82-4982-8066-5A29F408B77D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkVhcmxpbmUiLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IkVhcmxpbmUtY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IkVhcmxpbmUtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMTowMDo1My4yMDM0NzNaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MDA6NTMuMjAzNDczWiIsImVUYWciOiJBZDZienJuY3JLVzNyUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "F2EA642F-AF82-4982-8066-5A29F408B77D", + "type" : 4 + }, + { + "id" : "521DE16D-DD19-443A-BCFB-09A35F862D45", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "140", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkdsZW4iLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiR2xlbi1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiR2xlbi1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "521DE16D-DD19-443A-BCFB-09A35F862D45", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:00:54 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "521DE16D-DD19-443A-BCFB-09A35F862D45", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkdsZW4iLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IkdsZW4tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IkdsZW4tY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMTowMDo1My43ODc5OVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMTowMDo1My43ODc5OVoiLCJlVGFnIjoiQWYvNXdNU2gzcmVJZEEifX0=" + }, + "type" : 2 + }, + { + "id" : "521DE16D-DD19-443A-BCFB-09A35F862D45", + "type" : 4 + }, + { + "id" : "4DD6066F-F9E4-4F2B-8059-F8F0C24B0572", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "189", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn0seyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIn0seyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=custom,user&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "4DD6066F-F9E4-4F2B-8059-F8F0C24B0572", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=custom,user&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:00:58 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "4DD6066F-F9E4-4F2B-8059-F8F0C24B0572", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJ1c2VyIjp7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciIsIm5hbWUiOiJTZXJoaWkiLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDE6MDA6NTIuMDU2MjIxWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAxOjAwOjUyLjA1NjIyMVoiLCJlVGFnIjoiQWVQMjY3ZmF1dmJCUEEifSwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDE6MDA6NTUuNzc0NDU3WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAxOjAwOjU1Ljc3NDQ1N1oiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiS2ltLXVzZXItaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwidXNlciI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjAwOjUyLjYzMDAxOFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMTowMDo1Mi42MzAwMThaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjAwOjU2LjQ2NjkyMVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMTowMDo1Ni40NjY5MjFaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJ1c2VyIjp7ImlkIjoiRWFybGluZS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiRWFybGluZSIsImV4dGVybmFsSWQiOm51bGwsInByb2ZpbGVVcmwiOm51bGwsImVtYWlsIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMTowMDo1My4yMDM0NzNaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MDA6NTMuMjAzNDczWiIsImVUYWciOiJBZDZienJuY3JLVzNyUUUifSwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDE6MDA6NTcuMTU5NjcyWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAxOjAwOjU3LjE1OTY3MloiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiR2xlbi11c2VyLWlkZW50aWZpZXIiLCJjdXN0b20iOm51bGwsInVzZXIiOnsiaWQiOiJHbGVuLXVzZXItaWRlbnRpZmllciIsIm5hbWUiOiJHbGVuIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjAwOjUzLjc4Nzk5WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAxOjAwOjUzLjc4Nzk5WiIsImVUYWciOiJBZi81d01TaDNyZUlkQSJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMTowMDo1Ny44NTIyODNaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MDA6NTcuODUyMjgzWiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9XSwibmV4dCI6Ik5BIn0=" + }, + "type" : 2 + }, + { + "id" : "4DD6066F-F9E4-4F2B-8059-F8F0C24B0572", + "type" : 4 + }, + { + "id" : "8838F455-0EE4-4DA5-A7A4-86A6BCFE61D2", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "268", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ1cGRhdGUiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciIsImN1c3RvbSI6eyJ1c2VyLW1lbWJlci1jdXN0b20iOiJTZXJoaWktdXNlci1pZGVudGlmaWVyLWN1c3RvbS1kYXRhLTEifX0seyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJjdXN0b20iOnsidXNlci1tZW1iZXItY3VzdG9tIjoiS2ltLXVzZXItaWRlbnRpZmllci1jdXN0b20tZGF0YS0yIn19XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?sort=user.name:desc,created&count=1&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&include=user,user.custom&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "8838F455-0EE4-4DA5-A7A4-86A6BCFE61D2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?sort=user.name:desc,created&count=1&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&include=user,user.custom&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:01:01 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "8838F455-0EE4-4DA5-A7A4-86A6BCFE61D2", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwidXNlciI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjAwOjUyLjA1NjIyMVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMTowMDo1Mi4wNTYyMjFaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjAwOjU1Ljc3NDQ1N1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMTowMTowMC4zMTUzODZaIiwiZVRhZyI6IkFaalMrSlBJdDd1MTFBRSJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIiwidXNlciI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjAwOjUyLjYzMDAxOFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMTowMDo1Mi42MzAwMThaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjAwOjU2LjQ2NjkyMVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMTowMTowMC44MzU5NzhaIiwiZVRhZyI6IkFlSFBzZUttOUo2ckJnIn0seyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIiwidXNlciI6eyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkdsZW4iLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IkdsZW4tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IkdsZW4tY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMTowMDo1My43ODc5OVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMTowMDo1My43ODc5OVoiLCJlVGFnIjoiQWYvNXdNU2gzcmVJZEEifSwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDE6MDA6NTcuODUyMjgzWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAxOjAwOjU3Ljg1MjI4M1oiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiRWFybGluZS11c2VyLWlkZW50aWZpZXIiLCJ1c2VyIjp7ImlkIjoiRWFybGluZS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiRWFybGluZSIsImV4dGVybmFsSWQiOm51bGwsInByb2ZpbGVVcmwiOm51bGwsImVtYWlsIjpudWxsLCJjdXN0b20iOnsidXNlci1jdXN0b20xIjoiRWFybGluZS1jdXN0b20tZGF0YS0xIiwidXNlci1jdXN0b20yIjoiRWFybGluZS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjAwOjUzLjIwMzQ3M1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMTowMDo1My4yMDM0NzNaIiwiZVRhZyI6IkFkNmJ6cm5jcktXM3JRRSJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMTowMDo1Ny4xNTk2NzJaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MDA6NTcuMTU5NjcyWiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9XSwidG90YWxDb3VudCI6NCwibmV4dCI6Ik5BIn0=" + }, + "type" : 2 + }, + { + "id" : "8838F455-0EE4-4DA5-A7A4-86A6BCFE61D2", + "type" : 4 + }, + { + "id" : "AA4C8FAB-6937-475C-95AA-32BDD490CF5D", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "192", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn0seyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIn0seyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "AA4C8FAB-6937-475C-95AA-32BDD490CF5D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:01:03 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "AA4C8FAB-6937-475C-95AA-32BDD490CF5D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "AA4C8FAB-6937-475C-95AA-32BDD490CF5D", + "type" : 4 + }, + { + "id" : "19573141-CE26-419F-9354-C6517BB3EC53", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "19573141-CE26-419F-9354-C6517BB3EC53", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:01:04 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "19573141-CE26-419F-9354-C6517BB3EC53", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "19573141-CE26-419F-9354-C6517BB3EC53", + "type" : 4 + }, + { + "id" : "8B13E5C6-9CA8-4C2A-A9C9-AAE15B1B2D7F", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "8B13E5C6-9CA8-4C2A-A9C9-AAE15B1B2D7F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:01:05 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "8B13E5C6-9CA8-4C2A-A9C9-AAE15B1B2D7F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "8B13E5C6-9CA8-4C2A-A9C9-AAE15B1B2D7F", + "type" : 4 + }, + { + "id" : "9AB47FA7-2D78-4F2D-B89C-BFBF04A94ABE", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Earline-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9AB47FA7-2D78-4F2D-B89C-BFBF04A94ABE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Earline-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:01:06 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "9AB47FA7-2D78-4F2D-B89C-BFBF04A94ABE", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "9AB47FA7-2D78-4F2D-B89C-BFBF04A94ABE", + "type" : 4 + }, + { + "id" : "145C2F7C-4BF2-4D01-B2EB-32FF1E9B4C5E", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Glen-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "145C2F7C-4BF2-4D01-B2EB-32FF1E9B4C5E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Glen-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:01:07 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "145C2F7C-4BF2-4D01-B2EB-32FF1E9B4C5E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "145C2F7C-4BF2-4D01-B2EB-32FF1E9B4C5E", + "type" : 4 + }, + { + "id" : "B6D66171-4F89-4F90-8D4C-0A3FEEB8C20E", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B6D66171-4F89-4F90-8D4C-0A3FEEB8C20E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:01:09 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "B6D66171-4F89-4F90-8D4C-0A3FEEB8C20E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "B6D66171-4F89-4F90-8D4C-0A3FEEB8C20E", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldUpdateMembersAndReturnUserInformationWhenUserIncludeFlagIsSet.json b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldUpdateMembersAndReturnUserInformationWhenUserIncludeFlagIsSet.json new file mode 100644 index 000000000..efb23bcb4 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldUpdateMembersAndReturnUserInformationWhenUserIncludeFlagIsSet.json @@ -0,0 +1,598 @@ +[ + { + "id" : "98ED1B52-B25C-45B3-9A80-85D06743C1A6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "98ED1B52-B25C-45B3-9A80-85D06743C1A6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:42:07 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "98ED1B52-B25C-45B3-9A80-85D06743C1A6", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "98ED1B52-B25C-45B3-9A80-85D06743C1A6", + "type" : 4 + }, + { + "id" : "1F764A91-BD0B-416C-BC1F-45E11E1B728C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1F764A91-BD0B-416C-BC1F-45E11E1B728C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:42:07 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "1F764A91-BD0B-416C-BC1F-45E11E1B728C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "1F764A91-BD0B-416C-BC1F-45E11E1B728C", + "type" : 4 + }, + { + "id" : "7D9BEFA6-4D79-46B2-A71C-AF24EA425618", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "7D9BEFA6-4D79-46B2-A71C-AF24EA425618", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:42:07 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "7D9BEFA6-4D79-46B2-A71C-AF24EA425618", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MjowNy40MTgyNjJaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6NDI6MDcuNDE4MjYyWiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "7D9BEFA6-4D79-46B2-A71C-AF24EA425618", + "type" : 4 + }, + { + "id" : "6B80380E-0C1C-4A73-9897-452647576806", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "6B80380E-0C1C-4A73-9897-452647576806", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:42:09 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "6B80380E-0C1C-4A73-9897-452647576806", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQyOjA5LjA2OTM3MVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MjowOS4wNjkzNzFaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "6B80380E-0C1C-4A73-9897-452647576806", + "type" : 4 + }, + { + "id" : "683E41EE-E0EC-4F2F-822B-B53BC6B6F1AE", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "136", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiS2ltLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "683E41EE-E0EC-4F2F-822B-B53BC6B6F1AE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:42:10 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "683E41EE-E0EC-4F2F-822B-B53BC6B6F1AE", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQyOjA5LjY1OTY1WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQyOjA5LjY1OTY1WiIsImVUYWciOiJBYmpMeS9MTnY3SFZOdyJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "683E41EE-E0EC-4F2F-822B-B53BC6B6F1AE", + "type" : 4 + }, + { + "id" : "FB1DD1E5-23C3-4B89-8304-33F9509E17AE", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "98", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "FB1DD1E5-23C3-4B89-8304-33F9509E17AE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:42:13 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "FB1DD1E5-23C3-4B89-8304-33F9509E17AE", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MjoxMS43MDUwNjdaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6NDI6MTEuNzA1MDY3WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MjoxMi40MDI4MTZaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6NDI6MTIuNDAyODE2WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9XSwibmV4dCI6Ik1nIn0=" + }, + "type" : 2 + }, + { + "id" : "FB1DD1E5-23C3-4B89-8304-33F9509E17AE", + "type" : 4 + }, + { + "id" : "3A36E461-2616-4270-8F6E-F0821F18190C", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "268", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ1cGRhdGUiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciIsImN1c3RvbSI6eyJ1c2VyLW1lbWJlci1jdXN0b20iOiJTZXJoaWktdXNlci1pZGVudGlmaWVyLWN1c3RvbS1kYXRhLTEifX0seyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJjdXN0b20iOnsidXNlci1tZW1iZXItY3VzdG9tIjoiS2ltLXVzZXItaWRlbnRpZmllci1jdXN0b20tZGF0YS0yIn19XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=user,user.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3A36E461-2616-4270-8F6E-F0821F18190C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&include=user,user.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:42:15 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "3A36E461-2616-4270-8F6E-F0821F18190C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwidXNlciI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQyOjA5LjA2OTM3MVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MjowOS4wNjkzNzFaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQyOjExLjcwNTA2N1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MjoxNC45MDE5NThaIiwiZVRhZyI6IkFieWJ2WnlsaCt2cDBRRSJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIiwidXNlciI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQyOjA5LjY1OTY1WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQyOjA5LjY1OTY1WiIsImVUYWciOiJBYmpMeS9MTnY3SFZOdyJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MjoxMi40MDI4MTZaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6NDI6MTUuNDIzNDMyWiIsImVUYWciOiJBYUdCL3IrVXRwT09IUSJ9XSwibmV4dCI6Ik1nIn0=" + }, + "type" : 2 + }, + { + "id" : "3A36E461-2616-4270-8F6E-F0821F18190C", + "type" : 4 + }, + { + "id" : "B443EA2A-3C60-44A6-98D9-7A0DA497F853", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "101", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B443EA2A-3C60-44A6-98D9-7A0DA497F853", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:42:18 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "B443EA2A-3C60-44A6-98D9-7A0DA497F853", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "B443EA2A-3C60-44A6-98D9-7A0DA497F853", + "type" : 4 + }, + { + "id" : "0E92C312-EACF-4746-8E1E-75DE7DDDE620", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "0E92C312-EACF-4746-8E1E-75DE7DDDE620", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:42:19 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "0E92C312-EACF-4746-8E1E-75DE7DDDE620", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "0E92C312-EACF-4746-8E1E-75DE7DDDE620", + "type" : 4 + }, + { + "id" : "6DC62F8F-A907-4F4B-AB00-3282860A0D4C", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "6DC62F8F-A907-4F4B-AB00-3282860A0D4C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:42:20 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "6DC62F8F-A907-4F4B-AB00-3282860A0D4C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "6DC62F8F-A907-4F4B-AB00-3282860A0D4C", + "type" : 4 + }, + { + "id" : "AC82517E-5072-4C40-9487-529BD75A1D5B", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "AC82517E-5072-4C40-9487-529BD75A1D5B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:42:21 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "AC82517E-5072-4C40-9487-529BD75A1D5B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "AC82517E-5072-4C40-9487-529BD75A1D5B", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldUpdateMembersAndTriggerUpdateEventOnSpaceChannel.json b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldUpdateMembersAndTriggerUpdateEventOnSpaceChannel.json new file mode 100644 index 000000000..375fdef33 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldUpdateMembersAndTriggerUpdateEventOnSpaceChannel.json @@ -0,0 +1,840 @@ +[ + { + "id" : "05418719-C9DE-4E8A-B34B-2668A359D164", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "05418719-C9DE-4E8A-B34B-2668A359D164", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:42:23 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "05418719-C9DE-4E8A-B34B-2668A359D164", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "05418719-C9DE-4E8A-B34B-2668A359D164", + "type" : 4 + }, + { + "id" : "63A40645-9AC2-470E-9315-E5EF30A5C778", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "63A40645-9AC2-470E-9315-E5EF30A5C778", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:42:23 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "63A40645-9AC2-470E-9315-E5EF30A5C778", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "63A40645-9AC2-470E-9315-E5EF30A5C778", + "type" : 4 + }, + { + "id" : "31FC1AD8-1FF6-4E04-82C7-8682B59CFCE8", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "31FC1AD8-1FF6-4E04-82C7-8682B59CFCE8", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:42:24 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "31FC1AD8-1FF6-4E04-82C7-8682B59CFCE8", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MjoyNC4xOTAyNjVaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6NDI6MjQuMTkwMjY1WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "31FC1AD8-1FF6-4E04-82C7-8682B59CFCE8", + "type" : 4 + }, + { + "id" : "7584F6D1-A05C-4AE9-BB3C-9E4231906FB5", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "7584F6D1-A05C-4AE9-BB3C-9E4231906FB5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:42:26 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "7584F6D1-A05C-4AE9-BB3C-9E4231906FB5", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQyOjI1Ljg1NzQ3M1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MjoyNS44NTc0NzNaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "7584F6D1-A05C-4AE9-BB3C-9E4231906FB5", + "type" : 4 + }, + { + "id" : "36C97A4A-642A-4C13-8ED4-F09BA541690C", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "136", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiS2ltLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "36C97A4A-642A-4C13-8ED4-F09BA541690C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:42:26 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "36C97A4A-642A-4C13-8ED4-F09BA541690C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQyOjI2LjQ0NDg0M1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MjoyNi40NDQ4NDNaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In19" + }, + "type" : 2 + }, + { + "id" : "36C97A4A-642A-4C13-8ED4-F09BA541690C", + "type" : 4 + }, + { + "id" : "56F6D46B-EC58-4F1F-B705-B9FAECBA264D", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "98", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "56F6D46B-EC58-4F1F-B705-B9FAECBA264D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:42:29 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "56F6D46B-EC58-4F1F-B705-B9FAECBA264D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MjoyOC40NjQ5WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQyOjI4LjQ2NDlaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJjdXN0b20iOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQyOjI5LjE1OTAxMloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MjoyOS4xNTkwMTJaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn1dLCJuZXh0IjoiTWcifQ==" + }, + "type" : 2 + }, + { + "id" : "56F6D46B-EC58-4F1F-B705-B9FAECBA264D", + "type" : 4 + }, + { + "id" : "B394BAC5-6C2E-4EBA-AE82-BCE49030FA91", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&tt=0&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B394BAC5-6C2E-4EBA-AE82-BCE49030FA91", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&tt=0&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 01:42:31 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B394BAC5-6C2E-4EBA-AE82-BCE49030FA91", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDM5NzQ5NzcyMTk2NCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "B394BAC5-6C2E-4EBA-AE82-BCE49030FA91", + "type" : 4 + }, + { + "id" : "9B1CBEAD-0C1C-42BF-8156-41AF0C3A99EC", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810397497721964&tr=12" + }, + "type" : 0 + }, + { + "id" : "8FBC7A6B-E715-42A9-B809-A12964686623", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "268", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ1cGRhdGUiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciIsImN1c3RvbSI6eyJ1c2VyLW1lbWJlci1jdXN0b20iOiJTZXJoaWktdXNlci1pZGVudGlmaWVyLWN1c3RvbS1kYXRhLTEifX0seyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJjdXN0b20iOnsidXNlci1tZW1iZXItY3VzdG9tIjoiS2ltLXVzZXItaWRlbnRpZmllci1jdXN0b20tZGF0YS0yIn19XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=serhii&include=user,user.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9B1CBEAD-0C1C-42BF-8156-41AF0C3A99EC", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810397497721964&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 01:42:32 GMT", + "Content-Length" : "536", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9B1CBEAD-0C1C-42BF-8156-41AF0C3A99EC", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDM5NzUyMTU4MzI2MSIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJlIjoyLCJwIjp7InQiOiIxNTgxMDM5NzUyMTU3Nzc0NCIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIiwiZCI6eyJzb3VyY2UiOiJvYmplY3RzIiwidmVyc2lvbiI6IjEuMCIsImV2ZW50IjoidXBkYXRlIiwidHlwZSI6Im1lbWJlcnNoaXAiLCJkYXRhIjp7ImN1c3RvbSI6eyJ1c2VyLW1lbWJlci1jdXN0b20iOiJTZXJoaWktdXNlci1pZGVudGlmaWVyLWN1c3RvbS1kYXRhLTEifSwiZVRhZyI6IkFiSFB6WmpjcUozUmxnRSIsInNwYWNlSWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MjozMS44OTExOTI2MTNaIiwidXNlcklkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9fX1dfQ==" + }, + "type" : 2 + }, + { + "id" : "9B1CBEAD-0C1C-42BF-8156-41AF0C3A99EC", + "type" : 4 + }, + { + "id" : "7F9454C3-EFC2-4698-A5F1-2814C5BAB309", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810397521583261&tr=12" + }, + "type" : 0 + }, + { + "id" : "7F9454C3-EFC2-4698-A5F1-2814C5BAB309", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810397521583261&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 01:42:32 GMT", + "Content-Length" : "529", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "7F9454C3-EFC2-4698-A5F1-2814C5BAB309", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDM5NzUyNjg1NjA4OSIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJlIjoyLCJwIjp7InQiOiIxNTgxMDM5NzUyNjg0NzE4NiIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIiwiZCI6eyJzb3VyY2UiOiJvYmplY3RzIiwidmVyc2lvbiI6IjEuMCIsImV2ZW50IjoidXBkYXRlIiwidHlwZSI6Im1lbWJlcnNoaXAiLCJkYXRhIjp7ImN1c3RvbSI6eyJ1c2VyLW1lbWJlci1jdXN0b20iOiJLaW0tdXNlci1pZGVudGlmaWVyLWN1c3RvbS1kYXRhLTIifSwiZVRhZyI6IkFaRG9nSUtyeFp1dGF3Iiwic3BhY2VJZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQyOjMyLjQxODAxODY4N1oiLCJ1c2VySWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn19fV19" + }, + "type" : 2 + }, + { + "id" : "7F9454C3-EFC2-4698-A5F1-2814C5BAB309", + "type" : 4 + }, + { + "id" : "A7726C06-94D7-498B-AB82-6AE93BB676BB", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810397526856089&tr=12" + }, + "type" : 0 + }, + { + "id" : "A7726C06-94D7-498B-AB82-6AE93BB676BB", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810397526856089&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810397526856089&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "E433A306-E048-4659-AB40-DF5B0CEF8CD9", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/Chanted-space-identifier\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "8FBC7A6B-E715-42A9-B809-A12964686623", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=serhii&include=user,user.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:42:32 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "8FBC7A6B-E715-42A9-B809-A12964686623", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwidXNlciI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQyOjI1Ljg1NzQ3M1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MjoyNS44NTc0NzNaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQyOjI4LjQ2NDlaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6NDI6MzEuODkxMTkzWiIsImVUYWciOiJBYkhQelpqY3FKM1JsZ0UifSx7ImlkIjoiS2ltLXVzZXItaWRlbnRpZmllciIsInVzZXIiOnsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IktpbSIsImV4dGVybmFsSWQiOm51bGwsInByb2ZpbGVVcmwiOm51bGwsImVtYWlsIjpudWxsLCJjdXN0b20iOnsidXNlci1jdXN0b20xIjoiS2ltLWN1c3RvbS1kYXRhLTEiLCJ1c2VyLWN1c3RvbTIiOiJLaW0tY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MjoyNi40NDQ4NDNaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6NDI6MjYuNDQ0ODQzWiIsImVUYWciOiJBYmpMeS9MTnY3SFZOdyJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTo0MjoyOS4xNTkwMTJaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6NDI6MzIuNDE4MDE5WiIsImVUYWciOiJBWkRvZ0lLcnhadXRhdyJ9XSwibmV4dCI6Ik1nIn0=" + }, + "type" : 2 + }, + { + "id" : "8FBC7A6B-E715-42A9-B809-A12964686623", + "type" : 4 + }, + { + "id" : "E433A306-E048-4659-AB40-DF5B0CEF8CD9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/Chanted-space-identifier\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Fri, 07 Feb 2020 01:42:32 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E433A306-E048-4659-AB40-DF5B0CEF8CD9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "E433A306-E048-4659-AB40-DF5B0CEF8CD9", + "type" : 4 + }, + { + "id" : "532B5777-B941-4B4C-B38F-5CCC104F5571", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "101", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "532B5777-B941-4B4C-B38F-5CCC104F5571", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:42:35 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "532B5777-B941-4B4C-B38F-5CCC104F5571", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "532B5777-B941-4B4C-B38F-5CCC104F5571", + "type" : 4 + }, + { + "id" : "CD696668-4696-44F3-BD11-F0817B14E8D9", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "CD696668-4696-44F3-BD11-F0817B14E8D9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:42:35 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "CD696668-4696-44F3-BD11-F0817B14E8D9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "CD696668-4696-44F3-BD11-F0817B14E8D9", + "type" : 4 + }, + { + "id" : "0B344973-B503-4C78-9087-9313C7569EC6", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "0B344973-B503-4C78-9087-9313C7569EC6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:42:36 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "0B344973-B503-4C78-9087-9313C7569EC6", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "0B344973-B503-4C78-9087-9313C7569EC6", + "type" : 4 + }, + { + "id" : "B5873247-839F-46DD-97E2-040D5C14D0A8", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B5873247-839F-46DD-97E2-040D5C14D0A8", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:42:38 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "B5873247-839F-46DD-97E2-040D5C14D0A8", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "B5873247-839F-46DD-97E2-040D5C14D0A8", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldUpdateMembersAndTriggerUpdateEventOnUserChannel.json b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldUpdateMembersAndTriggerUpdateEventOnUserChannel.json new file mode 100644 index 000000000..879f9e861 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMemberIntegrationTest.bundle/ItShouldUpdateMembersAndTriggerUpdateEventOnUserChannel.json @@ -0,0 +1,789 @@ +[ + { + "id" : "061E6DDA-3594-4952-9B79-12BB742F8DCE", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "061E6DDA-3594-4952-9B79-12BB742F8DCE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:42:40 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "061E6DDA-3594-4952-9B79-12BB742F8DCE", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "061E6DDA-3594-4952-9B79-12BB742F8DCE", + "type" : 4 + }, + { + "id" : "F2442746-74B9-4F35-9054-FB293B3438EC", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F2442746-74B9-4F35-9054-FB293B3438EC", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:42:41 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "F2442746-74B9-4F35-9054-FB293B3438EC", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "F2442746-74B9-4F35-9054-FB293B3438EC", + "type" : 4 + }, + { + "id" : "787E58FE-C8CD-4332-B674-D94CDB575900", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "787E58FE-C8CD-4332-B674-D94CDB575900", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:42:42 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "787E58FE-C8CD-4332-B674-D94CDB575900", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTo0Mjo0MS45OTM4ODhaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDE6NDI6NDEuOTkzODg4WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "787E58FE-C8CD-4332-B674-D94CDB575900", + "type" : 4 + }, + { + "id" : "81BAF093-958B-4B92-B1CC-EDD511759C45", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "81BAF093-958B-4B92-B1CC-EDD511759C45", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:42:44 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "81BAF093-958B-4B92-B1CC-EDD511759C45", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQyOjQzLjYxNzE4NVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTo0Mjo0My42MTcxODVaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "81BAF093-958B-4B92-B1CC-EDD511759C45", + "type" : 4 + }, + { + "id" : "00015997-1055-4693-929C-96BC6CA3DEE9", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "136", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiS2ltLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "00015997-1055-4693-929C-96BC6CA3DEE9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:42:44 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "00015997-1055-4693-929C-96BC6CA3DEE9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQyOjQ0LjE5ODQ5N1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTo0Mjo0NC4xOTg0OTdaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In19" + }, + "type" : 2 + }, + { + "id" : "00015997-1055-4693-929C-96BC6CA3DEE9", + "type" : 4 + }, + { + "id" : "604715C2-E6D1-4047-855C-42B054F8DC0C", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "98", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "604715C2-E6D1-4047-855C-42B054F8DC0C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:42:47 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "604715C2-E6D1-4047-855C-42B054F8DC0C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwMTo0Mjo0Ni4yMTUyM1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTo0Mjo0Ni4yMTUyM1oiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiS2ltLXVzZXItaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDE6NDI6NDYuOTE3NDkxWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQyOjQ2LjkxNzQ5MVoiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifV0sIm5leHQiOiJNZyJ9" + }, + "type" : 2 + }, + { + "id" : "604715C2-E6D1-4047-855C-42B054F8DC0C", + "type" : 4 + }, + { + "id" : "1DE725BC-A97C-4018-814C-B76B8908A0C9", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&tt=0&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1DE725BC-A97C-4018-814C-B76B8908A0C9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&tt=0&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 01:42:49 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "1DE725BC-A97C-4018-814C-B76B8908A0C9", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDM5NzY2ODMxOTY1OCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "1DE725BC-A97C-4018-814C-B76B8908A0C9", + "type" : 4 + }, + { + "id" : "73EA5BC5-F7D7-4CB2-A5F8-808EE453FDDD", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810397668319658&tr=12" + }, + "type" : 0 + }, + { + "id" : "36A12469-D785-49B2-B862-F080C21D1E87", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "268", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ1cGRhdGUiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciIsImN1c3RvbSI6eyJ1c2VyLW1lbWJlci1jdXN0b20iOiJTZXJoaWktdXNlci1pZGVudGlmaWVyLWN1c3RvbS1kYXRhLTEifX0seyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJjdXN0b20iOnsidXNlci1tZW1iZXItY3VzdG9tIjoiS2ltLXVzZXItaWRlbnRpZmllci1jdXN0b20tZGF0YS0yIn19XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=serhii&include=user,user.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "73EA5BC5-F7D7-4CB2-A5F8-808EE453FDDD", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810397668319658&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 01:42:49 GMT", + "Content-Length" : "533", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "73EA5BC5-F7D7-4CB2-A5F8-808EE453FDDD", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDM5NzY5OTk3Njg0MSIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJlIjoyLCJwIjp7InQiOiIxNTgxMDM5NzY5OTk4MDM0MSIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciIsImQiOnsic291cmNlIjoib2JqZWN0cyIsInZlcnNpb24iOiIxLjAiLCJldmVudCI6InVwZGF0ZSIsInR5cGUiOiJtZW1iZXJzaGlwIiwiZGF0YSI6eyJjdXN0b20iOnsidXNlci1tZW1iZXItY3VzdG9tIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllci1jdXN0b20tZGF0YS0xIn0sImVUYWciOiJBWjdkbDg3cmlxM0JJdyIsInNwYWNlSWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTo0Mjo0OS43MzQ3Mjk1NDhaIiwidXNlcklkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9fX1dfQ==" + }, + "type" : 2 + }, + { + "id" : "73EA5BC5-F7D7-4CB2-A5F8-808EE453FDDD", + "type" : 4 + }, + { + "id" : "580B9158-350A-44A9-8EEA-4D4F20D5A240", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810397699976841&tr=12" + }, + "type" : 0 + }, + { + "id" : "580B9158-350A-44A9-8EEA-4D4F20D5A240", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810397699976841&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810397699976841&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "5F2E7305-0816-4CA8-A969-80AE1A76A111", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/Serhii-user-identifier\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "5F2E7305-0816-4CA8-A969-80AE1A76A111", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/Serhii-user-identifier\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Fri, 07 Feb 2020 01:42:50 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "5F2E7305-0816-4CA8-A969-80AE1A76A111", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "5F2E7305-0816-4CA8-A969-80AE1A76A111", + "type" : 4 + }, + { + "id" : "36A12469-D785-49B2-B862-F080C21D1E87", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=serhii&include=user,user.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 01:42:50 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "36A12469-D785-49B2-B862-F080C21D1E87", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwidXNlciI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQyOjQzLjYxNzE4NVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTo0Mjo0My42MTcxODVaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQyOjQ2LjIxNTIzWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQyOjQ5LjczNDczWiIsImVUYWciOiJBWjdkbDg3cmlxM0JJdyJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIiwidXNlciI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQyOjQ0LjE5ODQ5N1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTo0Mjo0NC4xOTg0OTdaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDAxOjQyOjQ2LjkxNzQ5MVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwMTo0Mjo1MC4yNTg0ODdaIiwiZVRhZyI6IkFZM0JxWVRWaEpQS3pnRSJ9XSwibmV4dCI6Ik1nIn0=" + }, + "type" : 2 + }, + { + "id" : "36A12469-D785-49B2-B862-F080C21D1E87", + "type" : 4 + }, + { + "id" : "6656D0F6-8CA8-45F4-8D0C-F035E4141B35", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "101", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "6656D0F6-8CA8-45F4-8D0C-F035E4141B35", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier\/users?uuid=serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:42:52 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "6656D0F6-8CA8-45F4-8D0C-F035E4141B35", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "6656D0F6-8CA8-45F4-8D0C-F035E4141B35", + "type" : 4 + }, + { + "id" : "E152A4EF-28A9-4406-89AE-AF84EED41A38", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E152A4EF-28A9-4406-89AE-AF84EED41A38", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:42:53 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "E152A4EF-28A9-4406-89AE-AF84EED41A38", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "E152A4EF-28A9-4406-89AE-AF84EED41A38", + "type" : 4 + }, + { + "id" : "E1F77A16-3689-4075-A249-C9C2CF8707F9", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E1F77A16-3689-4075-A249-C9C2CF8707F9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:42:54 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "E1F77A16-3689-4075-A249-C9C2CF8707F9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "E1F77A16-3689-4075-A249-C9C2CF8707F9", + "type" : 4 + }, + { + "id" : "85CF4224-0AA8-4CC1-8952-61A6848E5A3D", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "85CF4224-0AA8-4CC1-8952-61A6848E5A3D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 01:42:56 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "85CF4224-0AA8-4CC1-8952-61A6848E5A3D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "85CF4224-0AA8-4CC1-8952-61A6848E5A3D", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldCreateMembershipAndReceiveStatusWithExpectedOperationAndCategory.json b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldCreateMembershipAndReceiveStatusWithExpectedOperationAndCategory.json new file mode 100644 index 000000000..07cc88808 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldCreateMembershipAndReceiveStatusWithExpectedOperationAndCategory.json @@ -0,0 +1,540 @@ +[ + { + "id" : "7D7C2EE0-B142-4665-83D8-CA139F9463A1", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "7D7C2EE0-B142-4665-83D8-CA139F9463A1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:18:45 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "7D7C2EE0-B142-4665-83D8-CA139F9463A1", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "7D7C2EE0-B142-4665-83D8-CA139F9463A1", + "type" : 4 + }, + { + "id" : "D40D9135-0B49-4695-A0FF-A6C139AE4917", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D40D9135-0B49-4695-A0FF-A6C139AE4917", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:18:45 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "D40D9135-0B49-4695-A0FF-A6C139AE4917", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "D40D9135-0B49-4695-A0FF-A6C139AE4917", + "type" : 4 + }, + { + "id" : "6C6F80A6-7F42-4EA0-80C1-BB8A329FB23B", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "6C6F80A6-7F42-4EA0-80C1-BB8A329FB23B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:18:46 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "6C6F80A6-7F42-4EA0-80C1-BB8A329FB23B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoxODo0NS44MDg3ODhaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MTg6NDUuODA4Nzg4WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "6C6F80A6-7F42-4EA0-80C1-BB8A329FB23B", + "type" : 4 + }, + { + "id" : "80BABB37-EDB5-486D-AB42-A982CC8737AA", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "80BABB37-EDB5-486D-AB42-A982CC8737AA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:18:46 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "80BABB37-EDB5-486D-AB42-A982CC8737AA", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoxODo0Ni4zODI1OTlaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MTg6NDYuMzgyNTk5WiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "80BABB37-EDB5-486D-AB42-A982CC8737AA", + "type" : 4 + }, + { + "id" : "3E08C726-410F-4CD2-B13F-932A481EC9EB", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3E08C726-410F-4CD2-B13F-932A481EC9EB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:18:48 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "3E08C726-410F-4CD2-B13F-932A481EC9EB", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjE4OjQ3Ljk4MDMyMloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoxODo0Ny45ODAzMjJaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "3E08C726-410F-4CD2-B13F-932A481EC9EB", + "type" : 4 + }, + { + "id" : "45931325-4A13-48A6-9672-237775AD296E", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "287", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIiwiY3VzdG9tIjp7InVzZXItbWVtYmVyc2hpcC1jdXN0b20iOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXItY3VzdG9tLWRhdGEtMSJ9fSx7ImlkIjoiQ2hpcHBlci1zcGFjZS1pZGVudGlmaWVyIiwiY3VzdG9tIjp7InVzZXItbWVtYmVyc2hpcC1jdXN0b20iOiJDaGlwcGVyLXNwYWNlLWlkZW50aWZpZXItY3VzdG9tLWRhdGEtMiJ9fV19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "45931325-4A13-48A6-9672-237775AD296E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:18:51 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "45931325-4A13-48A6-9672-237775AD296E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJjdXN0b20iOnsidXNlci1tZW1iZXJzaGlwLWN1c3RvbSI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllci1jdXN0b20tZGF0YS0xIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjE4OjQ5Ljk4NjEwMloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoxODo0OS45ODYxMDJaIiwiZVRhZyI6IkFZdTRuTS9pbHB2NUF3In0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsImN1c3RvbSI6eyJ1c2VyLW1lbWJlcnNoaXAtY3VzdG9tIjoiQ2hpcHBlci1zcGFjZS1pZGVudGlmaWVyLWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MTg6NTAuNjgxOTQ2WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjE4OjUwLjY4MTk0NloiLCJlVGFnIjoiQWVlcTB2VHd6T2ZvMXdFIn1dLCJuZXh0IjoiTWcifQ==" + }, + "type" : 2 + }, + { + "id" : "45931325-4A13-48A6-9672-237775AD296E", + "type" : 4 + }, + { + "id" : "24FC8310-CBA8-437B-AE3A-51640A20F705", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "108", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "24FC8310-CBA8-437B-AE3A-51640A20F705", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:18:53 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "24FC8310-CBA8-437B-AE3A-51640A20F705", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "24FC8310-CBA8-437B-AE3A-51640A20F705", + "type" : 4 + }, + { + "id" : "9D101D03-88F5-4660-8877-8FE5FD32605F", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9D101D03-88F5-4660-8877-8FE5FD32605F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:18:54 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "9D101D03-88F5-4660-8877-8FE5FD32605F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "9D101D03-88F5-4660-8877-8FE5FD32605F", + "type" : 4 + }, + { + "id" : "A30FDFA1-015D-4A69-9424-5E3FC7B46B84", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A30FDFA1-015D-4A69-9424-5E3FC7B46B84", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:18:56 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "A30FDFA1-015D-4A69-9424-5E3FC7B46B84", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "A30FDFA1-015D-4A69-9424-5E3FC7B46B84", + "type" : 4 + }, + { + "id" : "72564B73-85E0-46C0-9798-68018611E359", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "72564B73-85E0-46C0-9798-68018611E359", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:18:56 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "72564B73-85E0-46C0-9798-68018611E359", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "72564B73-85E0-46C0-9798-68018611E359", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldCreateMembershipAndReturnFilteredSpacesInformationWhenFilterIsSet.json b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldCreateMembershipAndReturnFilteredSpacesInformationWhenFilterIsSet.json new file mode 100644 index 000000000..e6cab28a2 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldCreateMembershipAndReturnFilteredSpacesInformationWhenFilterIsSet.json @@ -0,0 +1,540 @@ +[ + { + "id" : "25A6B4FA-DDA8-4E14-BDF5-10782BDACEDD", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "25A6B4FA-DDA8-4E14-BDF5-10782BDACEDD", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:18:58 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "25A6B4FA-DDA8-4E14-BDF5-10782BDACEDD", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "25A6B4FA-DDA8-4E14-BDF5-10782BDACEDD", + "type" : 4 + }, + { + "id" : "2A7FA444-F2B9-4F2F-82E7-CC36C45CEE0D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2A7FA444-F2B9-4F2F-82E7-CC36C45CEE0D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:18:58 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "2A7FA444-F2B9-4F2F-82E7-CC36C45CEE0D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "2A7FA444-F2B9-4F2F-82E7-CC36C45CEE0D", + "type" : 4 + }, + { + "id" : "E1A86876-5A8A-41B6-92A9-1F7DD7CF6B44", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E1A86876-5A8A-41B6-92A9-1F7DD7CF6B44", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:18:59 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "E1A86876-5A8A-41B6-92A9-1F7DD7CF6B44", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoxODo1OS4wMDY4NjdaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MTg6NTkuMDA2ODY3WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "E1A86876-5A8A-41B6-92A9-1F7DD7CF6B44", + "type" : 4 + }, + { + "id" : "1EACA628-5C54-4708-A7D9-1990A3C70675", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1EACA628-5C54-4708-A7D9-1990A3C70675", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:19:00 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "1EACA628-5C54-4708-A7D9-1990A3C70675", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoxODo1OS41Nzg5MjJaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MTg6NTkuNTc4OTIyWiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "1EACA628-5C54-4708-A7D9-1990A3C70675", + "type" : 4 + }, + { + "id" : "60FC8060-CC70-4A95-8E52-201807D55827", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "60FC8060-CC70-4A95-8E52-201807D55827", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:19:01 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "60FC8060-CC70-4A95-8E52-201807D55827", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjE5OjAxLjE4ODk2OVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoxOTowMS4xODg5NjlaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "60FC8060-CC70-4A95-8E52-201807D55827", + "type" : 4 + }, + { + "id" : "841C388D-D67B-420E-9CD3-6E33E09D76B8", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "105", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?filter=space.name%20like%20'Chi*'&count=1&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&include=space,space.custom&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "841C388D-D67B-420E-9CD3-6E33E09D76B8", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?filter=space.name%20like%20'Chi*'&count=1&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&include=space,space.custom&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:19:04 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "841C388D-D67B-420E-9CD3-6E33E09D76B8", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGlwcGVyLXNwYWNlLWlkZW50aWZpZXIiLCJzcGFjZSI6eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoxODo1OS41Nzg5MjJaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MTg6NTkuNTc4OTIyWiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoxOTowMy44ODk0MzRaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MTk6MDMuODg5NDM0WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9XSwidG90YWxDb3VudCI6MSwibmV4dCI6Ik1RIn0=" + }, + "type" : 2 + }, + { + "id" : "841C388D-D67B-420E-9CD3-6E33E09D76B8", + "type" : 4 + }, + { + "id" : "B66665CC-2F97-4A7A-B1A2-D9C10732DD75", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "60", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiQ2hpcHBlci1zcGFjZS1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B66665CC-2F97-4A7A-B1A2-D9C10732DD75", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:19:06 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "187", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "B66665CC-2F97-4A7A-B1A2-D9C10732DD75", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoxOTowMy4xOTQ3ODVaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MTk6MDMuMTk0Nzg1WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9XSwibmV4dCI6Ik1RIn0=" + }, + "type" : 2 + }, + { + "id" : "B66665CC-2F97-4A7A-B1A2-D9C10732DD75", + "type" : 4 + }, + { + "id" : "816E39D0-C12D-4F5E-ADB2-151D8A03C383", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "816E39D0-C12D-4F5E-ADB2-151D8A03C383", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:19:07 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "816E39D0-C12D-4F5E-ADB2-151D8A03C383", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "816E39D0-C12D-4F5E-ADB2-151D8A03C383", + "type" : 4 + }, + { + "id" : "AEEED5B7-DB0A-4D89-8EE6-52DD84EB603C", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "AEEED5B7-DB0A-4D89-8EE6-52DD84EB603C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:19:09 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "AEEED5B7-DB0A-4D89-8EE6-52DD84EB603C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "AEEED5B7-DB0A-4D89-8EE6-52DD84EB603C", + "type" : 4 + }, + { + "id" : "C39176F0-BBEB-4E2D-80FA-C5EB51BC5FBD", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C39176F0-BBEB-4E2D-80FA-C5EB51BC5FBD", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:19:10 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "C39176F0-BBEB-4E2D-80FA-C5EB51BC5FBD", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "C39176F0-BBEB-4E2D-80FA-C5EB51BC5FBD", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldCreateMembershipAndReturnSortedSpacesInformationWhenSortIsSet.json b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldCreateMembershipAndReturnSortedSpacesInformationWhenSortIsSet.json new file mode 100644 index 000000000..0e1ac88ad --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldCreateMembershipAndReturnSortedSpacesInformationWhenSortIsSet.json @@ -0,0 +1,540 @@ +[ + { + "id" : "9026FFFD-2EC0-4A1A-9B84-4F2DA74891B2", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9026FFFD-2EC0-4A1A-9B84-4F2DA74891B2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:12:42 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "9026FFFD-2EC0-4A1A-9B84-4F2DA74891B2", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "9026FFFD-2EC0-4A1A-9B84-4F2DA74891B2", + "type" : 4 + }, + { + "id" : "000BFEEA-932C-4A5C-89E7-FBD04C7BFEDC", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "000BFEEA-932C-4A5C-89E7-FBD04C7BFEDC", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:12:42 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "000BFEEA-932C-4A5C-89E7-FBD04C7BFEDC", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "000BFEEA-932C-4A5C-89E7-FBD04C7BFEDC", + "type" : 4 + }, + { + "id" : "BD22EA64-6E3C-4395-A123-370CE4607841", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "BD22EA64-6E3C-4395-A123-370CE4607841", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:12:43 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "BD22EA64-6E3C-4395-A123-370CE4607841", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMToxMjo0Mi41NTI1MDlaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MTI6NDIuNTUyNTA5WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "BD22EA64-6E3C-4395-A123-370CE4607841", + "type" : 4 + }, + { + "id" : "20FBFF57-C15A-4C56-988C-0722DA69117D", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "20FBFF57-C15A-4C56-988C-0722DA69117D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:12:43 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "20FBFF57-C15A-4C56-988C-0722DA69117D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMToxMjo0My4xMjg1MDhaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MTI6NDMuMTI4NTA4WiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "20FBFF57-C15A-4C56-988C-0722DA69117D", + "type" : 4 + }, + { + "id" : "0B6BB0D0-3F0A-4BED-B1D9-14EA90C73B49", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "0B6BB0D0-3F0A-4BED-B1D9-14EA90C73B49", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:12:45 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "0B6BB0D0-3F0A-4BED-B1D9-14EA90C73B49", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEyOjQ0LjcyODc1NFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMToxMjo0NC43Mjg3NTRaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "0B6BB0D0-3F0A-4BED-B1D9-14EA90C73B49", + "type" : 4 + }, + { + "id" : "01A3F1CC-A8EB-49D4-A3B2-06E9F36A396A", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "105", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?sort=space.name:desc&count=1&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&include=space,space.custom&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "01A3F1CC-A8EB-49D4-A3B2-06E9F36A396A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?sort=space.name:desc&count=1&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&include=space,space.custom&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:12:48 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "01A3F1CC-A8EB-49D4-A3B2-06E9F36A396A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGlwcGVyLXNwYWNlLWlkZW50aWZpZXIiLCJzcGFjZSI6eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMToxMjo0My4xMjg1MDhaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MTI6NDMuMTI4NTA4WiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMToxMjo0Ny41MzQyMzRaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MTI6NDcuNTM0MjM0WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9LHsiaWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJzcGFjZSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMToxMjo0Mi41NTI1MDlaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MTI6NDIuNTUyNTA5WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifSwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDE6MTI6NDYuODMzMzM0WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEyOjQ2LjgzMzMzNFoiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifV0sInRvdGFsQ291bnQiOjIsIm5leHQiOiJNZyJ9" + }, + "type" : 2 + }, + { + "id" : "01A3F1CC-A8EB-49D4-A3B2-06E9F36A396A", + "type" : 4 + }, + { + "id" : "855771F3-5F8F-4982-8DA5-2609244AE55E", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "108", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiQ2hpcHBlci1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "855771F3-5F8F-4982-8DA5-2609244AE55E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:12:50 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "855771F3-5F8F-4982-8DA5-2609244AE55E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "855771F3-5F8F-4982-8DA5-2609244AE55E", + "type" : 4 + }, + { + "id" : "9A6C5894-556E-4152-B002-708EA5E301A5", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9A6C5894-556E-4152-B002-708EA5E301A5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:12:51 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "9A6C5894-556E-4152-B002-708EA5E301A5", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "9A6C5894-556E-4152-B002-708EA5E301A5", + "type" : 4 + }, + { + "id" : "58EC50B8-6FAE-4DCE-8C19-EF2C02C6DFDE", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "58EC50B8-6FAE-4DCE-8C19-EF2C02C6DFDE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:12:53 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "58EC50B8-6FAE-4DCE-8C19-EF2C02C6DFDE", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "58EC50B8-6FAE-4DCE-8C19-EF2C02C6DFDE", + "type" : 4 + }, + { + "id" : "3F96FF10-EE1B-4D88-8D64-CB8547D413D9", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3F96FF10-EE1B-4D88-8D64-CB8547D413D9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:12:53 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "3F96FF10-EE1B-4D88-8D64-CB8547D413D9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "3F96FF10-EE1B-4D88-8D64-CB8547D413D9", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldCreateMembershipAndReturnSpaceInformationWhenSpaceIncludeFlagIsSet.json b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldCreateMembershipAndReturnSpaceInformationWhenSpaceIncludeFlagIsSet.json new file mode 100644 index 000000000..aeaf310bf --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldCreateMembershipAndReturnSpaceInformationWhenSpaceIncludeFlagIsSet.json @@ -0,0 +1,540 @@ +[ + { + "id" : "6750C220-FF47-479D-828B-384FE9DC4367", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "6750C220-FF47-479D-828B-384FE9DC4367", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:19:12 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "6750C220-FF47-479D-828B-384FE9DC4367", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "6750C220-FF47-479D-828B-384FE9DC4367", + "type" : 4 + }, + { + "id" : "C7059A87-F513-4E40-A7B5-CE31E8A1013C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C7059A87-F513-4E40-A7B5-CE31E8A1013C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:19:12 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "C7059A87-F513-4E40-A7B5-CE31E8A1013C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "C7059A87-F513-4E40-A7B5-CE31E8A1013C", + "type" : 4 + }, + { + "id" : "E51F458F-6797-46A7-BEEF-6656FE366B5F", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E51F458F-6797-46A7-BEEF-6656FE366B5F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:19:13 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "E51F458F-6797-46A7-BEEF-6656FE366B5F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoxOToxMi42MDI5ODZaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MTk6MTIuNjAyOTg2WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "E51F458F-6797-46A7-BEEF-6656FE366B5F", + "type" : 4 + }, + { + "id" : "0AA8D1A2-A7EB-4DFC-A5A4-0FA70EF667FD", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "0AA8D1A2-A7EB-4DFC-A5A4-0FA70EF667FD", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:19:13 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "0AA8D1A2-A7EB-4DFC-A5A4-0FA70EF667FD", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoxOToxMy4xODAwNzZaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MTk6MTMuMTgwMDc2WiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "0AA8D1A2-A7EB-4DFC-A5A4-0FA70EF667FD", + "type" : 4 + }, + { + "id" : "E11ACC98-8D34-4662-91C6-1D2C855A326E", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E11ACC98-8D34-4662-91C6-1D2C855A326E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:19:15 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "E11ACC98-8D34-4662-91C6-1D2C855A326E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjE5OjE0LjgwNzc3NVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoxOToxNC44MDc3NzVaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "E11ACC98-8D34-4662-91C6-1D2C855A326E", + "type" : 4 + }, + { + "id" : "54D00A6F-5163-40DE-96D3-28D32E596272", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "105", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=space,space.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "54D00A6F-5163-40DE-96D3-28D32E596272", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=space,space.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:19:18 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "54D00A6F-5163-40DE-96D3-28D32E596272", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJzcGFjZSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoxOToxMi42MDI5ODZaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MTk6MTIuNjAyOTg2WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MTk6MTYuODAyMDE4WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjE5OjE2LjgwMjAxOFoiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiQ2hpcHBlci1zcGFjZS1pZGVudGlmaWVyIiwic3BhY2UiOnsiaWQiOiJDaGlwcGVyLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiQ2hpcHBlciIsImRlc2NyaXB0aW9uIjpudWxsLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMSI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMSIsInNwYWNlLWN1c3RvbTIiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MTk6MTMuMTgwMDc2WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjE5OjEzLjE4MDA3NloiLCJlVGFnIjoiQVpyRjY0YjlpTnltSXcifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MTk6MTcuNDkzNjNaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MTk6MTcuNDkzNjNaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn1dLCJuZXh0IjoiTWcifQ==" + }, + "type" : 2 + }, + { + "id" : "54D00A6F-5163-40DE-96D3-28D32E596272", + "type" : 4 + }, + { + "id" : "82C89D49-37F4-4E8E-8CF4-EE2F1E0151B3", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "108", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "82C89D49-37F4-4E8E-8CF4-EE2F1E0151B3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:19:20 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "82C89D49-37F4-4E8E-8CF4-EE2F1E0151B3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "82C89D49-37F4-4E8E-8CF4-EE2F1E0151B3", + "type" : 4 + }, + { + "id" : "C381A1C1-3F7D-452A-BC44-2C93E74FE612", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C381A1C1-3F7D-452A-BC44-2C93E74FE612", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:19:21 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "C381A1C1-3F7D-452A-BC44-2C93E74FE612", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "C381A1C1-3F7D-452A-BC44-2C93E74FE612", + "type" : 4 + }, + { + "id" : "0CA4F843-191B-471D-9998-DD5D823C3D31", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "0CA4F843-191B-471D-9998-DD5D823C3D31", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:19:22 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "0CA4F843-191B-471D-9998-DD5D823C3D31", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "0CA4F843-191B-471D-9998-DD5D823C3D31", + "type" : 4 + }, + { + "id" : "DF3BD905-E7C1-4E11-8329-9171F326C8F1", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "DF3BD905-E7C1-4E11-8329-9171F326C8F1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:19:23 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "DF3BD905-E7C1-4E11-8329-9171F326C8F1", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "DF3BD905-E7C1-4E11-8329-9171F326C8F1", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldCreateMembershipAndTriggerCreateEventOnSpaceChannel.json b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldCreateMembershipAndTriggerCreateEventOnSpaceChannel.json new file mode 100644 index 000000000..c11502bd6 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldCreateMembershipAndTriggerCreateEventOnSpaceChannel.json @@ -0,0 +1,675 @@ +[ + { + "id" : "59466A1C-B32D-4915-A2F3-CFA59A5E64AD", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "59466A1C-B32D-4915-A2F3-CFA59A5E64AD", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:19:25 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "59466A1C-B32D-4915-A2F3-CFA59A5E64AD", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "59466A1C-B32D-4915-A2F3-CFA59A5E64AD", + "type" : 4 + }, + { + "id" : "EA1FF377-CB03-46DF-8E53-E7F2BC8ABDFB", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "EA1FF377-CB03-46DF-8E53-E7F2BC8ABDFB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:19:25 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "EA1FF377-CB03-46DF-8E53-E7F2BC8ABDFB", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "EA1FF377-CB03-46DF-8E53-E7F2BC8ABDFB", + "type" : 4 + }, + { + "id" : "22B8D00F-E1B7-446A-BF57-B8D31E489DD1", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "22B8D00F-E1B7-446A-BF57-B8D31E489DD1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:19:26 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "22B8D00F-E1B7-446A-BF57-B8D31E489DD1", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoxOToyNi4wNTMwNDdaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MTk6MjYuMDUzMDQ3WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "22B8D00F-E1B7-446A-BF57-B8D31E489DD1", + "type" : 4 + }, + { + "id" : "B0594555-3BE1-4C6B-A4C9-CF09A576A086", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B0594555-3BE1-4C6B-A4C9-CF09A576A086", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:19:27 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "B0594555-3BE1-4C6B-A4C9-CF09A576A086", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoxOToyNi42MjQ5OTdaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MTk6MjYuNjI0OTk3WiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "B0594555-3BE1-4C6B-A4C9-CF09A576A086", + "type" : 4 + }, + { + "id" : "C04337E5-FFFF-4F90-B439-71453DAACA4C", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C04337E5-FFFF-4F90-B439-71453DAACA4C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:19:28 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "C04337E5-FFFF-4F90-B439-71453DAACA4C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjE5OjI4LjIyMzY5NloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoxOToyOC4yMjM2OTZaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "C04337E5-FFFF-4F90-B439-71453DAACA4C", + "type" : 4 + }, + { + "id" : "68E08F5B-8176-4E71-8EE1-FB0E9BBBC8F9", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&tt=0&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "68E08F5B-8176-4E71-8EE1-FB0E9BBBC8F9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&tt=0&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 06:19:29 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "68E08F5B-8176-4E71-8EE1-FB0E9BBBC8F9", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDU2MzY5ODkyNDUzNiIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "68E08F5B-8176-4E71-8EE1-FB0E9BBBC8F9", + "type" : 4 + }, + { + "id" : "CDFEEFA6-9B3B-4E4C-8BBE-5349DF8E9D6B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810563698924536&tr=12" + }, + "type" : 0 + }, + { + "id" : "7C35525F-B5F6-4910-9E6C-0B781647B6D4", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "105", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=serhii&include=space,space.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "CDFEEFA6-9B3B-4E4C-8BBE-5349DF8E9D6B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810563698924536&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 06:19:31 GMT", + "Content-Length" : "507", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "CDFEEFA6-9B3B-4E4C-8BBE-5349DF8E9D6B", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDU2MzcxMTIzMDU1OCIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJlIjoyLCJwIjp7InQiOiIxNTgxMDU2MzcxMTIyMTExMSIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIiwiZCI6eyJzb3VyY2UiOiJvYmplY3RzIiwidmVyc2lvbiI6IjEuMCIsImV2ZW50IjoiY3JlYXRlIiwidHlwZSI6Im1lbWJlcnNoaXAiLCJkYXRhIjp7ImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjE5OjMwLjUxMDU5MjczM1oiLCJjdXN0b20iOm51bGwsImVUYWciOiJBWTM5bUpLSy8vQzBWQSIsInNwYWNlSWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoxOTozMC41MTA1OTI3MzNaIiwidXNlcklkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9fX1dfQ==" + }, + "type" : 2 + }, + { + "id" : "CDFEEFA6-9B3B-4E4C-8BBE-5349DF8E9D6B", + "type" : 4 + }, + { + "id" : "19E428FA-C007-4AA5-B893-28A60FE4ED8F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810563711230558&tr=12" + }, + "type" : 0 + }, + { + "id" : "19E428FA-C007-4AA5-B893-28A60FE4ED8F", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810563711230558&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810563711230558&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "6CDA124C-9F3D-4395-A141-ACEB1F922921", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/Chanted-space-identifier\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "6CDA124C-9F3D-4395-A141-ACEB1F922921", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/Chanted-space-identifier\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Fri, 07 Feb 2020 06:19:31 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "6CDA124C-9F3D-4395-A141-ACEB1F922921", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "6CDA124C-9F3D-4395-A141-ACEB1F922921", + "type" : 4 + }, + { + "id" : "1BA8868F-F5FD-43BD-A0DF-BFE40A512359", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "7C35525F-B5F6-4910-9E6C-0B781647B6D4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=serhii&include=space,space.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:19:31 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "7C35525F-B5F6-4910-9E6C-0B781647B6D4", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJzcGFjZSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoxOToyNi4wNTMwNDdaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MTk6MjYuMDUzMDQ3WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MTk6MzAuNTEwNTkzWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjE5OjMwLjUxMDU5M1oiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiQ2hpcHBlci1zcGFjZS1pZGVudGlmaWVyIiwic3BhY2UiOnsiaWQiOiJDaGlwcGVyLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiQ2hpcHBlciIsImRlc2NyaXB0aW9uIjpudWxsLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMSI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMSIsInNwYWNlLWN1c3RvbTIiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MTk6MjYuNjI0OTk3WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjE5OjI2LjYyNDk5N1oiLCJlVGFnIjoiQVpyRjY0YjlpTnltSXcifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MTk6MzEuMjA1ODcyWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjE5OjMxLjIwNTg3MloiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifV0sIm5leHQiOiJNZyJ9" + }, + "type" : 2 + }, + { + "id" : "7C35525F-B5F6-4910-9E6C-0B781647B6D4", + "type" : 4 + }, + { + "id" : "1BA8868F-F5FD-43BD-A0DF-BFE40A512359", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:19:32 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "1BA8868F-F5FD-43BD-A0DF-BFE40A512359", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "1BA8868F-F5FD-43BD-A0DF-BFE40A512359", + "type" : 4 + }, + { + "id" : "714236BB-776A-4AAA-8C9E-DFA5C80168CC", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "714236BB-776A-4AAA-8C9E-DFA5C80168CC", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:19:34 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "714236BB-776A-4AAA-8C9E-DFA5C80168CC", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "714236BB-776A-4AAA-8C9E-DFA5C80168CC", + "type" : 4 + }, + { + "id" : "4B4B4D02-1DA9-49A0-8B0C-0C8916D361B9", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "4B4B4D02-1DA9-49A0-8B0C-0C8916D361B9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:19:35 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "4B4B4D02-1DA9-49A0-8B0C-0C8916D361B9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "4B4B4D02-1DA9-49A0-8B0C-0C8916D361B9", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldCreateMembershipAndTriggerCreateEventOnUserChannel.json b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldCreateMembershipAndTriggerCreateEventOnUserChannel.json new file mode 100644 index 000000000..701a4b21d --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldCreateMembershipAndTriggerCreateEventOnUserChannel.json @@ -0,0 +1,834 @@ +[ + { + "id" : "17DF2513-B3D4-458E-98E2-BA401F1798DA", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "17DF2513-B3D4-458E-98E2-BA401F1798DA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:19:37 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "17DF2513-B3D4-458E-98E2-BA401F1798DA", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "17DF2513-B3D4-458E-98E2-BA401F1798DA", + "type" : 4 + }, + { + "id" : "347E47DD-D27A-41FA-9E06-C4CB05BFD917", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "347E47DD-D27A-41FA-9E06-C4CB05BFD917", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:19:37 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "347E47DD-D27A-41FA-9E06-C4CB05BFD917", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "347E47DD-D27A-41FA-9E06-C4CB05BFD917", + "type" : 4 + }, + { + "id" : "45D61C06-895F-4597-8E00-C8AF5F9865D0", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "45D61C06-895F-4597-8E00-C8AF5F9865D0", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:19:38 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "45D61C06-895F-4597-8E00-C8AF5F9865D0", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoxOTozNy42NzcwNTdaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MTk6MzcuNjc3MDU3WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "45D61C06-895F-4597-8E00-C8AF5F9865D0", + "type" : 4 + }, + { + "id" : "87FBBE71-24EC-4727-9017-FF5C7F391BA3", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "87FBBE71-24EC-4727-9017-FF5C7F391BA3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:19:38 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "87FBBE71-24EC-4727-9017-FF5C7F391BA3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoxOTozOC4yNTQ0NjRaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MTk6MzguMjU0NDY0WiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "87FBBE71-24EC-4727-9017-FF5C7F391BA3", + "type" : 4 + }, + { + "id" : "501F07A7-9534-4643-BB23-DFDF92258318", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "501F07A7-9534-4643-BB23-DFDF92258318", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:19:40 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "501F07A7-9534-4643-BB23-DFDF92258318", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjE5OjM5Ljg5MTY4NFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoxOTozOS44OTE2ODRaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "501F07A7-9534-4643-BB23-DFDF92258318", + "type" : 4 + }, + { + "id" : "C84F5AC5-0AAF-4B20-AD1F-9F476A10BE08", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&tt=0&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C84F5AC5-0AAF-4B20-AD1F-9F476A10BE08", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&tt=0&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 06:19:41 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C84F5AC5-0AAF-4B20-AD1F-9F476A10BE08", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDU2MzgxNTMwMDM0MyIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "C84F5AC5-0AAF-4B20-AD1F-9F476A10BE08", + "type" : 4 + }, + { + "id" : "BFA47652-8895-4993-B24D-4007884E3C80", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810563815300343&tr=12" + }, + "type" : 0 + }, + { + "id" : "4AAC6D50-DB60-47EC-A176-87242E89F7E6", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "105", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=serhii&include=space,space.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "BFA47652-8895-4993-B24D-4007884E3C80", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810563815300343&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 06:19:42 GMT", + "Content-Length" : "505", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "BFA47652-8895-4993-B24D-4007884E3C80", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDU2MzgyNzYwMTg3NSIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJlIjoyLCJwIjp7InQiOiIxNTgxMDU2MzgyNzU4OTY0MSIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciIsImQiOnsic291cmNlIjoib2JqZWN0cyIsInZlcnNpb24iOiIxLjAiLCJldmVudCI6ImNyZWF0ZSIsInR5cGUiOiJtZW1iZXJzaGlwIiwiZGF0YSI6eyJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoxOTo0Mi4xNTA4ODAzODVaIiwiY3VzdG9tIjpudWxsLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEiLCJzcGFjZUlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MTk6NDIuMTUwODgwMzg1WiIsInVzZXJJZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIifX19XX0=" + }, + "type" : 2 + }, + { + "id" : "BFA47652-8895-4993-B24D-4007884E3C80", + "type" : 4 + }, + { + "id" : "F41C7757-79EE-4307-981C-714024301F68", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810563827601875&tr=12" + }, + "type" : 0 + }, + { + "id" : "F41C7757-79EE-4307-981C-714024301F68", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810563827601875&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 06:19:43 GMT", + "Content-Length" : "505", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F41C7757-79EE-4307-981C-714024301F68", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDU2MzgzNDQ5OTg2MCIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJlIjoyLCJwIjp7InQiOiIxNTgxMDU2MzgzNDQ5MzMyNSIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciIsImQiOnsic291cmNlIjoib2JqZWN0cyIsInZlcnNpb24iOiIxLjAiLCJldmVudCI6ImNyZWF0ZSIsInR5cGUiOiJtZW1iZXJzaGlwIiwiZGF0YSI6eyJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoxOTo0Mi44NDI3NjkzOThaIiwiY3VzdG9tIjpudWxsLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEiLCJzcGFjZUlkIjoiQ2hpcHBlci1zcGFjZS1pZGVudGlmaWVyIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MTk6NDIuODQyNzY5Mzk4WiIsInVzZXJJZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIifX19XX0=" + }, + "type" : 2 + }, + { + "id" : "F41C7757-79EE-4307-981C-714024301F68", + "type" : 4 + }, + { + "id" : "FE288FC7-CB56-41A3-9531-EEE929F8B7B0", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810563834499860&tr=12" + }, + "type" : 0 + }, + { + "id" : "FE288FC7-CB56-41A3-9531-EEE929F8B7B0", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810563834499860&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810563834499860&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "725924D8-CA15-4130-8A11-2EBE522FB958", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/Serhii-user-identifier\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "4AAC6D50-DB60-47EC-A176-87242E89F7E6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=serhii&include=space,space.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:19:43 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "4AAC6D50-DB60-47EC-A176-87242E89F7E6", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJzcGFjZSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoxOTozNy42NzcwNTdaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MTk6MzcuNjc3MDU3WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MTk6NDIuMTUwODhaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MTk6NDIuMTUwODhaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsInNwYWNlIjp7ImlkIjoiQ2hpcHBlci1zcGFjZS1pZGVudGlmaWVyIiwibmFtZSI6IkNoaXBwZXIiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTEiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTEiLCJzcGFjZS1jdXN0b20yIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjE5OjM4LjI1NDQ2NFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoxOTozOC4yNTQ0NjRaIiwiZVRhZyI6IkFackY2NGI5aU55bUl3In0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjE5OjQyLjg0Mjc2OVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoxOTo0Mi44NDI3NjlaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn1dLCJuZXh0IjoiTWcifQ==" + }, + "type" : 2 + }, + { + "id" : "4AAC6D50-DB60-47EC-A176-87242E89F7E6", + "type" : 4 + }, + { + "id" : "725924D8-CA15-4130-8A11-2EBE522FB958", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/Serhii-user-identifier\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Fri, 07 Feb 2020 06:19:43 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "725924D8-CA15-4130-8A11-2EBE522FB958", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "725924D8-CA15-4130-8A11-2EBE522FB958", + "type" : 4 + }, + { + "id" : "EF31DBAC-235E-43AE-989B-A31540C59FA5", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "EF31DBAC-235E-43AE-989B-A31540C59FA5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:19:44 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "EF31DBAC-235E-43AE-989B-A31540C59FA5", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoxOTo0Mi4xNTA4OFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoxOTo0Mi4xNTA4OFoiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiQ2hpcHBlci1zcGFjZS1pZGVudGlmaWVyIiwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MTk6NDIuODQyNzY5WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjE5OjQyLjg0Mjc2OVoiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifV0sIm5leHQiOiJNZyJ9" + }, + "type" : 2 + }, + { + "id" : "EF31DBAC-235E-43AE-989B-A31540C59FA5", + "type" : 4 + }, + { + "id" : "034337DB-CEA3-4076-982A-B8BFBB0E43D8", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "108", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "034337DB-CEA3-4076-982A-B8BFBB0E43D8", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:19:46 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "034337DB-CEA3-4076-982A-B8BFBB0E43D8", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "034337DB-CEA3-4076-982A-B8BFBB0E43D8", + "type" : 4 + }, + { + "id" : "1746792D-E7B1-4AFD-9433-58DFA099AF9D", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1746792D-E7B1-4AFD-9433-58DFA099AF9D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:19:47 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "1746792D-E7B1-4AFD-9433-58DFA099AF9D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "1746792D-E7B1-4AFD-9433-58DFA099AF9D", + "type" : 4 + }, + { + "id" : "DB866A20-7714-4D78-A3A5-C2F0393AEB92", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "DB866A20-7714-4D78-A3A5-C2F0393AEB92", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:19:48 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "DB866A20-7714-4D78-A3A5-C2F0393AEB92", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "DB866A20-7714-4D78-A3A5-C2F0393AEB92", + "type" : 4 + }, + { + "id" : "3BB5A959-68E2-4A59-8824-56AF30934B0D", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3BB5A959-68E2-4A59-8824-56AF30934B0D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:19:49 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "3BB5A959-68E2-4A59-8824-56AF30934B0D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "3BB5A959-68E2-4A59-8824-56AF30934B0D", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldDeleteMemberAndTriggerUserDeleteOnSpaceChannel.json b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldDeleteMemberAndTriggerUserDeleteOnSpaceChannel.json new file mode 100644 index 000000000..5ad334b02 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldDeleteMemberAndTriggerUserDeleteOnSpaceChannel.json @@ -0,0 +1,725 @@ +[ + { + "id" : "09B0EF31-B5A8-4B9E-98A8-B3D5C1822BE1", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "09B0EF31-B5A8-4B9E-98A8-B3D5C1822BE1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:19:51 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "09B0EF31-B5A8-4B9E-98A8-B3D5C1822BE1", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "09B0EF31-B5A8-4B9E-98A8-B3D5C1822BE1", + "type" : 4 + }, + { + "id" : "1BD2201A-A439-4A6C-9A62-3C71D4FE8E78", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1BD2201A-A439-4A6C-9A62-3C71D4FE8E78", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:19:51 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "1BD2201A-A439-4A6C-9A62-3C71D4FE8E78", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "1BD2201A-A439-4A6C-9A62-3C71D4FE8E78", + "type" : 4 + }, + { + "id" : "CDE5C1A8-F3C3-4977-9DC5-88CF78822051", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "CDE5C1A8-F3C3-4977-9DC5-88CF78822051", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:19:52 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "CDE5C1A8-F3C3-4977-9DC5-88CF78822051", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoxOTo1MS44NTU3MzJaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MTk6NTEuODU1NzMyWiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "CDE5C1A8-F3C3-4977-9DC5-88CF78822051", + "type" : 4 + }, + { + "id" : "3410A783-3547-4375-ADB9-6F2BDCDD9406", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3410A783-3547-4375-ADB9-6F2BDCDD9406", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:19:52 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "3410A783-3547-4375-ADB9-6F2BDCDD9406", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoxOTo1Mi40MzI1MTJaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MTk6NTIuNDMyNTEyWiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "3410A783-3547-4375-ADB9-6F2BDCDD9406", + "type" : 4 + }, + { + "id" : "C2DCBAD3-ABE4-4E73-833B-7691E37B784D", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C2DCBAD3-ABE4-4E73-833B-7691E37B784D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:19:54 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "C2DCBAD3-ABE4-4E73-833B-7691E37B784D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjE5OjU0LjAzMjk2OVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoxOTo1NC4wMzI5NjlaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "C2DCBAD3-ABE4-4E73-833B-7691E37B784D", + "type" : 4 + }, + { + "id" : "58703C85-A528-4058-B141-981520D6563A", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "105", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "58703C85-A528-4058-B141-981520D6563A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:19:57 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "58703C85-A528-4058-B141-981520D6563A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJjdXN0b20iOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjE5OjU2LjAyMDUwNloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoxOTo1Ni4wMjA1MDZaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MTk6NTYuNzEyNTE2WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjE5OjU2LjcxMjUxNloiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifV0sIm5leHQiOiJNZyJ9" + }, + "type" : 2 + }, + { + "id" : "58703C85-A528-4058-B141-981520D6563A", + "type" : 4 + }, + { + "id" : "72821CFB-E917-4093-B2F6-A7630A2D2059", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&tt=0&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "72821CFB-E917-4093-B2F6-A7630A2D2059", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&tt=0&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 06:19:58 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "72821CFB-E917-4093-B2F6-A7630A2D2059", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDU2Mzk2NjI4MzExMyIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "72821CFB-E917-4093-B2F6-A7630A2D2059", + "type" : 4 + }, + { + "id" : "4BE37EC0-9E20-4CF6-B6E7-49A48B8B0ECD", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810563966283113&tr=12" + }, + "type" : 0 + }, + { + "id" : "3910A8E9-DFBA-4B19-B71D-7EA1B8406F4A", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3910A8E9-DFBA-4B19-B71D-7EA1B8406F4A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:19:59 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "3910A8E9-DFBA-4B19-B71D-7EA1B8406F4A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "3910A8E9-DFBA-4B19-B71D-7EA1B8406F4A", + "type" : 4 + }, + { + "id" : "4BE37EC0-9E20-4CF6-B6E7-49A48B8B0ECD", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810563966283113&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 06:19:59 GMT", + "Content-Length" : "322", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "4BE37EC0-9E20-4CF6-B6E7-49A48B8B0ECD", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDU2Mzk5NzAwMzQ3OSIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJlIjoyLCJwIjp7InQiOiIxNTgxMDU2Mzk5Njk4Nzk3OSIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIiwiZCI6eyJzb3VyY2UiOiJvYmplY3RzIiwidmVyc2lvbiI6IjEuMCIsImV2ZW50IjoiZGVsZXRlIiwidHlwZSI6InVzZXIiLCJkYXRhIjp7ImlkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9fX1dfQ==" + }, + "type" : 2 + }, + { + "id" : "4BE37EC0-9E20-4CF6-B6E7-49A48B8B0ECD", + "type" : 4 + }, + { + "id" : "81A6A341-AEED-468C-8B02-0EEEF816D4B1", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810563997003479&tr=12" + }, + "type" : 0 + }, + { + "id" : "81A6A341-AEED-468C-8B02-0EEEF816D4B1", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810563997003479&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810563997003479&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "C3655D30-22B7-4F84-A0EC-EBB48E08B55F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/Chanted-space-identifier\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C3655D30-22B7-4F84-A0EC-EBB48E08B55F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/Chanted-space-identifier\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Fri, 07 Feb 2020 06:20:00 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C3655D30-22B7-4F84-A0EC-EBB48E08B55F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "C3655D30-22B7-4F84-A0EC-EBB48E08B55F", + "type" : 4 + }, + { + "id" : "ECC7E44C-F1B3-433D-B298-6F7E5D3767D6", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "ECC7E44C-F1B3-433D-B298-6F7E5D3767D6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:20:00 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "ECC7E44C-F1B3-433D-B298-6F7E5D3767D6", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "ECC7E44C-F1B3-433D-B298-6F7E5D3767D6", + "type" : 4 + }, + { + "id" : "2ECA8852-5538-4A4E-B79C-BB3188C39312", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2ECA8852-5538-4A4E-B79C-BB3188C39312", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:20:02 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "2ECA8852-5538-4A4E-B79C-BB3188C39312", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "2ECA8852-5538-4A4E-B79C-BB3188C39312", + "type" : 4 + }, + { + "id" : "2EEA53C8-60B7-472B-9CEC-2541DCAB1094", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2EEA53C8-60B7-472B-9CEC-2541DCAB1094", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:20:02 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "2EEA53C8-60B7-472B-9CEC-2541DCAB1094", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "2EEA53C8-60B7-472B-9CEC-2541DCAB1094", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldDeleteMembershipAndReceiveStatusWithExpectedOperationAndCategory.json b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldDeleteMembershipAndReceiveStatusWithExpectedOperationAndCategory.json new file mode 100644 index 000000000..769c7395d --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldDeleteMembershipAndReceiveStatusWithExpectedOperationAndCategory.json @@ -0,0 +1,652 @@ +[ + { + "id" : "843A0F15-9F85-47EE-8D18-2D5E418BF3E7", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "843A0F15-9F85-47EE-8D18-2D5E418BF3E7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:26:49 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "843A0F15-9F85-47EE-8D18-2D5E418BF3E7", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "843A0F15-9F85-47EE-8D18-2D5E418BF3E7", + "type" : 4 + }, + { + "id" : "C08DFA18-EFD1-49F8-9934-57B02B94F730", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C08DFA18-EFD1-49F8-9934-57B02B94F730", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:26:49 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "C08DFA18-EFD1-49F8-9934-57B02B94F730", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "C08DFA18-EFD1-49F8-9934-57B02B94F730", + "type" : 4 + }, + { + "id" : "BE465088-6C8B-4D43-BB25-B48E861937F1", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "BE465088-6C8B-4D43-BB25-B48E861937F1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 13:26:50 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "BE465088-6C8B-4D43-BB25-B48E861937F1", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMzoyNjo0OS42Mjk2MTVaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMTM6MjY6NDkuNjI5NjE1WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "BE465088-6C8B-4D43-BB25-B48E861937F1", + "type" : 4 + }, + { + "id" : "F751793A-5F79-400B-B1C2-01C0A05469CA", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F751793A-5F79-400B-B1C2-01C0A05469CA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 13:26:50 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "F751793A-5F79-400B-B1C2-01C0A05469CA", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMzoyNjo1MC4yMDc5MDFaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMTM6MjY6NTAuMjA3OTAxWiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "F751793A-5F79-400B-B1C2-01C0A05469CA", + "type" : 4 + }, + { + "id" : "FA2A9E1A-DBD3-47A1-94EB-498FFFC89E9C", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "FA2A9E1A-DBD3-47A1-94EB-498FFFC89E9C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 13:26:52 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "FA2A9E1A-DBD3-47A1-94EB-498FFFC89E9C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDEzOjI2OjUxLjg5Mzg3OFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMzoyNjo1MS44OTM4NzhaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "FA2A9E1A-DBD3-47A1-94EB-498FFFC89E9C", + "type" : 4 + }, + { + "id" : "649868DB-8F91-4D1B-BFFD-C7AA45216E21", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "105", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "649868DB-8F91-4D1B-BFFD-C7AA45216E21", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 13:26:55 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "649868DB-8F91-4D1B-BFFD-C7AA45216E21", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJjdXN0b20iOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDEzOjI2OjUzLjkzOTgzNVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMzoyNjo1My45Mzk4MzVaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMTM6MjY6NTQuNjM1NTA0WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDEzOjI2OjU0LjYzNTUwNFoiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifV0sIm5leHQiOiJNZyJ9" + }, + "type" : 2 + }, + { + "id" : "649868DB-8F91-4D1B-BFFD-C7AA45216E21", + "type" : 4 + }, + { + "id" : "3013CC32-D5F9-4D2C-BCBF-2EC907EBB107", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "60", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3013CC32-D5F9-4D2C-BCBF-2EC907EBB107", + "data" : { + "status" : 404, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:26:57 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "201", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "3013CC32-D5F9-4D2C-BCBF-2EC907EBB107", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGlwcGVyLXNwYWNlLWlkZW50aWZpZXIiLCJjdXN0b20iOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDEzOjI2OjU0LjYzNTUwNFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMzoyNjo1NC42MzU1MDRaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn1dLCJuZXh0IjoiTVEifQ==" + }, + "type" : 2 + }, + { + "id" : "3013CC32-D5F9-4D2C-BCBF-2EC907EBB107", + "type" : 4 + }, + { + "id" : "3013CC32-D5F9-4D2C-BCBF-2EC907EBB109", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "60", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3013CC32-D5F9-4D2C-BCBF-2EC907EBB109", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:26:57 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "201", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "3013CC32-D5F9-4D2C-BCBF-2EC907EBB109", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGlwcGVyLXNwYWNlLWlkZW50aWZpZXIiLCJjdXN0b20iOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDEzOjI2OjU0LjYzNTUwNFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMzoyNjo1NC42MzU1MDRaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn1dLCJuZXh0IjoiTVEifQ==" + }, + "type" : 2 + }, + { + "id" : "3013CC32-D5F9-4D2C-BCBF-2EC907EBB109", + "type" : 4 + }, + { + "id" : "5F723D60-F39B-47A4-AA22-528F1BBCD5FB", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "60", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiQ2hpcHBlci1zcGFjZS1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "5F723D60-F39B-47A4-AA22-528F1BBCD5FB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:26:59 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "5F723D60-F39B-47A4-AA22-528F1BBCD5FB", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "5F723D60-F39B-47A4-AA22-528F1BBCD5FB", + "type" : 4 + }, + { + "id" : "2F8001DE-C90D-408F-834E-4E87A33594E1", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2F8001DE-C90D-408F-834E-4E87A33594E1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:27:00 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "2F8001DE-C90D-408F-834E-4E87A33594E1", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "2F8001DE-C90D-408F-834E-4E87A33594E1", + "type" : 4 + }, + { + "id" : "B84AED64-3FA5-4F81-93F9-5EE153F89BBA", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B84AED64-3FA5-4F81-93F9-5EE153F89BBA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:27:02 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "B84AED64-3FA5-4F81-93F9-5EE153F89BBA", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "B84AED64-3FA5-4F81-93F9-5EE153F89BBA", + "type" : 4 + }, + { + "id" : "038C72DD-05F6-4150-BFB4-04191A3B99D8", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "038C72DD-05F6-4150-BFB4-04191A3B99D8", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:27:02 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "038C72DD-05F6-4150-BFB4-04191A3B99D8", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "038C72DD-05F6-4150-BFB4-04191A3B99D8", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldDeleteMembershipAndReturnFilteredSpaceInformationWhenFilterIsSet.json b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldDeleteMembershipAndReturnFilteredSpaceInformationWhenFilterIsSet.json new file mode 100644 index 000000000..4b5a358b3 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldDeleteMembershipAndReturnFilteredSpaceInformationWhenFilterIsSet.json @@ -0,0 +1,598 @@ +[ + { + "id" : "5A0D52F1-F889-4FC6-8140-714FC6A92D94", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "5A0D52F1-F889-4FC6-8140-714FC6A92D94", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:20:34 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "5A0D52F1-F889-4FC6-8140-714FC6A92D94", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "5A0D52F1-F889-4FC6-8140-714FC6A92D94", + "type" : 4 + }, + { + "id" : "5B07C281-EFF2-484B-8AEF-442A2A10CC93", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "5B07C281-EFF2-484B-8AEF-442A2A10CC93", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:20:34 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "5B07C281-EFF2-484B-8AEF-442A2A10CC93", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "5B07C281-EFF2-484B-8AEF-442A2A10CC93", + "type" : 4 + }, + { + "id" : "01D342A6-0110-48C8-BEAE-54F46C994124", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "01D342A6-0110-48C8-BEAE-54F46C994124", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:20:35 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "01D342A6-0110-48C8-BEAE-54F46C994124", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMDozNS4wNjA3NjdaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjA6MzUuMDYwNzY3WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "01D342A6-0110-48C8-BEAE-54F46C994124", + "type" : 4 + }, + { + "id" : "FD8EE451-AF79-4AD3-BB12-9163DEC7E4F9", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "FD8EE451-AF79-4AD3-BB12-9163DEC7E4F9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:20:36 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "FD8EE451-AF79-4AD3-BB12-9163DEC7E4F9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMDozNS43NDQzMzdaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjA6MzUuNzQ0MzM3WiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "FD8EE451-AF79-4AD3-BB12-9163DEC7E4F9", + "type" : 4 + }, + { + "id" : "12FED21D-EE75-4CAD-80B5-B96C211640C7", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "12FED21D-EE75-4CAD-80B5-B96C211640C7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:20:37 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "12FED21D-EE75-4CAD-80B5-B96C211640C7", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIwOjM3LjM1MTAzNVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMDozNy4zNTEwMzVaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "12FED21D-EE75-4CAD-80B5-B96C211640C7", + "type" : 4 + }, + { + "id" : "C6CE9E94-B1BF-41EC-8106-53DF2D89CF97", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "105", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C6CE9E94-B1BF-41EC-8106-53DF2D89CF97", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:20:40 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "C6CE9E94-B1BF-41EC-8106-53DF2D89CF97", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJjdXN0b20iOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIwOjM5LjM2OTc4OVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMDozOS4zNjk3ODlaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjA6NDAuMDY0MTk5WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIwOjQwLjA2NDE5OVoiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifV0sIm5leHQiOiJNZyJ9" + }, + "type" : 2 + }, + { + "id" : "C6CE9E94-B1BF-41EC-8106-53DF2D89CF97", + "type" : 4 + }, + { + "id" : "C8216D2E-5A83-4AE0-9BD6-711BB32947D4", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "60", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?filter=space.name%20like%20'Chi*'&count=1&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&include=space,space.custom&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "C8216D2E-5A83-4AE0-9BD6-711BB32947D4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?filter=space.name%20like%20'Chi*'&count=1&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&include=space,space.custom&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:20:43 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "C8216D2E-5A83-4AE0-9BD6-711BB32947D4", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGlwcGVyLXNwYWNlLWlkZW50aWZpZXIiLCJzcGFjZSI6eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMDozNS43NDQzMzdaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjA6MzUuNzQ0MzM3WiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMDo0MC4wNjQxOTlaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjA6NDAuMDY0MTk5WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9XSwidG90YWxDb3VudCI6MSwibmV4dCI6Ik1RIn0=" + }, + "type" : 2 + }, + { + "id" : "C8216D2E-5A83-4AE0-9BD6-711BB32947D4", + "type" : 4 + }, + { + "id" : "122D6755-5A36-4D52-8A49-BE5E2473F478", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "60", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiQ2hpcHBlci1zcGFjZS1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "122D6755-5A36-4D52-8A49-BE5E2473F478", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:20:45 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "122D6755-5A36-4D52-8A49-BE5E2473F478", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "122D6755-5A36-4D52-8A49-BE5E2473F478", + "type" : 4 + }, + { + "id" : "882079A9-8F08-4BAD-AD0E-BC2D5CA16624", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "882079A9-8F08-4BAD-AD0E-BC2D5CA16624", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:20:46 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "882079A9-8F08-4BAD-AD0E-BC2D5CA16624", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "882079A9-8F08-4BAD-AD0E-BC2D5CA16624", + "type" : 4 + }, + { + "id" : "C8056A45-7FB4-4B6C-A219-3333D4E1239B", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C8056A45-7FB4-4B6C-A219-3333D4E1239B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:20:47 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "C8056A45-7FB4-4B6C-A219-3333D4E1239B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "C8056A45-7FB4-4B6C-A219-3333D4E1239B", + "type" : 4 + }, + { + "id" : "F783CA01-A482-4BBC-A5EC-26C938B67950", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F783CA01-A482-4BBC-A5EC-26C938B67950", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:20:48 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "F783CA01-A482-4BBC-A5EC-26C938B67950", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "F783CA01-A482-4BBC-A5EC-26C938B67950", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldDeleteMembershipAndReturnSortedSpaceInformationWhenSortedIsSet.json b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldDeleteMembershipAndReturnSortedSpaceInformationWhenSortedIsSet.json new file mode 100644 index 000000000..e80ba1ffc --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldDeleteMembershipAndReturnSortedSpaceInformationWhenSortedIsSet.json @@ -0,0 +1,922 @@ +[ + { + "id" : "36882E4C-9EDF-4576-9B8C-9D9241884834", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "36882E4C-9EDF-4576-9B8C-9D9241884834", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 00:52:46 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "36882E4C-9EDF-4576-9B8C-9D9241884834", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "36882E4C-9EDF-4576-9B8C-9D9241884834", + "type" : 4 + }, + { + "id" : "75BB023C-90F1-41E1-BB0B-DA8DCD673029", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "75BB023C-90F1-41E1-BB0B-DA8DCD673029", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 00:52:47 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "75BB023C-90F1-41E1-BB0B-DA8DCD673029", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "75BB023C-90F1-41E1-BB0B-DA8DCD673029", + "type" : 4 + }, + { + "id" : "3374DB2B-00A9-4C7B-A484-EBF473754826", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3374DB2B-00A9-4C7B-A484-EBF473754826", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 00:52:47 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "3374DB2B-00A9-4C7B-A484-EBF473754826", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMDo1Mjo0Ny4yNTk2NzJaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDA6NTI6NDcuMjU5NjcyWiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "3374DB2B-00A9-4C7B-A484-EBF473754826", + "type" : 4 + }, + { + "id" : "C4B946A0-A70E-4999-A02E-4AFC873A760D", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C4B946A0-A70E-4999-A02E-4AFC873A760D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 00:52:48 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "C4B946A0-A70E-4999-A02E-4AFC873A760D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMDo1Mjo0Ny44NDI5MzdaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDA6NTI6NDcuODQyOTM3WiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "C4B946A0-A70E-4999-A02E-4AFC873A760D", + "type" : 4 + }, + { + "id" : "A0BF4EA3-38AB-4093-8942-C87A92DFAFFD", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "159", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNvbHN0aWNlLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiU29sc3RpY2UiLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMiI6IlNvbHN0aWNlLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiU29sc3RpY2UtY3VzdG9tLWRhdGEtMSJ9fQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A0BF4EA3-38AB-4093-8942-C87A92DFAFFD", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 00:52:48 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "A0BF4EA3-38AB-4093-8942-C87A92DFAFFD", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNvbHN0aWNlLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiU29sc3RpY2UiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTEiOiJTb2xzdGljZS1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IlNvbHN0aWNlLWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDA6NTI6NDguNDMxNTE5WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAwOjUyOjQ4LjQzMTUxOVoiLCJlVGFnIjoiQWN1QnhMcTB4TU9hb3dFIn19" + }, + "type" : 2 + }, + { + "id" : "A0BF4EA3-38AB-4093-8942-C87A92DFAFFD", + "type" : 4 + }, + { + "id" : "ED99DD33-C98E-40F1-BF97-D6F135A6A974", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "159", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiTWlkbmlnaHQiLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMiI6Ik1pZG5pZ2h0LWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiTWlkbmlnaHQtY3VzdG9tLWRhdGEtMSJ9fQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "ED99DD33-C98E-40F1-BF97-D6F135A6A974", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 00:52:49 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "ED99DD33-C98E-40F1-BF97-D6F135A6A974", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiTWlkbmlnaHQiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTEiOiJNaWRuaWdodC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6Ik1pZG5pZ2h0LWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDA6NTI6NDkuMDEwNzY3WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAwOjUyOjQ5LjAxMDc2N1oiLCJlVGFnIjoiQVpIRjQ3WEYyYU9pcEFFIn19" + }, + "type" : 2 + }, + { + "id" : "ED99DD33-C98E-40F1-BF97-D6F135A6A974", + "type" : 4 + }, + { + "id" : "DFFF4355-BFEB-49BD-9760-E8D0C0BD7603", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "143", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6Ild5bm4tc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJXeW5uIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJXeW5uLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiV3lubi1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "DFFF4355-BFEB-49BD-9760-E8D0C0BD7603", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 00:52:50 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "DFFF4355-BFEB-49BD-9760-E8D0C0BD7603", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6Ild5bm4tc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJXeW5uIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiV3lubi1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6Ild5bm4tY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMDo1Mjo0OS41OTIwNjNaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDA6NTI6NDkuNTkyMDYzWiIsImVUYWciOiJBZXVHM0l5dzVKejFCUSJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "DFFF4355-BFEB-49BD-9760-E8D0C0BD7603", + "type" : 4 + }, + { + "id" : "08DD4D0B-2032-427D-B219-D26244902B71", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "08DD4D0B-2032-427D-B219-D26244902B71", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 00:52:51 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "08DD4D0B-2032-427D-B219-D26244902B71", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAwOjUyOjUxLjE5NjAyN1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMDo1Mjo1MS4xOTYwMjdaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "08DD4D0B-2032-427D-B219-D26244902B71", + "type" : 4 + }, + { + "id" : "3E7FF043-C6B0-4263-9605-9D5C65D4DA67", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "248", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciJ9LHsiaWQiOiJTb2xzdGljZS1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIifSx7ImlkIjoiV3lubi1zcGFjZS1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=space,custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3E7FF043-C6B0-4263-9605-9D5C65D4DA67", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=space,custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 00:52:56 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "3E7FF043-C6B0-4263-9605-9D5C65D4DA67", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJjdXN0b20iOm51bGwsInNwYWNlIjp7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIiwibmFtZSI6IkNoYW50ZWQiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDA6NTI6NDcuMjU5NjcyWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAwOjUyOjQ3LjI1OTY3MloiLCJlVGFnIjoiQWNXajlPVFF3TWFtcFFFIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAwOjUyOjUzLjE4ODg1MloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMDo1Mjo1My4xODg4NTJaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwic3BhY2UiOnsiaWQiOiJDaGlwcGVyLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiQ2hpcHBlciIsImRlc2NyaXB0aW9uIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMDo1Mjo0Ny44NDI5MzdaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDA6NTI6NDcuODQyOTM3WiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMDo1Mjo1My44ODM4NjZaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDA6NTI6NTMuODgzODY2WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9LHsiaWQiOiJTb2xzdGljZS1zcGFjZS1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJzcGFjZSI6eyJpZCI6IlNvbHN0aWNlLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiU29sc3RpY2UiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDA6NTI6NDguNDMxNTE5WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAwOjUyOjQ4LjQzMTUxOVoiLCJlVGFnIjoiQWN1QnhMcTB4TU9hb3dFIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAwOjUyOjU0LjU3ODk0MVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMDo1Mjo1NC41Nzg5NDFaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIiLCJjdXN0b20iOm51bGwsInNwYWNlIjp7ImlkIjoiTWlkbmlnaHQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJNaWRuaWdodCIsImRlc2NyaXB0aW9uIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMDo1Mjo0OS4wMTA3NjdaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDA6NTI6NDkuMDEwNzY3WiIsImVUYWciOiJBWkhGNDdYRjJhT2lwQUUifSwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDA6NTI6NTUuMjczOTAyWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAwOjUyOjU1LjI3MzkwMloiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiV3lubi1zcGFjZS1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJzcGFjZSI6eyJpZCI6Ild5bm4tc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJXeW5uIiwiZGVzY3JpcHRpb24iOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAwOjUyOjQ5LjU5MjA2M1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMDo1Mjo0OS41OTIwNjNaIiwiZVRhZyI6IkFldUczSXl3NUp6MUJRIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAwOjUyOjU1Ljk2ODg5NFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMDo1Mjo1NS45Njg4OTRaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn1dLCJuZXh0IjoiTlEifQ==" + }, + "type" : 2 + }, + { + "id" : "3E7FF043-C6B0-4263-9605-9D5C65D4DA67", + "type" : 4 + }, + { + "id" : "5E2C441D-8349-441D-8B63-1915FE79029C", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "60", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?sort=space.name:desc,created&count=1&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&include=space,space.custom&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "5E2C441D-8349-441D-8B63-1915FE79029C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?sort=space.name:desc,created&count=1&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&include=space,space.custom&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 00:52:59 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "5E2C441D-8349-441D-8B63-1915FE79029C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJXeW5uLXNwYWNlLWlkZW50aWZpZXIiLCJzcGFjZSI6eyJpZCI6Ild5bm4tc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJXeW5uIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiV3lubi1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6Ild5bm4tY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMDo1Mjo0OS41OTIwNjNaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDA6NTI6NDkuNTkyMDYzWiIsImVUYWciOiJBZXVHM0l5dzVKejFCUSJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMDo1Mjo1NS45Njg4OTRaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDA6NTI6NTUuOTY4ODk0WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9LHsiaWQiOiJTb2xzdGljZS1zcGFjZS1pZGVudGlmaWVyIiwic3BhY2UiOnsiaWQiOiJTb2xzdGljZS1zcGFjZS1pZGVudGlmaWVyIiwibmFtZSI6IlNvbHN0aWNlIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiU29sc3RpY2UtY3VzdG9tLWRhdGEtMSIsInNwYWNlLWN1c3RvbTIiOiJTb2xzdGljZS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAwOjUyOjQ4LjQzMTUxOVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMDo1Mjo0OC40MzE1MTlaIiwiZVRhZyI6IkFjdUJ4THEweE1PYW93RSJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMDo1Mjo1NC41Nzg5NDFaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDA6NTI6NTQuNTc4OTQxWiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9LHsiaWQiOiJNaWRuaWdodC1zcGFjZS1pZGVudGlmaWVyIiwic3BhY2UiOnsiaWQiOiJNaWRuaWdodC1zcGFjZS1pZGVudGlmaWVyIiwibmFtZSI6Ik1pZG5pZ2h0IiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiTWlkbmlnaHQtY3VzdG9tLWRhdGEtMSIsInNwYWNlLWN1c3RvbTIiOiJNaWRuaWdodC1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAwOjUyOjQ5LjAxMDc2N1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMDo1Mjo0OS4wMTA3NjdaIiwiZVRhZyI6IkFaSEY0N1hGMmFPaXBBRSJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMDo1Mjo1NS4yNzM5MDJaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDA6NTI6NTUuMjczOTAyWiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9LHsiaWQiOiJDaGlwcGVyLXNwYWNlLWlkZW50aWZpZXIiLCJzcGFjZSI6eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMDo1Mjo0Ny44NDI5MzdaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDA6NTI6NDcuODQyOTM3WiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMDo1Mjo1My44ODM4NjZaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDA6NTI6NTMuODgzODY2WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9XSwidG90YWxDb3VudCI6NCwibmV4dCI6Ik5BIn0=" + }, + "type" : 2 + }, + { + "id" : "5E2C441D-8349-441D-8B63-1915FE79029C", + "type" : 4 + }, + { + "id" : "41EBE0D6-AABE-4FEB-B854-0E6CCC104AA2", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "203", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiQ2hpcHBlci1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IlNvbHN0aWNlLXNwYWNlLWlkZW50aWZpZXIifSx7ImlkIjoiTWlkbmlnaHQtc3BhY2UtaWRlbnRpZmllciJ9LHsiaWQiOiJXeW5uLXNwYWNlLWlkZW50aWZpZXIifV19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "41EBE0D6-AABE-4FEB-B854-0E6CCC104AA2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 00:53:01 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "41EBE0D6-AABE-4FEB-B854-0E6CCC104AA2", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "41EBE0D6-AABE-4FEB-B854-0E6CCC104AA2", + "type" : 4 + }, + { + "id" : "18F4F3F2-6A7C-469C-AF4D-229ECB350021", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "18F4F3F2-6A7C-469C-AF4D-229ECB350021", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 00:53:02 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "18F4F3F2-6A7C-469C-AF4D-229ECB350021", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "18F4F3F2-6A7C-469C-AF4D-229ECB350021", + "type" : 4 + }, + { + "id" : "13818334-D24D-46FD-A97E-C7AA768B2921", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "13818334-D24D-46FD-A97E-C7AA768B2921", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 00:53:03 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "13818334-D24D-46FD-A97E-C7AA768B2921", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "13818334-D24D-46FD-A97E-C7AA768B2921", + "type" : 4 + }, + { + "id" : "27AE41F9-4127-43D8-8C1B-8C042B95F6DC", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "27AE41F9-4127-43D8-8C1B-8C042B95F6DC", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 00:53:04 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "27AE41F9-4127-43D8-8C1B-8C042B95F6DC", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "27AE41F9-4127-43D8-8C1B-8C042B95F6DC", + "type" : 4 + }, + { + "id" : "9BF0369C-3891-4889-9137-21A4C8580B53", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Solstice-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9BF0369C-3891-4889-9137-21A4C8580B53", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Solstice-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 00:53:04 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "9BF0369C-3891-4889-9137-21A4C8580B53", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "9BF0369C-3891-4889-9137-21A4C8580B53", + "type" : 4 + }, + { + "id" : "F1170DDF-020E-456A-AF15-057501DC9D07", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Midnight-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F1170DDF-020E-456A-AF15-057501DC9D07", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Midnight-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 00:53:05 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "F1170DDF-020E-456A-AF15-057501DC9D07", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "F1170DDF-020E-456A-AF15-057501DC9D07", + "type" : 4 + }, + { + "id" : "FE5584F4-EE18-45C1-AA45-4EC89B4C5148", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Wynn-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "FE5584F4-EE18-45C1-AA45-4EC89B4C5148", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Wynn-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 00:53:06 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "FE5584F4-EE18-45C1-AA45-4EC89B4C5148", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "FE5584F4-EE18-45C1-AA45-4EC89B4C5148", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldDeleteMembershipAndReturnSpaceInformationWhenSpaceIncludeFlagIsSet.json b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldDeleteMembershipAndReturnSpaceInformationWhenSpaceIncludeFlagIsSet.json new file mode 100644 index 000000000..bc5d07151 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldDeleteMembershipAndReturnSpaceInformationWhenSpaceIncludeFlagIsSet.json @@ -0,0 +1,598 @@ +[ + { + "id" : "0C0B7DA2-1113-4614-AE40-0DF9714187D3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "0C0B7DA2-1113-4614-AE40-0DF9714187D3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:20:50 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "0C0B7DA2-1113-4614-AE40-0DF9714187D3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "0C0B7DA2-1113-4614-AE40-0DF9714187D3", + "type" : 4 + }, + { + "id" : "F9030E66-F8DF-4800-88E8-4FDD18E518C1", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F9030E66-F8DF-4800-88E8-4FDD18E518C1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:20:50 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "F9030E66-F8DF-4800-88E8-4FDD18E518C1", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "F9030E66-F8DF-4800-88E8-4FDD18E518C1", + "type" : 4 + }, + { + "id" : "5B7ED63F-5AB8-4C3F-9D88-C66099C63C9E", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "5B7ED63F-5AB8-4C3F-9D88-C66099C63C9E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:20:51 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "5B7ED63F-5AB8-4C3F-9D88-C66099C63C9E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMDo1MC44NDcwMDFaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjA6NTAuODQ3MDAxWiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "5B7ED63F-5AB8-4C3F-9D88-C66099C63C9E", + "type" : 4 + }, + { + "id" : "AA7F666A-1576-4ABE-923B-FD435EF35216", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "AA7F666A-1576-4ABE-923B-FD435EF35216", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:20:51 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "AA7F666A-1576-4ABE-923B-FD435EF35216", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMDo1MS40MjMyMzhaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjA6NTEuNDIzMjM4WiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "AA7F666A-1576-4ABE-923B-FD435EF35216", + "type" : 4 + }, + { + "id" : "E1B6501B-866B-4D84-825F-4298638989E5", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E1B6501B-866B-4D84-825F-4298638989E5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:20:53 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "E1B6501B-866B-4D84-825F-4298638989E5", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIwOjUzLjA4NzM1NloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMDo1My4wODczNTZaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "E1B6501B-866B-4D84-825F-4298638989E5", + "type" : 4 + }, + { + "id" : "B97677A9-0863-453B-85FA-7F94877464C2", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "105", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B97677A9-0863-453B-85FA-7F94877464C2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:20:56 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "B97677A9-0863-453B-85FA-7F94877464C2", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJjdXN0b20iOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIwOjU1LjA4MjAzMVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMDo1NS4wODIwMzFaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjA6NTUuNzc3NjY5WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIwOjU1Ljc3NzY2OVoiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifV0sIm5leHQiOiJNZyJ9" + }, + "type" : 2 + }, + { + "id" : "B97677A9-0863-453B-85FA-7F94877464C2", + "type" : 4 + }, + { + "id" : "D8F2C2E2-FECC-417E-815F-490B5A9DF36F", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "60", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=space,space.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D8F2C2E2-FECC-417E-815F-490B5A9DF36F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=space,space.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:20:58 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "D8F2C2E2-FECC-417E-815F-490B5A9DF36F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGlwcGVyLXNwYWNlLWlkZW50aWZpZXIiLCJzcGFjZSI6eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMDo1MS40MjMyMzhaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjA6NTEuNDIzMjM4WiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMDo1NS43Nzc2NjlaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjA6NTUuNzc3NjY5WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9XSwibmV4dCI6Ik1RIn0=" + }, + "type" : 2 + }, + { + "id" : "D8F2C2E2-FECC-417E-815F-490B5A9DF36F", + "type" : 4 + }, + { + "id" : "EFE17B9B-AC99-49A2-AB33-485C9857EDC1", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "60", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiQ2hpcHBlci1zcGFjZS1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "EFE17B9B-AC99-49A2-AB33-485C9857EDC1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:21:00 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "EFE17B9B-AC99-49A2-AB33-485C9857EDC1", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "EFE17B9B-AC99-49A2-AB33-485C9857EDC1", + "type" : 4 + }, + { + "id" : "D0305E5F-D73E-46CB-B88E-788C2223170A", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D0305E5F-D73E-46CB-B88E-788C2223170A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:21:01 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "D0305E5F-D73E-46CB-B88E-788C2223170A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "D0305E5F-D73E-46CB-B88E-788C2223170A", + "type" : 4 + }, + { + "id" : "18E02928-1DD2-4F5C-9E70-5FB9DEBCE9BE", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "18E02928-1DD2-4F5C-9E70-5FB9DEBCE9BE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:21:03 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "18E02928-1DD2-4F5C-9E70-5FB9DEBCE9BE", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "18E02928-1DD2-4F5C-9E70-5FB9DEBCE9BE", + "type" : 4 + }, + { + "id" : "B8786020-75D8-4A78-9E64-F0D1F03E72E6", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B8786020-75D8-4A78-9E64-F0D1F03E72E6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:21:04 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "B8786020-75D8-4A78-9E64-F0D1F03E72E6", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "B8786020-75D8-4A78-9E64-F0D1F03E72E6", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldDeleteMembershipAndTriggerDeleteEventOnSpaceChannel.json b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldDeleteMembershipAndTriggerDeleteEventOnSpaceChannel.json new file mode 100644 index 000000000..41aa32126 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldDeleteMembershipAndTriggerDeleteEventOnSpaceChannel.json @@ -0,0 +1,731 @@ +[ + { + "id" : "C60685BF-F5F2-4149-9A30-AF171CE3F919", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C60685BF-F5F2-4149-9A30-AF171CE3F919", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:21:06 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "C60685BF-F5F2-4149-9A30-AF171CE3F919", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "C60685BF-F5F2-4149-9A30-AF171CE3F919", + "type" : 4 + }, + { + "id" : "D9B3D5E8-1B8F-4099-8610-A78D10B2BCA6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D9B3D5E8-1B8F-4099-8610-A78D10B2BCA6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:21:06 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "D9B3D5E8-1B8F-4099-8610-A78D10B2BCA6", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "D9B3D5E8-1B8F-4099-8610-A78D10B2BCA6", + "type" : 4 + }, + { + "id" : "9AFED682-F16D-4E74-8804-5AAB38BD4BC1", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9AFED682-F16D-4E74-8804-5AAB38BD4BC1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:21:07 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "9AFED682-F16D-4E74-8804-5AAB38BD4BC1", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMTowNi41NTY5NTRaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjE6MDYuNTU2OTU0WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "9AFED682-F16D-4E74-8804-5AAB38BD4BC1", + "type" : 4 + }, + { + "id" : "E288CFE1-4086-49C3-8A50-6B1868392023", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E288CFE1-4086-49C3-8A50-6B1868392023", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:21:07 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "E288CFE1-4086-49C3-8A50-6B1868392023", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMTowNy4yNDU0N1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMTowNy4yNDU0N1oiLCJlVGFnIjoiQVpyRjY0YjlpTnltSXcifX0=" + }, + "type" : 2 + }, + { + "id" : "E288CFE1-4086-49C3-8A50-6B1868392023", + "type" : 4 + }, + { + "id" : "68FE50C1-7B1B-47E9-A88B-199B39ABE5A9", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "68FE50C1-7B1B-47E9-A88B-199B39ABE5A9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:21:09 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "68FE50C1-7B1B-47E9-A88B-199B39ABE5A9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIxOjA4Ljg4MjU3OVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMTowOC44ODI1NzlaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "68FE50C1-7B1B-47E9-A88B-199B39ABE5A9", + "type" : 4 + }, + { + "id" : "4D3BBD16-60E4-47DE-87A9-D23DDC8CD5C4", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "105", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "4D3BBD16-60E4-47DE-87A9-D23DDC8CD5C4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:21:12 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "4D3BBD16-60E4-47DE-87A9-D23DDC8CD5C4", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJjdXN0b20iOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIxOjEwLjkxOTAyOVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMToxMC45MTkwMjlaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjE6MTEuNjE0NTdaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjE6MTEuNjE0NTdaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn1dLCJuZXh0IjoiTWcifQ==" + }, + "type" : 2 + }, + { + "id" : "4D3BBD16-60E4-47DE-87A9-D23DDC8CD5C4", + "type" : 4 + }, + { + "id" : "A6B42FDA-2D2D-4E39-B594-7728365FEA47", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&tt=0&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A6B42FDA-2D2D-4E39-B594-7728365FEA47", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&tt=0&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 06:21:13 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "A6B42FDA-2D2D-4E39-B594-7728365FEA47", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDU2NDcxNTM2MjgwMCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "A6B42FDA-2D2D-4E39-B594-7728365FEA47", + "type" : 4 + }, + { + "id" : "7B64628C-6366-41A0-9355-D72CA5045BD9", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810564715362800&tr=12" + }, + "type" : 0 + }, + { + "id" : "C6F1BCE3-1075-4F8B-B3CE-CC7492C429D8", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "108", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=serhii&include=space,space.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "7B64628C-6366-41A0-9355-D72CA5045BD9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810564715362800&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 06:21:14 GMT", + "Content-Length" : "383", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "7B64628C-6366-41A0-9355-D72CA5045BD9", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDU2NDc0Njk0NTY1MCIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJlIjoyLCJwIjp7InQiOiIxNTgxMDU2NDc0NjkzNjg1OSIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIiwiZCI6eyJzb3VyY2UiOiJvYmplY3RzIiwidmVyc2lvbiI6IjEuMCIsImV2ZW50IjoiZGVsZXRlIiwidHlwZSI6Im1lbWJlcnNoaXAiLCJkYXRhIjp7InNwYWNlSWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJ1c2VySWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIn19fV19" + }, + "type" : 2 + }, + { + "id" : "7B64628C-6366-41A0-9355-D72CA5045BD9", + "type" : 4 + }, + { + "id" : "AD2776DA-3428-4D22-BDEA-61D6EBB8CD3D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810564746945650&tr=12" + }, + "type" : 0 + }, + { + "id" : "AD2776DA-3428-4D22-BDEA-61D6EBB8CD3D", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810564746945650&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810564746945650&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "14E3E9DB-139C-4FE4-B21D-9F76F5FEA0B8", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/Chanted-space-identifier\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C6F1BCE3-1075-4F8B-B3CE-CC7492C429D8", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=serhii&include=space,space.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:21:14 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "C6F1BCE3-1075-4F8B-B3CE-CC7492C429D8", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "C6F1BCE3-1075-4F8B-B3CE-CC7492C429D8", + "type" : 4 + }, + { + "id" : "14E3E9DB-139C-4FE4-B21D-9F76F5FEA0B8", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/Chanted-space-identifier\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Fri, 07 Feb 2020 06:21:15 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "14E3E9DB-139C-4FE4-B21D-9F76F5FEA0B8", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "14E3E9DB-139C-4FE4-B21D-9F76F5FEA0B8", + "type" : 4 + }, + { + "id" : "666A269E-E4D0-45B3-A490-C0D08078119C", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "666A269E-E4D0-45B3-A490-C0D08078119C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:21:15 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "666A269E-E4D0-45B3-A490-C0D08078119C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "666A269E-E4D0-45B3-A490-C0D08078119C", + "type" : 4 + }, + { + "id" : "52C49124-DEB5-47C1-B143-1D1B9ADD450D", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "52C49124-DEB5-47C1-B143-1D1B9ADD450D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:21:17 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "52C49124-DEB5-47C1-B143-1D1B9ADD450D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "52C49124-DEB5-47C1-B143-1D1B9ADD450D", + "type" : 4 + }, + { + "id" : "89D28DB6-2982-4EE2-BF34-277C324C8C7F", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "89D28DB6-2982-4EE2-BF34-277C324C8C7F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:21:18 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "89D28DB6-2982-4EE2-BF34-277C324C8C7F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "89D28DB6-2982-4EE2-BF34-277C324C8C7F", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldDeleteMembershipAndTriggerDeleteEventOnUserChannel.json b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldDeleteMembershipAndTriggerDeleteEventOnUserChannel.json new file mode 100644 index 000000000..e23ae7f30 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldDeleteMembershipAndTriggerDeleteEventOnUserChannel.json @@ -0,0 +1,782 @@ +[ + { + "id" : "FDD01802-0F7E-4F09-9BDF-33875865BABB", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "FDD01802-0F7E-4F09-9BDF-33875865BABB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:21:20 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "FDD01802-0F7E-4F09-9BDF-33875865BABB", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "FDD01802-0F7E-4F09-9BDF-33875865BABB", + "type" : 4 + }, + { + "id" : "A213B2D8-B856-4988-96B2-784E942CAB4D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A213B2D8-B856-4988-96B2-784E942CAB4D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:21:20 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "A213B2D8-B856-4988-96B2-784E942CAB4D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "A213B2D8-B856-4988-96B2-784E942CAB4D", + "type" : 4 + }, + { + "id" : "23F56C75-6A7D-4202-8A25-1F6303AE1680", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "23F56C75-6A7D-4202-8A25-1F6303AE1680", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:21:21 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "23F56C75-6A7D-4202-8A25-1F6303AE1680", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMToyMC42MjY3MzFaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjE6MjAuNjI2NzMxWiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "23F56C75-6A7D-4202-8A25-1F6303AE1680", + "type" : 4 + }, + { + "id" : "8DB2D149-CF62-431F-B48A-3374D47FE8EB", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "8DB2D149-CF62-431F-B48A-3374D47FE8EB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:21:21 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "8DB2D149-CF62-431F-B48A-3374D47FE8EB", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMToyMS4yMTAyNzlaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjE6MjEuMjEwMjc5WiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "8DB2D149-CF62-431F-B48A-3374D47FE8EB", + "type" : 4 + }, + { + "id" : "580B131E-9A45-4336-AB81-C693871AC465", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "580B131E-9A45-4336-AB81-C693871AC465", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:21:23 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "580B131E-9A45-4336-AB81-C693871AC465", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIxOjIyLjgxMjQ0M1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMToyMi44MTI0NDNaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "580B131E-9A45-4336-AB81-C693871AC465", + "type" : 4 + }, + { + "id" : "1161BF84-EA22-474F-A668-623C245186B7", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "105", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1161BF84-EA22-474F-A668-623C245186B7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:21:26 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "1161BF84-EA22-474F-A668-623C245186B7", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJjdXN0b20iOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIxOjI0Ljc5NjMwOVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMToyNC43OTYzMDlaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjE6MjUuNDg4MDU5WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIxOjI1LjQ4ODA1OVoiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifV0sIm5leHQiOiJNZyJ9" + }, + "type" : 2 + }, + { + "id" : "1161BF84-EA22-474F-A668-623C245186B7", + "type" : 4 + }, + { + "id" : "4F37A45C-1DD8-43EB-B2EF-96F6EE7A2C13", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&tt=0&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "4F37A45C-1DD8-43EB-B2EF-96F6EE7A2C13", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&tt=0&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 06:21:27 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "4F37A45C-1DD8-43EB-B2EF-96F6EE7A2C13", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDU2NDg2MDk0ODY2NiIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "4F37A45C-1DD8-43EB-B2EF-96F6EE7A2C13", + "type" : 4 + }, + { + "id" : "7DD56ECC-B9A4-4F49-8EEB-9D691E37EBE7", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810564860948666&tr=12" + }, + "type" : 0 + }, + { + "id" : "181ACB38-389B-4324-BEC1-1DD4019E0433", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "108", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=serhii&include=space,space.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "7DD56ECC-B9A4-4F49-8EEB-9D691E37EBE7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810564860948666&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 06:21:28 GMT", + "Content-Length" : "381", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "7DD56ECC-B9A4-4F49-8EEB-9D691E37EBE7", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDU2NDg4NDkwMDEyOCIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJlIjoyLCJwIjp7InQiOiIxNTgxMDU2NDg4NDg4ODk4MCIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciIsImQiOnsic291cmNlIjoib2JqZWN0cyIsInZlcnNpb24iOiIxLjAiLCJldmVudCI6ImRlbGV0ZSIsInR5cGUiOiJtZW1iZXJzaGlwIiwiZGF0YSI6eyJzcGFjZUlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIiwidXNlcklkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9fX1dfQ==" + }, + "type" : 2 + }, + { + "id" : "7DD56ECC-B9A4-4F49-8EEB-9D691E37EBE7", + "type" : 4 + }, + { + "id" : "28883EF2-6F0F-4DE3-AD33-C482A796C098", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810564884900128&tr=12" + }, + "type" : 0 + }, + { + "id" : "28883EF2-6F0F-4DE3-AD33-C482A796C098", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810564884900128&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 06:21:28 GMT", + "Content-Length" : "381", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "28883EF2-6F0F-4DE3-AD33-C482A796C098", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDU2NDg4NDk0Mjg4MSIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJlIjoyLCJwIjp7InQiOiIxNTgxMDU2NDg4NDkyODg4NyIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciIsImQiOnsic291cmNlIjoib2JqZWN0cyIsInZlcnNpb24iOiIxLjAiLCJldmVudCI6ImRlbGV0ZSIsInR5cGUiOiJtZW1iZXJzaGlwIiwiZGF0YSI6eyJzcGFjZUlkIjoiQ2hpcHBlci1zcGFjZS1pZGVudGlmaWVyIiwidXNlcklkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9fX1dfQ==" + }, + "type" : 2 + }, + { + "id" : "28883EF2-6F0F-4DE3-AD33-C482A796C098", + "type" : 4 + }, + { + "id" : "B6971A74-4DD1-42F2-B4AF-AFDBCEF4CBBC", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810564884942881&tr=12" + }, + "type" : 0 + }, + { + "id" : "B6971A74-4DD1-42F2-B4AF-AFDBCEF4CBBC", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810564884942881&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810564884942881&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "B7A385B4-164F-4300-A579-292BB3C6604B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/Serhii-user-identifier\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "181ACB38-389B-4324-BEC1-1DD4019E0433", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=serhii&include=space,space.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:21:28 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "181ACB38-389B-4324-BEC1-1DD4019E0433", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "181ACB38-389B-4324-BEC1-1DD4019E0433", + "type" : 4 + }, + { + "id" : "B7A385B4-164F-4300-A579-292BB3C6604B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/Serhii-user-identifier\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Fri, 07 Feb 2020 06:21:28 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B7A385B4-164F-4300-A579-292BB3C6604B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "B7A385B4-164F-4300-A579-292BB3C6604B", + "type" : 4 + }, + { + "id" : "305277A9-EA98-4661-B5C4-2D7134C6E311", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "305277A9-EA98-4661-B5C4-2D7134C6E311", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:21:29 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "305277A9-EA98-4661-B5C4-2D7134C6E311", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "305277A9-EA98-4661-B5C4-2D7134C6E311", + "type" : 4 + }, + { + "id" : "4A60ABAE-D286-43E9-B1DD-05CFB12BAF9B", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "4A60ABAE-D286-43E9-B1DD-05CFB12BAF9B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:21:31 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "4A60ABAE-D286-43E9-B1DD-05CFB12BAF9B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "4A60ABAE-D286-43E9-B1DD-05CFB12BAF9B", + "type" : 4 + }, + { + "id" : "C8498714-BA11-4820-8D1B-940264C2F71F", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C8498714-BA11-4820-8D1B-940264C2F71F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:21:32 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "C8498714-BA11-4820-8D1B-940264C2F71F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "C8498714-BA11-4820-8D1B-940264C2F71F", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldFetchFilteredMembershipsWhenFilterIsSet.json b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldFetchFilteredMembershipsWhenFilterIsSet.json new file mode 100644 index 000000000..ab5cfe905 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldFetchFilteredMembershipsWhenFilterIsSet.json @@ -0,0 +1,1022 @@ +[ + { + "id" : "61501CB9-73E9-4743-9006-13229F9796D0", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "61501CB9-73E9-4743-9006-13229F9796D0", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:21:34 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "61501CB9-73E9-4743-9006-13229F9796D0", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "61501CB9-73E9-4743-9006-13229F9796D0", + "type" : 4 + }, + { + "id" : "13F2A0B5-05E9-4AF0-B0F4-E7416CC7C9D7", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "13F2A0B5-05E9-4AF0-B0F4-E7416CC7C9D7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:21:34 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "13F2A0B5-05E9-4AF0-B0F4-E7416CC7C9D7", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "13F2A0B5-05E9-4AF0-B0F4-E7416CC7C9D7", + "type" : 4 + }, + { + "id" : "465FFC5A-6674-4AFD-9023-B2674BF42D40", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "465FFC5A-6674-4AFD-9023-B2674BF42D40", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:21:35 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "465FFC5A-6674-4AFD-9023-B2674BF42D40", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMTozNC45ODc3NTZaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjE6MzQuOTg3NzU2WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "465FFC5A-6674-4AFD-9023-B2674BF42D40", + "type" : 4 + }, + { + "id" : "E8DB78E7-AAF2-47D5-9514-A8198AF85768", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E8DB78E7-AAF2-47D5-9514-A8198AF85768", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:21:36 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "E8DB78E7-AAF2-47D5-9514-A8198AF85768", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMTozNS42NzUyMVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMTozNS42NzUyMVoiLCJlVGFnIjoiQVpyRjY0YjlpTnltSXcifX0=" + }, + "type" : 2 + }, + { + "id" : "E8DB78E7-AAF2-47D5-9514-A8198AF85768", + "type" : 4 + }, + { + "id" : "F366F54F-203E-4E54-9426-1DA49B6732EC", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "159", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNvbHN0aWNlLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiU29sc3RpY2UiLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMiI6IlNvbHN0aWNlLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiU29sc3RpY2UtY3VzdG9tLWRhdGEtMSJ9fQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F366F54F-203E-4E54-9426-1DA49B6732EC", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:21:36 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "F366F54F-203E-4E54-9426-1DA49B6732EC", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNvbHN0aWNlLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiU29sc3RpY2UiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTEiOiJTb2xzdGljZS1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IlNvbHN0aWNlLWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjE6MzYuMzY1Mzg3WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIxOjM2LjM2NTM4N1oiLCJlVGFnIjoiQWN1QnhMcTB4TU9hb3dFIn19" + }, + "type" : 2 + }, + { + "id" : "F366F54F-203E-4E54-9426-1DA49B6732EC", + "type" : 4 + }, + { + "id" : "A6793962-3507-4999-ABFF-8E8D662620FE", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "159", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiTWlkbmlnaHQiLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMiI6Ik1pZG5pZ2h0LWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiTWlkbmlnaHQtY3VzdG9tLWRhdGEtMSJ9fQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A6793962-3507-4999-ABFF-8E8D662620FE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:21:37 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "A6793962-3507-4999-ABFF-8E8D662620FE", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiTWlkbmlnaHQiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTEiOiJNaWRuaWdodC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6Ik1pZG5pZ2h0LWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjE6MzYuOTQzMDgyWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIxOjM2Ljk0MzA4MloiLCJlVGFnIjoiQVpIRjQ3WEYyYU9pcEFFIn19" + }, + "type" : 2 + }, + { + "id" : "A6793962-3507-4999-ABFF-8E8D662620FE", + "type" : 4 + }, + { + "id" : "EADAC42E-567D-4811-9632-6E07B84201AD", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "143", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6Ild5bm4tc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJXeW5uIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJXeW5uLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiV3lubi1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "EADAC42E-567D-4811-9632-6E07B84201AD", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:21:38 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "EADAC42E-567D-4811-9632-6E07B84201AD", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6Ild5bm4tc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJXeW5uIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiV3lubi1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6Ild5bm4tY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMTozNy41NTYzODFaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjE6MzcuNTU2MzgxWiIsImVUYWciOiJBZXVHM0l5dzVKejFCUSJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "EADAC42E-567D-4811-9632-6E07B84201AD", + "type" : 4 + }, + { + "id" : "12E612FF-F422-4C33-90B7-58D9FC0FC8DF", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "163", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNub3dmbGFrZS1zcGFjZS1pZGVudGlmaWVyIiwibmFtZSI6IlNub3dmbGFrZSIsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20yIjoiU25vd2ZsYWtlLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiU25vd2ZsYWtlLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "12E612FF-F422-4C33-90B7-58D9FC0FC8DF", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:21:38 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "12E612FF-F422-4C33-90B7-58D9FC0FC8DF", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNub3dmbGFrZS1zcGFjZS1pZGVudGlmaWVyIiwibmFtZSI6IlNub3dmbGFrZSIsImRlc2NyaXB0aW9uIjpudWxsLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMSI6IlNub3dmbGFrZS1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IlNub3dmbGFrZS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIxOjM4LjE0MTY1MloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMTozOC4xNDE2NTJaIiwiZVRhZyI6IkFZZk82OTNCajhLWVlBIn19" + }, + "type" : 2 + }, + { + "id" : "12E612FF-F422-4C33-90B7-58D9FC0FC8DF", + "type" : 4 + }, + { + "id" : "D761AA57-FB10-4FB5-BC61-AC0E31F32747", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D761AA57-FB10-4FB5-BC61-AC0E31F32747", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:21:40 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "D761AA57-FB10-4FB5-BC61-AC0E31F32747", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIxOjM5LjgxMjAwNloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMTozOS44MTIwMDZaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "D761AA57-FB10-4FB5-BC61-AC0E31F32747", + "type" : 4 + }, + { + "id" : "DA030DE1-6782-41F3-B272-0EE50FC2064B", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "298", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciJ9LHsiaWQiOiJTb2xzdGljZS1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIifSx7ImlkIjoiV3lubi1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IlNub3dmbGFrZS1zcGFjZS1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "DA030DE1-6782-41F3-B272-0EE50FC2064B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:21:46 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "DA030DE1-6782-41F3-B272-0EE50FC2064B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJjdXN0b20iOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIxOjQxLjc5ODM3OVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMTo0MS43OTgzNzlaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjE6NDIuNDg5ODIxWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIxOjQyLjQ4OTgyMVoiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiU29sc3RpY2Utc3BhY2UtaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjE6NDMuMTgwODA1WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIxOjQzLjE4MDgwNVoiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiTWlkbmlnaHQtc3BhY2UtaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjE6NDMuODcyMDAzWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIxOjQzLjg3MjAwM1oiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiV3lubi1zcGFjZS1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMTo0NC41NjI5OThaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjE6NDQuNTYyOTk4WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9LHsiaWQiOiJTbm93Zmxha2Utc3BhY2UtaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjE6NDUuMjU2NzM0WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIxOjQ1LjI1NjczNFoiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifV0sIm5leHQiOiJOZyJ9" + }, + "type" : 2 + }, + { + "id" : "DA030DE1-6782-41F3-B272-0EE50FC2064B", + "type" : 4 + }, + { + "id" : "3F45FD87-5CF7-4C38-8863-F00BECE6FB51", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?filter=space.name%20like%20'Midn*'&count=1&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "3F45FD87-5CF7-4C38-8863-F00BECE6FB51", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?filter=space.name%20like%20'Midn*'&count=1&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:21:47 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "203", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "3F45FD87-5CF7-4C38-8863-F00BECE6FB51", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJNaWRuaWdodC1zcGFjZS1pZGVudGlmaWVyIiwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjE6NDMuODcyMDAzWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIxOjQzLjg3MjAwM1oiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifV0sInRvdGFsQ291bnQiOjEsIm5leHQiOiJNUSJ9" + }, + "type" : 2 + }, + { + "id" : "3F45FD87-5CF7-4C38-8863-F00BECE6FB51", + "type" : 4 + }, + { + "id" : "AAB24260-D8A4-4D1D-918E-C9013DFACEDE", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "301", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciJ9LHsiaWQiOiJTb2xzdGljZS1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIifSx7ImlkIjoiV3lubi1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IlNub3dmbGFrZS1zcGFjZS1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "AAB24260-D8A4-4D1D-918E-C9013DFACEDE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:21:49 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "AAB24260-D8A4-4D1D-918E-C9013DFACEDE", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "AAB24260-D8A4-4D1D-918E-C9013DFACEDE", + "type" : 4 + }, + { + "id" : "627911E4-0FF9-4678-BDA7-E5067EF66D25", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "627911E4-0FF9-4678-BDA7-E5067EF66D25", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:21:50 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "627911E4-0FF9-4678-BDA7-E5067EF66D25", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "627911E4-0FF9-4678-BDA7-E5067EF66D25", + "type" : 4 + }, + { + "id" : "848574B3-935F-4388-AB1A-17C6371961A3", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "848574B3-935F-4388-AB1A-17C6371961A3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:21:52 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "848574B3-935F-4388-AB1A-17C6371961A3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "848574B3-935F-4388-AB1A-17C6371961A3", + "type" : 4 + }, + { + "id" : "26567698-1CA9-4F9D-BF64-E73CF763A3A0", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "26567698-1CA9-4F9D-BF64-E73CF763A3A0", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:21:52 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "26567698-1CA9-4F9D-BF64-E73CF763A3A0", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "26567698-1CA9-4F9D-BF64-E73CF763A3A0", + "type" : 4 + }, + { + "id" : "080C9182-ADF1-49CE-9ABA-9DDEC6CFDE7F", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Solstice-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "080C9182-ADF1-49CE-9ABA-9DDEC6CFDE7F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Solstice-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:21:53 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "080C9182-ADF1-49CE-9ABA-9DDEC6CFDE7F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "080C9182-ADF1-49CE-9ABA-9DDEC6CFDE7F", + "type" : 4 + }, + { + "id" : "44625FC5-2A46-4E0C-9468-C258A70497D2", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Midnight-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "44625FC5-2A46-4E0C-9468-C258A70497D2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Midnight-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:21:54 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "44625FC5-2A46-4E0C-9468-C258A70497D2", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "44625FC5-2A46-4E0C-9468-C258A70497D2", + "type" : 4 + }, + { + "id" : "3441CFC8-C655-4F05-9DF4-4E069F9755A1", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Wynn-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3441CFC8-C655-4F05-9DF4-4E069F9755A1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Wynn-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:21:54 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "3441CFC8-C655-4F05-9DF4-4E069F9755A1", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "3441CFC8-C655-4F05-9DF4-4E069F9755A1", + "type" : 4 + }, + { + "id" : "031F5102-459B-47BB-9566-4C39D1F2666F", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Snowflake-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "031F5102-459B-47BB-9566-4C39D1F2666F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Snowflake-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:21:55 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "031F5102-459B-47BB-9566-4C39D1F2666F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "031F5102-459B-47BB-9566-4C39D1F2666F", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldFetchMembershipWhenLimitIsSet.json b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldFetchMembershipWhenLimitIsSet.json new file mode 100644 index 000000000..f18e9a9e8 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldFetchMembershipWhenLimitIsSet.json @@ -0,0 +1,1024 @@ +[ + { + "id" : "2962C784-367D-4EDC-BBB1-088911E84086", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2962C784-367D-4EDC-BBB1-088911E84086", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:22:19 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "2962C784-367D-4EDC-BBB1-088911E84086", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "2962C784-367D-4EDC-BBB1-088911E84086", + "type" : 4 + }, + { + "id" : "36C813E7-A815-44B3-82BE-82D139EAA2C3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "36C813E7-A815-44B3-82BE-82D139EAA2C3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:22:19 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "36C813E7-A815-44B3-82BE-82D139EAA2C3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "36C813E7-A815-44B3-82BE-82D139EAA2C3", + "type" : 4 + }, + { + "id" : "756B6DEC-6C42-483D-8F92-A142ADFDDA13", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "756B6DEC-6C42-483D-8F92-A142ADFDDA13", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:22:20 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "756B6DEC-6C42-483D-8F92-A142ADFDDA13", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMjoyMC4wOTUzMjJaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjI6MjAuMDk1MzIyWiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "756B6DEC-6C42-483D-8F92-A142ADFDDA13", + "type" : 4 + }, + { + "id" : "C6B678F5-3CE5-4C8D-AFD8-36EE2630542E", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C6B678F5-3CE5-4C8D-AFD8-36EE2630542E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:22:21 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "C6B678F5-3CE5-4C8D-AFD8-36EE2630542E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMjoyMC42NzMzNTdaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjI6MjAuNjczMzU3WiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "C6B678F5-3CE5-4C8D-AFD8-36EE2630542E", + "type" : 4 + }, + { + "id" : "62A4808C-5FDF-4048-BDE6-77E2418EA893", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "159", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNvbHN0aWNlLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiU29sc3RpY2UiLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMiI6IlNvbHN0aWNlLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiU29sc3RpY2UtY3VzdG9tLWRhdGEtMSJ9fQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "62A4808C-5FDF-4048-BDE6-77E2418EA893", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:22:21 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "62A4808C-5FDF-4048-BDE6-77E2418EA893", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNvbHN0aWNlLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiU29sc3RpY2UiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTEiOiJTb2xzdGljZS1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IlNvbHN0aWNlLWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjI6MjEuMjU0NjE0WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIyOjIxLjI1NDYxNFoiLCJlVGFnIjoiQWN1QnhMcTB4TU9hb3dFIn19" + }, + "type" : 2 + }, + { + "id" : "62A4808C-5FDF-4048-BDE6-77E2418EA893", + "type" : 4 + }, + { + "id" : "FDD26E55-D747-487F-94DC-1B6343CE70DB", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "159", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiTWlkbmlnaHQiLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMiI6Ik1pZG5pZ2h0LWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiTWlkbmlnaHQtY3VzdG9tLWRhdGEtMSJ9fQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "FDD26E55-D747-487F-94DC-1B6343CE70DB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:22:22 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "FDD26E55-D747-487F-94DC-1B6343CE70DB", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiTWlkbmlnaHQiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTEiOiJNaWRuaWdodC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6Ik1pZG5pZ2h0LWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjI6MjEuODk1MjM5WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIyOjIxLjg5NTIzOVoiLCJlVGFnIjoiQVpIRjQ3WEYyYU9pcEFFIn19" + }, + "type" : 2 + }, + { + "id" : "FDD26E55-D747-487F-94DC-1B6343CE70DB", + "type" : 4 + }, + { + "id" : "A915A778-2F7E-4F84-86CD-370A60E03E2B", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "143", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6Ild5bm4tc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJXeW5uIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJXeW5uLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiV3lubi1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A915A778-2F7E-4F84-86CD-370A60E03E2B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:22:22 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "A915A778-2F7E-4F84-86CD-370A60E03E2B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6Ild5bm4tc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJXeW5uIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiV3lubi1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6Ild5bm4tY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMjoyMi40NzIxODZaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjI6MjIuNDcyMTg2WiIsImVUYWciOiJBZXVHM0l5dzVKejFCUSJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "A915A778-2F7E-4F84-86CD-370A60E03E2B", + "type" : 4 + }, + { + "id" : "8C0C9192-1202-4902-BE05-C28E2DD6D2C6", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "163", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNub3dmbGFrZS1zcGFjZS1pZGVudGlmaWVyIiwibmFtZSI6IlNub3dmbGFrZSIsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20yIjoiU25vd2ZsYWtlLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiU25vd2ZsYWtlLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "8C0C9192-1202-4902-BE05-C28E2DD6D2C6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:22:23 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "8C0C9192-1202-4902-BE05-C28E2DD6D2C6", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNub3dmbGFrZS1zcGFjZS1pZGVudGlmaWVyIiwibmFtZSI6IlNub3dmbGFrZSIsImRlc2NyaXB0aW9uIjpudWxsLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMSI6IlNub3dmbGFrZS1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IlNub3dmbGFrZS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIyOjIzLjA1MDg0MloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMjoyMy4wNTA4NDJaIiwiZVRhZyI6IkFZZk82OTNCajhLWVlBIn19" + }, + "type" : 2 + }, + { + "id" : "8C0C9192-1202-4902-BE05-C28E2DD6D2C6", + "type" : 4 + }, + { + "id" : "D89EA006-17F4-4B63-B2E4-E52C8C9A8187", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D89EA006-17F4-4B63-B2E4-E52C8C9A8187", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:22:25 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "D89EA006-17F4-4B63-B2E4-E52C8C9A8187", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIyOjI0LjY2MjY0NloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMjoyNC42NjI2NDZaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "D89EA006-17F4-4B63-B2E4-E52C8C9A8187", + "type" : 4 + }, + { + "id" : "B88140F5-CA6C-4598-948E-4358604B8F56", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "480", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIiwiY3VzdG9tIjp7InVzZXItbWVtYmVyc2hpcC1jdXN0b20iOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXItY3VzdG9tLWRhdGEtMSJ9fSx7ImlkIjoiQ2hpcHBlci1zcGFjZS1pZGVudGlmaWVyIiwiY3VzdG9tIjp7InVzZXItbWVtYmVyc2hpcC1jdXN0b20iOiJDaGlwcGVyLXNwYWNlLWlkZW50aWZpZXItY3VzdG9tLWRhdGEtMiJ9fSx7ImlkIjoiU29sc3RpY2Utc3BhY2UtaWRlbnRpZmllciJ9LHsiaWQiOiJNaWRuaWdodC1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6Ild5bm4tc3BhY2UtaWRlbnRpZmllciJ9LHsiaWQiOiJTbm93Zmxha2Utc3BhY2UtaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B88140F5-CA6C-4598-948E-4358604B8F56", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:22:30 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "B88140F5-CA6C-4598-948E-4358604B8F56", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJjdXN0b20iOnsidXNlci1tZW1iZXJzaGlwLWN1c3RvbSI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllci1jdXN0b20tZGF0YS0xIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIyOjI2LjY1ODcxMVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMjoyNi42NTg3MTFaIiwiZVRhZyI6IkFZblYyNFNobWQvTEpnIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsImN1c3RvbSI6eyJ1c2VyLW1lbWJlcnNoaXAtY3VzdG9tIjoiQ2hpcHBlci1zcGFjZS1pZGVudGlmaWVyLWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjI6MjcuMzU3Mjc4WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIyOjI3LjM1NzI3OFoiLCJlVGFnIjoiQWFpcXN1cWJvZmIzTkEifSx7ImlkIjoiU29sc3RpY2Utc3BhY2UtaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjI6MjguMDU1NjE4WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIyOjI4LjA1NTYxOFoiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiTWlkbmlnaHQtc3BhY2UtaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjI6MjguNzU0MDE4WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIyOjI4Ljc1NDAxOFoiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiV3lubi1zcGFjZS1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMjoyOS40NTI0NFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMjoyOS40NTI0NFoiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiU25vd2ZsYWtlLXNwYWNlLWlkZW50aWZpZXIiLCJjdXN0b20iOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIyOjMwLjE1MTM5NVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMjozMC4xNTEzOTVaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn1dLCJuZXh0IjoiTmcifQ==" + }, + "type" : 2 + }, + { + "id" : "B88140F5-CA6C-4598-948E-4358604B8F56", + "type" : 4 + }, + { + "id" : "63FE1C03-3E8C-4118-B68D-63C4CCC67D76", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?count=1&limit=2&pnsdk=PubNub-ObjC-iOS\/4.x.x&include=custom&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "63FE1C03-3E8C-4118-B68D-63C4CCC67D76", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?count=1&limit=2&pnsdk=PubNub-ObjC-iOS\/4.x.x&include=custom&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:22:32 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "63FE1C03-3E8C-4118-B68D-63C4CCC67D76", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJjdXN0b20iOnsidXNlci1tZW1iZXJzaGlwLWN1c3RvbSI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllci1jdXN0b20tZGF0YS0xIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIyOjI2LjY1ODcxMVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMjoyNi42NTg3MTFaIiwiZVRhZyI6IkFZblYyNFNobWQvTEpnIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsImN1c3RvbSI6eyJ1c2VyLW1lbWJlcnNoaXAtY3VzdG9tIjoiQ2hpcHBlci1zcGFjZS1pZGVudGlmaWVyLWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjI6MjcuMzU3Mjc4WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIyOjI3LjM1NzI3OFoiLCJlVGFnIjoiQWFpcXN1cWJvZmIzTkEifV0sInRvdGFsQ291bnQiOjYsIm5leHQiOiJNZyJ9" + }, + "type" : 2 + }, + { + "id" : "63FE1C03-3E8C-4118-B68D-63C4CCC67D76", + "type" : 4 + }, + { + "id" : "F2E7EB43-A869-481C-8F73-7E4D6C8ABA79", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "301", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciJ9LHsiaWQiOiJTb2xzdGljZS1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIifSx7ImlkIjoiV3lubi1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IlNub3dmbGFrZS1zcGFjZS1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F2E7EB43-A869-481C-8F73-7E4D6C8ABA79", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:22:34 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "F2E7EB43-A869-481C-8F73-7E4D6C8ABA79", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "F2E7EB43-A869-481C-8F73-7E4D6C8ABA79", + "type" : 4 + }, + { + "id" : "7E1080BE-C138-46DA-8C76-975BC88B4507", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "7E1080BE-C138-46DA-8C76-975BC88B4507", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:22:35 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "7E1080BE-C138-46DA-8C76-975BC88B4507", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "7E1080BE-C138-46DA-8C76-975BC88B4507", + "type" : 4 + }, + { + "id" : "7295F324-8A2A-4EC8-A668-04C8FBDB28AE", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "7295F324-8A2A-4EC8-A668-04C8FBDB28AE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:22:37 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "7295F324-8A2A-4EC8-A668-04C8FBDB28AE", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "7295F324-8A2A-4EC8-A668-04C8FBDB28AE", + "type" : 4 + }, + { + "id" : "1E9D19CC-3987-4BB6-AA1B-79C7CD4535CB", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1E9D19CC-3987-4BB6-AA1B-79C7CD4535CB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:22:38 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "1E9D19CC-3987-4BB6-AA1B-79C7CD4535CB", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "1E9D19CC-3987-4BB6-AA1B-79C7CD4535CB", + "type" : 4 + }, + { + "id" : "66E6984C-E56F-41C7-9EF5-893FCDD7CF4C", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Solstice-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "66E6984C-E56F-41C7-9EF5-893FCDD7CF4C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Solstice-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:22:38 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "66E6984C-E56F-41C7-9EF5-893FCDD7CF4C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "66E6984C-E56F-41C7-9EF5-893FCDD7CF4C", + "type" : 4 + }, + { + "id" : "1BC680B4-68CC-40B8-ADA7-B018D5D48194", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Midnight-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1BC680B4-68CC-40B8-ADA7-B018D5D48194", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Midnight-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:22:39 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "1BC680B4-68CC-40B8-ADA7-B018D5D48194", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "1BC680B4-68CC-40B8-ADA7-B018D5D48194", + "type" : 4 + }, + { + "id" : "64473126-2A12-4893-B732-23F955EEF3BB", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Wynn-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "64473126-2A12-4893-B732-23F955EEF3BB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Wynn-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:22:40 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "64473126-2A12-4893-B732-23F955EEF3BB", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "64473126-2A12-4893-B732-23F955EEF3BB", + "type" : 4 + }, + { + "id" : "CB02F7E1-5E2A-4A12-B925-6947568E9163", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Snowflake-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "CB02F7E1-5E2A-4A12-B925-6947568E9163", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Snowflake-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:22:40 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "CB02F7E1-5E2A-4A12-B925-6947568E9163", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "CB02F7E1-5E2A-4A12-B925-6947568E9163", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldFetchMembershipsAndReceiveResultWithExpectedOperation.json b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldFetchMembershipsAndReceiveResultWithExpectedOperation.json new file mode 100644 index 000000000..dafe49e2a --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldFetchMembershipsAndReceiveResultWithExpectedOperation.json @@ -0,0 +1,1024 @@ +[ + { + "id" : "DBA03C3C-FBB2-45C9-84E3-52CFEDC00C17", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "DBA03C3C-FBB2-45C9-84E3-52CFEDC00C17", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:21:57 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "DBA03C3C-FBB2-45C9-84E3-52CFEDC00C17", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "DBA03C3C-FBB2-45C9-84E3-52CFEDC00C17", + "type" : 4 + }, + { + "id" : "2931FA0A-5F99-49DD-815C-B6C3423AE80D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2931FA0A-5F99-49DD-815C-B6C3423AE80D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:21:57 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "2931FA0A-5F99-49DD-815C-B6C3423AE80D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "2931FA0A-5F99-49DD-815C-B6C3423AE80D", + "type" : 4 + }, + { + "id" : "0B8B2CCC-77AB-4896-AEBB-EE46EC065682", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "0B8B2CCC-77AB-4896-AEBB-EE46EC065682", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:21:58 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "0B8B2CCC-77AB-4896-AEBB-EE46EC065682", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMTo1Ny41NzEyN1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMTo1Ny41NzEyN1oiLCJlVGFnIjoiQWNXajlPVFF3TWFtcFFFIn19" + }, + "type" : 2 + }, + { + "id" : "0B8B2CCC-77AB-4896-AEBB-EE46EC065682", + "type" : 4 + }, + { + "id" : "DE44BAD9-E545-4539-80D5-E78F71DB7935", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "DE44BAD9-E545-4539-80D5-E78F71DB7935", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:21:58 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "DE44BAD9-E545-4539-80D5-E78F71DB7935", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMTo1OC4yMzczNTFaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjE6NTguMjM3MzUxWiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "DE44BAD9-E545-4539-80D5-E78F71DB7935", + "type" : 4 + }, + { + "id" : "B04AD79E-3D7B-458F-A1B6-E8743323C2FD", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "159", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNvbHN0aWNlLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiU29sc3RpY2UiLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMiI6IlNvbHN0aWNlLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiU29sc3RpY2UtY3VzdG9tLWRhdGEtMSJ9fQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B04AD79E-3D7B-458F-A1B6-E8743323C2FD", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:21:59 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "B04AD79E-3D7B-458F-A1B6-E8743323C2FD", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNvbHN0aWNlLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiU29sc3RpY2UiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTEiOiJTb2xzdGljZS1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IlNvbHN0aWNlLWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjE6NTguODEzMDQzWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIxOjU4LjgxMzA0M1oiLCJlVGFnIjoiQWN1QnhMcTB4TU9hb3dFIn19" + }, + "type" : 2 + }, + { + "id" : "B04AD79E-3D7B-458F-A1B6-E8743323C2FD", + "type" : 4 + }, + { + "id" : "20092273-5945-4249-8D51-D8EC9AE42D2A", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "159", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiTWlkbmlnaHQiLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMiI6Ik1pZG5pZ2h0LWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiTWlkbmlnaHQtY3VzdG9tLWRhdGEtMSJ9fQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "20092273-5945-4249-8D51-D8EC9AE42D2A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:21:59 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "20092273-5945-4249-8D51-D8EC9AE42D2A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiTWlkbmlnaHQiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTEiOiJNaWRuaWdodC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6Ik1pZG5pZ2h0LWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjE6NTkuNDcwMzc1WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIxOjU5LjQ3MDM3NVoiLCJlVGFnIjoiQVpIRjQ3WEYyYU9pcEFFIn19" + }, + "type" : 2 + }, + { + "id" : "20092273-5945-4249-8D51-D8EC9AE42D2A", + "type" : 4 + }, + { + "id" : "62C6C60B-617A-4899-8ED8-E38AEBB74482", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "143", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6Ild5bm4tc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJXeW5uIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJXeW5uLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiV3lubi1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "62C6C60B-617A-4899-8ED8-E38AEBB74482", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:22:00 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "62C6C60B-617A-4899-8ED8-E38AEBB74482", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6Ild5bm4tc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJXeW5uIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiV3lubi1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6Ild5bm4tY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMjowMC4wODI4ODhaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjI6MDAuMDgyODg4WiIsImVUYWciOiJBZXVHM0l5dzVKejFCUSJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "62C6C60B-617A-4899-8ED8-E38AEBB74482", + "type" : 4 + }, + { + "id" : "23A6102D-DDF6-4918-93E2-6D7DA45EAE07", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "163", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNub3dmbGFrZS1zcGFjZS1pZGVudGlmaWVyIiwibmFtZSI6IlNub3dmbGFrZSIsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20yIjoiU25vd2ZsYWtlLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiU25vd2ZsYWtlLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "23A6102D-DDF6-4918-93E2-6D7DA45EAE07", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:22:01 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "23A6102D-DDF6-4918-93E2-6D7DA45EAE07", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNub3dmbGFrZS1zcGFjZS1pZGVudGlmaWVyIiwibmFtZSI6IlNub3dmbGFrZSIsImRlc2NyaXB0aW9uIjpudWxsLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMSI6IlNub3dmbGFrZS1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IlNub3dmbGFrZS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIyOjAwLjY1OTI5NVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMjowMC42NTkyOTVaIiwiZVRhZyI6IkFZZk82OTNCajhLWVlBIn19" + }, + "type" : 2 + }, + { + "id" : "23A6102D-DDF6-4918-93E2-6D7DA45EAE07", + "type" : 4 + }, + { + "id" : "795F6F9E-8D9A-45BE-841B-A5AF7FC609C1", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "795F6F9E-8D9A-45BE-841B-A5AF7FC609C1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:22:02 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "795F6F9E-8D9A-45BE-841B-A5AF7FC609C1", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIyOjAyLjI2Nzk0MVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMjowMi4yNjc5NDFaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "795F6F9E-8D9A-45BE-841B-A5AF7FC609C1", + "type" : 4 + }, + { + "id" : "E84ED2A8-AD45-47B7-BC59-5666B0EB243C", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "298", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciJ9LHsiaWQiOiJTb2xzdGljZS1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIifSx7ImlkIjoiV3lubi1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IlNub3dmbGFrZS1zcGFjZS1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E84ED2A8-AD45-47B7-BC59-5666B0EB243C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:22:08 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "E84ED2A8-AD45-47B7-BC59-5666B0EB243C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJjdXN0b20iOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIyOjA0LjM4NDQ1MVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMjowNC4zODQ0NTFaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjI6MDUuMDgwMjIxWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIyOjA1LjA4MDIyMVoiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiU29sc3RpY2Utc3BhY2UtaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjI6MDUuNzc2MDIxWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIyOjA1Ljc3NjAyMVoiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiTWlkbmlnaHQtc3BhY2UtaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjI6MDYuNDcxODUyWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIyOjA2LjQ3MTg1MloiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiV3lubi1zcGFjZS1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMjowNy4xNjc2NDJaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjI6MDcuMTY3NjQyWiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9LHsiaWQiOiJTbm93Zmxha2Utc3BhY2UtaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjI6MDcuODYzMjI3WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIyOjA3Ljg2MzIyN1oiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifV0sIm5leHQiOiJOZyJ9" + }, + "type" : 2 + }, + { + "id" : "E84ED2A8-AD45-47B7-BC59-5666B0EB243C", + "type" : 4 + }, + { + "id" : "9B622863-60AB-4DFE-A224-4B6FE18128C5", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9B622863-60AB-4DFE-A224-4B6FE18128C5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:22:10 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "9B622863-60AB-4DFE-A224-4B6FE18128C5", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMjowNC4zODQ0NTFaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjI6MDQuMzg0NDUxWiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9LHsiaWQiOiJDaGlwcGVyLXNwYWNlLWlkZW50aWZpZXIiLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMjowNS4wODAyMjFaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjI6MDUuMDgwMjIxWiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9LHsiaWQiOiJTb2xzdGljZS1zcGFjZS1pZGVudGlmaWVyIiwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjI6MDUuNzc2MDIxWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIyOjA1Ljc3NjAyMVoiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiTWlkbmlnaHQtc3BhY2UtaWRlbnRpZmllciIsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIyOjA2LjQ3MTg1MloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMjowNi40NzE4NTJaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6Ild5bm4tc3BhY2UtaWRlbnRpZmllciIsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIyOjA3LjE2NzY0MloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMjowNy4xNjc2NDJaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IlNub3dmbGFrZS1zcGFjZS1pZGVudGlmaWVyIiwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjI6MDcuODYzMjI3WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIyOjA3Ljg2MzIyN1oiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifV0sIm5leHQiOiJOZyJ9" + }, + "type" : 2 + }, + { + "id" : "9B622863-60AB-4DFE-A224-4B6FE18128C5", + "type" : 4 + }, + { + "id" : "45B9298A-C7AB-46D7-81F3-91AF53CD132F", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "301", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciJ9LHsiaWQiOiJTb2xzdGljZS1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIifSx7ImlkIjoiV3lubi1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IlNub3dmbGFrZS1zcGFjZS1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "45B9298A-C7AB-46D7-81F3-91AF53CD132F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:22:12 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "45B9298A-C7AB-46D7-81F3-91AF53CD132F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "45B9298A-C7AB-46D7-81F3-91AF53CD132F", + "type" : 4 + }, + { + "id" : "D6E5AC8B-C365-479E-8F54-B5960214C799", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D6E5AC8B-C365-479E-8F54-B5960214C799", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:22:13 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "D6E5AC8B-C365-479E-8F54-B5960214C799", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "D6E5AC8B-C365-479E-8F54-B5960214C799", + "type" : 4 + }, + { + "id" : "73627E2D-0342-433B-AB63-9C0FBF81A217", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "73627E2D-0342-433B-AB63-9C0FBF81A217", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:22:14 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "73627E2D-0342-433B-AB63-9C0FBF81A217", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "73627E2D-0342-433B-AB63-9C0FBF81A217", + "type" : 4 + }, + { + "id" : "1ED8E72D-80BE-4C2B-B40D-4705558B43D4", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1ED8E72D-80BE-4C2B-B40D-4705558B43D4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:22:15 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "1ED8E72D-80BE-4C2B-B40D-4705558B43D4", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "1ED8E72D-80BE-4C2B-B40D-4705558B43D4", + "type" : 4 + }, + { + "id" : "E02FA94C-6939-4682-94DD-8ED7E338FAA2", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Solstice-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E02FA94C-6939-4682-94DD-8ED7E338FAA2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Solstice-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:22:15 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "E02FA94C-6939-4682-94DD-8ED7E338FAA2", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "E02FA94C-6939-4682-94DD-8ED7E338FAA2", + "type" : 4 + }, + { + "id" : "25D5E75B-BE69-4CCB-8FCC-3883B0FE0865", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Midnight-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "25D5E75B-BE69-4CCB-8FCC-3883B0FE0865", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Midnight-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:22:16 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "25D5E75B-BE69-4CCB-8FCC-3883B0FE0865", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "25D5E75B-BE69-4CCB-8FCC-3883B0FE0865", + "type" : 4 + }, + { + "id" : "71FBB7E9-E72C-4142-8F24-D15EFBDFD497", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Wynn-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "71FBB7E9-E72C-4142-8F24-D15EFBDFD497", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Wynn-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:22:17 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "71FBB7E9-E72C-4142-8F24-D15EFBDFD497", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "71FBB7E9-E72C-4142-8F24-D15EFBDFD497", + "type" : 4 + }, + { + "id" : "E64060DC-8755-4AB1-B545-AA365534E823", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Snowflake-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E64060DC-8755-4AB1-B545-AA365534E823", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Snowflake-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:22:17 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "E64060DC-8755-4AB1-B545-AA365534E823", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "E64060DC-8755-4AB1-B545-AA365534E823", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldFetchNextMembershipPageWhenStartAndLimitIsSet.json b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldFetchNextMembershipPageWhenStartAndLimitIsSet.json new file mode 100644 index 000000000..f4134716b --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldFetchNextMembershipPageWhenStartAndLimitIsSet.json @@ -0,0 +1,1076 @@ +[ + { + "id" : "A6147AB9-821E-47C2-81E4-78DC099F3AA1", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A6147AB9-821E-47C2-81E4-78DC099F3AA1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:22:42 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "A6147AB9-821E-47C2-81E4-78DC099F3AA1", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "A6147AB9-821E-47C2-81E4-78DC099F3AA1", + "type" : 4 + }, + { + "id" : "91A847A8-BB9F-419C-B098-DB16127195EC", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "91A847A8-BB9F-419C-B098-DB16127195EC", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:22:42 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "91A847A8-BB9F-419C-B098-DB16127195EC", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "91A847A8-BB9F-419C-B098-DB16127195EC", + "type" : 4 + }, + { + "id" : "44EA482D-0148-461B-8925-7D64885078F7", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "44EA482D-0148-461B-8925-7D64885078F7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:22:43 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "44EA482D-0148-461B-8925-7D64885078F7", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMjo0Mi45MzA1NzdaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjI6NDIuOTMwNTc3WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "44EA482D-0148-461B-8925-7D64885078F7", + "type" : 4 + }, + { + "id" : "24076658-A9D4-4F13-97C2-EFE9C381C937", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "24076658-A9D4-4F13-97C2-EFE9C381C937", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:22:43 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "24076658-A9D4-4F13-97C2-EFE9C381C937", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMjo0My41MDc4ODRaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjI6NDMuNTA3ODg0WiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "24076658-A9D4-4F13-97C2-EFE9C381C937", + "type" : 4 + }, + { + "id" : "B0D0D212-683C-420E-9FCD-4B4656E4FC15", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "159", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNvbHN0aWNlLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiU29sc3RpY2UiLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMiI6IlNvbHN0aWNlLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiU29sc3RpY2UtY3VzdG9tLWRhdGEtMSJ9fQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B0D0D212-683C-420E-9FCD-4B4656E4FC15", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:22:44 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "B0D0D212-683C-420E-9FCD-4B4656E4FC15", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNvbHN0aWNlLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiU29sc3RpY2UiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTEiOiJTb2xzdGljZS1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IlNvbHN0aWNlLWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjI6NDQuMDgyNDE2WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIyOjQ0LjA4MjQxNloiLCJlVGFnIjoiQWN1QnhMcTB4TU9hb3dFIn19" + }, + "type" : 2 + }, + { + "id" : "B0D0D212-683C-420E-9FCD-4B4656E4FC15", + "type" : 4 + }, + { + "id" : "CE9AAA82-4B2C-45A7-B4D7-C7079AE40905", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "159", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiTWlkbmlnaHQiLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMiI6Ik1pZG5pZ2h0LWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiTWlkbmlnaHQtY3VzdG9tLWRhdGEtMSJ9fQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "CE9AAA82-4B2C-45A7-B4D7-C7079AE40905", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:22:45 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "CE9AAA82-4B2C-45A7-B4D7-C7079AE40905", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiTWlkbmlnaHQiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTEiOiJNaWRuaWdodC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6Ik1pZG5pZ2h0LWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjI6NDQuNzMyODQ4WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIyOjQ0LjczMjg0OFoiLCJlVGFnIjoiQVpIRjQ3WEYyYU9pcEFFIn19" + }, + "type" : 2 + }, + { + "id" : "CE9AAA82-4B2C-45A7-B4D7-C7079AE40905", + "type" : 4 + }, + { + "id" : "8E236885-CAA2-46F9-A44C-AB4DD5A5333D", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "143", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6Ild5bm4tc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJXeW5uIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJXeW5uLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiV3lubi1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "8E236885-CAA2-46F9-A44C-AB4DD5A5333D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:22:45 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "8E236885-CAA2-46F9-A44C-AB4DD5A5333D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6Ild5bm4tc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJXeW5uIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiV3lubi1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6Ild5bm4tY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMjo0NS4zMDg5MDJaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjI6NDUuMzA4OTAyWiIsImVUYWciOiJBZXVHM0l5dzVKejFCUSJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "8E236885-CAA2-46F9-A44C-AB4DD5A5333D", + "type" : 4 + }, + { + "id" : "043B7581-947D-4D9D-9952-8C460EF48CA9", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "163", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNub3dmbGFrZS1zcGFjZS1pZGVudGlmaWVyIiwibmFtZSI6IlNub3dmbGFrZSIsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20yIjoiU25vd2ZsYWtlLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiU25vd2ZsYWtlLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "043B7581-947D-4D9D-9952-8C460EF48CA9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:22:46 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "043B7581-947D-4D9D-9952-8C460EF48CA9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNub3dmbGFrZS1zcGFjZS1pZGVudGlmaWVyIiwibmFtZSI6IlNub3dmbGFrZSIsImRlc2NyaXB0aW9uIjpudWxsLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMSI6IlNub3dmbGFrZS1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IlNub3dmbGFrZS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIyOjQ1Ljg4MzM4NVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMjo0NS44ODMzODVaIiwiZVRhZyI6IkFZZk82OTNCajhLWVlBIn19" + }, + "type" : 2 + }, + { + "id" : "043B7581-947D-4D9D-9952-8C460EF48CA9", + "type" : 4 + }, + { + "id" : "DC11A82C-AEE2-4D93-890C-CEB26D5DFCE4", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "DC11A82C-AEE2-4D93-890C-CEB26D5DFCE4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:22:47 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "DC11A82C-AEE2-4D93-890C-CEB26D5DFCE4", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIyOjQ3LjQ4Nzg1MloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMjo0Ny40ODc4NTJaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "DC11A82C-AEE2-4D93-890C-CEB26D5DFCE4", + "type" : 4 + }, + { + "id" : "720E0E67-DE5E-49AC-BF90-64D36921CDC0", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "298", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciJ9LHsiaWQiOiJTb2xzdGljZS1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIifSx7ImlkIjoiV3lubi1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IlNub3dmbGFrZS1zcGFjZS1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "720E0E67-DE5E-49AC-BF90-64D36921CDC0", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:22:53 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "720E0E67-DE5E-49AC-BF90-64D36921CDC0", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJjdXN0b20iOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIyOjQ5LjQ4NTIzWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIyOjQ5LjQ4NTIzWiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9LHsiaWQiOiJDaGlwcGVyLXNwYWNlLWlkZW50aWZpZXIiLCJjdXN0b20iOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIyOjUwLjE3NzI0NloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMjo1MC4xNzcyNDZaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IlNvbHN0aWNlLXNwYWNlLWlkZW50aWZpZXIiLCJjdXN0b20iOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIyOjUwLjg2ODczNVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMjo1MC44Njg3MzVaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIiLCJjdXN0b20iOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIyOjUxLjU2MDUzNFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMjo1MS41NjA1MzRaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6Ild5bm4tc3BhY2UtaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjI6NTIuMjUyMTQ5WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIyOjUyLjI1MjE0OVoiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiU25vd2ZsYWtlLXNwYWNlLWlkZW50aWZpZXIiLCJjdXN0b20iOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIyOjUyLjk0MzgyOFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMjo1Mi45NDM4MjhaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn1dLCJuZXh0IjoiTmcifQ==" + }, + "type" : 2 + }, + { + "id" : "720E0E67-DE5E-49AC-BF90-64D36921CDC0", + "type" : 4 + }, + { + "id" : "3D5E447C-EA64-488A-AFBB-269165ECA999", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?count=1&pnsdk=PubNub-ObjC-iOS\/4.x.x&limit=4&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "3D5E447C-EA64-488A-AFBB-269165ECA999", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?count=1&pnsdk=PubNub-ObjC-iOS\/4.x.x&limit=4&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:22:55 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "3D5E447C-EA64-488A-AFBB-269165ECA999", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMjo0OS40ODUyM1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMjo0OS40ODUyM1oiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiQ2hpcHBlci1zcGFjZS1pZGVudGlmaWVyIiwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjI6NTAuMTc3MjQ2WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIyOjUwLjE3NzI0NloiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiU29sc3RpY2Utc3BhY2UtaWRlbnRpZmllciIsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIyOjUwLjg2ODczNVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMjo1MC44Njg3MzVaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIiLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMjo1MS41NjA1MzRaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjI6NTEuNTYwNTM0WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9XSwidG90YWxDb3VudCI6NiwibmV4dCI6Ik5BIn0=" + }, + "type" : 2 + }, + { + "id" : "3D5E447C-EA64-488A-AFBB-269165ECA999", + "type" : 4 + }, + { + "id" : "24F7D557-9168-4D43-81D3-41D9594D587D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?start=NA&count=1&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&limit=100" + }, + "type" : 0 + }, + { + "id" : "24F7D557-9168-4D43-81D3-41D9594D587D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?start=NA&count=1&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&limit=100", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:22:55 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "24F7D557-9168-4D43-81D3-41D9594D587D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJXeW5uLXNwYWNlLWlkZW50aWZpZXIiLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMjo1Mi4yNTIxNDlaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjI6NTIuMjUyMTQ5WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9LHsiaWQiOiJTbm93Zmxha2Utc3BhY2UtaWRlbnRpZmllciIsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIyOjUyLjk0MzgyOFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMjo1Mi45NDM4MjhaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn1dLCJ0b3RhbENvdW50Ijo2LCJuZXh0IjoiTmciLCJwcmV2IjoiTkEifQ==" + }, + "type" : 2 + }, + { + "id" : "24F7D557-9168-4D43-81D3-41D9594D587D", + "type" : 4 + }, + { + "id" : "17EB37EB-420D-4415-A4C6-85EA2C369EFB", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "301", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciJ9LHsiaWQiOiJTb2xzdGljZS1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIifSx7ImlkIjoiV3lubi1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IlNub3dmbGFrZS1zcGFjZS1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "17EB37EB-420D-4415-A4C6-85EA2C369EFB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:22:58 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "17EB37EB-420D-4415-A4C6-85EA2C369EFB", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "17EB37EB-420D-4415-A4C6-85EA2C369EFB", + "type" : 4 + }, + { + "id" : "9C66805E-D88B-4E04-8CF6-CC10BEB31D19", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9C66805E-D88B-4E04-8CF6-CC10BEB31D19", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:22:59 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "9C66805E-D88B-4E04-8CF6-CC10BEB31D19", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "9C66805E-D88B-4E04-8CF6-CC10BEB31D19", + "type" : 4 + }, + { + "id" : "68D97FC6-DD22-4C1F-AE44-BF37B5C32AE5", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "68D97FC6-DD22-4C1F-AE44-BF37B5C32AE5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:23:00 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "68D97FC6-DD22-4C1F-AE44-BF37B5C32AE5", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "68D97FC6-DD22-4C1F-AE44-BF37B5C32AE5", + "type" : 4 + }, + { + "id" : "B6236873-7A8B-47FE-9CF1-8D8865AC97EE", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B6236873-7A8B-47FE-9CF1-8D8865AC97EE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:23:01 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "B6236873-7A8B-47FE-9CF1-8D8865AC97EE", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "B6236873-7A8B-47FE-9CF1-8D8865AC97EE", + "type" : 4 + }, + { + "id" : "FF2916FF-7134-4214-BE86-41C0DC36062E", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Solstice-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "FF2916FF-7134-4214-BE86-41C0DC36062E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Solstice-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:23:01 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "FF2916FF-7134-4214-BE86-41C0DC36062E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "FF2916FF-7134-4214-BE86-41C0DC36062E", + "type" : 4 + }, + { + "id" : "EAA7B2F5-328A-4DB6-AAD9-6CE74B30CD6E", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Midnight-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "EAA7B2F5-328A-4DB6-AAD9-6CE74B30CD6E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Midnight-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:23:02 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "EAA7B2F5-328A-4DB6-AAD9-6CE74B30CD6E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "EAA7B2F5-328A-4DB6-AAD9-6CE74B30CD6E", + "type" : 4 + }, + { + "id" : "D774E47D-2956-4ABB-96E0-CCCCE2AAEEB2", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Wynn-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D774E47D-2956-4ABB-96E0-CCCCE2AAEEB2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Wynn-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:23:03 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "D774E47D-2956-4ABB-96E0-CCCCE2AAEEB2", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "D774E47D-2956-4ABB-96E0-CCCCE2AAEEB2", + "type" : 4 + }, + { + "id" : "8A9B1E38-B981-47B1-95B7-DAD6DFBE6E12", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Snowflake-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "8A9B1E38-B981-47B1-95B7-DAD6DFBE6E12", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Snowflake-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:23:03 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "8A9B1E38-B981-47B1-95B7-DAD6DFBE6E12", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "8A9B1E38-B981-47B1-95B7-DAD6DFBE6E12", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldFetchSortedMembershipsWhenSortedIsSet.json b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldFetchSortedMembershipsWhenSortedIsSet.json new file mode 100644 index 000000000..b2a6ddd50 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldFetchSortedMembershipsWhenSortedIsSet.json @@ -0,0 +1,1024 @@ +[ + { + "id" : "24EF33AC-1FDF-4713-946A-E3160948347B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "24EF33AC-1FDF-4713-946A-E3160948347B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:12:56 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "24EF33AC-1FDF-4713-946A-E3160948347B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "24EF33AC-1FDF-4713-946A-E3160948347B", + "type" : 4 + }, + { + "id" : "3A2AF32A-918D-48D7-A5A1-352BB44DA7F7", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3A2AF32A-918D-48D7-A5A1-352BB44DA7F7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:12:56 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "3A2AF32A-918D-48D7-A5A1-352BB44DA7F7", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "3A2AF32A-918D-48D7-A5A1-352BB44DA7F7", + "type" : 4 + }, + { + "id" : "3ABDA3C3-2F27-4A8E-BF25-30FDEA18F144", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3ABDA3C3-2F27-4A8E-BF25-30FDEA18F144", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:12:57 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "3ABDA3C3-2F27-4A8E-BF25-30FDEA18F144", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMToxMjo1Ni45MjYxNTZaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MTI6NTYuOTI2MTU2WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "3ABDA3C3-2F27-4A8E-BF25-30FDEA18F144", + "type" : 4 + }, + { + "id" : "26F86ABF-44C0-421A-B3BA-B2A2A747254D", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "26F86ABF-44C0-421A-B3BA-B2A2A747254D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:12:57 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "26F86ABF-44C0-421A-B3BA-B2A2A747254D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMToxMjo1Ny41MDE1OTRaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MTI6NTcuNTAxNTk0WiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "26F86ABF-44C0-421A-B3BA-B2A2A747254D", + "type" : 4 + }, + { + "id" : "704842BC-F18A-4906-9FCC-97293D228909", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "159", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNvbHN0aWNlLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiU29sc3RpY2UiLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMiI6IlNvbHN0aWNlLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiU29sc3RpY2UtY3VzdG9tLWRhdGEtMSJ9fQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "704842BC-F18A-4906-9FCC-97293D228909", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:12:58 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "704842BC-F18A-4906-9FCC-97293D228909", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNvbHN0aWNlLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiU29sc3RpY2UiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTEiOiJTb2xzdGljZS1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IlNvbHN0aWNlLWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDE6MTI6NTguMDg0MzE3WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEyOjU4LjA4NDMxN1oiLCJlVGFnIjoiQWN1QnhMcTB4TU9hb3dFIn19" + }, + "type" : 2 + }, + { + "id" : "704842BC-F18A-4906-9FCC-97293D228909", + "type" : 4 + }, + { + "id" : "A2CF9CF3-1884-4F00-9BCD-460DFBED44F2", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "159", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiTWlkbmlnaHQiLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMiI6Ik1pZG5pZ2h0LWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiTWlkbmlnaHQtY3VzdG9tLWRhdGEtMSJ9fQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A2CF9CF3-1884-4F00-9BCD-460DFBED44F2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:12:59 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "A2CF9CF3-1884-4F00-9BCD-460DFBED44F2", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiTWlkbmlnaHQiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTEiOiJNaWRuaWdodC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6Ik1pZG5pZ2h0LWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDE6MTI6NTguNzI1MzNaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MTI6NTguNzI1MzNaIiwiZVRhZyI6IkFaSEY0N1hGMmFPaXBBRSJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "A2CF9CF3-1884-4F00-9BCD-460DFBED44F2", + "type" : 4 + }, + { + "id" : "DFA88E01-A6F5-4D84-B212-FF17A55531D3", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "143", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6Ild5bm4tc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJXeW5uIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJXeW5uLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiV3lubi1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "DFA88E01-A6F5-4D84-B212-FF17A55531D3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:12:59 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "DFA88E01-A6F5-4D84-B212-FF17A55531D3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6Ild5bm4tc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJXeW5uIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiV3lubi1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6Ild5bm4tY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMToxMjo1OS4zMzkyMjFaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MTI6NTkuMzM5MjIxWiIsImVUYWciOiJBZXVHM0l5dzVKejFCUSJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "DFA88E01-A6F5-4D84-B212-FF17A55531D3", + "type" : 4 + }, + { + "id" : "E3643B74-05F4-4116-9580-B569DFCDF893", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "163", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNub3dmbGFrZS1zcGFjZS1pZGVudGlmaWVyIiwibmFtZSI6IlNub3dmbGFrZSIsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20yIjoiU25vd2ZsYWtlLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiU25vd2ZsYWtlLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E3643B74-05F4-4116-9580-B569DFCDF893", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:13:00 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "E3643B74-05F4-4116-9580-B569DFCDF893", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNub3dmbGFrZS1zcGFjZS1pZGVudGlmaWVyIiwibmFtZSI6IlNub3dmbGFrZSIsImRlc2NyaXB0aW9uIjpudWxsLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMSI6IlNub3dmbGFrZS1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IlNub3dmbGFrZS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEyOjU5LjkyMDI1OVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMToxMjo1OS45MjAyNTlaIiwiZVRhZyI6IkFZZk82OTNCajhLWVlBIn19" + }, + "type" : 2 + }, + { + "id" : "E3643B74-05F4-4116-9580-B569DFCDF893", + "type" : 4 + }, + { + "id" : "158BC022-D75D-4437-AB2F-C7CBAC7065F7", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "158BC022-D75D-4437-AB2F-C7CBAC7065F7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:13:02 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "158BC022-D75D-4437-AB2F-C7CBAC7065F7", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEzOjAxLjUxNDY4NFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMToxMzowMS41MTQ2ODRaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "158BC022-D75D-4437-AB2F-C7CBAC7065F7", + "type" : 4 + }, + { + "id" : "E08F4F11-E425-44A1-88EE-0377ED8A83FE", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "298", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciJ9LHsiaWQiOiJTb2xzdGljZS1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIifSx7ImlkIjoiV3lubi1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IlNub3dmbGFrZS1zcGFjZS1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=space,custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E08F4F11-E425-44A1-88EE-0377ED8A83FE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=space,custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:13:07 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "E08F4F11-E425-44A1-88EE-0377ED8A83FE", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJjdXN0b20iOm51bGwsInNwYWNlIjp7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIiwibmFtZSI6IkNoYW50ZWQiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDE6MTI6NTYuOTI2MTU2WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEyOjU2LjkyNjE1NloiLCJlVGFnIjoiQWNXajlPVFF3TWFtcFFFIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEzOjAzLjUxNzM4OVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMToxMzowMy41MTczODlaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwic3BhY2UiOnsiaWQiOiJDaGlwcGVyLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiQ2hpcHBlciIsImRlc2NyaXB0aW9uIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMToxMjo1Ny41MDE1OTRaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MTI6NTcuNTAxNTk0WiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMToxMzowNC4yMTM2ODRaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MTM6MDQuMjEzNjg0WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9LHsiaWQiOiJTb2xzdGljZS1zcGFjZS1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJzcGFjZSI6eyJpZCI6IlNvbHN0aWNlLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiU29sc3RpY2UiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDE6MTI6NTguMDg0MzE3WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEyOjU4LjA4NDMxN1oiLCJlVGFnIjoiQWN1QnhMcTB4TU9hb3dFIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEzOjA0LjkwOTY0M1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMToxMzowNC45MDk2NDNaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIiLCJjdXN0b20iOm51bGwsInNwYWNlIjp7ImlkIjoiTWlkbmlnaHQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJNaWRuaWdodCIsImRlc2NyaXB0aW9uIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMToxMjo1OC43MjUzM1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMToxMjo1OC43MjUzM1oiLCJlVGFnIjoiQVpIRjQ3WEYyYU9pcEFFIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEzOjA1LjYwNTcyOFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMToxMzowNS42MDU3MjhaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6Ild5bm4tc3BhY2UtaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwic3BhY2UiOnsiaWQiOiJXeW5uLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiV3lubiIsImRlc2NyaXB0aW9uIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMToxMjo1OS4zMzkyMjFaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MTI6NTkuMzM5MjIxWiIsImVUYWciOiJBZXVHM0l5dzVKejFCUSJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMToxMzowNi4zMDIxODdaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MTM6MDYuMzAyMTg3WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9LHsiaWQiOiJTbm93Zmxha2Utc3BhY2UtaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwic3BhY2UiOnsiaWQiOiJTbm93Zmxha2Utc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJTbm93Zmxha2UiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDE6MTI6NTkuOTIwMjU5WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEyOjU5LjkyMDI1OVoiLCJlVGFnIjoiQVlmTzY5M0JqOEtZWUEifSwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDE6MTM6MDYuOTk4MDYzWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEzOjA2Ljk5ODA2M1oiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifV0sIm5leHQiOiJOZyJ9" + }, + "type" : 2 + }, + { + "id" : "E08F4F11-E425-44A1-88EE-0377ED8A83FE", + "type" : 4 + }, + { + "id" : "456F4E77-5785-4CF3-8C7B-53AB077469C2", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?sort=space.name:desc,created&count=1&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&include=space&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "456F4E77-5785-4CF3-8C7B-53AB077469C2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?sort=space.name:desc,created&count=1&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&include=space&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:13:09 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "456F4E77-5785-4CF3-8C7B-53AB077469C2", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJXeW5uLXNwYWNlLWlkZW50aWZpZXIiLCJzcGFjZSI6eyJpZCI6Ild5bm4tc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJXeW5uIiwiZGVzY3JpcHRpb24iOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEyOjU5LjMzOTIyMVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMToxMjo1OS4zMzkyMjFaIiwiZVRhZyI6IkFldUczSXl3NUp6MUJRIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEzOjA2LjMwMjE4N1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMToxMzowNi4zMDIxODdaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IlNvbHN0aWNlLXNwYWNlLWlkZW50aWZpZXIiLCJzcGFjZSI6eyJpZCI6IlNvbHN0aWNlLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiU29sc3RpY2UiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDE6MTI6NTguMDg0MzE3WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEyOjU4LjA4NDMxN1oiLCJlVGFnIjoiQWN1QnhMcTB4TU9hb3dFIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEzOjA0LjkwOTY0M1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMToxMzowNC45MDk2NDNaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IlNub3dmbGFrZS1zcGFjZS1pZGVudGlmaWVyIiwic3BhY2UiOnsiaWQiOiJTbm93Zmxha2Utc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJTbm93Zmxha2UiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDE6MTI6NTkuOTIwMjU5WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEyOjU5LjkyMDI1OVoiLCJlVGFnIjoiQVlmTzY5M0JqOEtZWUEifSwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDE6MTM6MDYuOTk4MDYzWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEzOjA2Ljk5ODA2M1oiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiTWlkbmlnaHQtc3BhY2UtaWRlbnRpZmllciIsInNwYWNlIjp7ImlkIjoiTWlkbmlnaHQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJNaWRuaWdodCIsImRlc2NyaXB0aW9uIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMToxMjo1OC43MjUzM1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMToxMjo1OC43MjUzM1oiLCJlVGFnIjoiQVpIRjQ3WEYyYU9pcEFFIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEzOjA1LjYwNTcyOFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMToxMzowNS42MDU3MjhaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsInNwYWNlIjp7ImlkIjoiQ2hpcHBlci1zcGFjZS1pZGVudGlmaWVyIiwibmFtZSI6IkNoaXBwZXIiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDE6MTI6NTcuNTAxNTk0WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEyOjU3LjUwMTU5NFoiLCJlVGFnIjoiQVpyRjY0YjlpTnltSXcifSwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDE6MTM6MDQuMjEzNjg0WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEzOjA0LjIxMzY4NFoiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIiwic3BhY2UiOnsiaWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiQ2hhbnRlZCIsImRlc2NyaXB0aW9uIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMToxMjo1Ni45MjYxNTZaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MTI6NTYuOTI2MTU2WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifSwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDE6MTM6MDMuNTE3Mzg5WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAxOjEzOjAzLjUxNzM4OVoiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifV0sInRvdGFsQ291bnQiOjYsIm5leHQiOiJOZyJ9" + }, + "type" : 2 + }, + { + "id" : "456F4E77-5785-4CF3-8C7B-53AB077469C2", + "type" : 4 + }, + { + "id" : "51F9B4E4-D035-41E7-954A-414F1B17B06C", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "301", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciJ9LHsiaWQiOiJTb2xzdGljZS1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIifSx7ImlkIjoiV3lubi1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IlNub3dmbGFrZS1zcGFjZS1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "51F9B4E4-D035-41E7-954A-414F1B17B06C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:13:11 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "51F9B4E4-D035-41E7-954A-414F1B17B06C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "51F9B4E4-D035-41E7-954A-414F1B17B06C", + "type" : 4 + }, + { + "id" : "9AE13547-A7C0-4EEB-B2BE-2B77B324662B", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9AE13547-A7C0-4EEB-B2BE-2B77B324662B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:13:12 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "9AE13547-A7C0-4EEB-B2BE-2B77B324662B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "9AE13547-A7C0-4EEB-B2BE-2B77B324662B", + "type" : 4 + }, + { + "id" : "D5099B0E-7790-487C-B915-AFBB51FACEC2", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D5099B0E-7790-487C-B915-AFBB51FACEC2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:13:14 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "D5099B0E-7790-487C-B915-AFBB51FACEC2", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "D5099B0E-7790-487C-B915-AFBB51FACEC2", + "type" : 4 + }, + { + "id" : "292B97C4-C9CB-4584-B2D0-BA321EC8E12F", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "292B97C4-C9CB-4584-B2D0-BA321EC8E12F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:13:14 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "292B97C4-C9CB-4584-B2D0-BA321EC8E12F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "292B97C4-C9CB-4584-B2D0-BA321EC8E12F", + "type" : 4 + }, + { + "id" : "0D7778E3-7375-4DE1-8BE6-5D323ABB72C3", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Solstice-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "0D7778E3-7375-4DE1-8BE6-5D323ABB72C3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Solstice-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:13:15 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "0D7778E3-7375-4DE1-8BE6-5D323ABB72C3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "0D7778E3-7375-4DE1-8BE6-5D323ABB72C3", + "type" : 4 + }, + { + "id" : "C7C42959-EBC7-4E64-BCF1-7540C0B80D4A", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Midnight-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C7C42959-EBC7-4E64-BCF1-7540C0B80D4A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Midnight-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:13:15 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "C7C42959-EBC7-4E64-BCF1-7540C0B80D4A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "C7C42959-EBC7-4E64-BCF1-7540C0B80D4A", + "type" : 4 + }, + { + "id" : "AABB674C-A83D-4F6D-9330-61E2F0A36D0B", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Wynn-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "AABB674C-A83D-4F6D-9330-61E2F0A36D0B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Wynn-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:13:16 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "AABB674C-A83D-4F6D-9330-61E2F0A36D0B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "AABB674C-A83D-4F6D-9330-61E2F0A36D0B", + "type" : 4 + }, + { + "id" : "256DFE9C-EFEF-49D8-A981-107DA633C9B4", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Snowflake-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "256DFE9C-EFEF-49D8-A981-107DA633C9B4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Snowflake-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:13:16 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "256DFE9C-EFEF-49D8-A981-107DA633C9B4", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "256DFE9C-EFEF-49D8-A981-107DA633C9B4", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldNotCreateMembershipWhenUserAlreadyHasMembershipWithTargetSpace.json b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldNotCreateMembershipWhenUserAlreadyHasMembershipWithTargetSpace.json new file mode 100644 index 000000000..a8f68a543 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldNotCreateMembershipWhenUserAlreadyHasMembershipWithTargetSpace.json @@ -0,0 +1,704 @@ +[ + { + "id" : "18E264F6-32F1-4AD2-9B07-73FBA2F480E9", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "18E264F6-32F1-4AD2-9B07-73FBA2F480E9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:23:05 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "18E264F6-32F1-4AD2-9B07-73FBA2F480E9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "18E264F6-32F1-4AD2-9B07-73FBA2F480E9", + "type" : 4 + }, + { + "id" : "F02BB398-399E-4499-B575-0C063FC41E92", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F02BB398-399E-4499-B575-0C063FC41E92", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:23:06 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "F02BB398-399E-4499-B575-0C063FC41E92", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "F02BB398-399E-4499-B575-0C063FC41E92", + "type" : 4 + }, + { + "id" : "85EDAAC7-853B-46A5-80EC-ABB7EE5C3034", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "85EDAAC7-853B-46A5-80EC-ABB7EE5C3034", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:23:06 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "85EDAAC7-853B-46A5-80EC-ABB7EE5C3034", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMzowNi4xOTI3NDVaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjM6MDYuMTkyNzQ1WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "85EDAAC7-853B-46A5-80EC-ABB7EE5C3034", + "type" : 4 + }, + { + "id" : "F157740D-89C5-4E7C-A7DA-2EA0A41555B8", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F157740D-89C5-4E7C-A7DA-2EA0A41555B8", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:23:07 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "F157740D-89C5-4E7C-A7DA-2EA0A41555B8", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMzowNi44NTAyNjZaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjM6MDYuODUwMjY2WiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "F157740D-89C5-4E7C-A7DA-2EA0A41555B8", + "type" : 4 + }, + { + "id" : "AB5CB91D-48A2-4057-8B42-D0EE275855D4", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "AB5CB91D-48A2-4057-8B42-D0EE275855D4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:23:08 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "AB5CB91D-48A2-4057-8B42-D0EE275855D4", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIzOjA4LjQ0NTkwMloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMzowOC40NDU5MDJaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "AB5CB91D-48A2-4057-8B42-D0EE275855D4", + "type" : 4 + }, + { + "id" : "6B567591-982E-4873-BA91-7CD290605ADD", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "105", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=space,space.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "6B567591-982E-4873-BA91-7CD290605ADD", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=space,space.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:23:11 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "6B567591-982E-4873-BA91-7CD290605ADD", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJzcGFjZSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMzowNi4xOTI3NDVaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjM6MDYuMTkyNzQ1WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjM6MTAuNDU0MzY2WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIzOjEwLjQ1NDM2NloiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiQ2hpcHBlci1zcGFjZS1pZGVudGlmaWVyIiwic3BhY2UiOnsiaWQiOiJDaGlwcGVyLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiQ2hpcHBlciIsImRlc2NyaXB0aW9uIjpudWxsLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMSI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMSIsInNwYWNlLWN1c3RvbTIiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjM6MDYuODUwMjY2WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIzOjA2Ljg1MDI2NloiLCJlVGFnIjoiQVpyRjY0YjlpTnltSXcifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjM6MTEuMTQ4NjY5WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIzOjExLjE0ODY2OVoiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifV0sIm5leHQiOiJNZyJ9" + }, + "type" : 2 + }, + { + "id" : "6B567591-982E-4873-BA91-7CD290605ADD", + "type" : 4 + }, + { + "id" : "166BE5F4-DC9C-4CDA-957A-66FDC78F92C8", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "57", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=space,space.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "166BE5F4-DC9C-4CDA-957A-66FDC78F92C8", + "data" : { + "status" : 400, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=space,space.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:23:12 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "202", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "166BE5F4-DC9C-4CDA-957A-66FDC78F92C8", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjQwMCwiZXJyb3IiOnsibWVzc2FnZSI6IkludmFsaWQgcmVxdWVzdCBpbnB1dC4iLCJzb3VyY2UiOiJvYmplY3RzIiwiZGV0YWlscyI6W3sibWVzc2FnZSI6IlVzZXIgaXMgYWxyZWFkeSBhIG1lbWJlciBvZiBzcGFjZSB3aXRoIHNwZWNpZmllZCBpZC4iLCJsb2NhdGlvbiI6ImFkZFswXS5pZCIsImxvY2F0aW9uVHlwZSI6ImJvZHkifV19fQ==" + }, + "type" : 2 + }, + { + "id" : "166BE5F4-DC9C-4CDA-957A-66FDC78F92C8", + "type" : 4 + }, + { + "id" : "32349D31-A0D8-4210-9B0F-24FDA9E8B9A7", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "57", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn1dfQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=space,space.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "32349D31-A0D8-4210-9B0F-24FDA9E8B9A7", + "data" : { + "status" : 400, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=space,space.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:23:13 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "202", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "32349D31-A0D8-4210-9B0F-24FDA9E8B9A7", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjQwMCwiZXJyb3IiOnsibWVzc2FnZSI6IkludmFsaWQgcmVxdWVzdCBpbnB1dC4iLCJzb3VyY2UiOiJvYmplY3RzIiwiZGV0YWlscyI6W3sibWVzc2FnZSI6IlVzZXIgaXMgYWxyZWFkeSBhIG1lbWJlciBvZiBzcGFjZSB3aXRoIHNwZWNpZmllZCBpZC4iLCJsb2NhdGlvbiI6ImFkZFswXS5pZCIsImxvY2F0aW9uVHlwZSI6ImJvZHkifV19fQ==" + }, + "type" : 2 + }, + { + "id" : "32349D31-A0D8-4210-9B0F-24FDA9E8B9A7", + "type" : 4 + }, + { + "id" : "F42CA391-69CE-466E-9746-544952E98D51", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F42CA391-69CE-466E-9746-544952E98D51", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:23:13 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "F42CA391-69CE-466E-9746-544952E98D51", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMzoxMC40NTQzNjZaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjM6MTAuNDU0MzY2WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9LHsiaWQiOiJDaGlwcGVyLXNwYWNlLWlkZW50aWZpZXIiLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMzoxMS4xNDg2NjlaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjM6MTEuMTQ4NjY5WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9XSwibmV4dCI6Ik1nIn0=" + }, + "type" : 2 + }, + { + "id" : "F42CA391-69CE-466E-9746-544952E98D51", + "type" : 4 + }, + { + "id" : "721606B2-203F-4118-94D4-5049ABC09715", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "108", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "721606B2-203F-4118-94D4-5049ABC09715", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:23:16 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "721606B2-203F-4118-94D4-5049ABC09715", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "721606B2-203F-4118-94D4-5049ABC09715", + "type" : 4 + }, + { + "id" : "904FCB49-D68D-476C-9838-560E6FF442A2", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "904FCB49-D68D-476C-9838-560E6FF442A2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:23:16 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "904FCB49-D68D-476C-9838-560E6FF442A2", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "904FCB49-D68D-476C-9838-560E6FF442A2", + "type" : 4 + }, + { + "id" : "7DCB8B4D-7671-4D1C-BC6D-8434DC7E8E2F", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "7DCB8B4D-7671-4D1C-BC6D-8434DC7E8E2F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:23:18 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "7DCB8B4D-7671-4D1C-BC6D-8434DC7E8E2F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "7DCB8B4D-7671-4D1C-BC6D-8434DC7E8E2F", + "type" : 4 + }, + { + "id" : "DB0488E8-5F1A-4C43-A085-0DA44CECC0AB", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "DB0488E8-5F1A-4C43-A085-0DA44CECC0AB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:23:19 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "DB0488E8-5F1A-4C43-A085-0DA44CECC0AB", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "DB0488E8-5F1A-4C43-A085-0DA44CECC0AB", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldNotFetchMembershipsWhenUserObjectNotExists.json b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldNotFetchMembershipsWhenUserObjectNotExists.json new file mode 100644 index 000000000..55f7638be --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldNotFetchMembershipsWhenUserObjectNotExists.json @@ -0,0 +1,202 @@ +[ + { + "id" : "ED21B8B0-94C2-4F9E-89C3-E6587374818A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "ED21B8B0-94C2-4F9E-89C3-E6587374818A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:23:21 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "ED21B8B0-94C2-4F9E-89C3-E6587374818A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "ED21B8B0-94C2-4F9E-89C3-E6587374818A", + "type" : 4 + }, + { + "id" : "A9F44632-9835-4782-A3E4-4B3959F14782", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A9F44632-9835-4782-A3E4-4B3959F14782", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:23:21 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "A9F44632-9835-4782-A3E4-4B3959F14782", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "A9F44632-9835-4782-A3E4-4B3959F14782", + "type" : 4 + }, + { + "id" : "2CD8B191-6C52-43EE-8C3C-8AAE563CFD3A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/not-existing-user\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2CD8B191-6C52-43EE-8C3C-8AAE563CFD3A", + "data" : { + "status" : 404, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/not-existing-user\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:23:21 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "87", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "2CD8B191-6C52-43EE-8C3C-8AAE563CFD3A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjQwNCwiZXJyb3IiOnsibWVzc2FnZSI6IlJlcXVlc3RlZCBvYmplY3Qgd2FzIG5vdCBmb3VuZC4iLCJzb3VyY2UiOiJvYmplY3RzIn19" + }, + "type" : 2 + }, + { + "id" : "2CD8B191-6C52-43EE-8C3C-8AAE563CFD3A", + "type" : 4 + }, + { + "id" : "FC9911D1-FC67-47FE-A5D6-9654FF26F707", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/not-existing-user\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "FC9911D1-FC67-47FE-A5D6-9654FF26F707", + "data" : { + "status" : 404, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/not-existing-user\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:23:21 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "87", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "FC9911D1-FC67-47FE-A5D6-9654FF26F707", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjQwNCwiZXJyb3IiOnsibWVzc2FnZSI6IlJlcXVlc3RlZCBvYmplY3Qgd2FzIG5vdCBmb3VuZC4iLCJzb3VyY2UiOiJvYmplY3RzIn19" + }, + "type" : 2 + }, + { + "id" : "FC9911D1-FC67-47FE-A5D6-9654FF26F707", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldNotUpdateMembershipWhenUserNotHaveMembershipWithSpecifiedSpaces.json b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldNotUpdateMembershipWhenUserNotHaveMembershipWithSpecifiedSpaces.json new file mode 100644 index 000000000..6ab7971d7 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldNotUpdateMembershipWhenUserNotHaveMembershipWithSpecifiedSpaces.json @@ -0,0 +1,482 @@ +[ + { + "id" : "6D8FC84A-82DA-44C1-867C-AAB1B81530E3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "6D8FC84A-82DA-44C1-867C-AAB1B81530E3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:23:22 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "6D8FC84A-82DA-44C1-867C-AAB1B81530E3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "6D8FC84A-82DA-44C1-867C-AAB1B81530E3", + "type" : 4 + }, + { + "id" : "34B40B99-9E91-4767-8B7A-76E8596269C2", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "34B40B99-9E91-4767-8B7A-76E8596269C2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:23:23 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "34B40B99-9E91-4767-8B7A-76E8596269C2", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "34B40B99-9E91-4767-8B7A-76E8596269C2", + "type" : 4 + }, + { + "id" : "496718A8-F1B8-46CC-A7C3-469E978C9FDF", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "496718A8-F1B8-46CC-A7C3-469E978C9FDF", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:23:23 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "496718A8-F1B8-46CC-A7C3-469E978C9FDF", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMzoyMy4xNTQ1M1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMzoyMy4xNTQ1M1oiLCJlVGFnIjoiQWNXajlPVFF3TWFtcFFFIn19" + }, + "type" : 2 + }, + { + "id" : "496718A8-F1B8-46CC-A7C3-469E978C9FDF", + "type" : 4 + }, + { + "id" : "E038EC68-812C-47FA-9DAE-1DBC57F32EB0", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E038EC68-812C-47FA-9DAE-1DBC57F32EB0", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:23:24 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "E038EC68-812C-47FA-9DAE-1DBC57F32EB0", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMzoyMy43NDY5NTlaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjM6MjMuNzQ2OTU5WiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "E038EC68-812C-47FA-9DAE-1DBC57F32EB0", + "type" : 4 + }, + { + "id" : "D0D1132E-0F9F-4205-8119-26ABDC6720FF", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D0D1132E-0F9F-4205-8119-26ABDC6720FF", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:23:25 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "D0D1132E-0F9F-4205-8119-26ABDC6720FF", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIzOjI1LjM1NDMxN1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMzoyNS4zNTQzMTdaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "D0D1132E-0F9F-4205-8119-26ABDC6720FF", + "type" : 4 + }, + { + "id" : "0B28AB77-E583-44DD-B961-458A3DE4022F", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "290", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ1cGRhdGUiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIiwiY3VzdG9tIjp7InVzZXItbWVtYmVyc2hpcC1jdXN0b20iOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXItY3VzdG9tLWRhdGEtMSJ9fSx7ImlkIjoiQ2hpcHBlci1zcGFjZS1pZGVudGlmaWVyIiwiY3VzdG9tIjp7InVzZXItbWVtYmVyc2hpcC1jdXN0b20iOiJDaGlwcGVyLXNwYWNlLWlkZW50aWZpZXItY3VzdG9tLWRhdGEtMiJ9fV19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "0B28AB77-E583-44DD-B961-458A3DE4022F", + "data" : { + "status" : 400, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:23:27 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "332", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "0B28AB77-E583-44DD-B961-458A3DE4022F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjQwMCwiZXJyb3IiOnsibWVzc2FnZSI6IkludmFsaWQgcmVxdWVzdCBpbnB1dC4iLCJzb3VyY2UiOiJvYmplY3RzIiwiZGV0YWlscyI6W3sibWVzc2FnZSI6IlVzZXIgaXMgbm90IGFuIGV4aXN0aW5nIG1lbWJlciBvZiBzcGFjZSB3aXRoIHNwZWNpZmllZCBpZC4iLCJsb2NhdGlvbiI6InVwZGF0ZVswXS5pZCIsImxvY2F0aW9uVHlwZSI6ImJvZHkifSx7Im1lc3NhZ2UiOiJVc2VyIGlzIG5vdCBhbiBleGlzdGluZyBtZW1iZXIgb2Ygc3BhY2Ugd2l0aCBzcGVjaWZpZWQgaWQuIiwibG9jYXRpb24iOiJ1cGRhdGVbMV0uaWQiLCJsb2NhdGlvblR5cGUiOiJib2R5In1dfX0=" + }, + "type" : 2 + }, + { + "id" : "0B28AB77-E583-44DD-B961-458A3DE4022F", + "type" : 4 + }, + { + "id" : "A032D92F-9D46-42B1-A1FB-C49A76B19F05", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A032D92F-9D46-42B1-A1FB-C49A76B19F05", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:23:28 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "A032D92F-9D46-42B1-A1FB-C49A76B19F05", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "A032D92F-9D46-42B1-A1FB-C49A76B19F05", + "type" : 4 + }, + { + "id" : "7964781E-C22F-4FF3-AF74-80421B5FAF52", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "7964781E-C22F-4FF3-AF74-80421B5FAF52", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:23:30 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "7964781E-C22F-4FF3-AF74-80421B5FAF52", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "7964781E-C22F-4FF3-AF74-80421B5FAF52", + "type" : 4 + }, + { + "id" : "945F457C-C155-4DDE-B534-1D5C2F263FFD", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "945F457C-C155-4DDE-B534-1D5C2F263FFD", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:23:31 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "945F457C-C155-4DDE-B534-1D5C2F263FFD", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "945F457C-C155-4DDE-B534-1D5C2F263FFD", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldUpdateMembershipAndReceiveStatusWithExpectedOperationAndCategory.json b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldUpdateMembershipAndReceiveStatusWithExpectedOperationAndCategory.json new file mode 100644 index 000000000..78b1b6339 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldUpdateMembershipAndReceiveStatusWithExpectedOperationAndCategory.json @@ -0,0 +1,598 @@ +[ + { + "id" : "7F76BD82-B1D2-4312-A47A-4B043536F823", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "7F76BD82-B1D2-4312-A47A-4B043536F823", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:23:33 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "7F76BD82-B1D2-4312-A47A-4B043536F823", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "7F76BD82-B1D2-4312-A47A-4B043536F823", + "type" : 4 + }, + { + "id" : "E9462132-6E33-48AF-9705-93319ABC3776", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E9462132-6E33-48AF-9705-93319ABC3776", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:23:33 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "E9462132-6E33-48AF-9705-93319ABC3776", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "E9462132-6E33-48AF-9705-93319ABC3776", + "type" : 4 + }, + { + "id" : "A4A3EBBF-E189-41B7-BD00-5AF65ABDAF25", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A4A3EBBF-E189-41B7-BD00-5AF65ABDAF25", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:23:33 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "A4A3EBBF-E189-41B7-BD00-5AF65ABDAF25", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMzozMy4zODIwOTJaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjM6MzMuMzgyMDkyWiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "A4A3EBBF-E189-41B7-BD00-5AF65ABDAF25", + "type" : 4 + }, + { + "id" : "C320A259-E014-46F6-A266-258039F92DAB", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C320A259-E014-46F6-A266-258039F92DAB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:23:34 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "C320A259-E014-46F6-A266-258039F92DAB", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMzozMy45NTk5NjJaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjM6MzMuOTU5OTYyWiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "C320A259-E014-46F6-A266-258039F92DAB", + "type" : 4 + }, + { + "id" : "E23835AF-28EB-41CE-AD6F-77EFD3FBA32D", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E23835AF-28EB-41CE-AD6F-77EFD3FBA32D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:23:36 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "E23835AF-28EB-41CE-AD6F-77EFD3FBA32D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIzOjM1LjYxNzExNFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMzozNS42MTcxMTRaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "E23835AF-28EB-41CE-AD6F-77EFD3FBA32D", + "type" : 4 + }, + { + "id" : "0026576D-BB59-4EC2-8C26-381CB2817507", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "287", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIiwiY3VzdG9tIjp7InVzZXItbWVtYmVyc2hpcC1jdXN0b20iOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXItY3VzdG9tLWRhdGEtMSJ9fSx7ImlkIjoiQ2hpcHBlci1zcGFjZS1pZGVudGlmaWVyIiwiY3VzdG9tIjp7InVzZXItbWVtYmVyc2hpcC1jdXN0b20iOiJDaGlwcGVyLXNwYWNlLWlkZW50aWZpZXItY3VzdG9tLWRhdGEtMiJ9fV19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "0026576D-BB59-4EC2-8C26-381CB2817507", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:23:39 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "0026576D-BB59-4EC2-8C26-381CB2817507", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJjdXN0b20iOnsidXNlci1tZW1iZXJzaGlwLWN1c3RvbSI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllci1jdXN0b20tZGF0YS0xIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIzOjM3LjYyMDkzOVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMzozNy42MjA5MzlaIiwiZVRhZyI6IkFkM2s1NldndStPWjlRRSJ9LHsiaWQiOiJDaGlwcGVyLXNwYWNlLWlkZW50aWZpZXIiLCJjdXN0b20iOnsidXNlci1tZW1iZXJzaGlwLWN1c3RvbSI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllci1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIzOjM4LjMxMjU0M1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMzozOC4zMTI1NDNaIiwiZVRhZyI6IkFZcU9qWm50L0orRlJnIn1dLCJuZXh0IjoiTWcifQ==" + }, + "type" : 2 + }, + { + "id" : "0026576D-BB59-4EC2-8C26-381CB2817507", + "type" : 4 + }, + { + "id" : "53E6BE82-EED7-46F6-BD1C-0FF32267F8FC", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "290", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ1cGRhdGUiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIiwiY3VzdG9tIjp7InVzZXItbWVtYmVyc2hpcC1jdXN0b20iOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXItY3VzdG9tLWRhdGEtMyJ9fSx7ImlkIjoiQ2hpcHBlci1zcGFjZS1pZGVudGlmaWVyIiwiY3VzdG9tIjp7InVzZXItbWVtYmVyc2hpcC1jdXN0b20iOiJDaGlwcGVyLXNwYWNlLWlkZW50aWZpZXItY3VzdG9tLWRhdGEtNCJ9fV19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "53E6BE82-EED7-46F6-BD1C-0FF32267F8FC", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:23:41 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "53E6BE82-EED7-46F6-BD1C-0FF32267F8FC", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJjdXN0b20iOnsidXNlci1tZW1iZXJzaGlwLWN1c3RvbSI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllci1jdXN0b20tZGF0YS0zIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIzOjM3LjYyMDkzOVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMzo0MC43ODg5MjhaIiwiZVRhZyI6IkFlNlJ2UHpldUpiUjh3RSJ9LHsiaWQiOiJDaGlwcGVyLXNwYWNlLWlkZW50aWZpZXIiLCJjdXN0b20iOnsidXNlci1tZW1iZXJzaGlwLWN1c3RvbSI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllci1jdXN0b20tZGF0YS00In0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIzOjM4LjMxMjU0M1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMzo0MS4zMTMyNjNaIiwiZVRhZyI6IkFiQ3ZuZGJlbk9HLzFRRSJ9XSwibmV4dCI6Ik1nIn0=" + }, + "type" : 2 + }, + { + "id" : "53E6BE82-EED7-46F6-BD1C-0FF32267F8FC", + "type" : 4 + }, + { + "id" : "44ACB8C2-D92B-4BA3-9EBD-017D471E2C3E", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "108", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "44ACB8C2-D92B-4BA3-9EBD-017D471E2C3E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:23:43 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "44ACB8C2-D92B-4BA3-9EBD-017D471E2C3E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "44ACB8C2-D92B-4BA3-9EBD-017D471E2C3E", + "type" : 4 + }, + { + "id" : "66A6296D-E05B-41FD-88E2-6138E53A51C0", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "66A6296D-E05B-41FD-88E2-6138E53A51C0", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:23:44 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "66A6296D-E05B-41FD-88E2-6138E53A51C0", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "66A6296D-E05B-41FD-88E2-6138E53A51C0", + "type" : 4 + }, + { + "id" : "B23D0A0D-24FF-406F-8563-CE66D5A60BA4", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B23D0A0D-24FF-406F-8563-CE66D5A60BA4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:23:46 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "B23D0A0D-24FF-406F-8563-CE66D5A60BA4", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "B23D0A0D-24FF-406F-8563-CE66D5A60BA4", + "type" : 4 + }, + { + "id" : "83B012D0-16BC-40FE-8D53-AFEFE4A5C64D", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "83B012D0-16BC-40FE-8D53-AFEFE4A5C64D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:23:47 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "83B012D0-16BC-40FE-8D53-AFEFE4A5C64D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "83B012D0-16BC-40FE-8D53-AFEFE4A5C64D", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldUpdateMembershipAndReturnFilteredSpaceInformationWhenFilterIsSet.json b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldUpdateMembershipAndReturnFilteredSpaceInformationWhenFilterIsSet.json new file mode 100644 index 000000000..13f2219bf --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldUpdateMembershipAndReturnFilteredSpaceInformationWhenFilterIsSet.json @@ -0,0 +1,598 @@ +[ + { + "id" : "BD40E5BF-E310-492E-9459-71456165CE86", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "BD40E5BF-E310-492E-9459-71456165CE86", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:23:49 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "BD40E5BF-E310-492E-9459-71456165CE86", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "BD40E5BF-E310-492E-9459-71456165CE86", + "type" : 4 + }, + { + "id" : "AB95B0C2-6234-456F-8E03-D09D6BAB6671", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "AB95B0C2-6234-456F-8E03-D09D6BAB6671", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:23:49 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "AB95B0C2-6234-456F-8E03-D09D6BAB6671", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "AB95B0C2-6234-456F-8E03-D09D6BAB6671", + "type" : 4 + }, + { + "id" : "1D56545C-0105-4151-BE6C-643952955180", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1D56545C-0105-4151-BE6C-643952955180", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:23:49 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "1D56545C-0105-4151-BE6C-643952955180", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMzo0OS4zOTkyMjNaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjM6NDkuMzk5MjIzWiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "1D56545C-0105-4151-BE6C-643952955180", + "type" : 4 + }, + { + "id" : "30760AC5-D5B8-41DB-AFAC-D5B68B7B308E", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "30760AC5-D5B8-41DB-AFAC-D5B68B7B308E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:23:50 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "30760AC5-D5B8-41DB-AFAC-D5B68B7B308E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMzo1MC4wNjIxMDFaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjM6NTAuMDYyMTAxWiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "30760AC5-D5B8-41DB-AFAC-D5B68B7B308E", + "type" : 4 + }, + { + "id" : "2B124EBA-C1AE-4AD3-904B-62B132B2FD18", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2B124EBA-C1AE-4AD3-904B-62B132B2FD18", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:23:52 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "2B124EBA-C1AE-4AD3-904B-62B132B2FD18", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIzOjUxLjY2OTc4NVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMzo1MS42Njk3ODVaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "2B124EBA-C1AE-4AD3-904B-62B132B2FD18", + "type" : 4 + }, + { + "id" : "B0C40E41-A8F5-48DB-B840-45C8290BAC88", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "105", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B0C40E41-A8F5-48DB-B840-45C8290BAC88", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:23:55 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "B0C40E41-A8F5-48DB-B840-45C8290BAC88", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJjdXN0b20iOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIzOjUzLjY3NDE3OFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMzo1My42NzQxNzhaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjM6NTQuMzY4NDQ5WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjIzOjU0LjM2ODQ0OVoiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifV0sIm5leHQiOiJNZyJ9" + }, + "type" : 2 + }, + { + "id" : "B0C40E41-A8F5-48DB-B840-45C8290BAC88", + "type" : 4 + }, + { + "id" : "C9FEBCC2-7917-4233-A2C3-0C63D55C6838", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "290", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ1cGRhdGUiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIiwiY3VzdG9tIjp7InVzZXItbWVtYmVyc2hpcC1jdXN0b20iOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXItY3VzdG9tLWRhdGEtMSJ9fSx7ImlkIjoiQ2hpcHBlci1zcGFjZS1pZGVudGlmaWVyIiwiY3VzdG9tIjp7InVzZXItbWVtYmVyc2hpcC1jdXN0b20iOiJDaGlwcGVyLXNwYWNlLWlkZW50aWZpZXItY3VzdG9tLWRhdGEtMiJ9fV19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?filter=space.name%20like%20'Chi*'&count=1&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&include=space,space.custom&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "C9FEBCC2-7917-4233-A2C3-0C63D55C6838", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?filter=space.name%20like%20'Chi*'&count=1&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&include=space,space.custom&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:23:57 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "C9FEBCC2-7917-4233-A2C3-0C63D55C6838", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGlwcGVyLXNwYWNlLWlkZW50aWZpZXIiLCJzcGFjZSI6eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMzo1MC4wNjIxMDFaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjM6NTAuMDYyMTAxWiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyMzo1NC4zNjg0NDlaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjM6NTcuMzYxNDEyWiIsImVUYWciOiJBZnJZL05HNzNlUENRQSJ9XSwidG90YWxDb3VudCI6MSwibmV4dCI6Ik1RIn0=" + }, + "type" : 2 + }, + { + "id" : "C9FEBCC2-7917-4233-A2C3-0C63D55C6838", + "type" : 4 + }, + { + "id" : "1AAD8F20-732D-41DD-B173-32DCC86C7FB6", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "108", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1AAD8F20-732D-41DD-B173-32DCC86C7FB6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:24:00 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "1AAD8F20-732D-41DD-B173-32DCC86C7FB6", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "1AAD8F20-732D-41DD-B173-32DCC86C7FB6", + "type" : 4 + }, + { + "id" : "12B99A8D-9C87-43E2-8245-98C4E46CA0CE", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "12B99A8D-9C87-43E2-8245-98C4E46CA0CE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:24:01 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "12B99A8D-9C87-43E2-8245-98C4E46CA0CE", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "12B99A8D-9C87-43E2-8245-98C4E46CA0CE", + "type" : 4 + }, + { + "id" : "D9315240-6D91-4813-BFD1-885BDD07CFE9", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D9315240-6D91-4813-BFD1-885BDD07CFE9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:24:02 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "D9315240-6D91-4813-BFD1-885BDD07CFE9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "D9315240-6D91-4813-BFD1-885BDD07CFE9", + "type" : 4 + }, + { + "id" : "25518695-4B63-48FC-9EAA-B799F101FDE4", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "25518695-4B63-48FC-9EAA-B799F101FDE4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:24:03 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "25518695-4B63-48FC-9EAA-B799F101FDE4", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "25518695-4B63-48FC-9EAA-B799F101FDE4", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldUpdateMembershipAndReturnSortedSpaceInformationWhenSortIsSet.json b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldUpdateMembershipAndReturnSortedSpaceInformationWhenSortIsSet.json new file mode 100644 index 000000000..1f8e1b200 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldUpdateMembershipAndReturnSortedSpaceInformationWhenSortIsSet.json @@ -0,0 +1,814 @@ +[ + { + "id" : "FEB5B613-ABA2-44C1-A9DA-275D20A783C2", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "FEB5B613-ABA2-44C1-A9DA-275D20A783C2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 00:53:25 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "FEB5B613-ABA2-44C1-A9DA-275D20A783C2", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "FEB5B613-ABA2-44C1-A9DA-275D20A783C2", + "type" : 4 + }, + { + "id" : "2F207EF0-6691-4105-8629-90D3F95D9F51", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2F207EF0-6691-4105-8629-90D3F95D9F51", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 00:53:25 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "2F207EF0-6691-4105-8629-90D3F95D9F51", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "2F207EF0-6691-4105-8629-90D3F95D9F51", + "type" : 4 + }, + { + "id" : "A39ECD0B-899A-4FC7-97F8-814DBB6D0F31", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A39ECD0B-899A-4FC7-97F8-814DBB6D0F31", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 00:53:25 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "A39ECD0B-899A-4FC7-97F8-814DBB6D0F31", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMDo1MzoyNS40OTAwNTdaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDA6NTM6MjUuNDkwMDU3WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "A39ECD0B-899A-4FC7-97F8-814DBB6D0F31", + "type" : 4 + }, + { + "id" : "830B3513-3C6E-4F74-B66D-7264200018E9", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "830B3513-3C6E-4F74-B66D-7264200018E9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 00:53:26 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "830B3513-3C6E-4F74-B66D-7264200018E9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMDo1MzoyNi4wNjQ2MTJaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDA6NTM6MjYuMDY0NjEyWiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "830B3513-3C6E-4F74-B66D-7264200018E9", + "type" : 4 + }, + { + "id" : "60D65EE2-62B3-40D6-A573-16114B6343D4", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "159", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNvbHN0aWNlLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiU29sc3RpY2UiLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMiI6IlNvbHN0aWNlLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiU29sc3RpY2UtY3VzdG9tLWRhdGEtMSJ9fQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "60D65EE2-62B3-40D6-A573-16114B6343D4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 00:53:27 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "60D65EE2-62B3-40D6-A573-16114B6343D4", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNvbHN0aWNlLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiU29sc3RpY2UiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTEiOiJTb2xzdGljZS1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IlNvbHN0aWNlLWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDA6NTM6MjYuNjQxODI0WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAwOjUzOjI2LjY0MTgyNFoiLCJlVGFnIjoiQWN1QnhMcTB4TU9hb3dFIn19" + }, + "type" : 2 + }, + { + "id" : "60D65EE2-62B3-40D6-A573-16114B6343D4", + "type" : 4 + }, + { + "id" : "7E4A81B8-7312-4FE2-ADA3-8BD8D6F7F8BF", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "159", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiTWlkbmlnaHQiLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMiI6Ik1pZG5pZ2h0LWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiTWlkbmlnaHQtY3VzdG9tLWRhdGEtMSJ9fQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "7E4A81B8-7312-4FE2-ADA3-8BD8D6F7F8BF", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 00:53:27 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "7E4A81B8-7312-4FE2-ADA3-8BD8D6F7F8BF", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiTWlkbmlnaHQiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTEiOiJNaWRuaWdodC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6Ik1pZG5pZ2h0LWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDA6NTM6MjcuMjE3Mjk1WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAwOjUzOjI3LjIxNzI5NVoiLCJlVGFnIjoiQVpIRjQ3WEYyYU9pcEFFIn19" + }, + "type" : 2 + }, + { + "id" : "7E4A81B8-7312-4FE2-ADA3-8BD8D6F7F8BF", + "type" : 4 + }, + { + "id" : "35073A54-FF53-417A-829B-26C959816C21", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "35073A54-FF53-417A-829B-26C959816C21", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 00:53:29 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "35073A54-FF53-417A-829B-26C959816C21", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAwOjUzOjI4LjgwODMyWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAwOjUzOjI4LjgwODMyWiIsImVUYWciOiJBZVAyNjdmYXV2YkJQQSJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "35073A54-FF53-417A-829B-26C959816C21", + "type" : 4 + }, + { + "id" : "A911BC89-9000-48F6-B609-4E2E85BD3CA4", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "203", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciJ9LHsiaWQiOiJTb2xzdGljZS1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIifV19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=space,custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A911BC89-9000-48F6-B609-4E2E85BD3CA4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=space,custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 00:53:33 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "A911BC89-9000-48F6-B609-4E2E85BD3CA4", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJjdXN0b20iOm51bGwsInNwYWNlIjp7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIiwibmFtZSI6IkNoYW50ZWQiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDA6NTM6MjUuNDkwMDU3WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAwOjUzOjI1LjQ5MDA1N1oiLCJlVGFnIjoiQWNXajlPVFF3TWFtcFFFIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAwOjUzOjMwLjc5OTc0N1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMDo1MzozMC43OTk3NDdaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwic3BhY2UiOnsiaWQiOiJDaGlwcGVyLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiQ2hpcHBlciIsImRlc2NyaXB0aW9uIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMDo1MzoyNi4wNjQ2MTJaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDA6NTM6MjYuMDY0NjEyWiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMDo1MzozMS40ODgyMThaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDA6NTM6MzEuNDg4MjE4WiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9LHsiaWQiOiJTb2xzdGljZS1zcGFjZS1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJzcGFjZSI6eyJpZCI6IlNvbHN0aWNlLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiU29sc3RpY2UiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDA6NTM6MjYuNjQxODI0WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAwOjUzOjI2LjY0MTgyNFoiLCJlVGFnIjoiQWN1QnhMcTB4TU9hb3dFIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAwOjUzOjMyLjE3NjYzWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAwOjUzOjMyLjE3NjYzWiIsImVUYWciOiJBWTM5bUpLSy8vQzBWQSJ9LHsiaWQiOiJNaWRuaWdodC1zcGFjZS1pZGVudGlmaWVyIiwiY3VzdG9tIjpudWxsLCJzcGFjZSI6eyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiTWlkbmlnaHQiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDA6NTM6MjcuMjE3Mjk1WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAwOjUzOjI3LjIxNzI5NVoiLCJlVGFnIjoiQVpIRjQ3WEYyYU9pcEFFIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAwOjUzOjMyLjg2NTAxNVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMDo1MzozMi44NjUwMTVaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn1dLCJuZXh0IjoiTkEifQ==" + }, + "type" : 2 + }, + { + "id" : "A911BC89-9000-48F6-B609-4E2E85BD3CA4", + "type" : 4 + }, + { + "id" : "30CF0E86-CC6C-40CD-93E2-8E0105A338DB", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "290", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ1cGRhdGUiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIiwiY3VzdG9tIjp7InVzZXItbWVtYmVyc2hpcC1jdXN0b20iOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXItY3VzdG9tLWRhdGEtMSJ9fSx7ImlkIjoiQ2hpcHBlci1zcGFjZS1pZGVudGlmaWVyIiwiY3VzdG9tIjp7InVzZXItbWVtYmVyc2hpcC1jdXN0b20iOiJDaGlwcGVyLXNwYWNlLWlkZW50aWZpZXItY3VzdG9tLWRhdGEtMiJ9fV19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?sort=space.name:desc,created&count=1&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&include=space,space.custom&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "30CF0E86-CC6C-40CD-93E2-8E0105A338DB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?sort=space.name:desc,created&count=1&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&include=space,space.custom&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 00:53:36 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "30CF0E86-CC6C-40CD-93E2-8E0105A338DB", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTb2xzdGljZS1zcGFjZS1pZGVudGlmaWVyIiwic3BhY2UiOnsiaWQiOiJTb2xzdGljZS1zcGFjZS1pZGVudGlmaWVyIiwibmFtZSI6IlNvbHN0aWNlIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiU29sc3RpY2UtY3VzdG9tLWRhdGEtMSIsInNwYWNlLWN1c3RvbTIiOiJTb2xzdGljZS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAwOjUzOjI2LjY0MTgyNFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMDo1MzoyNi42NDE4MjRaIiwiZVRhZyI6IkFjdUJ4THEweE1PYW93RSJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMDo1MzozMi4xNzY2M1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMDo1MzozMi4xNzY2M1oiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiTWlkbmlnaHQtc3BhY2UtaWRlbnRpZmllciIsInNwYWNlIjp7ImlkIjoiTWlkbmlnaHQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJNaWRuaWdodCIsImRlc2NyaXB0aW9uIjpudWxsLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMSI6Ik1pZG5pZ2h0LWN1c3RvbS1kYXRhLTEiLCJzcGFjZS1jdXN0b20yIjoiTWlkbmlnaHQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMDo1MzoyNy4yMTcyOTVaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDA6NTM6MjcuMjE3Mjk1WiIsImVUYWciOiJBWkhGNDdYRjJhT2lwQUUifSwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDA6NTM6MzIuODY1MDE1WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAwOjUzOjMyLjg2NTAxNVoiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifSx7ImlkIjoiQ2hpcHBlci1zcGFjZS1pZGVudGlmaWVyIiwic3BhY2UiOnsiaWQiOiJDaGlwcGVyLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiQ2hpcHBlciIsImRlc2NyaXB0aW9uIjpudWxsLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMSI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMSIsInNwYWNlLWN1c3RvbTIiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDA6NTM6MjYuMDY0NjEyWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAwOjUzOjI2LjA2NDYxMloiLCJlVGFnIjoiQVpyRjY0YjlpTnltSXcifSwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDA6NTM6MzEuNDg4MjE4WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAwOjUzOjM1Ljg0NDA5NFoiLCJlVGFnIjoiQVpDRityalh4dHY5UGcifSx7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIiwic3BhY2UiOnsiaWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiQ2hhbnRlZCIsImRlc2NyaXB0aW9uIjpudWxsLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMSI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMSIsInNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDA6NTM6MjUuNDkwMDU3WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAwOjUzOjI1LjQ5MDA1N1oiLCJlVGFnIjoiQWNXajlPVFF3TWFtcFFFIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAwOjUzOjMwLjc5OTc0N1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMDo1MzozNS4zMjM5NDlaIiwiZVRhZyI6IkFaQzg1TU9ZeWI3YWdnRSJ9XSwidG90YWxDb3VudCI6NCwibmV4dCI6Ik5BIn0=" + }, + "type" : 2 + }, + { + "id" : "30CF0E86-CC6C-40CD-93E2-8E0105A338DB", + "type" : 4 + }, + { + "id" : "62938E45-432F-42B1-85AB-581042FE6B76", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "206", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciJ9LHsiaWQiOiJTb2xzdGljZS1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIifV19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "62938E45-432F-42B1-85AB-581042FE6B76", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 00:53:38 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "62938E45-432F-42B1-85AB-581042FE6B76", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "62938E45-432F-42B1-85AB-581042FE6B76", + "type" : 4 + }, + { + "id" : "847238A5-FB8B-4D18-B596-9F08FA5FD969", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "847238A5-FB8B-4D18-B596-9F08FA5FD969", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 00:53:39 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "847238A5-FB8B-4D18-B596-9F08FA5FD969", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "847238A5-FB8B-4D18-B596-9F08FA5FD969", + "type" : 4 + }, + { + "id" : "E10AFA56-45CA-4CCD-AB9D-06C5F28111FB", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E10AFA56-45CA-4CCD-AB9D-06C5F28111FB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 00:53:41 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "E10AFA56-45CA-4CCD-AB9D-06C5F28111FB", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "E10AFA56-45CA-4CCD-AB9D-06C5F28111FB", + "type" : 4 + }, + { + "id" : "CBB133E4-355F-473C-B99D-16CC6EDFFC06", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "CBB133E4-355F-473C-B99D-16CC6EDFFC06", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 00:53:41 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "CBB133E4-355F-473C-B99D-16CC6EDFFC06", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "CBB133E4-355F-473C-B99D-16CC6EDFFC06", + "type" : 4 + }, + { + "id" : "DE185C9A-2228-4FB8-B069-AA66B0752AAC", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Solstice-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "DE185C9A-2228-4FB8-B069-AA66B0752AAC", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Solstice-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 00:53:42 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "DE185C9A-2228-4FB8-B069-AA66B0752AAC", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "DE185C9A-2228-4FB8-B069-AA66B0752AAC", + "type" : 4 + }, + { + "id" : "72291249-912E-41C3-B4E9-A84B0CE14AA4", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Midnight-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "72291249-912E-41C3-B4E9-A84B0CE14AA4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Midnight-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 00:53:42 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "72291249-912E-41C3-B4E9-A84B0CE14AA4", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "72291249-912E-41C3-B4E9-A84B0CE14AA4", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldUpdateMembershipAndReturnSpaceInformationWhenSpaceIncludeFlagIsSet.json b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldUpdateMembershipAndReturnSpaceInformationWhenSpaceIncludeFlagIsSet.json new file mode 100644 index 000000000..ba229b180 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldUpdateMembershipAndReturnSpaceInformationWhenSpaceIncludeFlagIsSet.json @@ -0,0 +1,598 @@ +[ + { + "id" : "5C5A1B80-043D-4CA5-89B4-1BA4FD99D2E9", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "5C5A1B80-043D-4CA5-89B4-1BA4FD99D2E9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:24:05 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "5C5A1B80-043D-4CA5-89B4-1BA4FD99D2E9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "5C5A1B80-043D-4CA5-89B4-1BA4FD99D2E9", + "type" : 4 + }, + { + "id" : "34F6BD2F-89DE-41A9-A35F-A134F4E5EBA7", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "34F6BD2F-89DE-41A9-A35F-A134F4E5EBA7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:24:05 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "34F6BD2F-89DE-41A9-A35F-A134F4E5EBA7", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "34F6BD2F-89DE-41A9-A35F-A134F4E5EBA7", + "type" : 4 + }, + { + "id" : "46158C5E-4D6A-4879-B49D-202797B1ACF3", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "46158C5E-4D6A-4879-B49D-202797B1ACF3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:24:05 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "46158C5E-4D6A-4879-B49D-202797B1ACF3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyNDowNS41MDM3OTRaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjQ6MDUuNTAzNzk0WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "46158C5E-4D6A-4879-B49D-202797B1ACF3", + "type" : 4 + }, + { + "id" : "436B1C4B-140C-43F0-94DE-78329F96D12F", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "436B1C4B-140C-43F0-94DE-78329F96D12F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:24:06 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "436B1C4B-140C-43F0-94DE-78329F96D12F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyNDowNi4wNzk4WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjI0OjA2LjA3OThaIiwiZVRhZyI6IkFackY2NGI5aU55bUl3In19" + }, + "type" : 2 + }, + { + "id" : "436B1C4B-140C-43F0-94DE-78329F96D12F", + "type" : 4 + }, + { + "id" : "732863A5-D64D-4C5D-8721-A3502D9923E2", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "732863A5-D64D-4C5D-8721-A3502D9923E2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:24:08 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "732863A5-D64D-4C5D-8721-A3502D9923E2", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjI0OjA3LjY5MzU5OVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyNDowNy42OTM1OTlaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "732863A5-D64D-4C5D-8721-A3502D9923E2", + "type" : 4 + }, + { + "id" : "1C072CF5-FBD6-47EF-B5FF-4C88AAE77A40", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "105", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1C072CF5-FBD6-47EF-B5FF-4C88AAE77A40", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:24:11 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "1C072CF5-FBD6-47EF-B5FF-4C88AAE77A40", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJjdXN0b20iOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjI0OjA5LjY5MTEyMVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyNDowOS42OTExMjFaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjQ6MTAuNTA1ODlaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjQ6MTAuNTA1ODlaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn1dLCJuZXh0IjoiTWcifQ==" + }, + "type" : 2 + }, + { + "id" : "1C072CF5-FBD6-47EF-B5FF-4C88AAE77A40", + "type" : 4 + }, + { + "id" : "A39A4C5C-00F7-4023-B303-FAF0AC7737EB", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "290", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ1cGRhdGUiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIiwiY3VzdG9tIjp7InVzZXItbWVtYmVyc2hpcC1jdXN0b20iOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXItY3VzdG9tLWRhdGEtMSJ9fSx7ImlkIjoiQ2hpcHBlci1zcGFjZS1pZGVudGlmaWVyIiwiY3VzdG9tIjp7InVzZXItbWVtYmVyc2hpcC1jdXN0b20iOiJDaGlwcGVyLXNwYWNlLWlkZW50aWZpZXItY3VzdG9tLWRhdGEtMiJ9fV19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=space,space.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A39A4C5C-00F7-4023-B303-FAF0AC7737EB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&include=space,space.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:24:13 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "A39A4C5C-00F7-4023-B303-FAF0AC7737EB", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJzcGFjZSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyNDowNS41MDM3OTRaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjQ6MDUuNTAzNzk0WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjQ6MDkuNjkxMTIxWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjI0OjEyLjk5NzE2NFoiLCJlVGFnIjoiQWFubzY3SzZoTzZYQWcifSx7ImlkIjoiQ2hpcHBlci1zcGFjZS1pZGVudGlmaWVyIiwic3BhY2UiOnsiaWQiOiJDaGlwcGVyLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiQ2hpcHBlciIsImRlc2NyaXB0aW9uIjpudWxsLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMSI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMSIsInNwYWNlLWN1c3RvbTIiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjQ6MDYuMDc5OFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyNDowNi4wNzk4WiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyNDoxMC41MDU4OVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyNDoxMy41MjE4MzhaIiwiZVRhZyI6IkFlVEt6TXYrODhlWnVnRSJ9XSwibmV4dCI6Ik1nIn0=" + }, + "type" : 2 + }, + { + "id" : "A39A4C5C-00F7-4023-B303-FAF0AC7737EB", + "type" : 4 + }, + { + "id" : "9FBE5265-E509-4CFA-AF12-A616CFB35864", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "108", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9FBE5265-E509-4CFA-AF12-A616CFB35864", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:24:16 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "9FBE5265-E509-4CFA-AF12-A616CFB35864", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "9FBE5265-E509-4CFA-AF12-A616CFB35864", + "type" : 4 + }, + { + "id" : "9590A76F-F853-4769-BFDA-D7FADE2BC705", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9590A76F-F853-4769-BFDA-D7FADE2BC705", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:24:17 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "9590A76F-F853-4769-BFDA-D7FADE2BC705", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "9590A76F-F853-4769-BFDA-D7FADE2BC705", + "type" : 4 + }, + { + "id" : "E10EB909-A858-4EC5-A061-71761798F8F8", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E10EB909-A858-4EC5-A061-71761798F8F8", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:24:18 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "E10EB909-A858-4EC5-A061-71761798F8F8", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "E10EB909-A858-4EC5-A061-71761798F8F8", + "type" : 4 + }, + { + "id" : "659F655C-1528-481F-8562-65F816EEFA7C", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "659F655C-1528-481F-8562-65F816EEFA7C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:24:19 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "659F655C-1528-481F-8562-65F816EEFA7C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "659F655C-1528-481F-8562-65F816EEFA7C", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldUpdateMembershipAndTriggerUpdateEventOnSpaceChannel.json b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldUpdateMembershipAndTriggerUpdateEventOnSpaceChannel.json new file mode 100644 index 000000000..254550664 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldUpdateMembershipAndTriggerUpdateEventOnSpaceChannel.json @@ -0,0 +1,789 @@ +[ + { + "id" : "00DF5653-3664-4FA2-8BB1-AFFF1394E6F5", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "00DF5653-3664-4FA2-8BB1-AFFF1394E6F5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:24:21 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "00DF5653-3664-4FA2-8BB1-AFFF1394E6F5", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "00DF5653-3664-4FA2-8BB1-AFFF1394E6F5", + "type" : 4 + }, + { + "id" : "7B68BCB4-E2C2-4099-8BA4-5A77581359A9", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "7B68BCB4-E2C2-4099-8BA4-5A77581359A9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:24:21 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "7B68BCB4-E2C2-4099-8BA4-5A77581359A9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "7B68BCB4-E2C2-4099-8BA4-5A77581359A9", + "type" : 4 + }, + { + "id" : "C01A069A-1133-45D8-8E7E-93BCBEBC7039", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C01A069A-1133-45D8-8E7E-93BCBEBC7039", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:24:22 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "C01A069A-1133-45D8-8E7E-93BCBEBC7039", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyNDoyMS43OTU3NDlaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjQ6MjEuNzk1NzQ5WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "C01A069A-1133-45D8-8E7E-93BCBEBC7039", + "type" : 4 + }, + { + "id" : "95E2E080-5FE3-4E53-AF10-678F1CF2255B", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "95E2E080-5FE3-4E53-AF10-678F1CF2255B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:24:22 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "95E2E080-5FE3-4E53-AF10-678F1CF2255B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyNDoyMi4zNzY3OTZaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjQ6MjIuMzc2Nzk2WiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "95E2E080-5FE3-4E53-AF10-678F1CF2255B", + "type" : 4 + }, + { + "id" : "ECF18E42-F9C0-4685-845C-213DACBD973D", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "ECF18E42-F9C0-4685-845C-213DACBD973D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:24:24 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "ECF18E42-F9C0-4685-845C-213DACBD973D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjI0OjI0LjA2MDY1OVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyNDoyNC4wNjA2NTlaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "ECF18E42-F9C0-4685-845C-213DACBD973D", + "type" : 4 + }, + { + "id" : "20794A8D-3791-400D-BA4D-D1651CA21F1E", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "105", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "20794A8D-3791-400D-BA4D-D1651CA21F1E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:24:27 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "20794A8D-3791-400D-BA4D-D1651CA21F1E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJjdXN0b20iOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjI0OjI2LjA4ODQyOVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyNDoyNi4wODg0MjlaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjQ6MjYuNzgzNzIyWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjI0OjI2Ljc4MzcyMloiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifV0sIm5leHQiOiJNZyJ9" + }, + "type" : 2 + }, + { + "id" : "20794A8D-3791-400D-BA4D-D1651CA21F1E", + "type" : 4 + }, + { + "id" : "8B3A9E00-E23F-4FBF-8D3F-5F9A0618CA88", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&tt=0&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "8B3A9E00-E23F-4FBF-8D3F-5F9A0618CA88", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&tt=0&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 06:24:28 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "8B3A9E00-E23F-4FBF-8D3F-5F9A0618CA88", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDU2NjY2Njk5MTIwMCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "8B3A9E00-E23F-4FBF-8D3F-5F9A0618CA88", + "type" : 4 + }, + { + "id" : "A2738085-ADD9-43BB-A551-9D7C1E9E044D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810566666991200&tr=12" + }, + "type" : 0 + }, + { + "id" : "FCFB5B4A-242C-490A-9D5E-1C51FD14F7C5", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "290", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ1cGRhdGUiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIiwiY3VzdG9tIjp7InVzZXItbWVtYmVyc2hpcC1jdXN0b20iOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXItY3VzdG9tLWRhdGEtMSJ9fSx7ImlkIjoiQ2hpcHBlci1zcGFjZS1pZGVudGlmaWVyIiwiY3VzdG9tIjp7InVzZXItbWVtYmVyc2hpcC1jdXN0b20iOiJDaGlwcGVyLXNwYWNlLWlkZW50aWZpZXItY3VzdG9tLWRhdGEtMiJ9fV19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=serhii&include=space,space.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A2738085-ADD9-43BB-A551-9D7C1E9E044D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810566666991200&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 06:24:29 GMT", + "Content-Length" : "541", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "A2738085-ADD9-43BB-A551-9D7C1E9E044D", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDU2NjY5Nzk0OTU5MiIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJlIjoyLCJwIjp7InQiOiIxNTgxMDU2NjY5Nzk0NzI0MSIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIiwiZCI6eyJzb3VyY2UiOiJvYmplY3RzIiwidmVyc2lvbiI6IjEuMCIsImV2ZW50IjoidXBkYXRlIiwidHlwZSI6Im1lbWJlcnNoaXAiLCJkYXRhIjp7ImN1c3RvbSI6eyJ1c2VyLW1lbWJlcnNoaXAtY3VzdG9tIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyLWN1c3RvbS1kYXRhLTEifSwiZVRhZyI6IkFlcVcvdTJVdHNIbllRIiwic3BhY2VJZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjI0OjI5LjUzMDQyNTM1MVoiLCJ1c2VySWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIn19fV19" + }, + "type" : 2 + }, + { + "id" : "A2738085-ADD9-43BB-A551-9D7C1E9E044D", + "type" : 4 + }, + { + "id" : "D752B1D9-6B6E-4D3A-B6B1-160342303960", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810566697949592&tr=12" + }, + "type" : 0 + }, + { + "id" : "D752B1D9-6B6E-4D3A-B6B1-160342303960", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810566697949592&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810566697949592&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "1AC75DAF-1695-4FB0-B4BB-A097FC7FD2EE", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/Chanted-space-identifier\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1AC75DAF-1695-4FB0-B4BB-A097FC7FD2EE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/Chanted-space-identifier\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Fri, 07 Feb 2020 06:24:30 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "1AC75DAF-1695-4FB0-B4BB-A097FC7FD2EE", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "1AC75DAF-1695-4FB0-B4BB-A097FC7FD2EE", + "type" : 4 + }, + { + "id" : "FCFB5B4A-242C-490A-9D5E-1C51FD14F7C5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=serhii&include=space,space.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:24:30 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "FCFB5B4A-242C-490A-9D5E-1C51FD14F7C5", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJzcGFjZSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyNDoyMS43OTU3NDlaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjQ6MjEuNzk1NzQ5WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjQ6MjYuMDg4NDI5WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjI0OjI5LjUzMDQyNVoiLCJlVGFnIjoiQWVxVy91MlV0c0huWVEifSx7ImlkIjoiQ2hpcHBlci1zcGFjZS1pZGVudGlmaWVyIiwic3BhY2UiOnsiaWQiOiJDaGlwcGVyLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiQ2hpcHBlciIsImRlc2NyaXB0aW9uIjpudWxsLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMSI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMSIsInNwYWNlLWN1c3RvbTIiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjQ6MjIuMzc2Nzk2WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjI0OjIyLjM3Njc5NloiLCJlVGFnIjoiQVpyRjY0YjlpTnltSXcifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjQ6MjYuNzgzNzIyWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjI0OjMwLjA1Mjc2MloiLCJlVGFnIjoiQWQrM2wrcWF6SmZEdXdFIn1dLCJuZXh0IjoiTWcifQ==" + }, + "type" : 2 + }, + { + "id" : "FCFB5B4A-242C-490A-9D5E-1C51FD14F7C5", + "type" : 4 + }, + { + "id" : "DCB1C81E-AB4C-4301-B81A-FB6A816C6B84", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "108", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "DCB1C81E-AB4C-4301-B81A-FB6A816C6B84", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:24:32 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "DCB1C81E-AB4C-4301-B81A-FB6A816C6B84", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "DCB1C81E-AB4C-4301-B81A-FB6A816C6B84", + "type" : 4 + }, + { + "id" : "193B3507-06F2-43ED-9F92-453707EE3833", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "193B3507-06F2-43ED-9F92-453707EE3833", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:24:33 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "193B3507-06F2-43ED-9F92-453707EE3833", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "193B3507-06F2-43ED-9F92-453707EE3833", + "type" : 4 + }, + { + "id" : "F96BA932-799F-42CB-858D-71285DD4E639", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F96BA932-799F-42CB-858D-71285DD4E639", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:24:34 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "F96BA932-799F-42CB-858D-71285DD4E639", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "F96BA932-799F-42CB-858D-71285DD4E639", + "type" : 4 + }, + { + "id" : "7A180E13-CA5A-4F77-B2B3-AAC87AB08CDB", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "7A180E13-CA5A-4F77-B2B3-AAC87AB08CDB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:24:35 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "7A180E13-CA5A-4F77-B2B3-AAC87AB08CDB", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "7A180E13-CA5A-4F77-B2B3-AAC87AB08CDB", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldUpdateMembershipAndTriggerUpdateEventOnUserChannel.json b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldUpdateMembershipAndTriggerUpdateEventOnUserChannel.json new file mode 100644 index 000000000..5239e3e43 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMembershipIntegrationTest.bundle/ItShouldUpdateMembershipAndTriggerUpdateEventOnUserChannel.json @@ -0,0 +1,840 @@ +[ + { + "id" : "F1C6A3B0-64B4-44E1-8B94-6DF1FFB8F7EF", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F1C6A3B0-64B4-44E1-8B94-6DF1FFB8F7EF", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:24:37 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "F1C6A3B0-64B4-44E1-8B94-6DF1FFB8F7EF", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "F1C6A3B0-64B4-44E1-8B94-6DF1FFB8F7EF", + "type" : 4 + }, + { + "id" : "709F25BC-B825-4BF6-8F8D-46495DD50984", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "709F25BC-B825-4BF6-8F8D-46495DD50984", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:24:37 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "709F25BC-B825-4BF6-8F8D-46495DD50984", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "709F25BC-B825-4BF6-8F8D-46495DD50984", + "type" : 4 + }, + { + "id" : "67AC8821-FEBF-488B-8782-C8AF6195BECC", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "67AC8821-FEBF-488B-8782-C8AF6195BECC", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:24:38 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "67AC8821-FEBF-488B-8782-C8AF6195BECC", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyNDozOC40NDU2MTFaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjQ6MzguNDQ1NjExWiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "67AC8821-FEBF-488B-8782-C8AF6195BECC", + "type" : 4 + }, + { + "id" : "E74EEE72-DB6A-44CB-A55F-55DEFBCE31D2", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E74EEE72-DB6A-44CB-A55F-55DEFBCE31D2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:24:39 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "E74EEE72-DB6A-44CB-A55F-55DEFBCE31D2", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyNDozOS4xNTk5WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjI0OjM5LjE1OTlaIiwiZVRhZyI6IkFackY2NGI5aU55bUl3In19" + }, + "type" : 2 + }, + { + "id" : "E74EEE72-DB6A-44CB-A55F-55DEFBCE31D2", + "type" : 4 + }, + { + "id" : "48894DE7-1C83-4ABE-9182-1CE73D4EDE6B", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "48894DE7-1C83-4ABE-9182-1CE73D4EDE6B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:24:41 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "48894DE7-1C83-4ABE-9182-1CE73D4EDE6B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjI0OjQwLjg2NjE1NVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyNDo0MC44NjYxNTVaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "48894DE7-1C83-4ABE-9182-1CE73D4EDE6B", + "type" : 4 + }, + { + "id" : "547265C1-D03A-418B-B720-CF66719AB5AD", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "105", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJhZGQiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "547265C1-D03A-418B-B720-CF66719AB5AD", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=serhii&include=custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:24:44 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "547265C1-D03A-418B-B720-CF66719AB5AD", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJjdXN0b20iOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjI0OjQyLjk0MTA4OFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyNDo0Mi45NDEwODhaIiwiZVRhZyI6IkFZMzltSktLLy9DMFZBIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsImN1c3RvbSI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjQ6NDMuNjM2MTcyWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjI0OjQzLjYzNjE3MloiLCJlVGFnIjoiQVkzOW1KS0svL0MwVkEifV0sIm5leHQiOiJNZyJ9" + }, + "type" : 2 + }, + { + "id" : "547265C1-D03A-418B-B720-CF66719AB5AD", + "type" : 4 + }, + { + "id" : "1CC2F646-6863-49F8-95F6-93005F79B77D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&tt=0&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1CC2F646-6863-49F8-95F6-93005F79B77D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&tt=0&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 06:24:45 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "1CC2F646-6863-49F8-95F6-93005F79B77D", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDU2Njg0MjQ1OTQwOCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "1CC2F646-6863-49F8-95F6-93005F79B77D", + "type" : 4 + }, + { + "id" : "8912EAB8-F26C-4654-84B0-691157A01C4B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810566842459408&tr=12" + }, + "type" : 0 + }, + { + "id" : "31FA84EA-E46B-46C6-A58E-C247BB42F4D3", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "290", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ1cGRhdGUiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIiwiY3VzdG9tIjp7InVzZXItbWVtYmVyc2hpcC1jdXN0b20iOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXItY3VzdG9tLWRhdGEtMSJ9fSx7ImlkIjoiQ2hpcHBlci1zcGFjZS1pZGVudGlmaWVyIiwiY3VzdG9tIjp7InVzZXItbWVtYmVyc2hpcC1jdXN0b20iOiJDaGlwcGVyLXNwYWNlLWlkZW50aWZpZXItY3VzdG9tLWRhdGEtMiJ9fV19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=serhii&include=space,space.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "8912EAB8-F26C-4654-84B0-691157A01C4B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810566842459408&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 06:24:46 GMT", + "Content-Length" : "540", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "8912EAB8-F26C-4654-84B0-691157A01C4B", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDU2Njg2NjQxODI5NiIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJlIjoyLCJwIjp7InQiOiIxNTgxMDU2Njg2NjQxNTcyMiIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciIsImQiOnsic291cmNlIjoib2JqZWN0cyIsInZlcnNpb24iOiIxLjAiLCJldmVudCI6InVwZGF0ZSIsInR5cGUiOiJtZW1iZXJzaGlwIiwiZGF0YSI6eyJjdXN0b20iOnsidXNlci1tZW1iZXJzaGlwLWN1c3RvbSI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllci1jdXN0b20tZGF0YS0xIn0sImVUYWciOiJBZVdJdkpYeTZiWHh1d0UiLCJzcGFjZUlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjQ6NDYuMzgwMTcxNDg4WiIsInVzZXJJZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIifX19XX0=" + }, + "type" : 2 + }, + { + "id" : "8912EAB8-F26C-4654-84B0-691157A01C4B", + "type" : 4 + }, + { + "id" : "52F27936-4B25-4E43-9BD2-F69A9ABECE26", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810566866418296&tr=12" + }, + "type" : 0 + }, + { + "id" : "52F27936-4B25-4E43-9BD2-F69A9ABECE26", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810566866418296&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 06:24:47 GMT", + "Content-Length" : "539", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "52F27936-4B25-4E43-9BD2-F69A9ABECE26", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDU2Njg3MTY0NjE1OSIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJlIjoyLCJwIjp7InQiOiIxNTgxMDU2Njg3MTYzMDc1MSIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciIsImQiOnsic291cmNlIjoib2JqZWN0cyIsInZlcnNpb24iOiIxLjAiLCJldmVudCI6InVwZGF0ZSIsInR5cGUiOiJtZW1iZXJzaGlwIiwiZGF0YSI6eyJjdXN0b20iOnsidXNlci1tZW1iZXJzaGlwLWN1c3RvbSI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllci1jdXN0b20tZGF0YS0yIn0sImVUYWciOiJBYis0djRqbnI4N29KQSIsInNwYWNlSWQiOiJDaGlwcGVyLXNwYWNlLWlkZW50aWZpZXIiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyNDo0Ni45MDIwMzIyMjFaIiwidXNlcklkIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciJ9fX1dfQ==" + }, + "type" : 2 + }, + { + "id" : "52F27936-4B25-4E43-9BD2-F69A9ABECE26", + "type" : 4 + }, + { + "id" : "BE199A6B-C730-4BBA-B301-8EAA0877A4FF", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810566871646159&tr=12" + }, + "type" : 0 + }, + { + "id" : "BE199A6B-C730-4BBA-B301-8EAA0877A4FF", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810566871646159&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810566871646159&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "4391E0DD-61AC-44EE-B969-BEB5FBC0B80C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/Serhii-user-identifier\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "31FA84EA-E46B-46C6-A58E-C247BB42F4D3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=serhii&include=space,space.custom&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:24:47 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "31FA84EA-E46B-46C6-A58E-C247BB42F4D3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJzcGFjZSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyNDozOC40NDU2MTFaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjQ6MzguNDQ1NjExWiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjQ6NDIuOTQxMDg4WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjI0OjQ2LjM4MDE3MVoiLCJlVGFnIjoiQWVXSXZKWHk2Ylh4dXdFIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsInNwYWNlIjp7ImlkIjoiQ2hpcHBlci1zcGFjZS1pZGVudGlmaWVyIiwibmFtZSI6IkNoaXBwZXIiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTEiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTEiLCJzcGFjZS1jdXN0b20yIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjI0OjM5LjE1OTlaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjQ6MzkuMTU5OVoiLCJlVGFnIjoiQVpyRjY0YjlpTnltSXcifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjQ6NDMuNjM2MTcyWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjI0OjQ2LjkwMjAzMloiLCJlVGFnIjoiQWIrNHY0am5yODdvSkEifV0sIm5leHQiOiJNZyJ9" + }, + "type" : 2 + }, + { + "id" : "31FA84EA-E46B-46C6-A58E-C247BB42F4D3", + "type" : 4 + }, + { + "id" : "4391E0DD-61AC-44EE-B969-BEB5FBC0B80C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/Serhii-user-identifier\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Fri, 07 Feb 2020 06:24:47 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "4391E0DD-61AC-44EE-B969-BEB5FBC0B80C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "4391E0DD-61AC-44EE-B969-BEB5FBC0B80C", + "type" : 4 + }, + { + "id" : "ABDCDD44-2A2D-4AC0-AC15-962F702A807D", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "108", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJyZW1vdmUiOlt7ImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciJ9XX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "ABDCDD44-2A2D-4AC0-AC15-962F702A807D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier\/spaces?uuid=serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:24:49 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "ABDCDD44-2A2D-4AC0-AC15-962F702A807D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "ABDCDD44-2A2D-4AC0-AC15-962F702A807D", + "type" : 4 + }, + { + "id" : "67D8D054-4025-4252-B9F7-C088A2D466C0", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "67D8D054-4025-4252-B9F7-C088A2D466C0", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:24:50 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "67D8D054-4025-4252-B9F7-C088A2D466C0", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "67D8D054-4025-4252-B9F7-C088A2D466C0", + "type" : 4 + }, + { + "id" : "2ACAB7EB-3EE8-4EB4-BF9B-EBC6D31AD138", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2ACAB7EB-3EE8-4EB4-BF9B-EBC6D31AD138", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:24:52 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "2ACAB7EB-3EE8-4EB4-BF9B-EBC6D31AD138", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "2ACAB7EB-3EE8-4EB4-BF9B-EBC6D31AD138", + "type" : 4 + }, + { + "id" : "4723687B-9BC7-4479-99D1-64F93575F771", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "4723687B-9BC7-4479-99D1-64F93575F771", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:24:52 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "4723687B-9BC7-4479-99D1-64F93575F771", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "4723687B-9BC7-4479-99D1-64F93575F771", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMessageActionsIntegrationTest.bundle/ItShouldAddActionAndReceiveStatusWithExpectedOperationAndCategory.json b/Tests/Support Files/Fixtures/PNMessageActionsIntegrationTest.bundle/ItShouldAddActionAndReceiveStatusWithExpectedOperationAndCategory.json new file mode 100644 index 000000000..950a5a691 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMessageActionsIntegrationTest.bundle/ItShouldAddActionAndReceiveStatusWithExpectedOperationAndCategory.json @@ -0,0 +1,167 @@ +[ + { + "id" : "6AF7B668-4D77-449A-AF54-DF92BCC4BB70", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?meta=%7B%22time%22:1577918412%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "6AF7B668-4D77-449A-AF54-DF92BCC4BB70", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?uuid=Serhii&meta=%7B%22time%22:1577918412%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:22:29 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "6AF7B668-4D77-449A-AF54-DF92BCC4BB70", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMTQ5OTU0ODkxMiJd" + }, + "type" : 2 + }, + { + "id" : "6AF7B668-4D77-449A-AF54-DF92BCC4BB70", + "type" : 4 + }, + { + "id" : "6D381640-61CE-48B1-8D37-F7A4C49D31A5", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "Accept" : "*\/*", + "Content-Type" : "application\/json;charset=UTF-8", + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Content-Length" : "52", + "Accept-Encoding" : "gzip,deflate", + "Connection" : "keep-alive" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ0eXBlIjoiY3VzdG9tIiwidmFsdWUiOiJ0ZXN0LXZhbHVlIn0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782701499548912?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "6D381640-61CE-48B1-8D37-F7A4C49D31A5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782701499548912?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:22:33 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "179", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "6D381640-61CE-48B1-8D37-F7A4C49D31A5", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogeyJtZXNzYWdlVGltZXRva2VuIjogIjE1NzgyNzAxNDk5NTQ4OTEyIiwgInR5cGUiOiAiY3VzdG9tIiwgInV1aWQiOiAiU2VyaGlpIiwgInZhbHVlIjogInRlc3QtdmFsdWUiLCAiYWN0aW9uVGltZXRva2VuIjogIjE1NzgyNzAxNTM1ODE1NDIwIn19" + }, + "type" : 2 + }, + { + "id" : "6D381640-61CE-48B1-8D37-F7A4C49D31A5", + "type" : 4 + }, + { + "id" : "3D07221D-A759-4E1A-B166-1BA58CE138C0", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3D07221D-A759-4E1A-B166-1BA58CE138C0", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:22:33 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "52", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "3D07221D-A759-4E1A-B166-1BA58CE138C0", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJlcnJvciI6IGZhbHNlLCAiZXJyb3JfbWVzc2FnZSI6ICIifQ==" + }, + "type" : 2 + }, + { + "id" : "3D07221D-A759-4E1A-B166-1BA58CE138C0", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMessageActionsIntegrationTest.bundle/ItShouldAddActionAndTriggerAddedEvent.json b/Tests/Support Files/Fixtures/PNMessageActionsIntegrationTest.bundle/ItShouldAddActionAndTriggerAddedEvent.json new file mode 100644 index 000000000..8772f1566 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMessageActionsIntegrationTest.bundle/ItShouldAddActionAndTriggerAddedEvent.json @@ -0,0 +1,358 @@ +[ + { + "id" : "DEB24B1D-627D-4884-A0A9-2B3071C19159", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?meta=%7B%22time%22:1577918412%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=serhii" + }, + "type" : 0 + }, + { + "id" : "DEB24B1D-627D-4884-A0A9-2B3071C19159", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?uuid=serhii&meta=%7B%22time%22:1577918412%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:22:37 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "DEB24B1D-627D-4884-A0A9-2B3071C19159", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMTU3NDg3MjcxNiJd" + }, + "type" : 2 + }, + { + "id" : "DEB24B1D-627D-4884-A0A9-2B3071C19159", + "type" : 4 + }, + { + "id" : "34A52457-0477-4CF4-B6F0-DDB94D12754D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "34A52457-0477-4CF4-B6F0-DDB94D12754D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:22:41 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "34A52457-0477-4CF4-B6F0-DDB94D12754D", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMTU3NDg2Mzc1MSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "34A52457-0477-4CF4-B6F0-DDB94D12754D", + "type" : 4 + }, + { + "id" : "63431AF1-7F3F-4DE4-9C91-C9782CED4723", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782701574863751&tr=12" + }, + "type" : 0 + }, + { + "id" : "F7FD4069-DAD6-4356-89E5-75D98B4FBA66", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "Accept" : "*\/*", + "Content-Type" : "application\/json;charset=UTF-8", + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Content-Length" : "52", + "Accept-Encoding" : "gzip,deflate", + "Connection" : "keep-alive" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ0eXBlIjoiY3VzdG9tIiwidmFsdWUiOiJ0ZXN0LXZhbHVlIn0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782701574872716?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "63431AF1-7F3F-4DE4-9C91-C9782CED4723", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782701574863751&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:22:41 GMT", + "Content-Length" : "392", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F7FD4069-DAD6-4356-89E5-75D98B4FBA66", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782701574872716?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:22:41 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "179", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "63431AF1-7F3F-4DE4-9C91-C9782CED4723", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMTYxNDU2MzEyMyIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJlIjozLCJpIjoic2VyaGlpIiwicCI6eyJ0IjoiMTU3ODI3MDE2MTQ1NTk0MzQiLCJyIjoxMn0sImsiOiJkZW1vIiwiYyI6InRlc3QtY2hhbm5lbCIsImQiOnsic291cmNlIjoiYWN0aW9ucyIsInZlcnNpb24iOiIxLjAiLCJkYXRhIjp7Im1lc3NhZ2VUaW1ldG9rZW4iOiIxNTc4MjcwMTU3NDg3MjcxNiIsInR5cGUiOiJjdXN0b20iLCJ2YWx1ZSI6InRlc3QtdmFsdWUiLCJhY3Rpb25UaW1ldG9rZW4iOiIxNTc4MjcwMTYxMzU2MDU3OCJ9LCJldmVudCI6ImFkZGVkIn19XX0=" + }, + "type" : 2 + }, + { + "id" : "F7FD4069-DAD6-4356-89E5-75D98B4FBA66", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogeyJtZXNzYWdlVGltZXRva2VuIjogIjE1NzgyNzAxNTc0ODcyNzE2IiwgInR5cGUiOiAiY3VzdG9tIiwgInV1aWQiOiAic2VyaGlpIiwgInZhbHVlIjogInRlc3QtdmFsdWUiLCAiYWN0aW9uVGltZXRva2VuIjogIjE1NzgyNzAxNjEzNTYwNTc4In19" + }, + "type" : 2 + }, + { + "id" : "63431AF1-7F3F-4DE4-9C91-C9782CED4723", + "type" : 4 + }, + { + "id" : "F7FD4069-DAD6-4356-89E5-75D98B4FBA66", + "type" : 4 + }, + { + "id" : "83444EEC-7CB6-4B6C-A7A5-A7DAC1C9A21E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782701614563123&tr=12" + }, + "type" : 0 + }, + { + "id" : "83444EEC-7CB6-4B6C-A7A5-A7DAC1C9A21E", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782701614563123&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782701614563123&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "D772AD7D-9224-475A-B97C-6BCCED4AD50B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D772AD7D-9224-475A-B97C-6BCCED4AD50B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:22:41 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D772AD7D-9224-475A-B97C-6BCCED4AD50B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "D772AD7D-9224-475A-B97C-6BCCED4AD50B", + "type" : 4 + }, + { + "id" : "723A4C34-044B-44B9-A6C1-AED2511FE429", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "723A4C34-044B-44B9-A6C1-AED2511FE429", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:22:41 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "52", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "723A4C34-044B-44B9-A6C1-AED2511FE429", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJlcnJvciI6IGZhbHNlLCAiZXJyb3JfbWVzc2FnZSI6ICIifQ==" + }, + "type" : 2 + }, + { + "id" : "723A4C34-044B-44B9-A6C1-AED2511FE429", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMessageActionsIntegrationTest.bundle/ItShouldFetchActionAndReceiveResultWithExpectedOperation.json b/Tests/Support Files/Fixtures/PNMessageActionsIntegrationTest.bundle/ItShouldFetchActionAndReceiveResultWithExpectedOperation.json new file mode 100644 index 000000000..0045e16d4 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMessageActionsIntegrationTest.bundle/ItShouldFetchActionAndReceiveResultWithExpectedOperation.json @@ -0,0 +1,572 @@ +[ + { + "id" : "DD696E8E-B1C2-45E7-B89F-006D4C1338E9", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?meta=%7B%22time%22:1577918412%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "DD696E8E-B1C2-45E7-B89F-006D4C1338E9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?uuid=Serhii&meta=%7B%22time%22:1577918412%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:22:45 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "DD696E8E-B1C2-45E7-B89F-006D4C1338E9", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMTY1NjQ1Mjk0OCJd" + }, + "type" : 2 + }, + { + "id" : "DD696E8E-B1C2-45E7-B89F-006D4C1338E9", + "type" : 4 + }, + { + "id" : "D242B8E2-024A-403A-AB8D-3D8EBEDCE136", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "D242B8E2-024A-403A-AB8D-3D8EBEDCE136", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:22:46 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D242B8E2-024A-403A-AB8D-3D8EBEDCE136", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMTY2MjExNjk0MiJd" + }, + "type" : 2 + }, + { + "id" : "D242B8E2-024A-403A-AB8D-3D8EBEDCE136", + "type" : 4 + }, + { + "id" : "6F2A7778-E8A3-4211-8DDB-34814DD407CA", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "Accept" : "*\/*", + "Content-Type" : "application\/json;charset=UTF-8", + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Content-Length" : "49", + "Accept-Encoding" : "gzip,deflate", + "Connection" : "keep-alive" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ0eXBlIjoicmVjZWlwdCIsInZhbHVlIjoidmFsdWUyIn0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782701656452948?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "6F2A7778-E8A3-4211-8DDB-34814DD407CA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782701656452948?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:22:49 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "176", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "6F2A7778-E8A3-4211-8DDB-34814DD407CA", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogeyJtZXNzYWdlVGltZXRva2VuIjogIjE1NzgyNzAxNjU2NDUyOTQ4IiwgInR5cGUiOiAicmVjZWlwdCIsICJ1dWlkIjogIlNlcmhpaSIsICJ2YWx1ZSI6ICJ2YWx1ZTIiLCAiYWN0aW9uVGltZXRva2VuIjogIjE1NzgyNzAxNjk4NDc5NDQwIn19" + }, + "type" : 2 + }, + { + "id" : "6F2A7778-E8A3-4211-8DDB-34814DD407CA", + "type" : 4 + }, + { + "id" : "A4567E90-A82F-4E95-90DA-DE6242DCB0AA", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "Accept" : "*\/*", + "Content-Type" : "application\/json;charset=UTF-8", + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Content-Length" : "48", + "Accept-Encoding" : "gzip,deflate", + "Connection" : "keep-alive" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ0eXBlIjoiY3VzdG9tIiwidmFsdWUiOiJ2YWx1ZTMifQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782701656452948?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A4567E90-A82F-4E95-90DA-DE6242DCB0AA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782701656452948?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:22:50 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "175", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "A4567E90-A82F-4E95-90DA-DE6242DCB0AA", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogeyJtZXNzYWdlVGltZXRva2VuIjogIjE1NzgyNzAxNjU2NDUyOTQ4IiwgInR5cGUiOiAiY3VzdG9tIiwgInV1aWQiOiAiU2VyaGlpIiwgInZhbHVlIjogInZhbHVlMyIsICJhY3Rpb25UaW1ldG9rZW4iOiAiMTU3ODI3MDE3MDQzNDU4MTAifX0=" + }, + "type" : 2 + }, + { + "id" : "A4567E90-A82F-4E95-90DA-DE6242DCB0AA", + "type" : 4 + }, + { + "id" : "5937EF44-2EDC-4C32-98B0-A407DF323A78", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "Accept" : "*\/*", + "Content-Type" : "application\/json;charset=UTF-8", + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Content-Length" : "50", + "Accept-Encoding" : "gzip,deflate", + "Connection" : "keep-alive" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ0eXBlIjoicmVhY3Rpb24iLCJ2YWx1ZSI6InZhbHVlNCJ9" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782701656452948?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "5937EF44-2EDC-4C32-98B0-A407DF323A78", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782701656452948?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:22:51 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "177", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "5937EF44-2EDC-4C32-98B0-A407DF323A78", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogeyJtZXNzYWdlVGltZXRva2VuIjogIjE1NzgyNzAxNjU2NDUyOTQ4IiwgInR5cGUiOiAicmVhY3Rpb24iLCAidXVpZCI6ICJTZXJoaWkiLCAidmFsdWUiOiAidmFsdWU0IiwgImFjdGlvblRpbWV0b2tlbiI6ICIxNTc4MjcwMTcxMDEzNjkyMCJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "5937EF44-2EDC-4C32-98B0-A407DF323A78", + "type" : 4 + }, + { + "id" : "D0F6CD10-7B33-40CF-AEA9-A131174DDB8A", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "Accept" : "*\/*", + "Content-Type" : "application\/json;charset=UTF-8", + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Content-Length" : "49", + "Accept-Encoding" : "gzip,deflate", + "Connection" : "keep-alive" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ0eXBlIjoicmVjZWlwdCIsInZhbHVlIjoidmFsdWUyIn0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782701662116942?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D0F6CD10-7B33-40CF-AEA9-A131174DDB8A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782701662116942?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:22:51 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "176", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D0F6CD10-7B33-40CF-AEA9-A131174DDB8A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogeyJtZXNzYWdlVGltZXRva2VuIjogIjE1NzgyNzAxNjYyMTE2OTQyIiwgInR5cGUiOiAicmVjZWlwdCIsICJ1dWlkIjogIlNlcmhpaSIsICJ2YWx1ZSI6ICJ2YWx1ZTIiLCAiYWN0aW9uVGltZXRva2VuIjogIjE1NzgyNzAxNzE1OTI1NTkwIn19" + }, + "type" : 2 + }, + { + "id" : "D0F6CD10-7B33-40CF-AEA9-A131174DDB8A", + "type" : 4 + }, + { + "id" : "3F750702-EB82-4B68-822B-ADBB04BD4200", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "Accept" : "*\/*", + "Content-Type" : "application\/json;charset=UTF-8", + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Content-Length" : "48", + "Accept-Encoding" : "gzip,deflate", + "Connection" : "keep-alive" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ0eXBlIjoiY3VzdG9tIiwidmFsdWUiOiJ2YWx1ZTMifQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782701662116942?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3F750702-EB82-4B68-822B-ADBB04BD4200", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782701662116942?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:22:52 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "175", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "3F750702-EB82-4B68-822B-ADBB04BD4200", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogeyJtZXNzYWdlVGltZXRva2VuIjogIjE1NzgyNzAxNjYyMTE2OTQyIiwgInR5cGUiOiAiY3VzdG9tIiwgInV1aWQiOiAiU2VyaGlpIiwgInZhbHVlIjogInZhbHVlMyIsICJhY3Rpb25UaW1ldG9rZW4iOiAiMTU3ODI3MDE3MjE5MzgwOTAifX0=" + }, + "type" : 2 + }, + { + "id" : "3F750702-EB82-4B68-822B-ADBB04BD4200", + "type" : 4 + }, + { + "id" : "E70074E1-B7A9-400C-BB68-7B7C35310AD8", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "Accept" : "*\/*", + "Content-Type" : "application\/json;charset=UTF-8", + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Content-Length" : "50", + "Accept-Encoding" : "gzip,deflate", + "Connection" : "keep-alive" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ0eXBlIjoicmVhY3Rpb24iLCJ2YWx1ZSI6InZhbHVlNCJ9" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782701662116942?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E70074E1-B7A9-400C-BB68-7B7C35310AD8", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782701662116942?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:22:52 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "177", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E70074E1-B7A9-400C-BB68-7B7C35310AD8", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogeyJtZXNzYWdlVGltZXRva2VuIjogIjE1NzgyNzAxNjYyMTE2OTQyIiwgInR5cGUiOiAicmVhY3Rpb24iLCAidXVpZCI6ICJTZXJoaWkiLCAidmFsdWUiOiAidmFsdWU0IiwgImFjdGlvblRpbWV0b2tlbiI6ICIxNTc4MjcwMTcyODUwMTc3MCJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "E70074E1-B7A9-400C-BB68-7B7C35310AD8", + "type" : 4 + }, + { + "id" : "4E37CC27-B08D-4824-ABE3-85431CF9F669", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "4E37CC27-B08D-4824-ABE3-85431CF9F669", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:22:56 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "943", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "4E37CC27-B08D-4824-ABE3-85431CF9F669", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogW3sibWVzc2FnZVRpbWV0b2tlbiI6ICIxNTc4MjcwMTY1NjQ1Mjk0OCIsICJ0eXBlIjogInJlY2VpcHQiLCAidXVpZCI6ICJTZXJoaWkiLCAidmFsdWUiOiAidmFsdWUyIiwgImFjdGlvblRpbWV0b2tlbiI6ICIxNTc4MjcwMTY5ODQ3OTQ0MCJ9LCB7Im1lc3NhZ2VUaW1ldG9rZW4iOiAiMTU3ODI3MDE2NTY0NTI5NDgiLCAidHlwZSI6ICJjdXN0b20iLCAidXVpZCI6ICJTZXJoaWkiLCAidmFsdWUiOiAidmFsdWUzIiwgImFjdGlvblRpbWV0b2tlbiI6ICIxNTc4MjcwMTcwNDM0NTgxMCJ9LCB7Im1lc3NhZ2VUaW1ldG9rZW4iOiAiMTU3ODI3MDE2NTY0NTI5NDgiLCAidHlwZSI6ICJyZWFjdGlvbiIsICJ1dWlkIjogIlNlcmhpaSIsICJ2YWx1ZSI6ICJ2YWx1ZTQiLCAiYWN0aW9uVGltZXRva2VuIjogIjE1NzgyNzAxNzEwMTM2OTIwIn0sIHsibWVzc2FnZVRpbWV0b2tlbiI6ICIxNTc4MjcwMTY2MjExNjk0MiIsICJ0eXBlIjogInJlY2VpcHQiLCAidXVpZCI6ICJTZXJoaWkiLCAidmFsdWUiOiAidmFsdWUyIiwgImFjdGlvblRpbWV0b2tlbiI6ICIxNTc4MjcwMTcxNTkyNTU5MCJ9LCB7Im1lc3NhZ2VUaW1ldG9rZW4iOiAiMTU3ODI3MDE2NjIxMTY5NDIiLCAidHlwZSI6ICJjdXN0b20iLCAidXVpZCI6ICJTZXJoaWkiLCAidmFsdWUiOiAidmFsdWUzIiwgImFjdGlvblRpbWV0b2tlbiI6ICIxNTc4MjcwMTcyMTkzODA5MCJ9LCB7Im1lc3NhZ2VUaW1ldG9rZW4iOiAiMTU3ODI3MDE2NjIxMTY5NDIiLCAidHlwZSI6ICJyZWFjdGlvbiIsICJ1dWlkIjogIlNlcmhpaSIsICJ2YWx1ZSI6ICJ2YWx1ZTQiLCAiYWN0aW9uVGltZXRva2VuIjogIjE1NzgyNzAxNzI4NTAxNzcwIn1dfQ==" + }, + "type" : 2 + }, + { + "id" : "4E37CC27-B08D-4824-ABE3-85431CF9F669", + "type" : 4 + }, + { + "id" : "AD214FBC-F600-4012-92A2-2D1FEEB21FDD", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "AD214FBC-F600-4012-92A2-2D1FEEB21FDD", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:22:56 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "52", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "AD214FBC-F600-4012-92A2-2D1FEEB21FDD", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJlcnJvciI6IGZhbHNlLCAiZXJyb3JfbWVzc2FnZSI6ICIifQ==" + }, + "type" : 2 + }, + { + "id" : "AD214FBC-F600-4012-92A2-2D1FEEB21FDD", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMessageActionsIntegrationTest.bundle/ItShouldFetchNextActionsPageWhenCalledWithLimitAndStart.json b/Tests/Support Files/Fixtures/PNMessageActionsIntegrationTest.bundle/ItShouldFetchNextActionsPageWhenCalledWithLimitAndStart.json new file mode 100644 index 000000000..71fea208d --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMessageActionsIntegrationTest.bundle/ItShouldFetchNextActionsPageWhenCalledWithLimitAndStart.json @@ -0,0 +1,866 @@ +[ + { + "id" : "AB01A1A3-E496-4542-9630-6CEBA04ACCCB", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?meta=%7B%22time%22:1577918412%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "AB01A1A3-E496-4542-9630-6CEBA04ACCCB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?uuid=Serhii&meta=%7B%22time%22:1577918412%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:23:00 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "AB01A1A3-E496-4542-9630-6CEBA04ACCCB", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMTgwNDY1NzkwNSJd" + }, + "type" : 2 + }, + { + "id" : "AB01A1A3-E496-4542-9630-6CEBA04ACCCB", + "type" : 4 + }, + { + "id" : "3D2681F1-A588-400F-9B79-928206317746", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "3D2681F1-A588-400F-9B79-928206317746", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%201%22,%22time%22:1577918413%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:23:01 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "3D2681F1-A588-400F-9B79-928206317746", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMTgxMDMwMDI1NiJd" + }, + "type" : 2 + }, + { + "id" : "3D2681F1-A588-400F-9B79-928206317746", + "type" : 4 + }, + { + "id" : "7A72F22D-313F-43E5-B6D3-43F07F7151CF", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "Accept" : "*\/*", + "Content-Type" : "application\/json;charset=UTF-8", + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Content-Length" : "49", + "Accept-Encoding" : "gzip,deflate", + "Connection" : "keep-alive" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ0eXBlIjoicmVjZWlwdCIsInZhbHVlIjoidmFsdWUyIn0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782701804657905?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "7A72F22D-313F-43E5-B6D3-43F07F7151CF", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782701804657905?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:23:05 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "176", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "7A72F22D-313F-43E5-B6D3-43F07F7151CF", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogeyJtZXNzYWdlVGltZXRva2VuIjogIjE1NzgyNzAxODA0NjU3OTA1IiwgInR5cGUiOiAicmVjZWlwdCIsICJ1dWlkIjogIlNlcmhpaSIsICJ2YWx1ZSI6ICJ2YWx1ZTIiLCAiYWN0aW9uVGltZXRva2VuIjogIjE1NzgyNzAxODUwMjQwNTEwIn19" + }, + "type" : 2 + }, + { + "id" : "7A72F22D-313F-43E5-B6D3-43F07F7151CF", + "type" : 4 + }, + { + "id" : "900C4D5A-09CB-4D71-8867-24882382DCA4", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "Accept" : "*\/*", + "Content-Type" : "application\/json;charset=UTF-8", + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Content-Length" : "48", + "Accept-Encoding" : "gzip,deflate", + "Connection" : "keep-alive" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ0eXBlIjoiY3VzdG9tIiwidmFsdWUiOiJ2YWx1ZTMifQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782701804657905?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "900C4D5A-09CB-4D71-8867-24882382DCA4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782701804657905?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:23:05 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "175", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "900C4D5A-09CB-4D71-8867-24882382DCA4", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogeyJtZXNzYWdlVGltZXRva2VuIjogIjE1NzgyNzAxODA0NjU3OTA1IiwgInR5cGUiOiAiY3VzdG9tIiwgInV1aWQiOiAiU2VyaGlpIiwgInZhbHVlIjogInZhbHVlMyIsICJhY3Rpb25UaW1ldG9rZW4iOiAiMTU3ODI3MDE4NTczMjI0MjIifX0=" + }, + "type" : 2 + }, + { + "id" : "900C4D5A-09CB-4D71-8867-24882382DCA4", + "type" : 4 + }, + { + "id" : "BCB5FD0A-85EC-496F-A032-163E5C348859", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "Accept" : "*\/*", + "Content-Type" : "application\/json;charset=UTF-8", + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Content-Length" : "50", + "Accept-Encoding" : "gzip,deflate", + "Connection" : "keep-alive" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ0eXBlIjoicmVhY3Rpb24iLCJ2YWx1ZSI6InZhbHVlNCJ9" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782701804657905?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "BCB5FD0A-85EC-496F-A032-163E5C348859", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782701804657905?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:23:06 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "177", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "BCB5FD0A-85EC-496F-A032-163E5C348859", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogeyJtZXNzYWdlVGltZXRva2VuIjogIjE1NzgyNzAxODA0NjU3OTA1IiwgInR5cGUiOiAicmVhY3Rpb24iLCAidXVpZCI6ICJTZXJoaWkiLCAidmFsdWUiOiAidmFsdWU0IiwgImFjdGlvblRpbWV0b2tlbiI6ICIxNTc4MjcwMTg2MzE1MzI0MCJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "BCB5FD0A-85EC-496F-A032-163E5C348859", + "type" : 4 + }, + { + "id" : "B8F1334C-4B3E-4D58-9B39-E376E46C01C6", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "Accept" : "*\/*", + "Content-Type" : "application\/json;charset=UTF-8", + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Content-Length" : "49", + "Accept-Encoding" : "gzip,deflate", + "Connection" : "keep-alive" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ0eXBlIjoicmVjZWlwdCIsInZhbHVlIjoidmFsdWU1In0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782701804657905?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B8F1334C-4B3E-4D58-9B39-E376E46C01C6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782701804657905?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:23:06 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "176", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B8F1334C-4B3E-4D58-9B39-E376E46C01C6", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogeyJtZXNzYWdlVGltZXRva2VuIjogIjE1NzgyNzAxODA0NjU3OTA1IiwgInR5cGUiOiAicmVjZWlwdCIsICJ1dWlkIjogIlNlcmhpaSIsICJ2YWx1ZSI6ICJ2YWx1ZTUiLCAiYWN0aW9uVGltZXRva2VuIjogIjE1NzgyNzAxODY4OTkzMzYwIn19" + }, + "type" : 2 + }, + { + "id" : "B8F1334C-4B3E-4D58-9B39-E376E46C01C6", + "type" : 4 + }, + { + "id" : "D754CC22-6283-4551-AC0D-272CBC3B58C7", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "Accept" : "*\/*", + "Content-Type" : "application\/json;charset=UTF-8", + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Content-Length" : "48", + "Accept-Encoding" : "gzip,deflate", + "Connection" : "keep-alive" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ0eXBlIjoiY3VzdG9tIiwidmFsdWUiOiJ2YWx1ZTYifQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782701804657905?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D754CC22-6283-4551-AC0D-272CBC3B58C7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782701804657905?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:23:07 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "175", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D754CC22-6283-4551-AC0D-272CBC3B58C7", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogeyJtZXNzYWdlVGltZXRva2VuIjogIjE1NzgyNzAxODA0NjU3OTA1IiwgInR5cGUiOiAiY3VzdG9tIiwgInV1aWQiOiAiU2VyaGlpIiwgInZhbHVlIjogInZhbHVlNiIsICJhY3Rpb25UaW1ldG9rZW4iOiAiMTU3ODI3MDE4NzQ5MTI1MjgifX0=" + }, + "type" : 2 + }, + { + "id" : "D754CC22-6283-4551-AC0D-272CBC3B58C7", + "type" : 4 + }, + { + "id" : "5D199376-0F52-4EBC-8DE6-098CA5B86D88", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "Accept" : "*\/*", + "Content-Type" : "application\/json;charset=UTF-8", + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Content-Length" : "49", + "Accept-Encoding" : "gzip,deflate", + "Connection" : "keep-alive" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ0eXBlIjoicmVjZWlwdCIsInZhbHVlIjoidmFsdWUyIn0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782701810300256?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "5D199376-0F52-4EBC-8DE6-098CA5B86D88", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782701810300256?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:23:08 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "176", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "5D199376-0F52-4EBC-8DE6-098CA5B86D88", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogeyJtZXNzYWdlVGltZXRva2VuIjogIjE1NzgyNzAxODEwMzAwMjU2IiwgInR5cGUiOiAicmVjZWlwdCIsICJ1dWlkIjogIlNlcmhpaSIsICJ2YWx1ZSI6ICJ2YWx1ZTIiLCAiYWN0aW9uVGltZXRva2VuIjogIjE1NzgyNzAxODgxMzI4NjQwIn19" + }, + "type" : 2 + }, + { + "id" : "5D199376-0F52-4EBC-8DE6-098CA5B86D88", + "type" : 4 + }, + { + "id" : "81D1900F-2D60-440A-B682-8FB4557BCFE0", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "Accept" : "*\/*", + "Content-Type" : "application\/json;charset=UTF-8", + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Content-Length" : "48", + "Accept-Encoding" : "gzip,deflate", + "Connection" : "keep-alive" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ0eXBlIjoiY3VzdG9tIiwidmFsdWUiOiJ2YWx1ZTMifQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782701810300256?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "81D1900F-2D60-440A-B682-8FB4557BCFE0", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782701810300256?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:23:08 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "175", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "81D1900F-2D60-440A-B682-8FB4557BCFE0", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogeyJtZXNzYWdlVGltZXRva2VuIjogIjE1NzgyNzAxODEwMzAwMjU2IiwgInR5cGUiOiAiY3VzdG9tIiwgInV1aWQiOiAiU2VyaGlpIiwgInZhbHVlIjogInZhbHVlMyIsICJhY3Rpb25UaW1ldG9rZW4iOiAiMTU3ODI3MDE4ODcyMjI2NjAifX0=" + }, + "type" : 2 + }, + { + "id" : "81D1900F-2D60-440A-B682-8FB4557BCFE0", + "type" : 4 + }, + { + "id" : "320CEB66-799D-4589-A8D4-1ABB8E990BE6", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "Accept" : "*\/*", + "Content-Type" : "application\/json;charset=UTF-8", + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Content-Length" : "50", + "Accept-Encoding" : "gzip,deflate", + "Connection" : "keep-alive" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ0eXBlIjoicmVhY3Rpb24iLCJ2YWx1ZSI6InZhbHVlNCJ9" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782701810300256?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "320CEB66-799D-4589-A8D4-1ABB8E990BE6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782701810300256?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:23:09 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "177", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "320CEB66-799D-4589-A8D4-1ABB8E990BE6", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogeyJtZXNzYWdlVGltZXRva2VuIjogIjE1NzgyNzAxODEwMzAwMjU2IiwgInR5cGUiOiAicmVhY3Rpb24iLCAidXVpZCI6ICJTZXJoaWkiLCAidmFsdWUiOiAidmFsdWU0IiwgImFjdGlvblRpbWV0b2tlbiI6ICIxNTc4MjcwMTg5MzA2ODE1MCJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "320CEB66-799D-4589-A8D4-1ABB8E990BE6", + "type" : 4 + }, + { + "id" : "8CD6C9C2-C8F6-41CF-8689-698884DB36CE", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "Accept" : "*\/*", + "Content-Type" : "application\/json;charset=UTF-8", + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Content-Length" : "49", + "Accept-Encoding" : "gzip,deflate", + "Connection" : "keep-alive" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ0eXBlIjoicmVjZWlwdCIsInZhbHVlIjoidmFsdWU1In0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782701810300256?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "8CD6C9C2-C8F6-41CF-8689-698884DB36CE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782701810300256?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:23:09 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "176", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "8CD6C9C2-C8F6-41CF-8689-698884DB36CE", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogeyJtZXNzYWdlVGltZXRva2VuIjogIjE1NzgyNzAxODEwMzAwMjU2IiwgInR5cGUiOiAicmVjZWlwdCIsICJ1dWlkIjogIlNlcmhpaSIsICJ2YWx1ZSI6ICJ2YWx1ZTUiLCAiYWN0aW9uVGltZXRva2VuIjogIjE1NzgyNzAxODk4OTg2MDQwIn19" + }, + "type" : 2 + }, + { + "id" : "8CD6C9C2-C8F6-41CF-8689-698884DB36CE", + "type" : 4 + }, + { + "id" : "B91C4964-0C87-4A57-81AD-E15D6DC85278", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "Accept" : "*\/*", + "Content-Type" : "application\/json;charset=UTF-8", + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Content-Length" : "48", + "Accept-Encoding" : "gzip,deflate", + "Connection" : "keep-alive" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ0eXBlIjoiY3VzdG9tIiwidmFsdWUiOiJ2YWx1ZTYifQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782701810300256?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B91C4964-0C87-4A57-81AD-E15D6DC85278", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782701810300256?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:23:10 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "175", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B91C4964-0C87-4A57-81AD-E15D6DC85278", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogeyJtZXNzYWdlVGltZXRva2VuIjogIjE1NzgyNzAxODEwMzAwMjU2IiwgInR5cGUiOiAiY3VzdG9tIiwgInV1aWQiOiAiU2VyaGlpIiwgInZhbHVlIjogInZhbHVlNiIsICJhY3Rpb25UaW1ldG9rZW4iOiAiMTU3ODI3MDE5MDQ4ODAyNTAifX0=" + }, + "type" : 2 + }, + { + "id" : "B91C4964-0C87-4A57-81AD-E15D6DC85278", + "type" : 4 + }, + { + "id" : "51803670-9B60-4C99-A8FF-55AD0C775680", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel?uuid=Serhii&limit=5&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "51803670-9B60-4C99-A8FF-55AD0C775680", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel?uuid=Serhii&limit=5&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:23:14 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "789", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "51803670-9B60-4C99-A8FF-55AD0C775680", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogW3sibWVzc2FnZVRpbWV0b2tlbiI6ICIxNTc4MjcwMTgxMDMwMDI1NiIsICJ0eXBlIjogInJlY2VpcHQiLCAidXVpZCI6ICJTZXJoaWkiLCAidmFsdWUiOiAidmFsdWUyIiwgImFjdGlvblRpbWV0b2tlbiI6ICIxNTc4MjcwMTg4MTMyODY0MCJ9LCB7Im1lc3NhZ2VUaW1ldG9rZW4iOiAiMTU3ODI3MDE4MTAzMDAyNTYiLCAidHlwZSI6ICJjdXN0b20iLCAidXVpZCI6ICJTZXJoaWkiLCAidmFsdWUiOiAidmFsdWUzIiwgImFjdGlvblRpbWV0b2tlbiI6ICIxNTc4MjcwMTg4NzIyMjY2MCJ9LCB7Im1lc3NhZ2VUaW1ldG9rZW4iOiAiMTU3ODI3MDE4MTAzMDAyNTYiLCAidHlwZSI6ICJyZWFjdGlvbiIsICJ1dWlkIjogIlNlcmhpaSIsICJ2YWx1ZSI6ICJ2YWx1ZTQiLCAiYWN0aW9uVGltZXRva2VuIjogIjE1NzgyNzAxODkzMDY4MTUwIn0sIHsibWVzc2FnZVRpbWV0b2tlbiI6ICIxNTc4MjcwMTgxMDMwMDI1NiIsICJ0eXBlIjogInJlY2VpcHQiLCAidXVpZCI6ICJTZXJoaWkiLCAidmFsdWUiOiAidmFsdWU1IiwgImFjdGlvblRpbWV0b2tlbiI6ICIxNTc4MjcwMTg5ODk4NjA0MCJ9LCB7Im1lc3NhZ2VUaW1ldG9rZW4iOiAiMTU3ODI3MDE4MTAzMDAyNTYiLCAidHlwZSI6ICJjdXN0b20iLCAidXVpZCI6ICJTZXJoaWkiLCAidmFsdWUiOiAidmFsdWU2IiwgImFjdGlvblRpbWV0b2tlbiI6ICIxNTc4MjcwMTkwNDg4MDI1MCJ9XX0=" + }, + "type" : 2 + }, + { + "id" : "51803670-9B60-4C99-A8FF-55AD0C775680", + "type" : 4 + }, + { + "id" : "F2310B36-0E68-47E8-A932-AC0922CDBC39", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel?start=15782701881328640&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&limit=5" + }, + "type" : 0 + }, + { + "id" : "F2310B36-0E68-47E8-A932-AC0922CDBC39", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel?start=15782701881328640&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&limit=5", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:23:14 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "789", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F2310B36-0E68-47E8-A932-AC0922CDBC39", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogW3sibWVzc2FnZVRpbWV0b2tlbiI6ICIxNTc4MjcwMTgwNDY1NzkwNSIsICJ0eXBlIjogInJlY2VpcHQiLCAidXVpZCI6ICJTZXJoaWkiLCAidmFsdWUiOiAidmFsdWUyIiwgImFjdGlvblRpbWV0b2tlbiI6ICIxNTc4MjcwMTg1MDI0MDUxMCJ9LCB7Im1lc3NhZ2VUaW1ldG9rZW4iOiAiMTU3ODI3MDE4MDQ2NTc5MDUiLCAidHlwZSI6ICJjdXN0b20iLCAidXVpZCI6ICJTZXJoaWkiLCAidmFsdWUiOiAidmFsdWUzIiwgImFjdGlvblRpbWV0b2tlbiI6ICIxNTc4MjcwMTg1NzMyMjQyMiJ9LCB7Im1lc3NhZ2VUaW1ldG9rZW4iOiAiMTU3ODI3MDE4MDQ2NTc5MDUiLCAidHlwZSI6ICJyZWFjdGlvbiIsICJ1dWlkIjogIlNlcmhpaSIsICJ2YWx1ZSI6ICJ2YWx1ZTQiLCAiYWN0aW9uVGltZXRva2VuIjogIjE1NzgyNzAxODYzMTUzMjQwIn0sIHsibWVzc2FnZVRpbWV0b2tlbiI6ICIxNTc4MjcwMTgwNDY1NzkwNSIsICJ0eXBlIjogInJlY2VpcHQiLCAidXVpZCI6ICJTZXJoaWkiLCAidmFsdWUiOiAidmFsdWU1IiwgImFjdGlvblRpbWV0b2tlbiI6ICIxNTc4MjcwMTg2ODk5MzM2MCJ9LCB7Im1lc3NhZ2VUaW1ldG9rZW4iOiAiMTU3ODI3MDE4MDQ2NTc5MDUiLCAidHlwZSI6ICJjdXN0b20iLCAidXVpZCI6ICJTZXJoaWkiLCAidmFsdWUiOiAidmFsdWU2IiwgImFjdGlvblRpbWV0b2tlbiI6ICIxNTc4MjcwMTg3NDkxMjUyOCJ9XX0=" + }, + "type" : 2 + }, + { + "id" : "F2310B36-0E68-47E8-A932-AC0922CDBC39", + "type" : 4 + }, + { + "id" : "3B01E4C3-C2B2-46CA-A342-6041C08B15DE", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3B01E4C3-C2B2-46CA-A342-6041C08B15DE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:23:14 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "52", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "3B01E4C3-C2B2-46CA-A342-6041C08B15DE", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJlcnJvciI6IGZhbHNlLCAiZXJyb3JfbWVzc2FnZSI6ICIifQ==" + }, + "type" : 2 + }, + { + "id" : "3B01E4C3-C2B2-46CA-A342-6041C08B15DE", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMessageActionsIntegrationTest.bundle/ItShouldRemoveActionAndReceiveStatusWithExpectedOperationAndCategory.json b/Tests/Support Files/Fixtures/PNMessageActionsIntegrationTest.bundle/ItShouldRemoveActionAndReceiveStatusWithExpectedOperationAndCategory.json new file mode 100644 index 000000000..f8b4f9e15 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMessageActionsIntegrationTest.bundle/ItShouldRemoveActionAndReceiveStatusWithExpectedOperationAndCategory.json @@ -0,0 +1,329 @@ +[ + { + "id" : "C28FB1E2-C0D4-4A24-A3B8-5F21371F7FFF", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?meta=%7B%22time%22:1577918412%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "C28FB1E2-C0D4-4A24-A3B8-5F21371F7FFF", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?uuid=Serhii&meta=%7B%22time%22:1577918412%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:23:19 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C28FB1E2-C0D4-4A24-A3B8-5F21371F7FFF", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMTk5MzI4Mzc5MiJd" + }, + "type" : 2 + }, + { + "id" : "C28FB1E2-C0D4-4A24-A3B8-5F21371F7FFF", + "type" : 4 + }, + { + "id" : "E38CB3F0-4191-4C0C-BEF7-FC3B8CC2992A", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "Accept" : "*\/*", + "Content-Type" : "application\/json;charset=UTF-8", + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Content-Length" : "49", + "Accept-Encoding" : "gzip,deflate", + "Connection" : "keep-alive" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ0eXBlIjoicmVjZWlwdCIsInZhbHVlIjoidmFsdWUyIn0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782701993283792?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E38CB3F0-4191-4C0C-BEF7-FC3B8CC2992A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782701993283792?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:23:23 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "176", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E38CB3F0-4191-4C0C-BEF7-FC3B8CC2992A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogeyJtZXNzYWdlVGltZXRva2VuIjogIjE1NzgyNzAxOTkzMjgzNzkyIiwgInR5cGUiOiAicmVjZWlwdCIsICJ1dWlkIjogIlNlcmhpaSIsICJ2YWx1ZSI6ICJ2YWx1ZTIiLCAiYWN0aW9uVGltZXRva2VuIjogIjE1NzgyNzAyMDMwMTIxMTkwIn19" + }, + "type" : 2 + }, + { + "id" : "E38CB3F0-4191-4C0C-BEF7-FC3B8CC2992A", + "type" : 4 + }, + { + "id" : "181CF924-BA69-4E5C-992E-248DC1DEA69B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "181CF924-BA69-4E5C-992E-248DC1DEA69B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:23:26 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "178", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "181CF924-BA69-4E5C-992E-248DC1DEA69B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogW3sibWVzc2FnZVRpbWV0b2tlbiI6ICIxNTc4MjcwMTk5MzI4Mzc5MiIsICJ0eXBlIjogInJlY2VpcHQiLCAidXVpZCI6ICJTZXJoaWkiLCAidmFsdWUiOiAidmFsdWUyIiwgImFjdGlvblRpbWV0b2tlbiI6ICIxNTc4MjcwMjAzMDEyMTE5MCJ9XX0=" + }, + "type" : 2 + }, + { + "id" : "181CF924-BA69-4E5C-992E-248DC1DEA69B", + "type" : 4 + }, + { + "id" : "3143E992-AC02-405F-A4E2-34694CDAE0CC", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782701993283792\/action\/15782702030121190?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3143E992-AC02-405F-A4E2-34694CDAE0CC", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782701993283792\/action\/15782702030121190?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:23:26 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "27", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "3143E992-AC02-405F-A4E2-34694CDAE0CC", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjoge319" + }, + "type" : 2 + }, + { + "id" : "3143E992-AC02-405F-A4E2-34694CDAE0CC", + "type" : 4 + }, + { + "id" : "A0B104AF-98EB-419A-B650-194E6E71ECD3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A0B104AF-98EB-419A-B650-194E6E71ECD3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:23:26 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "27", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "A0B104AF-98EB-419A-B650-194E6E71ECD3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogW119" + }, + "type" : 2 + }, + { + "id" : "A0B104AF-98EB-419A-B650-194E6E71ECD3", + "type" : 4 + }, + { + "id" : "409A3E71-F221-41B7-84F6-E5D1A5162B32", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "409A3E71-F221-41B7-84F6-E5D1A5162B32", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:23:26 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "52", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "409A3E71-F221-41B7-84F6-E5D1A5162B32", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJlcnJvciI6IGZhbHNlLCAiZXJyb3JfbWVzc2FnZSI6ICIifQ==" + }, + "type" : 2 + }, + { + "id" : "409A3E71-F221-41B7-84F6-E5D1A5162B32", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNMessageActionsIntegrationTest.bundle/ItShouldRemoveActionAndTriggerRemovingEvent.json b/Tests/Support Files/Fixtures/PNMessageActionsIntegrationTest.bundle/ItShouldRemoveActionAndTriggerRemovingEvent.json new file mode 100644 index 000000000..7bbdd9114 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNMessageActionsIntegrationTest.bundle/ItShouldRemoveActionAndTriggerRemovingEvent.json @@ -0,0 +1,520 @@ +[ + { + "id" : "E32B911C-B6E0-47A5-90E3-8459F7F780B0", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?meta=%7B%22time%22:1577918412%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=serhii" + }, + "type" : 0 + }, + { + "id" : "E32B911C-B6E0-47A5-90E3-8459F7F780B0", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22messageIdx%22:%22message:%200%22,%22time%22:1577918412%7D?uuid=serhii&meta=%7B%22time%22:1577918412%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:23:30 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E32B911C-B6E0-47A5-90E3-8459F7F780B0", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMjEwNzUzMDM4MCJd" + }, + "type" : 2 + }, + { + "id" : "E32B911C-B6E0-47A5-90E3-8459F7F780B0", + "type" : 4 + }, + { + "id" : "9467477A-3443-4B69-B3DA-847A1D568EAE", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "Accept" : "*\/*", + "Content-Type" : "application\/json;charset=UTF-8", + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Content-Length" : "49", + "Accept-Encoding" : "gzip,deflate", + "Connection" : "keep-alive" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJ0eXBlIjoicmVjZWlwdCIsInZhbHVlIjoidmFsdWUyIn0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782702107530380?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9467477A-3443-4B69-B3DA-847A1D568EAE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782702107530380?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:23:34 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "176", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9467477A-3443-4B69-B3DA-847A1D568EAE", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogeyJtZXNzYWdlVGltZXRva2VuIjogIjE1NzgyNzAyMTA3NTMwMzgwIiwgInR5cGUiOiAicmVjZWlwdCIsICJ1dWlkIjogInNlcmhpaSIsICJ2YWx1ZSI6ICJ2YWx1ZTIiLCAiYWN0aW9uVGltZXRva2VuIjogIjE1NzgyNzAyMTQzOTM4MTQwIn19" + }, + "type" : 2 + }, + { + "id" : "9467477A-3443-4B69-B3DA-847A1D568EAE", + "type" : 4 + }, + { + "id" : "99D01ED8-B023-4FBE-A46A-6057398E7947", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel?uuid=serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "99D01ED8-B023-4FBE-A46A-6057398E7947", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel?uuid=serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:23:38 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "178", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "99D01ED8-B023-4FBE-A46A-6057398E7947", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogW3sibWVzc2FnZVRpbWV0b2tlbiI6ICIxNTc4MjcwMjEwNzUzMDM4MCIsICJ0eXBlIjogInJlY2VpcHQiLCAidXVpZCI6ICJzZXJoaWkiLCAidmFsdWUiOiAidmFsdWUyIiwgImFjdGlvblRpbWV0b2tlbiI6ICIxNTc4MjcwMjE0MzkzODE0MCJ9XX0=" + }, + "type" : 2 + }, + { + "id" : "99D01ED8-B023-4FBE-A46A-6057398E7947", + "type" : 4 + }, + { + "id" : "A19B4396-6C44-49FC-8067-5B3A149BB090", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A19B4396-6C44-49FC-8067-5B3A149BB090", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:23:38 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "A19B4396-6C44-49FC-8067-5B3A149BB090", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjE0NDYzODk5MyIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "A19B4396-6C44-49FC-8067-5B3A149BB090", + "type" : 4 + }, + { + "id" : "8F8DCA4A-9F53-4A66-98EA-37E1DD01DD52", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702144638993&tr=12" + }, + "type" : 0 + }, + { + "id" : "08F5344D-0DB7-478C-A645-BC4295F4B5BC", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782702107530380\/action\/15782702143938140?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "8F8DCA4A-9F53-4A66-98EA-37E1DD01DD52", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702144638993&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:23:38 GMT", + "Content-Length" : "391", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "8F8DCA4A-9F53-4A66-98EA-37E1DD01DD52", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjE4NDY2NDUwNyIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJlIjozLCJpIjoic2VyaGlpIiwicCI6eyJ0IjoiMTU3ODI3MDIxODQ2NjA5ODgiLCJyIjoxMn0sImsiOiJkZW1vIiwiYyI6InRlc3QtY2hhbm5lbCIsImQiOnsic291cmNlIjoiYWN0aW9ucyIsInZlcnNpb24iOiIxLjAiLCJkYXRhIjp7Im1lc3NhZ2VUaW1ldG9rZW4iOiIxNTc4MjcwMjEwNzUzMDM4MCIsInR5cGUiOiJyZWNlaXB0IiwidmFsdWUiOiJ2YWx1ZTIiLCJhY3Rpb25UaW1ldG9rZW4iOiIxNTc4MjcwMjE0MzkzODE0MCJ9LCJldmVudCI6InJlbW92ZWQifX1dfQ==" + }, + "type" : 2 + }, + { + "id" : "8F8DCA4A-9F53-4A66-98EA-37E1DD01DD52", + "type" : 4 + }, + { + "id" : "08F5344D-0DB7-478C-A645-BC4295F4B5BC", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel\/message\/15782702107530380\/action\/15782702143938140?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:23:38 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "27", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "08F5344D-0DB7-478C-A645-BC4295F4B5BC", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjoge319" + }, + "type" : 2 + }, + { + "id" : "08F5344D-0DB7-478C-A645-BC4295F4B5BC", + "type" : 4 + }, + { + "id" : "BBDD8E53-7D55-412C-91F1-E094BB394465", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702184664507&tr=12" + }, + "type" : 0 + }, + { + "id" : "BBDD8E53-7D55-412C-91F1-E094BB394465", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702184664507&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702184664507&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "008AA51B-3913-4139-948C-79283C020483", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "008AA51B-3913-4139-948C-79283C020483", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:23:38 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "008AA51B-3913-4139-948C-79283C020483", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "008AA51B-3913-4139-948C-79283C020483", + "type" : 4 + }, + { + "id" : "9D0046FB-CB51-455F-AD0E-5FC0F06A23DB", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel?uuid=serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9D0046FB-CB51-455F-AD0E-5FC0F06A23DB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/message-actions\/demo\/channel\/test-channel?uuid=serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:23:38 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "27", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9D0046FB-CB51-455F-AD0E-5FC0F06A23DB", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJkYXRhIjogW119" + }, + "type" : 2 + }, + { + "id" : "9D0046FB-CB51-455F-AD0E-5FC0F06A23DB", + "type" : 4 + }, + { + "id" : "69BF45FA-BC39-4215-9746-B1B7CD871735", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "69BF45FA-BC39-4215-9746-B1B7CD871735", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v3\/history\/sub-key\/demo\/channel\/test-channel?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:23:38 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "52", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "69BF45FA-BC39-4215-9746-B1B7CD871735", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJlcnJvciI6IGZhbHNlLCAiZXJyb3JfbWVzc2FnZSI6ICIifQ==" + }, + "type" : 2 + }, + { + "id" : "69BF45FA-BC39-4215-9746-B1B7CD871735", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchChannelGroupHereNowAndReceiveResultWithExpectedOperation.json b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchChannelGroupHereNowAndReceiveResultWithExpectedOperation.json new file mode 100644 index 000000000..fb731ed35 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchChannelGroupHereNowAndReceiveResultWithExpectedOperation.json @@ -0,0 +1,584 @@ +[ + { + "id" : "C4402A25-10B1-4F2C-8A85-1E80A400604D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2,test-channel3" + }, + "type" : 0 + }, + { + "id" : "C4402A25-10B1-4F2C-8A85-1E80A400604D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2,test-channel3", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:54:13 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C4402A25-10B1-4F2C-8A85-1E80A400604D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "C4402A25-10B1-4F2C-8A85-1E80A400604D", + "type" : 4 + }, + { + "id" : "16EEB680-4B42-4783-B1BA-FC72332F6AF0", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Kim&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "16EEB680-4B42-4783-B1BA-FC72332F6AF0", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Kim&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Sat, 25 Jan 2020 21:54:14 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "16EEB680-4B42-4783-B1BA-FC72332F6AF0", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc5OTg5MjU0MzYzNDM1NiIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "16EEB680-4B42-4783-B1BA-FC72332F6AF0", + "type" : 4 + }, + { + "id" : "084BC081-89CE-435C-A006-02690999B141", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799892543634356&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "C47B572A-D89E-452C-9C42-A5291CC65A11", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Earline&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "C47B572A-D89E-452C-9C42-A5291CC65A11", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Earline&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Sat, 25 Jan 2020 21:54:14 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C47B572A-D89E-452C-9C42-A5291CC65A11", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc5OTg5MjU0NjA4MzE4MiIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "C47B572A-D89E-452C-9C42-A5291CC65A11", + "type" : 4 + }, + { + "id" : "EF880D12-EBB8-43BF-9E36-C4487CF48FAD", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799892546083182&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "E754523A-3AAC-43D4-B924-6DC144931A6C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Glen&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "E754523A-3AAC-43D4-B924-6DC144931A6C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Glen&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Sat, 25 Jan 2020 21:54:14 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E754523A-3AAC-43D4-B924-6DC144931A6C", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc5OTg5MjU0ODQ5MTY3MiIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "E754523A-3AAC-43D4-B924-6DC144931A6C", + "type" : 4 + }, + { + "id" : "4AC7BED7-50E8-4498-9592-84EB9424A734", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799892548491672&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "0CAF5EB5-0859-41C8-84E8-295F88D4F3AD", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/,?disable_uuids=0&channel-group=test-channel-group&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=1" + }, + "type" : 0 + }, + { + "id" : "0CAF5EB5-0859-41C8-84E8-295F88D4F3AD", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/,?disable_uuids=0&channel-group=test-channel-group&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=1", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:54:20 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "403", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "0CAF5EB5-0859-41C8-84E8-295F88D4F3AD", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWxzIjogeyJ0ZXN0LWNoYW5uZWwzIjogeyJvY2N1cGFuY3kiOiAxLCAidXVpZHMiOiBbeyJ1dWlkIjogIkdsZW4ifV19LCAidGVzdC1jaGFubmVsMSI6IHsib2NjdXBhbmN5IjogMSwgInV1aWRzIjogW3sidXVpZCI6ICJLaW0ifV19LCAidGVzdC1jaGFubmVsMiI6IHsib2NjdXBhbmN5IjogMSwgInV1aWRzIjogW3sidXVpZCI6ICJFYXJsaW5lIn1dfX0sICJ0b3RhbF9jaGFubmVscyI6IDMsICJ0b3RhbF9vY2N1cGFuY3kiOiAzfSwgInNlcnZpY2UiOiAiUHJlc2VuY2UifQ==" + }, + "type" : 2 + }, + { + "id" : "0CAF5EB5-0859-41C8-84E8-295F88D4F3AD", + "type" : 4 + }, + { + "id" : "084BC081-89CE-435C-A006-02690999B141", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799892543634356&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799892543634356&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "82FB521C-0874-4218-A7EC-DDC32ED8E9E7", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/leave?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "82FB521C-0874-4218-A7EC-DDC32ED8E9E7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/leave?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:54:20 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "82FB521C-0874-4218-A7EC-DDC32ED8E9E7", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "82FB521C-0874-4218-A7EC-DDC32ED8E9E7", + "type" : 4 + }, + { + "id" : "EF880D12-EBB8-43BF-9E36-C4487CF48FAD", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799892546083182&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799892546083182&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "E4182848-CE33-488F-A6FF-CA12DF8B0914", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/leave?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E4182848-CE33-488F-A6FF-CA12DF8B0914", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/leave?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:54:21 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E4182848-CE33-488F-A6FF-CA12DF8B0914", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "E4182848-CE33-488F-A6FF-CA12DF8B0914", + "type" : 4 + }, + { + "id" : "4AC7BED7-50E8-4498-9592-84EB9424A734", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799892548491672&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799892548491672&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "822F4ABA-5EBD-4822-8358-695B8D51E23E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/leave?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "822F4ABA-5EBD-4822-8358-695B8D51E23E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/leave?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:54:21 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "822F4ABA-5EBD-4822-8358-695B8D51E23E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "822F4ABA-5EBD-4822-8358-695B8D51E23E", + "type" : 4 + }, + { + "id" : "260FFA19-2EFF-41DC-B1AD-136D9C746615", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "260FFA19-2EFF-41DC-B1AD-136D9C746615", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:54:25 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "260FFA19-2EFF-41DC-B1AD-136D9C746615", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "260FFA19-2EFF-41DC-B1AD-136D9C746615", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchChannelGroupHereNowUsingBuilderPatternInterface.json b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchChannelGroupHereNowUsingBuilderPatternInterface.json new file mode 100644 index 000000000..31d081feb --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchChannelGroupHereNowUsingBuilderPatternInterface.json @@ -0,0 +1,584 @@ +[ + { + "id" : "6033E024-0127-413F-92AF-659B64FB2CC8", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2,test-channel3" + }, + "type" : 0 + }, + { + "id" : "6033E024-0127-413F-92AF-659B64FB2CC8", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2,test-channel3", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:54:26 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "6033E024-0127-413F-92AF-659B64FB2CC8", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "6033E024-0127-413F-92AF-659B64FB2CC8", + "type" : 4 + }, + { + "id" : "382C8FFC-86CC-4033-8036-D043D2BADBB1", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Kim&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "382C8FFC-86CC-4033-8036-D043D2BADBB1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Kim&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Sat, 25 Jan 2020 21:54:27 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "382C8FFC-86CC-4033-8036-D043D2BADBB1", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc5OTg5MjY3NTUxMjYwNSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "382C8FFC-86CC-4033-8036-D043D2BADBB1", + "type" : 4 + }, + { + "id" : "1C7E4F9D-B32D-4C70-89E4-2D0A1E920CDB", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799892675512605&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "FBD48880-66E9-4EFF-B45D-61D62B35DFBA", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Earline&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "FBD48880-66E9-4EFF-B45D-61D62B35DFBA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Earline&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Sat, 25 Jan 2020 21:54:27 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "FBD48880-66E9-4EFF-B45D-61D62B35DFBA", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc5OTg5MjY3ODEwMTI4NyIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "FBD48880-66E9-4EFF-B45D-61D62B35DFBA", + "type" : 4 + }, + { + "id" : "7CA2E9E3-5C45-4053-B3D0-7C33FB93CDAA", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799892678101287&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "34D828D1-BBAE-450B-A6F7-1F007E1C5B94", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Glen&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "34D828D1-BBAE-450B-A6F7-1F007E1C5B94", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Glen&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Sat, 25 Jan 2020 21:54:28 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "34D828D1-BBAE-450B-A6F7-1F007E1C5B94", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc5OTg5MjY4MDU3NTc3MCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "34D828D1-BBAE-450B-A6F7-1F007E1C5B94", + "type" : 4 + }, + { + "id" : "F34E9EC9-C168-4706-A6CC-5CF1919FE0F1", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799892680575770&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "010327CC-93EF-4311-A67A-E09C8F938313", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/,?disable_uuids=0&channel-group=test-channel-group&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=1" + }, + "type" : 0 + }, + { + "id" : "010327CC-93EF-4311-A67A-E09C8F938313", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/,?disable_uuids=0&channel-group=test-channel-group&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=1", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:54:33 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "403", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "010327CC-93EF-4311-A67A-E09C8F938313", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWxzIjogeyJ0ZXN0LWNoYW5uZWwxIjogeyJvY2N1cGFuY3kiOiAxLCAidXVpZHMiOiBbeyJ1dWlkIjogIktpbSJ9XX0sICJ0ZXN0LWNoYW5uZWwzIjogeyJvY2N1cGFuY3kiOiAxLCAidXVpZHMiOiBbeyJ1dWlkIjogIkdsZW4ifV19LCAidGVzdC1jaGFubmVsMiI6IHsib2NjdXBhbmN5IjogMSwgInV1aWRzIjogW3sidXVpZCI6ICJFYXJsaW5lIn1dfX0sICJ0b3RhbF9jaGFubmVscyI6IDMsICJ0b3RhbF9vY2N1cGFuY3kiOiAzfSwgInNlcnZpY2UiOiAiUHJlc2VuY2UifQ==" + }, + "type" : 2 + }, + { + "id" : "010327CC-93EF-4311-A67A-E09C8F938313", + "type" : 4 + }, + { + "id" : "1C7E4F9D-B32D-4C70-89E4-2D0A1E920CDB", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799892675512605&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799892675512605&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "2782340E-EF92-4178-8870-D3ADC4B00EAA", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/leave?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2782340E-EF92-4178-8870-D3ADC4B00EAA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/leave?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:54:34 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "2782340E-EF92-4178-8870-D3ADC4B00EAA", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "2782340E-EF92-4178-8870-D3ADC4B00EAA", + "type" : 4 + }, + { + "id" : "7CA2E9E3-5C45-4053-B3D0-7C33FB93CDAA", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799892678101287&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799892678101287&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "D1E89B6D-4133-4D99-BA29-FF10F7AE5121", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/leave?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D1E89B6D-4133-4D99-BA29-FF10F7AE5121", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/leave?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:54:34 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D1E89B6D-4133-4D99-BA29-FF10F7AE5121", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "D1E89B6D-4133-4D99-BA29-FF10F7AE5121", + "type" : 4 + }, + { + "id" : "F34E9EC9-C168-4706-A6CC-5CF1919FE0F1", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799892680575770&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799892680575770&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "0BF2FD2A-072A-49D6-B35B-B99044CE47F4", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/leave?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "0BF2FD2A-072A-49D6-B35B-B99044CE47F4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/leave?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:54:34 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "0BF2FD2A-072A-49D6-B35B-B99044CE47F4", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "0BF2FD2A-072A-49D6-B35B-B99044CE47F4", + "type" : 4 + }, + { + "id" : "78CB5006-F423-4A23-8C8A-DEA5A5BD75BB", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "78CB5006-F423-4A23-8C8A-DEA5A5BD75BB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:54:38 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "78CB5006-F423-4A23-8C8A-DEA5A5BD75BB", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "78CB5006-F423-4A23-8C8A-DEA5A5BD75BB", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchChannelGroupHereNowWithParticipantsOccupancyWhenOccupancyVerbosityIsSet.json b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchChannelGroupHereNowWithParticipantsOccupancyWhenOccupancyVerbosityIsSet.json new file mode 100644 index 000000000..d4d2665ce --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchChannelGroupHereNowWithParticipantsOccupancyWhenOccupancyVerbosityIsSet.json @@ -0,0 +1,584 @@ +[ + { + "id" : "F36F3A71-C45E-49E7-94B2-DA1019369D7B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2,test-channel3" + }, + "type" : 0 + }, + { + "id" : "F36F3A71-C45E-49E7-94B2-DA1019369D7B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2,test-channel3", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:54:40 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F36F3A71-C45E-49E7-94B2-DA1019369D7B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "F36F3A71-C45E-49E7-94B2-DA1019369D7B", + "type" : 4 + }, + { + "id" : "0A58917D-F65E-4CEB-9E0D-BA452713007F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Kim&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "0A58917D-F65E-4CEB-9E0D-BA452713007F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Kim&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Sat, 25 Jan 2020 21:54:41 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "0A58917D-F65E-4CEB-9E0D-BA452713007F", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc5OTg5MjgxMjk0NTAzOSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "0A58917D-F65E-4CEB-9E0D-BA452713007F", + "type" : 4 + }, + { + "id" : "C94CD889-61A7-43F8-8C9E-32CDD2E94F31", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799892812945039&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "BC5B3910-FB10-4FE6-9F3E-C8C509A842A5", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Earline&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "BC5B3910-FB10-4FE6-9F3E-C8C509A842A5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Earline&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Sat, 25 Jan 2020 21:54:41 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "BC5B3910-FB10-4FE6-9F3E-C8C509A842A5", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc5OTg5MjgxNTU5NDcxMSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "BC5B3910-FB10-4FE6-9F3E-C8C509A842A5", + "type" : 4 + }, + { + "id" : "583EF358-89AC-4493-99D2-E9211981844A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799892815594711&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "7BCEB9E2-8599-4EE0-9F70-F38AF89B7554", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Glen&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "7BCEB9E2-8599-4EE0-9F70-F38AF89B7554", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Glen&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Sat, 25 Jan 2020 21:54:41 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "7BCEB9E2-8599-4EE0-9F70-F38AF89B7554", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc5OTg5MjgxODA2NjI1OSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "7BCEB9E2-8599-4EE0-9F70-F38AF89B7554", + "type" : 4 + }, + { + "id" : "FC2DED3D-D272-4924-9F14-F9AC882FA27F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799892818066259&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "E2316DDB-3758-48D5-BD67-781A275B005D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/,?disable_uuids=1&channel-group=test-channel-group&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=0" + }, + "type" : 0 + }, + { + "id" : "E2316DDB-3758-48D5-BD67-781A275B005D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/,?disable_uuids=1&channel-group=test-channel-group&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=0", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:54:47 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "272", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E2316DDB-3758-48D5-BD67-781A275B005D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWxzIjogeyJ0ZXN0LWNoYW5uZWwxIjogeyJvY2N1cGFuY3kiOiAxfSwgInRlc3QtY2hhbm5lbDIiOiB7Im9jY3VwYW5jeSI6IDF9LCAidGVzdC1jaGFubmVsMyI6IHsib2NjdXBhbmN5IjogMX19LCAidG90YWxfY2hhbm5lbHMiOiAzLCAidG90YWxfb2NjdXBhbmN5IjogM30sICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "E2316DDB-3758-48D5-BD67-781A275B005D", + "type" : 4 + }, + { + "id" : "C94CD889-61A7-43F8-8C9E-32CDD2E94F31", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799892812945039&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799892812945039&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "EC7D5647-BB63-4EA9-BE2B-7A40E11F25C4", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/leave?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "EC7D5647-BB63-4EA9-BE2B-7A40E11F25C4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/leave?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:54:47 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "EC7D5647-BB63-4EA9-BE2B-7A40E11F25C4", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "EC7D5647-BB63-4EA9-BE2B-7A40E11F25C4", + "type" : 4 + }, + { + "id" : "583EF358-89AC-4493-99D2-E9211981844A", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799892815594711&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799892815594711&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "F5B348E8-39A2-41FA-8F35-289A338AC16F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/leave?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F5B348E8-39A2-41FA-8F35-289A338AC16F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/leave?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:54:47 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F5B348E8-39A2-41FA-8F35-289A338AC16F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "F5B348E8-39A2-41FA-8F35-289A338AC16F", + "type" : 4 + }, + { + "id" : "FC2DED3D-D272-4924-9F14-F9AC882FA27F", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799892818066259&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799892818066259&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "B814C225-B60F-481F-9F19-04176DC3593F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/leave?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B814C225-B60F-481F-9F19-04176DC3593F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/leave?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:54:48 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B814C225-B60F-481F-9F19-04176DC3593F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "B814C225-B60F-481F-9F19-04176DC3593F", + "type" : 4 + }, + { + "id" : "2A80943E-5BB2-4E22-8001-6957E15FACBF", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2A80943E-5BB2-4E22-8001-6957E15FACBF", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:54:52 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "2A80943E-5BB2-4E22-8001-6957E15FACBF", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "2A80943E-5BB2-4E22-8001-6957E15FACBF", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchChannelGroupHereNowWithParticipantsStateWhenStateVerbosityIsSet.json b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchChannelGroupHereNowWithParticipantsStateWhenStateVerbosityIsSet.json new file mode 100644 index 000000000..65dc9f1d5 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchChannelGroupHereNowWithParticipantsStateWhenStateVerbosityIsSet.json @@ -0,0 +1,746 @@ +[ + { + "id" : "0340E595-073B-4B1C-865C-BEFDD8DD970A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2,test-channel3" + }, + "type" : 0 + }, + { + "id" : "0340E595-073B-4B1C-865C-BEFDD8DD970A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2,test-channel3", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:54:52 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "0340E595-073B-4B1C-865C-BEFDD8DD970A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "0340E595-073B-4B1C-865C-BEFDD8DD970A", + "type" : 4 + }, + { + "id" : "70B8D205-BB1D-44B7-8DDE-69B6A04A98C8", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Kim&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "70B8D205-BB1D-44B7-8DDE-69B6A04A98C8", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Kim&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Sat, 25 Jan 2020 21:54:54 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "70B8D205-BB1D-44B7-8DDE-69B6A04A98C8", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc5OTg5Mjk0MDkxMTY1NCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "70B8D205-BB1D-44B7-8DDE-69B6A04A98C8", + "type" : 4 + }, + { + "id" : "AE54566D-7EE4-48DD-80F8-33905A446D53", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799892940911654&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "F8CCA788-1857-4B7F-8AE2-C5A85A9B875C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Earline&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "F8CCA788-1857-4B7F-8AE2-C5A85A9B875C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Earline&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Sat, 25 Jan 2020 21:54:54 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F8CCA788-1857-4B7F-8AE2-C5A85A9B875C", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc5OTg5Mjk0MzQ2ODAxOCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "F8CCA788-1857-4B7F-8AE2-C5A85A9B875C", + "type" : 4 + }, + { + "id" : "4B393C02-876F-4D86-BD54-D45550C358DB", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799892943468018&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "D1667906-B6CA-4773-8727-A4A8C78D8CF5", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Glen&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "D1667906-B6CA-4773-8727-A4A8C78D8CF5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Glen&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Sat, 25 Jan 2020 21:54:54 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D1667906-B6CA-4773-8727-A4A8C78D8CF5", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc5OTg5Mjk0NjExOTI5MCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "D1667906-B6CA-4773-8727-A4A8C78D8CF5", + "type" : 4 + }, + { + "id" : "68A762E9-E901-42B4-955E-F68A9A3BD18A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799892946119290&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "874AA9B3-4671-438A-B76D-A5B9092EF855", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1\/uuid\/Kim\/data?uuid=Kim&state=%7B%22channel1-state%22:%5B%22channel-1-random-value%22%5D%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "874AA9B3-4671-438A-B76D-A5B9092EF855", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1\/uuid\/Kim\/data?uuid=Kim&state=%7B%22channel1-state%22:%5B%22channel-1-random-value%22%5D%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:55:00 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "128", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "874AA9B3-4671-438A-B76D-A5B9092EF855", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWwxLXN0YXRlIjogWyJjaGFubmVsLTEtcmFuZG9tLXZhbHVlIl19LCAic2VydmljZSI6ICJQcmVzZW5jZSJ9" + }, + "type" : 2 + }, + { + "id" : "874AA9B3-4671-438A-B76D-A5B9092EF855", + "type" : 4 + }, + { + "id" : "0C94A84F-A863-4D91-8973-65CBA56C4755", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel2\/uuid\/Earline\/data?uuid=Earline&state=%7B%22channel2-state%22:%5B%22channel-2-random-value%22%5D%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "0C94A84F-A863-4D91-8973-65CBA56C4755", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel2\/uuid\/Earline\/data?uuid=Earline&state=%7B%22channel2-state%22:%5B%22channel-2-random-value%22%5D%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:55:01 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "128", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "0C94A84F-A863-4D91-8973-65CBA56C4755", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWwyLXN0YXRlIjogWyJjaGFubmVsLTItcmFuZG9tLXZhbHVlIl19LCAic2VydmljZSI6ICJQcmVzZW5jZSJ9" + }, + "type" : 2 + }, + { + "id" : "0C94A84F-A863-4D91-8973-65CBA56C4755", + "type" : 4 + }, + { + "id" : "7B69CAF0-91F4-46C1-95C8-64BA1D88B27D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel3\/uuid\/Glen\/data?uuid=Glen&state=%7B%22channel3-state%22:%5B%22channel-3-random-value%22%5D%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "7B69CAF0-91F4-46C1-95C8-64BA1D88B27D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel3\/uuid\/Glen\/data?uuid=Glen&state=%7B%22channel3-state%22:%5B%22channel-3-random-value%22%5D%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:55:03 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "128", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "7B69CAF0-91F4-46C1-95C8-64BA1D88B27D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWwzLXN0YXRlIjogWyJjaGFubmVsLTMtcmFuZG9tLXZhbHVlIl19LCAic2VydmljZSI6ICJQcmVzZW5jZSJ9" + }, + "type" : 2 + }, + { + "id" : "7B69CAF0-91F4-46C1-95C8-64BA1D88B27D", + "type" : 4 + }, + { + "id" : "997D9E5B-11D9-4A6A-8FE5-B61138D93747", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/,?disable_uuids=0&channel-group=test-channel-group&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=1" + }, + "type" : 0 + }, + { + "id" : "997D9E5B-11D9-4A6A-8FE5-B61138D93747", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/,?disable_uuids=0&channel-group=test-channel-group&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=1", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:55:05 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "616", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "997D9E5B-11D9-4A6A-8FE5-B61138D93747", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWxzIjogeyJ0ZXN0LWNoYW5uZWwyIjogeyJvY2N1cGFuY3kiOiAxLCAidXVpZHMiOiBbeyJ1dWlkIjogIkVhcmxpbmUiLCAic3RhdGUiOiB7ImNoYW5uZWwyLXN0YXRlIjogWyJjaGFubmVsLTItcmFuZG9tLXZhbHVlIl19fV19LCAidGVzdC1jaGFubmVsMyI6IHsib2NjdXBhbmN5IjogMSwgInV1aWRzIjogW3sidXVpZCI6ICJHbGVuIiwgInN0YXRlIjogeyJjaGFubmVsMy1zdGF0ZSI6IFsiY2hhbm5lbC0zLXJhbmRvbS12YWx1ZSJdfX1dfSwgInRlc3QtY2hhbm5lbDEiOiB7Im9jY3VwYW5jeSI6IDEsICJ1dWlkcyI6IFt7InV1aWQiOiAiS2ltIiwgInN0YXRlIjogeyJjaGFubmVsMS1zdGF0ZSI6IFsiY2hhbm5lbC0xLXJhbmRvbS12YWx1ZSJdfX1dfX0sICJ0b3RhbF9jaGFubmVscyI6IDMsICJ0b3RhbF9vY2N1cGFuY3kiOiAzfSwgInNlcnZpY2UiOiAiUHJlc2VuY2UifQ==" + }, + "type" : 2 + }, + { + "id" : "997D9E5B-11D9-4A6A-8FE5-B61138D93747", + "type" : 4 + }, + { + "id" : "AE54566D-7EE4-48DD-80F8-33905A446D53", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799892940911654&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799892940911654&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "C800C94A-0DCA-4BE2-8E89-BF738D7C8A87", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/leave?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C800C94A-0DCA-4BE2-8E89-BF738D7C8A87", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/leave?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:55:05 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C800C94A-0DCA-4BE2-8E89-BF738D7C8A87", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "C800C94A-0DCA-4BE2-8E89-BF738D7C8A87", + "type" : 4 + }, + { + "id" : "4B393C02-876F-4D86-BD54-D45550C358DB", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799892943468018&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799892943468018&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "0A5F98EC-3280-43CA-B16A-868E2B149E93", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/leave?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "0A5F98EC-3280-43CA-B16A-868E2B149E93", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/leave?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:55:05 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "0A5F98EC-3280-43CA-B16A-868E2B149E93", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "0A5F98EC-3280-43CA-B16A-868E2B149E93", + "type" : 4 + }, + { + "id" : "68A762E9-E901-42B4-955E-F68A9A3BD18A", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799892946119290&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799892946119290&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "150394FE-1C54-46DF-A76B-C1E7EC0AA113", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/leave?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "150394FE-1C54-46DF-A76B-C1E7EC0AA113", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/leave?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:55:05 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "150394FE-1C54-46DF-A76B-C1E7EC0AA113", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "150394FE-1C54-46DF-A76B-C1E7EC0AA113", + "type" : 4 + }, + { + "id" : "9393DEA7-403C-419E-8755-8373131D94E8", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9393DEA7-403C-419E-8755-8373131D94E8", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:55:10 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9393DEA7-403C-419E-8755-8373131D94E8", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "9393DEA7-403C-419E-8755-8373131D94E8", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchChannelGroupHereNowWithParticipantsUUIDWhenUUIDVerbosityIsSet.json b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchChannelGroupHereNowWithParticipantsUUIDWhenUUIDVerbosityIsSet.json new file mode 100644 index 000000000..fa15492a9 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchChannelGroupHereNowWithParticipantsUUIDWhenUUIDVerbosityIsSet.json @@ -0,0 +1,584 @@ +[ + { + "id" : "4B3B28EA-6336-4C5A-8F30-2026441B017A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2,test-channel3" + }, + "type" : 0 + }, + { + "id" : "4B3B28EA-6336-4C5A-8F30-2026441B017A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2,test-channel3", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:55:10 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "4B3B28EA-6336-4C5A-8F30-2026441B017A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "4B3B28EA-6336-4C5A-8F30-2026441B017A", + "type" : 4 + }, + { + "id" : "7BA430A7-7078-40AC-BF3B-1CA8FE0F0DEE", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Kim&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "7BA430A7-7078-40AC-BF3B-1CA8FE0F0DEE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Kim&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Sat, 25 Jan 2020 21:55:12 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "7BA430A7-7078-40AC-BF3B-1CA8FE0F0DEE", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc5OTg5MzExOTY2NzI2NSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "7BA430A7-7078-40AC-BF3B-1CA8FE0F0DEE", + "type" : 4 + }, + { + "id" : "48002451-85CD-4A0A-AD3A-4B80C0A660E7", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893119667265&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "CCB7A7D1-9064-448E-A230-62F9E0DB8491", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Earline&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "CCB7A7D1-9064-448E-A230-62F9E0DB8491", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Earline&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Sat, 25 Jan 2020 21:55:12 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "CCB7A7D1-9064-448E-A230-62F9E0DB8491", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc5OTg5MzEyMjE1NDc4NCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "CCB7A7D1-9064-448E-A230-62F9E0DB8491", + "type" : 4 + }, + { + "id" : "82F1C84B-106D-4858-BBFF-13AF71D0C011", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893122154784&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "E3E2FB78-FE71-44B3-9F93-51FC0A17D2C8", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Glen&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "E3E2FB78-FE71-44B3-9F93-51FC0A17D2C8", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Glen&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Sat, 25 Jan 2020 21:55:12 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E3E2FB78-FE71-44B3-9F93-51FC0A17D2C8", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc5OTg5MzEyNDY4OTYyMyIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "E3E2FB78-FE71-44B3-9F93-51FC0A17D2C8", + "type" : 4 + }, + { + "id" : "C3173E12-6908-4852-9EFA-9C78A4A66D29", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893124689623&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "8813180D-B64A-4125-AA24-A112ADC2DFDA", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/,?disable_uuids=0&channel-group=test-channel-group&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=0" + }, + "type" : 0 + }, + { + "id" : "8813180D-B64A-4125-AA24-A112ADC2DFDA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/,?disable_uuids=0&channel-group=test-channel-group&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=0", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:55:17 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "373", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "8813180D-B64A-4125-AA24-A112ADC2DFDA", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWxzIjogeyJ0ZXN0LWNoYW5uZWwzIjogeyJvY2N1cGFuY3kiOiAxLCAidXVpZHMiOiBbIkdsZW4iXX0sICJ0ZXN0LWNoYW5uZWwxIjogeyJvY2N1cGFuY3kiOiAxLCAidXVpZHMiOiBbIktpbSJdfSwgInRlc3QtY2hhbm5lbDIiOiB7Im9jY3VwYW5jeSI6IDEsICJ1dWlkcyI6IFsiRWFybGluZSJdfX0sICJ0b3RhbF9jaGFubmVscyI6IDMsICJ0b3RhbF9vY2N1cGFuY3kiOiAzfSwgInNlcnZpY2UiOiAiUHJlc2VuY2UifQ==" + }, + "type" : 2 + }, + { + "id" : "8813180D-B64A-4125-AA24-A112ADC2DFDA", + "type" : 4 + }, + { + "id" : "48002451-85CD-4A0A-AD3A-4B80C0A660E7", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893119667265&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893119667265&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "6221256B-E951-48BD-841E-1F03800A9B62", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/leave?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "6221256B-E951-48BD-841E-1F03800A9B62", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/leave?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:55:18 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "6221256B-E951-48BD-841E-1F03800A9B62", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "6221256B-E951-48BD-841E-1F03800A9B62", + "type" : 4 + }, + { + "id" : "82F1C84B-106D-4858-BBFF-13AF71D0C011", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893122154784&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893122154784&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "31FDE142-98F8-4416-A672-209F8E97AF0C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/leave?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "31FDE142-98F8-4416-A672-209F8E97AF0C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/leave?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:55:18 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "31FDE142-98F8-4416-A672-209F8E97AF0C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "31FDE142-98F8-4416-A672-209F8E97AF0C", + "type" : 4 + }, + { + "id" : "C3173E12-6908-4852-9EFA-9C78A4A66D29", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893124689623&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893124689623&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "08F1F4EC-524D-42A4-828E-E4895F8F30A6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/leave?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "08F1F4EC-524D-42A4-828E-E4895F8F30A6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/leave?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:55:18 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "08F1F4EC-524D-42A4-828E-E4895F8F30A6", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "08F1F4EC-524D-42A4-828E-E4895F8F30A6", + "type" : 4 + }, + { + "id" : "241A7E39-C09A-4F82-98AB-2F973A9FE5A6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "241A7E39-C09A-4F82-98AB-2F973A9FE5A6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:55:22 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "241A7E39-C09A-4F82-98AB-2F973A9FE5A6", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "241A7E39-C09A-4F82-98AB-2F973A9FE5A6", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchChannelHereNowAndReceiveResultWithExpectedOperation.json b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchChannelHereNowAndReceiveResultWithExpectedOperation.json new file mode 100644 index 000000000..92ea94978 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchChannelHereNowAndReceiveResultWithExpectedOperation.json @@ -0,0 +1,476 @@ +[ + { + "id" : "EC57FE88-8079-46BD-AF3D-2B7E395CCB6D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Kim&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "EC57FE88-8079-46BD-AF3D-2B7E395CCB6D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Kim&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Sat, 25 Jan 2020 21:55:23 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "EC57FE88-8079-46BD-AF3D-2B7E395CCB6D", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc5OTg5MzIzNDExNjE3NSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "EC57FE88-8079-46BD-AF3D-2B7E395CCB6D", + "type" : 4 + }, + { + "id" : "31538923-AB4F-48A1-8B73-B5C93EF1BCF2", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893234116175&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "23E54F53-4DBE-4B2E-B501-DDB21140829E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Earline&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "23E54F53-4DBE-4B2E-B501-DDB21140829E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Earline&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Sat, 25 Jan 2020 21:55:23 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "23E54F53-4DBE-4B2E-B501-DDB21140829E", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc5OTg5MzIzNjQzODA3NSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "23E54F53-4DBE-4B2E-B501-DDB21140829E", + "type" : 4 + }, + { + "id" : "7AC2CD75-6057-4078-AA00-8659EB826129", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893236438075&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "DAFF3733-BFDF-4F19-9C82-ADE735B889F0", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Glen&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "DAFF3733-BFDF-4F19-9C82-ADE735B889F0", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Glen&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Sat, 25 Jan 2020 21:55:24 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "DAFF3733-BFDF-4F19-9C82-ADE735B889F0", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc5OTg5MzIzOTA3NzkzNSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "DAFF3733-BFDF-4F19-9C82-ADE735B889F0", + "type" : 4 + }, + { + "id" : "4B1C88A8-E3C2-4EC7-876E-63F9FB7EEDBA", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893239077935&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "FA813E59-ACD2-48AE-B059-62B6B4BC0DFF", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1?disable_uuids=0&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=1" + }, + "type" : 0 + }, + { + "id" : "FA813E59-ACD2-48AE-B059-62B6B4BC0DFF", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1?disable_uuids=0&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=1", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:55:29 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "180", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "FA813E59-ACD2-48AE-B059-62B6B4BC0DFF", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgIm9jY3VwYW5jeSI6IDMsICJ1dWlkcyI6IFt7InV1aWQiOiAiRWFybGluZSJ9LCB7InV1aWQiOiAiS2ltIn0sIHsidXVpZCI6ICJHbGVuIn1dLCAic2VydmljZSI6ICJQcmVzZW5jZSJ9" + }, + "type" : 2 + }, + { + "id" : "FA813E59-ACD2-48AE-B059-62B6B4BC0DFF", + "type" : 4 + }, + { + "id" : "31538923-AB4F-48A1-8B73-B5C93EF1BCF2", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893234116175&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893234116175&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "D3B1627F-BF4B-479E-8C30-04DB6B2959E7", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D3B1627F-BF4B-479E-8C30-04DB6B2959E7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:55:29 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D3B1627F-BF4B-479E-8C30-04DB6B2959E7", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "D3B1627F-BF4B-479E-8C30-04DB6B2959E7", + "type" : 4 + }, + { + "id" : "7AC2CD75-6057-4078-AA00-8659EB826129", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893236438075&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893236438075&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "086E0AE3-B67E-427E-8F29-7D45FB1211FA", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "086E0AE3-B67E-427E-8F29-7D45FB1211FA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:55:30 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "086E0AE3-B67E-427E-8F29-7D45FB1211FA", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "086E0AE3-B67E-427E-8F29-7D45FB1211FA", + "type" : 4 + }, + { + "id" : "4B1C88A8-E3C2-4EC7-876E-63F9FB7EEDBA", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893239077935&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893239077935&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "8706D14F-5BB8-4BD6-A5E1-C7E8AA8CDB33", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "8706D14F-5BB8-4BD6-A5E1-C7E8AA8CDB33", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:55:30 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "8706D14F-5BB8-4BD6-A5E1-C7E8AA8CDB33", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "8706D14F-5BB8-4BD6-A5E1-C7E8AA8CDB33", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchChannelHereNowUsingBuilderPatternInterface.json b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchChannelHereNowUsingBuilderPatternInterface.json new file mode 100644 index 000000000..75e20010e --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchChannelHereNowUsingBuilderPatternInterface.json @@ -0,0 +1,476 @@ +[ + { + "id" : "F4F91785-0679-46AE-BE67-63368B795EFA", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Kim&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "F4F91785-0679-46AE-BE67-63368B795EFA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Kim&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Sat, 25 Jan 2020 21:55:34 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F4F91785-0679-46AE-BE67-63368B795EFA", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc5OTg5MzM0MjYzNzU2NiIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "F4F91785-0679-46AE-BE67-63368B795EFA", + "type" : 4 + }, + { + "id" : "738459C1-C51B-4974-8D62-181C17D8D93E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893342637566&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "71F5DD5C-CEBC-4D1D-9D20-A40B69EB8419", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Earline&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "71F5DD5C-CEBC-4D1D-9D20-A40B69EB8419", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Earline&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Sat, 25 Jan 2020 21:55:34 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "71F5DD5C-CEBC-4D1D-9D20-A40B69EB8419", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc5OTg5MzM0NDk3MjkxMSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "71F5DD5C-CEBC-4D1D-9D20-A40B69EB8419", + "type" : 4 + }, + { + "id" : "1A5940D1-F4EF-46B1-A090-610D5ED49C10", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893344972911&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "F6971269-843B-4D76-9A87-2359F514C108", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Glen&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "F6971269-843B-4D76-9A87-2359F514C108", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Glen&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Sat, 25 Jan 2020 21:55:34 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F6971269-843B-4D76-9A87-2359F514C108", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc5OTg5MzM0NzU0OTUzMCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "F6971269-843B-4D76-9A87-2359F514C108", + "type" : 4 + }, + { + "id" : "EE44A844-579F-45A4-A799-35F74817BD72", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893347549530&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "C85DCC6D-3C1C-43EE-B936-228FFCA16C43", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1?disable_uuids=1&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=0" + }, + "type" : 0 + }, + { + "id" : "C85DCC6D-3C1C-43EE-B936-228FFCA16C43", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1?disable_uuids=1&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=0", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:55:40 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "71", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C85DCC6D-3C1C-43EE-B936-228FFCA16C43", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgIm9jY3VwYW5jeSI6IDMsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "C85DCC6D-3C1C-43EE-B936-228FFCA16C43", + "type" : 4 + }, + { + "id" : "738459C1-C51B-4974-8D62-181C17D8D93E", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893342637566&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893342637566&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "E032AE35-E23D-483C-9ABF-40DD7DEE895F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E032AE35-E23D-483C-9ABF-40DD7DEE895F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:55:41 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E032AE35-E23D-483C-9ABF-40DD7DEE895F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "E032AE35-E23D-483C-9ABF-40DD7DEE895F", + "type" : 4 + }, + { + "id" : "1A5940D1-F4EF-46B1-A090-610D5ED49C10", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893344972911&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893344972911&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "7E7A10FE-B067-41E4-8DBD-D92D31045312", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "7E7A10FE-B067-41E4-8DBD-D92D31045312", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:55:41 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "7E7A10FE-B067-41E4-8DBD-D92D31045312", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "7E7A10FE-B067-41E4-8DBD-D92D31045312", + "type" : 4 + }, + { + "id" : "EE44A844-579F-45A4-A799-35F74817BD72", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893347549530&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893347549530&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "132BBB2E-A127-4F9A-B48F-051FDEA5B1DB", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "132BBB2E-A127-4F9A-B48F-051FDEA5B1DB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:55:41 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "132BBB2E-A127-4F9A-B48F-051FDEA5B1DB", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "132BBB2E-A127-4F9A-B48F-051FDEA5B1DB", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchChannelHereNowWithParticipantsOccupancyWhenOccupancyVerbosityIsSet.json b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchChannelHereNowWithParticipantsOccupancyWhenOccupancyVerbosityIsSet.json new file mode 100644 index 000000000..85ba02d09 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchChannelHereNowWithParticipantsOccupancyWhenOccupancyVerbosityIsSet.json @@ -0,0 +1,476 @@ +[ + { + "id" : "9FAF5E6B-2FEC-4AEB-88A4-3D117C8FD9A0", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Kim&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "9FAF5E6B-2FEC-4AEB-88A4-3D117C8FD9A0", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Kim&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Sat, 25 Jan 2020 21:55:45 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9FAF5E6B-2FEC-4AEB-88A4-3D117C8FD9A0", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc5OTg5MzQ1NjAzMzMwMSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "9FAF5E6B-2FEC-4AEB-88A4-3D117C8FD9A0", + "type" : 4 + }, + { + "id" : "86B6240B-D657-4672-806C-B80E4D6B7BEB", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893456033301&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "A3775D9B-521C-44E5-AA17-1AA78D288345", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Earline&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "A3775D9B-521C-44E5-AA17-1AA78D288345", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Earline&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Sat, 25 Jan 2020 21:55:45 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "A3775D9B-521C-44E5-AA17-1AA78D288345", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc5OTg5MzQ1ODU1MDI1MSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "A3775D9B-521C-44E5-AA17-1AA78D288345", + "type" : 4 + }, + { + "id" : "21DA7747-C231-4A6B-841B-32C75148DA8B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893458550251&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "1950DAAB-4548-4BF7-83CA-02982F20D848", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Glen&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "1950DAAB-4548-4BF7-83CA-02982F20D848", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Glen&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Sat, 25 Jan 2020 21:55:46 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "1950DAAB-4548-4BF7-83CA-02982F20D848", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc5OTg5MzQ2MTI2NDEyMCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "1950DAAB-4548-4BF7-83CA-02982F20D848", + "type" : 4 + }, + { + "id" : "7AED6CA5-3236-4090-8F15-AD4310795E0B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893461264120&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "BDD7A2F4-FC40-4EDE-87D3-A85266820342", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1?disable_uuids=1&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=0" + }, + "type" : 0 + }, + { + "id" : "BDD7A2F4-FC40-4EDE-87D3-A85266820342", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1?disable_uuids=1&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=0", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:55:51 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "71", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "BDD7A2F4-FC40-4EDE-87D3-A85266820342", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgIm9jY3VwYW5jeSI6IDMsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "BDD7A2F4-FC40-4EDE-87D3-A85266820342", + "type" : 4 + }, + { + "id" : "86B6240B-D657-4672-806C-B80E4D6B7BEB", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893456033301&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893456033301&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "E5798F6F-A80D-4598-B36C-CEC99B9D671D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E5798F6F-A80D-4598-B36C-CEC99B9D671D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:55:52 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E5798F6F-A80D-4598-B36C-CEC99B9D671D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "E5798F6F-A80D-4598-B36C-CEC99B9D671D", + "type" : 4 + }, + { + "id" : "21DA7747-C231-4A6B-841B-32C75148DA8B", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893458550251&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893458550251&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "B9A8BC0F-4379-474D-922C-40EFFDC673BE", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B9A8BC0F-4379-474D-922C-40EFFDC673BE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:55:52 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B9A8BC0F-4379-474D-922C-40EFFDC673BE", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "B9A8BC0F-4379-474D-922C-40EFFDC673BE", + "type" : 4 + }, + { + "id" : "7AED6CA5-3236-4090-8F15-AD4310795E0B", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893461264120&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893461264120&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "2A011A33-9308-459F-A78B-A3F5FDFA9A9C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2A011A33-9308-459F-A78B-A3F5FDFA9A9C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:55:52 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "2A011A33-9308-459F-A78B-A3F5FDFA9A9C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "2A011A33-9308-459F-A78B-A3F5FDFA9A9C", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchChannelHereNowWithParticipantsStateWhenStateVerbosityIsSet.json b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchChannelHereNowWithParticipantsStateWhenStateVerbosityIsSet.json new file mode 100644 index 000000000..c7ed9e1ae --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchChannelHereNowWithParticipantsStateWhenStateVerbosityIsSet.json @@ -0,0 +1,638 @@ +[ + { + "id" : "50AD7EF1-3A2D-420E-B805-2817CE7E90B2", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Kim&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "50AD7EF1-3A2D-420E-B805-2817CE7E90B2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Kim&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Sat, 25 Jan 2020 21:55:56 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "50AD7EF1-3A2D-420E-B805-2817CE7E90B2", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc5OTg5MzU2NTkwOTgzMCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "50AD7EF1-3A2D-420E-B805-2817CE7E90B2", + "type" : 4 + }, + { + "id" : "D69D4A87-FE82-45D4-818B-C6A835E5D363", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893565909830&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "1B3A14CF-3253-43EF-9A9B-F988089B3CCA", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Earline&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "1B3A14CF-3253-43EF-9A9B-F988089B3CCA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Earline&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Sat, 25 Jan 2020 21:55:56 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "1B3A14CF-3253-43EF-9A9B-F988089B3CCA", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc5OTg5MzU2ODUzMzY4OCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "1B3A14CF-3253-43EF-9A9B-F988089B3CCA", + "type" : 4 + }, + { + "id" : "CACA6FE4-0782-40DC-9D63-82652330E2DD", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893568533688&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "6A028385-A06F-4A13-B57B-EC9198E75803", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Glen&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "6A028385-A06F-4A13-B57B-EC9198E75803", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Glen&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Sat, 25 Jan 2020 21:55:57 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "6A028385-A06F-4A13-B57B-EC9198E75803", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc5OTg5MzU3MTA4ODQyNyIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "6A028385-A06F-4A13-B57B-EC9198E75803", + "type" : 4 + }, + { + "id" : "71FD2A1B-DD81-4FFE-9A65-DB791FDBF8CF", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893571088427&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "563CD801-F39B-4559-8918-A96A3FA61E6E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1\/uuid\/Kim\/data?uuid=Kim&state=%7B%22channel1-state%22:%5B%22channel-1-random-value%22%5D%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "563CD801-F39B-4559-8918-A96A3FA61E6E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1\/uuid\/Kim\/data?uuid=Kim&state=%7B%22channel1-state%22:%5B%22channel-1-random-value%22%5D%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:56:02 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "128", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "563CD801-F39B-4559-8918-A96A3FA61E6E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWwxLXN0YXRlIjogWyJjaGFubmVsLTEtcmFuZG9tLXZhbHVlIl19LCAic2VydmljZSI6ICJQcmVzZW5jZSJ9" + }, + "type" : 2 + }, + { + "id" : "563CD801-F39B-4559-8918-A96A3FA61E6E", + "type" : 4 + }, + { + "id" : "6C4A5517-0450-4DF0-834B-7AB22BA44553", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1\/uuid\/Earline\/data?uuid=Earline&state=%7B%22channel1-state%22:%5B%22channel-1-random-value%22%5D%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "6C4A5517-0450-4DF0-834B-7AB22BA44553", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1\/uuid\/Earline\/data?uuid=Earline&state=%7B%22channel1-state%22:%5B%22channel-1-random-value%22%5D%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:56:04 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "128", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "6C4A5517-0450-4DF0-834B-7AB22BA44553", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWwxLXN0YXRlIjogWyJjaGFubmVsLTEtcmFuZG9tLXZhbHVlIl19LCAic2VydmljZSI6ICJQcmVzZW5jZSJ9" + }, + "type" : 2 + }, + { + "id" : "6C4A5517-0450-4DF0-834B-7AB22BA44553", + "type" : 4 + }, + { + "id" : "C105992F-82F4-4AC6-8292-0478742383B8", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1\/uuid\/Glen\/data?uuid=Glen&state=%7B%22channel1-state%22:%5B%22channel-1-random-value%22%5D%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C105992F-82F4-4AC6-8292-0478742383B8", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1\/uuid\/Glen\/data?uuid=Glen&state=%7B%22channel1-state%22:%5B%22channel-1-random-value%22%5D%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:56:05 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "128", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C105992F-82F4-4AC6-8292-0478742383B8", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWwxLXN0YXRlIjogWyJjaGFubmVsLTEtcmFuZG9tLXZhbHVlIl19LCAic2VydmljZSI6ICJQcmVzZW5jZSJ9" + }, + "type" : 2 + }, + { + "id" : "C105992F-82F4-4AC6-8292-0478742383B8", + "type" : 4 + }, + { + "id" : "605921D5-9ED1-49C7-B653-D3E3BE81AF29", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1?disable_uuids=0&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=1" + }, + "type" : 0 + }, + { + "id" : "605921D5-9ED1-49C7-B653-D3E3BE81AF29", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1?disable_uuids=0&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=1", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:56:07 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "393", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "605921D5-9ED1-49C7-B653-D3E3BE81AF29", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgIm9jY3VwYW5jeSI6IDMsICJ1dWlkcyI6IFt7InV1aWQiOiAiRWFybGluZSIsICJzdGF0ZSI6IHsiY2hhbm5lbDEtc3RhdGUiOiBbImNoYW5uZWwtMS1yYW5kb20tdmFsdWUiXX19LCB7InV1aWQiOiAiR2xlbiIsICJzdGF0ZSI6IHsiY2hhbm5lbDEtc3RhdGUiOiBbImNoYW5uZWwtMS1yYW5kb20tdmFsdWUiXX19LCB7InV1aWQiOiAiS2ltIiwgInN0YXRlIjogeyJjaGFubmVsMS1zdGF0ZSI6IFsiY2hhbm5lbC0xLXJhbmRvbS12YWx1ZSJdfX1dLCAic2VydmljZSI6ICJQcmVzZW5jZSJ9" + }, + "type" : 2 + }, + { + "id" : "605921D5-9ED1-49C7-B653-D3E3BE81AF29", + "type" : 4 + }, + { + "id" : "D69D4A87-FE82-45D4-818B-C6A835E5D363", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893565909830&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893565909830&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "05B02283-7FC2-4519-A0B2-914885290585", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "05B02283-7FC2-4519-A0B2-914885290585", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:56:07 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "05B02283-7FC2-4519-A0B2-914885290585", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "05B02283-7FC2-4519-A0B2-914885290585", + "type" : 4 + }, + { + "id" : "CACA6FE4-0782-40DC-9D63-82652330E2DD", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893568533688&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893568533688&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "B5D787F0-65DF-40FA-AC96-79C08DFC53B6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B5D787F0-65DF-40FA-AC96-79C08DFC53B6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:56:08 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B5D787F0-65DF-40FA-AC96-79C08DFC53B6", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "B5D787F0-65DF-40FA-AC96-79C08DFC53B6", + "type" : 4 + }, + { + "id" : "71FD2A1B-DD81-4FFE-9A65-DB791FDBF8CF", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893571088427&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893571088427&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "2FCABF7B-1964-46F7-BF7D-168B1B5DD4E0", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2FCABF7B-1964-46F7-BF7D-168B1B5DD4E0", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:56:08 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "2FCABF7B-1964-46F7-BF7D-168B1B5DD4E0", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "2FCABF7B-1964-46F7-BF7D-168B1B5DD4E0", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchChannelHereNowWithParticipantsUUIDWhenUUIDVerbosityIsSet.json b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchChannelHereNowWithParticipantsUUIDWhenUUIDVerbosityIsSet.json new file mode 100644 index 000000000..27af684fa --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchChannelHereNowWithParticipantsUUIDWhenUUIDVerbosityIsSet.json @@ -0,0 +1,476 @@ +[ + { + "id" : "4609DD06-7DEC-4CEA-B087-46A30382FB20", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Kim&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "4609DD06-7DEC-4CEA-B087-46A30382FB20", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Kim&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Sat, 25 Jan 2020 21:56:12 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "4609DD06-7DEC-4CEA-B087-46A30382FB20", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc5OTg5MzcyMTQ5MzcyOCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "4609DD06-7DEC-4CEA-B087-46A30382FB20", + "type" : 4 + }, + { + "id" : "19DB6583-1F0F-4AC4-9AFC-0CCF787702F3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893721493728&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "7B21B94C-A569-4DBA-9D6A-BBCEFC5901DA", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Earline&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "7B21B94C-A569-4DBA-9D6A-BBCEFC5901DA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Earline&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Sat, 25 Jan 2020 21:56:12 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "7B21B94C-A569-4DBA-9D6A-BBCEFC5901DA", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc5OTg5MzcyNDIyODY2MCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "7B21B94C-A569-4DBA-9D6A-BBCEFC5901DA", + "type" : 4 + }, + { + "id" : "E50EF3E7-B7F1-4240-B63E-AF85696866FC", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893724228660&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "C444E970-E00C-40C0-A354-D26C6036D752", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Glen&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "C444E970-E00C-40C0-A354-D26C6036D752", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Glen&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Sat, 25 Jan 2020 21:56:12 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C444E970-E00C-40C0-A354-D26C6036D752", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc5OTg5MzcyNjY2ODUyMCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "C444E970-E00C-40C0-A354-D26C6036D752", + "type" : 4 + }, + { + "id" : "184B4B17-EFB5-4B9D-9AFD-D5A8B96C439C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893726668520&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "EBF134DB-1165-471D-9AA7-DB7F8819A77D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1?disable_uuids=0&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=0" + }, + "type" : 0 + }, + { + "id" : "EBF134DB-1165-471D-9AA7-DB7F8819A77D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1?disable_uuids=0&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=0", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:56:18 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "150", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "EBF134DB-1165-471D-9AA7-DB7F8819A77D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgIm9jY3VwYW5jeSI6IDMsICJ1dWlkcyI6IFsiRWFybGluZSIsICJHbGVuIiwgIktpbSJdLCAic2VydmljZSI6ICJQcmVzZW5jZSJ9" + }, + "type" : 2 + }, + { + "id" : "EBF134DB-1165-471D-9AA7-DB7F8819A77D", + "type" : 4 + }, + { + "id" : "19DB6583-1F0F-4AC4-9AFC-0CCF787702F3", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893721493728&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893721493728&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "CC0B651C-AFFE-4939-A359-DACB02BFF24A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "CC0B651C-AFFE-4939-A359-DACB02BFF24A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:56:18 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "CC0B651C-AFFE-4939-A359-DACB02BFF24A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "CC0B651C-AFFE-4939-A359-DACB02BFF24A", + "type" : 4 + }, + { + "id" : "E50EF3E7-B7F1-4240-B63E-AF85696866FC", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893724228660&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893724228660&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "B9824C23-958D-4627-B513-615AB6F3EABA", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B9824C23-958D-4627-B513-615AB6F3EABA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:56:18 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B9824C23-958D-4627-B513-615AB6F3EABA", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "B9824C23-958D-4627-B513-615AB6F3EABA", + "type" : 4 + }, + { + "id" : "184B4B17-EFB5-4B9D-9AFD-D5A8B96C439C", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893726668520&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893726668520&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "A5055508-A714-453B-9A68-CE1C743548AA", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A5055508-A714-453B-9A68-CE1C743548AA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:56:19 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "A5055508-A714-453B-9A68-CE1C743548AA", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "A5055508-A714-453B-9A68-CE1C743548AA", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchGlobalHereNowAndReceiveResultWithExpectedOperation.json b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchGlobalHereNowAndReceiveResultWithExpectedOperation.json new file mode 100644 index 000000000..b25c69cd2 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchGlobalHereNowAndReceiveResultWithExpectedOperation.json @@ -0,0 +1,476 @@ +[ + { + "id" : "D2577B68-1162-4DCD-BD59-11EF2A767778", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Kim&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "D2577B68-1162-4DCD-BD59-11EF2A767778", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Kim&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 13:38:49 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D2577B68-1162-4DCD-BD59-11EF2A767778", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MzE3OTI5MTE3MDM0NCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "D2577B68-1162-4DCD-BD59-11EF2A767778", + "type" : 4 + }, + { + "id" : "BB51E332-FC0F-4205-8526-BA9FCF1DAA5F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15783179291170344&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "1E2D552C-8B98-4C06-8225-CE6C361D31D8", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Earline&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "1E2D552C-8B98-4C06-8225-CE6C361D31D8", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Earline&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 13:38:49 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "1E2D552C-8B98-4C06-8225-CE6C361D31D8", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MzE3OTI5MzYzMzc0MiIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "1E2D552C-8B98-4C06-8225-CE6C361D31D8", + "type" : 4 + }, + { + "id" : "2B752E13-D971-4667-910A-4BE28D3314A4", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15783179293633742&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "1066DDF0-57A4-4D2E-8D44-7D337FACF714", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Glen&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "1066DDF0-57A4-4D2E-8D44-7D337FACF714", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Glen&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 13:38:49 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "1066DDF0-57A4-4D2E-8D44-7D337FACF714", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MzE3OTI5NTk4NjExNSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "1066DDF0-57A4-4D2E-8D44-7D337FACF714", + "type" : 4 + }, + { + "id" : "B23C88D0-1600-4295-879A-88FF8BD056A6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15783179295986115&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "63864E8D-794E-4E96-A1DC-9B0DD4E16AAA", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo?disable_uuids=0&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=1" + }, + "type" : 0 + }, + { + "id" : "63864E8D-794E-4E96-A1DC-9B0DD4E16AAA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo?disable_uuids=0&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=1", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 13:38:55 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "361", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "63864E8D-794E-4E96-A1DC-9B0DD4E16AAA", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWxzIjogeyJ0ZXN0LWNoYW5uZWwzIjogeyJvY2N1cGFuY3kiOiAxLCAidXVpZHMiOiBbeyJ1dWlkIjogIkdsZW4ifV19LCAidGVzdC1jaGFubmVsMiI6IHsib2NjdXBhbmN5IjogMSwgInV1aWRzIjogW3sidXVpZCI6ICJFYXJsaW5lIn1dfSwgInRlc3QtY2hhbm5lbDEiOiB7Im9jY3VwYW5jeSI6IDEsICJ1dWlkcyI6IFt7InV1aWQiOiAiS2ltIn1dfX0sICJ0b3RhbF9jaGFubmVscyI6IDMsICJ0b3RhbF9vY2N1cGFuY3kiOiAzfSwgInNlcnZpY2UiOiAiUHJlc2VuY2UifQ==" + }, + "type" : 2 + }, + { + "id" : "63864E8D-794E-4E96-A1DC-9B0DD4E16AAA", + "type" : 4 + }, + { + "id" : "BB51E332-FC0F-4205-8526-BA9FCF1DAA5F", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15783179291170344&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15783179291170344&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "D219CBE6-C337-4689-85DA-4E41100CD30B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D219CBE6-C337-4689-85DA-4E41100CD30B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 13:38:55 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D219CBE6-C337-4689-85DA-4E41100CD30B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "D219CBE6-C337-4689-85DA-4E41100CD30B", + "type" : 4 + }, + { + "id" : "2B752E13-D971-4667-910A-4BE28D3314A4", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15783179293633742&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15783179293633742&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "DA50485A-F444-499F-90EA-70F736259689", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel2\/leave?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "DA50485A-F444-499F-90EA-70F736259689", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel2\/leave?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 13:38:56 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "DA50485A-F444-499F-90EA-70F736259689", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "DA50485A-F444-499F-90EA-70F736259689", + "type" : 4 + }, + { + "id" : "B23C88D0-1600-4295-879A-88FF8BD056A6", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15783179295986115&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15783179295986115&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "29365DBD-AA90-4516-B627-DE7D11998A10", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel3\/leave?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "29365DBD-AA90-4516-B627-DE7D11998A10", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel3\/leave?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 13:38:56 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "29365DBD-AA90-4516-B627-DE7D11998A10", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "29365DBD-AA90-4516-B627-DE7D11998A10", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchGlobalHereNowUsingBuilderPatternInterface.json b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchGlobalHereNowUsingBuilderPatternInterface.json new file mode 100644 index 000000000..594e132d7 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchGlobalHereNowUsingBuilderPatternInterface.json @@ -0,0 +1,476 @@ +[ + { + "id" : "F66ED0FF-6678-4C33-82ED-73AA8BA0BB1D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Kim&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "F66ED0FF-6678-4C33-82ED-73AA8BA0BB1D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Kim&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 14:55:51 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F66ED0FF-6678-4C33-82ED-73AA8BA0BB1D", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MzIyNTUxMDM3OTczMiIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "F66ED0FF-6678-4C33-82ED-73AA8BA0BB1D", + "type" : 4 + }, + { + "id" : "00AABB77-B576-4361-99D2-EFDEC348A752", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15783225510379732&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "FFEFEB4E-C4EA-4565-A907-AB4290A43B0F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Earline&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "FFEFEB4E-C4EA-4565-A907-AB4290A43B0F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Earline&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 14:55:51 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "FFEFEB4E-C4EA-4565-A907-AB4290A43B0F", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MzIyNTUxMjgxMjQyMCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "FFEFEB4E-C4EA-4565-A907-AB4290A43B0F", + "type" : 4 + }, + { + "id" : "F80C8C6A-CA51-4C77-92FB-DD8588C564A3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15783225512812420&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "12E1E634-79BB-4D28-9172-B20EA2A317DC", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Glen&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "12E1E634-79BB-4D28-9172-B20EA2A317DC", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Glen&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 14:55:51 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "12E1E634-79BB-4D28-9172-B20EA2A317DC", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MzIyNTUxNTM2ODg1NyIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "12E1E634-79BB-4D28-9172-B20EA2A317DC", + "type" : 4 + }, + { + "id" : "15C906BD-0BB8-4CF9-AED0-C47A869F9898", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15783225515368857&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "147E1840-0411-45E7-8155-34A9BB8CCED2", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo?disable_uuids=0&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=1" + }, + "type" : 0 + }, + { + "id" : "147E1840-0411-45E7-8155-34A9BB8CCED2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo?disable_uuids=0&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=1", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 14:55:57 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "361", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "147E1840-0411-45E7-8155-34A9BB8CCED2", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWxzIjogeyJ0ZXN0LWNoYW5uZWwzIjogeyJvY2N1cGFuY3kiOiAxLCAidXVpZHMiOiBbeyJ1dWlkIjogIkdsZW4ifV19LCAidGVzdC1jaGFubmVsMiI6IHsib2NjdXBhbmN5IjogMSwgInV1aWRzIjogW3sidXVpZCI6ICJFYXJsaW5lIn1dfSwgInRlc3QtY2hhbm5lbDEiOiB7Im9jY3VwYW5jeSI6IDEsICJ1dWlkcyI6IFt7InV1aWQiOiAiS2ltIn1dfX0sICJ0b3RhbF9jaGFubmVscyI6IDMsICJ0b3RhbF9vY2N1cGFuY3kiOiAzfSwgInNlcnZpY2UiOiAiUHJlc2VuY2UifQ==" + }, + "type" : 2 + }, + { + "id" : "147E1840-0411-45E7-8155-34A9BB8CCED2", + "type" : 4 + }, + { + "id" : "00AABB77-B576-4361-99D2-EFDEC348A752", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15783225510379732&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15783225510379732&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "BB0C6677-BAEB-4E20-A19B-08F9C4910441", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "BB0C6677-BAEB-4E20-A19B-08F9C4910441", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 14:55:57 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "BB0C6677-BAEB-4E20-A19B-08F9C4910441", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "BB0C6677-BAEB-4E20-A19B-08F9C4910441", + "type" : 4 + }, + { + "id" : "F80C8C6A-CA51-4C77-92FB-DD8588C564A3", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15783225512812420&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15783225512812420&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "C913F600-BEDB-4025-9333-904537C188DA", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel2\/leave?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C913F600-BEDB-4025-9333-904537C188DA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel2\/leave?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 14:55:57 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C913F600-BEDB-4025-9333-904537C188DA", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "C913F600-BEDB-4025-9333-904537C188DA", + "type" : 4 + }, + { + "id" : "15C906BD-0BB8-4CF9-AED0-C47A869F9898", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15783225515368857&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15783225515368857&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "5241B021-9A8E-4903-B780-848EEE5C7AD0", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel3\/leave?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "5241B021-9A8E-4903-B780-848EEE5C7AD0", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel3\/leave?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 14:55:58 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "5241B021-9A8E-4903-B780-848EEE5C7AD0", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "5241B021-9A8E-4903-B780-848EEE5C7AD0", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchGlobalHereNowWithParticipantsOccupancyWhenOccupancyVerbosityIsSet.json b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchGlobalHereNowWithParticipantsOccupancyWhenOccupancyVerbosityIsSet.json new file mode 100644 index 000000000..6af771312 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchGlobalHereNowWithParticipantsOccupancyWhenOccupancyVerbosityIsSet.json @@ -0,0 +1,530 @@ +[ + { + "id" : "2392D789-8EA9-497F-8CF8-1063EF81ED74", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Kim&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "2392D789-8EA9-497F-8CF8-1063EF81ED74", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Kim&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 14:01:49 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "2392D789-8EA9-497F-8CF8-1063EF81ED74", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MzE5MzA5NjA4OTc5NiIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "2392D789-8EA9-497F-8CF8-1063EF81ED74", + "type" : 4 + }, + { + "id" : "BE1B1072-2B70-4315-83AC-6A65F338AA66", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15783193096089796&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "DCA5F873-6AE3-44CE-9FA1-9B236EC1EAA7", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Earline&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "DCA5F873-6AE3-44CE-9FA1-9B236EC1EAA7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Earline&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 14:01:49 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "DCA5F873-6AE3-44CE-9FA1-9B236EC1EAA7", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MzE5MzA5ODc1NDE3NSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "DCA5F873-6AE3-44CE-9FA1-9B236EC1EAA7", + "type" : 4 + }, + { + "id" : "81AAAE2B-46AF-4CDF-8748-EE8E89B4A3C0", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15783193098754175&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "54AFA0EA-39EB-4FD8-A4C2-7FA35E072AE4", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Glen&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "54AFA0EA-39EB-4FD8-A4C2-7FA35E072AE4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Glen&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 14:01:50 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "54AFA0EA-39EB-4FD8-A4C2-7FA35E072AE4", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MzE5MzEwMTE0MjIyNyIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "54AFA0EA-39EB-4FD8-A4C2-7FA35E072AE4", + "type" : 4 + }, + { + "id" : "248BD293-FACF-4EB5-B530-818AF05FD624", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15783193101142227&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "F23A083F-AD68-4452-B42D-B4270B91E696", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo?disable_uuids=1&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=0" + }, + "type" : 0 + }, + { + "id" : "F23A083F-AD68-4452-B42D-B4270B91E696", + "data" : { + "status" : 404, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo?disable_uuids=1&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=0", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 14:01:55 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "272", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F23A083F-AD68-4452-B42D-B4270B91E696", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWxzIjogeyJ0ZXN0LWNoYW5uZWwzIjogeyJvY2N1cGFuY3kiOiAxfSwgInRlc3QtY2hhbm5lbDEiOiB7Im9jY3VwYW5jeSI6IDF9LCAidGVzdC1jaGFubmVsMiI6IHsib2NjdXBhbmN5IjogMX19LCAidG90YWxfY2hhbm5lbHMiOiAzLCAidG90YWxfb2NjdXBhbmN5IjogM30sICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "F23A083F-AD68-4452-B42D-B4270B91E696", + "type" : 4 + }, + { + "id" : "F23A083F-AD68-4452-B42D-B4270B91E699", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo?disable_uuids=1&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=0" + }, + "type" : 0 + }, + { + "id" : "F23A083F-AD68-4452-B42D-B4270B91E699", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo?disable_uuids=1&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=0", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 14:01:55 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "272", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F23A083F-AD68-4452-B42D-B4270B91E699", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWxzIjogeyJ0ZXN0LWNoYW5uZWwzIjogeyJvY2N1cGFuY3kiOiAxfSwgInRlc3QtY2hhbm5lbDEiOiB7Im9jY3VwYW5jeSI6IDF9LCAidGVzdC1jaGFubmVsMiI6IHsib2NjdXBhbmN5IjogMX19LCAidG90YWxfY2hhbm5lbHMiOiAzLCAidG90YWxfb2NjdXBhbmN5IjogM30sICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "F23A083F-AD68-4452-B42D-B4270B91E699", + "type" : 4 + }, + { + "id" : "BE1B1072-2B70-4315-83AC-6A65F338AA66", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15783193096089796&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15783193096089796&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "6992FA6D-584C-49E8-913C-1DA45B77F25D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "6992FA6D-584C-49E8-913C-1DA45B77F25D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 14:01:56 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "6992FA6D-584C-49E8-913C-1DA45B77F25D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "6992FA6D-584C-49E8-913C-1DA45B77F25D", + "type" : 4 + }, + { + "id" : "81AAAE2B-46AF-4CDF-8748-EE8E89B4A3C0", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15783193098754175&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15783193098754175&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "D9E515CE-0548-480B-9F61-7472350B5D66", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel2\/leave?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D9E515CE-0548-480B-9F61-7472350B5D66", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel2\/leave?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 14:01:56 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D9E515CE-0548-480B-9F61-7472350B5D66", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "D9E515CE-0548-480B-9F61-7472350B5D66", + "type" : 4 + }, + { + "id" : "248BD293-FACF-4EB5-B530-818AF05FD624", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15783193101142227&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15783193101142227&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "FE0EC2FD-F5A4-4AEB-BD8E-A5AB1D64752C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel3\/leave?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "FE0EC2FD-F5A4-4AEB-BD8E-A5AB1D64752C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel3\/leave?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 14:01:56 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "FE0EC2FD-F5A4-4AEB-BD8E-A5AB1D64752C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "FE0EC2FD-F5A4-4AEB-BD8E-A5AB1D64752C", + "type" : 4 + } +] diff --git a/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchGlobalHereNowWithParticipantsStateWhenStateVerbosityIsSet.json b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchGlobalHereNowWithParticipantsStateWhenStateVerbosityIsSet.json new file mode 100644 index 000000000..adeb84380 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchGlobalHereNowWithParticipantsStateWhenStateVerbosityIsSet.json @@ -0,0 +1,638 @@ +[ + { + "id" : "B4AA3EF2-9AC9-4B61-B10B-4C917B61603A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Kim&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "B4AA3EF2-9AC9-4B61-B10B-4C917B61603A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Kim&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Sat, 25 Jan 2020 21:56:22 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B4AA3EF2-9AC9-4B61-B10B-4C917B61603A", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc5OTg5MzgyODc2MTkwOSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "B4AA3EF2-9AC9-4B61-B10B-4C917B61603A", + "type" : 4 + }, + { + "id" : "D255019A-6B7D-4FDD-A5A9-17874944477E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893828761909&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "7C74CB5E-A359-45AA-8720-CF38AE2A66F2", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Earline&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "7C74CB5E-A359-45AA-8720-CF38AE2A66F2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Earline&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Sat, 25 Jan 2020 21:56:23 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "7C74CB5E-A359-45AA-8720-CF38AE2A66F2", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc5OTg5MzgzMTEwMTYzOSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "7C74CB5E-A359-45AA-8720-CF38AE2A66F2", + "type" : 4 + }, + { + "id" : "7E4228E4-3672-4914-8C6B-050A1A245A3E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893831101639&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "1E0AE9D6-5E8F-458F-9BEA-54BE40AE41E3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Glen&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "1E0AE9D6-5E8F-458F-9BEA-54BE40AE41E3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Glen&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Sat, 25 Jan 2020 21:56:23 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "1E0AE9D6-5E8F-458F-9BEA-54BE40AE41E3", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc5OTg5MzgzMzQzOTIzMiIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "1E0AE9D6-5E8F-458F-9BEA-54BE40AE41E3", + "type" : 4 + }, + { + "id" : "C6E22C5E-89FE-4D52-8D37-CF22B062DDDF", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893833439232&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "71CABC9B-9963-491C-ADFB-8D68FE39D543", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1\/uuid\/Kim\/data?uuid=Kim&state=%7B%22channel1-state%22:%5B%22channel-1-random-value%22%5D%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "71CABC9B-9963-491C-ADFB-8D68FE39D543", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1\/uuid\/Kim\/data?uuid=Kim&state=%7B%22channel1-state%22:%5B%22channel-1-random-value%22%5D%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:56:29 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "128", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "71CABC9B-9963-491C-ADFB-8D68FE39D543", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWwxLXN0YXRlIjogWyJjaGFubmVsLTEtcmFuZG9tLXZhbHVlIl19LCAic2VydmljZSI6ICJQcmVzZW5jZSJ9" + }, + "type" : 2 + }, + { + "id" : "71CABC9B-9963-491C-ADFB-8D68FE39D543", + "type" : 4 + }, + { + "id" : "54832C37-CCF5-4192-8E3C-54FFF3BA8BA6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel2\/uuid\/Earline\/data?uuid=Earline&state=%7B%22channel2-state%22:%5B%22channel-2-random-value%22%5D%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "54832C37-CCF5-4192-8E3C-54FFF3BA8BA6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel2\/uuid\/Earline\/data?uuid=Earline&state=%7B%22channel2-state%22:%5B%22channel-2-random-value%22%5D%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:56:30 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "128", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "54832C37-CCF5-4192-8E3C-54FFF3BA8BA6", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWwyLXN0YXRlIjogWyJjaGFubmVsLTItcmFuZG9tLXZhbHVlIl19LCAic2VydmljZSI6ICJQcmVzZW5jZSJ9" + }, + "type" : 2 + }, + { + "id" : "54832C37-CCF5-4192-8E3C-54FFF3BA8BA6", + "type" : 4 + }, + { + "id" : "46C857F5-20A3-46A2-8E3E-D4B9D6F60477", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel3\/uuid\/Glen\/data?uuid=Glen&state=%7B%22channel3-state%22:%5B%22channel-3-random-value%22%5D%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "46C857F5-20A3-46A2-8E3E-D4B9D6F60477", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel3\/uuid\/Glen\/data?uuid=Glen&state=%7B%22channel3-state%22:%5B%22channel-3-random-value%22%5D%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:56:32 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "128", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "46C857F5-20A3-46A2-8E3E-D4B9D6F60477", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWwzLXN0YXRlIjogWyJjaGFubmVsLTMtcmFuZG9tLXZhbHVlIl19LCAic2VydmljZSI6ICJQcmVzZW5jZSJ9" + }, + "type" : 2 + }, + { + "id" : "46C857F5-20A3-46A2-8E3E-D4B9D6F60477", + "type" : 4 + }, + { + "id" : "84CE2527-2EFD-4FDC-89C4-448696A751C3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo?disable_uuids=0&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=1" + }, + "type" : 0 + }, + { + "id" : "84CE2527-2EFD-4FDC-89C4-448696A751C3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo?disable_uuids=0&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=1", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:56:34 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "616", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "84CE2527-2EFD-4FDC-89C4-448696A751C3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWxzIjogeyJ0ZXN0LWNoYW5uZWwzIjogeyJvY2N1cGFuY3kiOiAxLCAidXVpZHMiOiBbeyJ1dWlkIjogIkdsZW4iLCAic3RhdGUiOiB7ImNoYW5uZWwzLXN0YXRlIjogWyJjaGFubmVsLTMtcmFuZG9tLXZhbHVlIl19fV19LCAidGVzdC1jaGFubmVsMiI6IHsib2NjdXBhbmN5IjogMSwgInV1aWRzIjogW3sidXVpZCI6ICJFYXJsaW5lIiwgInN0YXRlIjogeyJjaGFubmVsMi1zdGF0ZSI6IFsiY2hhbm5lbC0yLXJhbmRvbS12YWx1ZSJdfX1dfSwgInRlc3QtY2hhbm5lbDEiOiB7Im9jY3VwYW5jeSI6IDEsICJ1dWlkcyI6IFt7InV1aWQiOiAiS2ltIiwgInN0YXRlIjogeyJjaGFubmVsMS1zdGF0ZSI6IFsiY2hhbm5lbC0xLXJhbmRvbS12YWx1ZSJdfX1dfX0sICJ0b3RhbF9jaGFubmVscyI6IDMsICJ0b3RhbF9vY2N1cGFuY3kiOiAzfSwgInNlcnZpY2UiOiAiUHJlc2VuY2UifQ==" + }, + "type" : 2 + }, + { + "id" : "84CE2527-2EFD-4FDC-89C4-448696A751C3", + "type" : 4 + }, + { + "id" : "D255019A-6B7D-4FDD-A5A9-17874944477E", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893828761909&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893828761909&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "BA4BBDBD-56DE-4C16-80F5-B84F65F94EB1", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "BA4BBDBD-56DE-4C16-80F5-B84F65F94EB1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:56:34 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "BA4BBDBD-56DE-4C16-80F5-B84F65F94EB1", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "BA4BBDBD-56DE-4C16-80F5-B84F65F94EB1", + "type" : 4 + }, + { + "id" : "7E4228E4-3672-4914-8C6B-050A1A245A3E", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893831101639&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893831101639&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "A3FAB9E7-0433-4C52-803E-545BE44A1229", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel2\/leave?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A3FAB9E7-0433-4C52-803E-545BE44A1229", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel2\/leave?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:56:34 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "A3FAB9E7-0433-4C52-803E-545BE44A1229", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "A3FAB9E7-0433-4C52-803E-545BE44A1229", + "type" : 4 + }, + { + "id" : "C6E22C5E-89FE-4D52-8D37-CF22B062DDDF", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893833439232&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893833439232&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "18139421-B133-469C-BFDA-D5CFB51B6EBC", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel3\/leave?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "18139421-B133-469C-BFDA-D5CFB51B6EBC", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel3\/leave?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:56:34 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "18139421-B133-469C-BFDA-D5CFB51B6EBC", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "18139421-B133-469C-BFDA-D5CFB51B6EBC", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchGlobalHereNowWithParticipantsUUIDWhenUUIDVerbosityIsSet.json b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchGlobalHereNowWithParticipantsUUIDWhenUUIDVerbosityIsSet.json new file mode 100644 index 000000000..3525e22a0 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchGlobalHereNowWithParticipantsUUIDWhenUUIDVerbosityIsSet.json @@ -0,0 +1,476 @@ +[ + { + "id" : "F8286648-81E6-47A3-9574-C232E0483738", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Kim&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "F8286648-81E6-47A3-9574-C232E0483738", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Kim&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 13:39:06 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F8286648-81E6-47A3-9574-C232E0483738", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MzE3OTQ2ODc0NzQ5OSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "F8286648-81E6-47A3-9574-C232E0483738", + "type" : 4 + }, + { + "id" : "A430C80D-A319-4CB9-9E74-D01417083960", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15783179468747499&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "51FC14DB-034F-497F-99A6-9741DF8D517A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Earline&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "51FC14DB-034F-497F-99A6-9741DF8D517A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Earline&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 13:39:07 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "51FC14DB-034F-497F-99A6-9741DF8D517A", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MzE3OTQ3MTI1NTg0OSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "51FC14DB-034F-497F-99A6-9741DF8D517A", + "type" : 4 + }, + { + "id" : "6DE6B8FD-40DC-436A-A081-03EA398FBFAD", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15783179471255849&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "3E1185F5-8B1E-426D-9FE0-C88B38CE3D6C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Glen&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "3E1185F5-8B1E-426D-9FE0-C88B38CE3D6C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Glen&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 13:39:07 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "3E1185F5-8B1E-426D-9FE0-C88B38CE3D6C", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MzE3OTQ3MzY1OTUyNSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "3E1185F5-8B1E-426D-9FE0-C88B38CE3D6C", + "type" : 4 + }, + { + "id" : "4C7D311C-FA7B-4D4C-A2A2-3FAD47498612", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15783179473659525&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "52B98D15-5356-419C-AC9D-C1A40A19695F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo?disable_uuids=0&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=0" + }, + "type" : 0 + }, + { + "id" : "52B98D15-5356-419C-AC9D-C1A40A19695F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo?disable_uuids=0&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=0", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 13:39:12 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "331", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "52B98D15-5356-419C-AC9D-C1A40A19695F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWxzIjogeyJ0ZXN0LWNoYW5uZWwyIjogeyJvY2N1cGFuY3kiOiAxLCAidXVpZHMiOiBbIkVhcmxpbmUiXX0sICJ0ZXN0LWNoYW5uZWwzIjogeyJvY2N1cGFuY3kiOiAxLCAidXVpZHMiOiBbIkdsZW4iXX0sICJ0ZXN0LWNoYW5uZWwxIjogeyJvY2N1cGFuY3kiOiAxLCAidXVpZHMiOiBbIktpbSJdfX0sICJ0b3RhbF9jaGFubmVscyI6IDMsICJ0b3RhbF9vY2N1cGFuY3kiOiAzfSwgInNlcnZpY2UiOiAiUHJlc2VuY2UifQ==" + }, + "type" : 2 + }, + { + "id" : "52B98D15-5356-419C-AC9D-C1A40A19695F", + "type" : 4 + }, + { + "id" : "A430C80D-A319-4CB9-9E74-D01417083960", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15783179468747499&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15783179468747499&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "AA7DCFAC-9BA4-49F1-B025-E8148EDF6F07", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "AA7DCFAC-9BA4-49F1-B025-E8148EDF6F07", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Kim&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 13:39:13 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "AA7DCFAC-9BA4-49F1-B025-E8148EDF6F07", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "AA7DCFAC-9BA4-49F1-B025-E8148EDF6F07", + "type" : 4 + }, + { + "id" : "6DE6B8FD-40DC-436A-A081-03EA398FBFAD", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15783179471255849&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15783179471255849&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "21985CE1-0651-48BC-91D8-C041DBF8FDC9", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel2\/leave?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "21985CE1-0651-48BC-91D8-C041DBF8FDC9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel2\/leave?uuid=Earline&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 13:39:13 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "21985CE1-0651-48BC-91D8-C041DBF8FDC9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "21985CE1-0651-48BC-91D8-C041DBF8FDC9", + "type" : 4 + }, + { + "id" : "4C7D311C-FA7B-4D4C-A2A2-3FAD47498612", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15783179473659525&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15783179473659525&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "99A8BBAF-AFA6-4749-8D35-CC377B00FE0D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel3\/leave?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "99A8BBAF-AFA6-4749-8D35-CC377B00FE0D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel3\/leave?uuid=Glen&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 13:39:13 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "99A8BBAF-AFA6-4749-8D35-CC377B00FE0D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "99A8BBAF-AFA6-4749-8D35-CC377B00FE0D", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchWhereNowAndReceiveResultWithExpectedOperation.json b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchWhereNowAndReceiveResultWithExpectedOperation.json new file mode 100644 index 000000000..b8e7676ee --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchWhereNowAndReceiveResultWithExpectedOperation.json @@ -0,0 +1,196 @@ +[ + { + "id" : "E6D19861-CD29-4D48-816B-B558728959D6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2,test-channel3\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "E6D19861-CD29-4D48-816B-B558728959D6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2,test-channel3\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Sat, 25 Jan 2020 21:56:38 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E6D19861-CD29-4D48-816B-B558728959D6", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc5OTg5Mzk4ODQzNjIxNiIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "E6D19861-CD29-4D48-816B-B558728959D6", + "type" : 4 + }, + { + "id" : "A4751CF3-5427-40CD-B179-F75739833A0C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2,test-channel3\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893988436216&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "633F701E-6829-40DF-9826-C21C87182F64", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/uuid\/Serhii?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "633F701E-6829-40DF-9826-C21C87182F64", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/uuid\/Serhii?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:56:44 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "175", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "633F701E-6829-40DF-9826-C21C87182F64", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWxzIjogWyJ0ZXN0LWNoYW5uZWwzIiwgInRlc3QtY2hhbm5lbDEiLCAidGVzdC1jaGFubmVsMiJdfSwgInNlcnZpY2UiOiAiUHJlc2VuY2UifQ==" + }, + "type" : 2 + }, + { + "id" : "633F701E-6829-40DF-9826-C21C87182F64", + "type" : 4 + }, + { + "id" : "A4751CF3-5427-40CD-B179-F75739833A0C", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2,test-channel3\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893988436216&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2,test-channel3\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799893988436216&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "76B18489-B4F2-4D41-8D92-992E8489E7B9", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "76B18489-B4F2-4D41-8D92-992E8489E7B9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:56:44 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "76B18489-B4F2-4D41-8D92-992E8489E7B9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "76B18489-B4F2-4D41-8D92-992E8489E7B9", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchWhereNowUsingBuilderPatternInterface.json b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchWhereNowUsingBuilderPatternInterface.json new file mode 100644 index 000000000..7798fb782 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldFetchWhereNowUsingBuilderPatternInterface.json @@ -0,0 +1,196 @@ +[ + { + "id" : "5E019655-2C3F-44B0-8E6A-1E75BF0BFAFB", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2,test-channel3\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "5E019655-2C3F-44B0-8E6A-1E75BF0BFAFB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2,test-channel3\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Sat, 25 Jan 2020 21:56:48 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "5E019655-2C3F-44B0-8E6A-1E75BF0BFAFB", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc5OTg5NDA4NDY1NzEwMiIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "5E019655-2C3F-44B0-8E6A-1E75BF0BFAFB", + "type" : 4 + }, + { + "id" : "25C467BF-6E50-48B7-93CD-8F651A2094FF", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2,test-channel3\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799894084657102&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "C4565348-D297-4E66-ACF3-3E021E4B779A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/uuid\/Serhii?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C4565348-D297-4E66-ACF3-3E021E4B779A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/uuid\/Serhii?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:56:54 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "175", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C4565348-D297-4E66-ACF3-3E021E4B779A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWxzIjogWyJ0ZXN0LWNoYW5uZWwyIiwgInRlc3QtY2hhbm5lbDMiLCAidGVzdC1jaGFubmVsMSJdfSwgInNlcnZpY2UiOiAiUHJlc2VuY2UifQ==" + }, + "type" : 2 + }, + { + "id" : "C4565348-D297-4E66-ACF3-3E021E4B779A", + "type" : 4 + }, + { + "id" : "25C467BF-6E50-48B7-93CD-8F651A2094FF", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2,test-channel3\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799894084657102&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2,test-channel3\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15799894084657102&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "00A5E002-02BA-4105-B178-56472E37B3DC", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "00A5E002-02BA-4105-B178-56472E37B3DC", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:56:54 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "00A5E002-02BA-4105-B178-56472E37B3DC", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "00A5E002-02BA-4105-B178-56472E37B3DC", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldSetConnectedStateForChannelGroupsAndReceiveStatusWithExpectedOperationAndCategory.json b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldSetConnectedStateForChannelGroupsAndReceiveStatusWithExpectedOperationAndCategory.json new file mode 100644 index 000000000..cc88e93e2 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldSetConnectedStateForChannelGroupsAndReceiveStatusWithExpectedOperationAndCategory.json @@ -0,0 +1,272 @@ +[ + { + "id" : "384240EE-3724-40ED-AF97-5A7332A50C05", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2,test-channel3" + }, + "type" : 0 + }, + { + "id" : "384240EE-3724-40ED-AF97-5A7332A50C05", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2,test-channel3", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:56:58 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "384240EE-3724-40ED-AF97-5A7332A50C05", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "384240EE-3724-40ED-AF97-5A7332A50C05", + "type" : 4 + }, + { + "id" : "EC4D2A88-3230-4E47-AE65-1BFBDA11C328", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/,\/heartbeat?channel-group=test-channel-group&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "EC4D2A88-3230-4E47-AE65-1BFBDA11C328", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/,\/heartbeat?channel-group=test-channel-group&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:57:03 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "55", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "EC4D2A88-3230-4E47-AE65-1BFBDA11C328", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiUHJlc2VuY2UifQ==" + }, + "type" : 2 + }, + { + "id" : "EC4D2A88-3230-4E47-AE65-1BFBDA11C328", + "type" : 4 + }, + { + "id" : "3B96436D-351C-43F8-A7F4-A45782F2AD27", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/,?disable_uuids=0&channel-group=test-channel-group&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=1" + }, + "type" : 0 + }, + { + "id" : "3B96436D-351C-43F8-A7F4-A45782F2AD27", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/,?disable_uuids=0&channel-group=test-channel-group&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=1", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:57:08 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "407", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "3B96436D-351C-43F8-A7F4-A45782F2AD27", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWxzIjogeyJ0ZXN0LWNoYW5uZWwzIjogeyJvY2N1cGFuY3kiOiAxLCAidXVpZHMiOiBbeyJ1dWlkIjogIlNlcmhpaSJ9XX0sICJ0ZXN0LWNoYW5uZWwyIjogeyJvY2N1cGFuY3kiOiAxLCAidXVpZHMiOiBbeyJ1dWlkIjogIlNlcmhpaSJ9XX0sICJ0ZXN0LWNoYW5uZWwxIjogeyJvY2N1cGFuY3kiOiAxLCAidXVpZHMiOiBbeyJ1dWlkIjogIlNlcmhpaSJ9XX19LCAidG90YWxfY2hhbm5lbHMiOiAzLCAidG90YWxfb2NjdXBhbmN5IjogM30sICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "3B96436D-351C-43F8-A7F4-A45782F2AD27", + "type" : 4 + }, + { + "id" : "2F4BB6B8-119B-44EA-814C-58FFB923EB72", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2F4BB6B8-119B-44EA-814C-58FFB923EB72", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:57:08 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "2F4BB6B8-119B-44EA-814C-58FFB923EB72", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "2F4BB6B8-119B-44EA-814C-58FFB923EB72", + "type" : 4 + }, + { + "id" : "753F9CB5-9E6E-4106-BDE5-57A9B71EA8F0", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "753F9CB5-9E6E-4106-BDE5-57A9B71EA8F0", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:57:12 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "753F9CB5-9E6E-4106-BDE5-57A9B71EA8F0", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "753F9CB5-9E6E-4106-BDE5-57A9B71EA8F0", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldSetConnectedStateForChannelsAndReceiveStatusWithExpectedOperationAndCategory.json b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldSetConnectedStateForChannelsAndReceiveStatusWithExpectedOperationAndCategory.json new file mode 100644 index 000000000..a73943eb7 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldSetConnectedStateForChannelsAndReceiveStatusWithExpectedOperationAndCategory.json @@ -0,0 +1,164 @@ +[ + { + "id" : "F30C25C6-563D-4898-9B60-2184052ED483", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/heartbeat?uuid=Serhii&heartbeat=20&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F30C25C6-563D-4898-9B60-2184052ED483", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/heartbeat?uuid=Serhii&heartbeat=20&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:23:38 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "55", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F30C25C6-563D-4898-9B60-2184052ED483", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiUHJlc2VuY2UifQ==" + }, + "type" : 2 + }, + { + "id" : "F30C25C6-563D-4898-9B60-2184052ED483", + "type" : 4 + }, + { + "id" : "3A1E2BCF-107A-42F9-9A7F-EC90E5C8A625", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/uuid\/Serhii?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3A1E2BCF-107A-42F9-9A7F-EC90E5C8A625", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/uuid\/Serhii?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:23:43 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "175", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "3A1E2BCF-107A-42F9-9A7F-EC90E5C8A625", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWxzIjogWyJ0ZXN0LWNoYW5uZWwzIiwgInRlc3QtY2hhbm5lbDEiLCAidGVzdC1jaGFubmVsMiJdfSwgInNlcnZpY2UiOiAiUHJlc2VuY2UifQ==" + }, + "type" : 2 + }, + { + "id" : "3A1E2BCF-107A-42F9-9A7F-EC90E5C8A625", + "type" : 4 + }, + { + "id" : "082D83E4-A1E5-4805-8920-22C02BB583CC", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "082D83E4-A1E5-4805-8920-22C02BB583CC", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:23:43 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "082D83E4-A1E5-4805-8920-22C02BB583CC", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "082D83E4-A1E5-4805-8920-22C02BB583CC", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldSetConnectedStateForChannelsWithState.json b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldSetConnectedStateForChannelsWithState.json new file mode 100644 index 000000000..7a7473310 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldSetConnectedStateForChannelsWithState.json @@ -0,0 +1,164 @@ +[ + { + "id" : "7BCA10C9-D19B-455C-B2CC-ED4C72BC8D3F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/heartbeat?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "7BCA10C9-D19B-455C-B2CC-ED4C72BC8D3F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/heartbeat?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sun, 26 Jan 2020 11:32:59 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "55", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "7BCA10C9-D19B-455C-B2CC-ED4C72BC8D3F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiUHJlc2VuY2UifQ==" + }, + "type" : 2 + }, + { + "id" : "7BCA10C9-D19B-455C-B2CC-ED4C72BC8D3F", + "type" : 4 + }, + { + "id" : "B19AA759-B693-44F1-A2EF-76DAC4BA3974", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1?disable_uuids=0&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=1" + }, + "type" : 0 + }, + { + "id" : "B19AA759-B693-44F1-A2EF-76DAC4BA3974", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1?disable_uuids=0&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=1", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sun, 26 Jan 2020 11:33:05 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "186", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B19AA759-B693-44F1-A2EF-76DAC4BA3974", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgIm9jY3VwYW5jeSI6IDEsICJ1dWlkcyI6IFt7InV1aWQiOiAiU2VyaGlpIiwgInN0YXRlIjogeyJ0ZXN0LWNoYW5uZWwxIjogWyJjaGFubmVsLTEtcmFuZG9tLXZhbHVlIl19fV0sICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "B19AA759-B693-44F1-A2EF-76DAC4BA3974", + "type" : 4 + }, + { + "id" : "E7723D7B-198D-4F28-9A82-CE790BD4EAF5", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E7723D7B-198D-4F28-9A82-CE790BD4EAF5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sun, 26 Jan 2020 11:33:35 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E7723D7B-198D-4F28-9A82-CE790BD4EAF5", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "E7723D7B-198D-4F28-9A82-CE790BD4EAF5", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldSetNotConnectedStateForChannelGroupsAndReceiveStatusWithExpectedOperationAndCategory.json b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldSetNotConnectedStateForChannelGroupsAndReceiveStatusWithExpectedOperationAndCategory.json new file mode 100644 index 000000000..b3fce214f --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldSetNotConnectedStateForChannelGroupsAndReceiveStatusWithExpectedOperationAndCategory.json @@ -0,0 +1,272 @@ +[ + { + "id" : "8BD73667-B8D4-4773-856B-4EF5F7ED9BA8", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2,test-channel3" + }, + "type" : 0 + }, + { + "id" : "8BD73667-B8D4-4773-856B-4EF5F7ED9BA8", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2,test-channel3", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:52:45 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "8BD73667-B8D4-4773-856B-4EF5F7ED9BA8", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "8BD73667-B8D4-4773-856B-4EF5F7ED9BA8", + "type" : 4 + }, + { + "id" : "061EDFF9-39EF-4D73-AD74-9290368BCBB6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/,\/heartbeat?channel-group=test-channel-group&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "061EDFF9-39EF-4D73-AD74-9290368BCBB6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/,\/heartbeat?channel-group=test-channel-group&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:52:49 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "55", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "061EDFF9-39EF-4D73-AD74-9290368BCBB6", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiUHJlc2VuY2UifQ==" + }, + "type" : 2 + }, + { + "id" : "061EDFF9-39EF-4D73-AD74-9290368BCBB6", + "type" : 4 + }, + { + "id" : "92EA61C4-F3AB-4295-BFA2-90335B17F61A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "92EA61C4-F3AB-4295-BFA2-90335B17F61A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:52:55 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "92EA61C4-F3AB-4295-BFA2-90335B17F61A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "92EA61C4-F3AB-4295-BFA2-90335B17F61A", + "type" : 4 + }, + { + "id" : "98CF5C89-3167-4EC5-9EED-761055D0412D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/uuid\/Serhii?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "98CF5C89-3167-4EC5-9EED-761055D0412D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/uuid\/Serhii?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:52:58 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "84", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "98CF5C89-3167-4EC5-9EED-761055D0412D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWxzIjogW119LCAic2VydmljZSI6ICJQcmVzZW5jZSJ9" + }, + "type" : 2 + }, + { + "id" : "98CF5C89-3167-4EC5-9EED-761055D0412D", + "type" : 4 + }, + { + "id" : "B7A3B6D4-3877-429C-BB24-6670FAB17AB9", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B7A3B6D4-3877-429C-BB24-6670FAB17AB9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:52:59 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B7A3B6D4-3877-429C-BB24-6670FAB17AB9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "B7A3B6D4-3877-429C-BB24-6670FAB17AB9", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldSetNotConnectedStateForChannelsAndReceiveStatusWithExpectedOperationAndCategory.json b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldSetNotConnectedStateForChannelsAndReceiveStatusWithExpectedOperationAndCategory.json new file mode 100644 index 000000000..fddf5ead7 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPresenceIntegrationTest.bundle/ItShouldSetNotConnectedStateForChannelsAndReceiveStatusWithExpectedOperationAndCategory.json @@ -0,0 +1,164 @@ +[ + { + "id" : "AF9B2967-27D9-4EF9-BD36-30E428041416", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/heartbeat?uuid=Serhii&heartbeat=20&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "AF9B2967-27D9-4EF9-BD36-30E428041416", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/heartbeat?uuid=Serhii&heartbeat=20&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:57:13 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "55", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "AF9B2967-27D9-4EF9-BD36-30E428041416", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiUHJlc2VuY2UifQ==" + }, + "type" : 2 + }, + { + "id" : "AF9B2967-27D9-4EF9-BD36-30E428041416", + "type" : 4 + }, + { + "id" : "5820D8A3-93BB-43AF-B05D-09CD4B6601CE", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "5820D8A3-93BB-43AF-B05D-09CD4B6601CE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2,test-channel3\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:57:19 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "5820D8A3-93BB-43AF-B05D-09CD4B6601CE", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "5820D8A3-93BB-43AF-B05D-09CD4B6601CE", + "type" : 4 + }, + { + "id" : "14B7DA8F-F0F2-44E8-8C11-307923DDFAB1", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/uuid\/Serhii?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "14B7DA8F-F0F2-44E8-8C11-307923DDFAB1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/uuid\/Serhii?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sat, 25 Jan 2020 21:57:22 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "84", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "14B7DA8F-F0F2-44E8-8C11-307923DDFAB1", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWxzIjogW119LCAic2VydmljZSI6ICJQcmVzZW5jZSJ9" + }, + "type" : 2 + }, + { + "id" : "14B7DA8F-F0F2-44E8-8C11-307923DDFAB1", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPresenceStateIntegrationTest.bundle/ItShouldFetchPresenceStateForChannelAndReceiveResultWithExpectedOperation.json b/Tests/Support Files/Fixtures/PNPresenceStateIntegrationTest.bundle/ItShouldFetchPresenceStateForChannelAndReceiveResultWithExpectedOperation.json new file mode 100644 index 000000000..870fb9cff --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPresenceStateIntegrationTest.bundle/ItShouldFetchPresenceStateForChannelAndReceiveResultWithExpectedOperation.json @@ -0,0 +1,110 @@ +[ + { + "id" : "F57056F6-0719-461B-9BE2-09B068A6F7E7", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1\/uuid\/Serhii\/data?uuid=Serhii&state=%7B%22channel1-state%22:%5B%22channel-1-random-value%22%5D%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F57056F6-0719-461B-9BE2-09B068A6F7E7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1\/uuid\/Serhii\/data?uuid=Serhii&state=%7B%22channel1-state%22:%5B%22channel-1-random-value%22%5D%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sun, 26 Jan 2020 17:15:17 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "128", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F57056F6-0719-461B-9BE2-09B068A6F7E7", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWwxLXN0YXRlIjogWyJjaGFubmVsLTEtcmFuZG9tLXZhbHVlIl19LCAic2VydmljZSI6ICJQcmVzZW5jZSJ9" + }, + "type" : 2 + }, + { + "id" : "F57056F6-0719-461B-9BE2-09B068A6F7E7", + "type" : 4 + }, + { + "id" : "7BAF3118-9D28-4817-B6B1-B9A1C4661A0D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1\/uuid\/Serhii?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "7BAF3118-9D28-4817-B6B1-B9A1C4661A0D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1\/uuid\/Serhii?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sun, 26 Jan 2020 17:15:20 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "202", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "7BAF3118-9D28-4817-B6B1-B9A1C4661A0D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWwxLXN0YXRlIjogWyJjaGFubmVsLTEtcmFuZG9tLXZhbHVlIl19LCAidXVpZCI6ICJTZXJoaWkiLCAiY2hhbm5lbCI6ICJ0ZXN0LWNoYW5uZWwxIiwgInNlcnZpY2UiOiAiUHJlc2VuY2UifQ==" + }, + "type" : 2 + }, + { + "id" : "7BAF3118-9D28-4817-B6B1-B9A1C4661A0D", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPresenceStateIntegrationTest.bundle/ItShouldFetchPresenceStateForChannelGroupAndReceiveResultWithExpectedOperation.json b/Tests/Support Files/Fixtures/PNPresenceStateIntegrationTest.bundle/ItShouldFetchPresenceStateForChannelGroupAndReceiveResultWithExpectedOperation.json new file mode 100644 index 000000000..1abe8298b --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPresenceStateIntegrationTest.bundle/ItShouldFetchPresenceStateForChannelGroupAndReceiveResultWithExpectedOperation.json @@ -0,0 +1,218 @@ +[ + { + "id" : "C84ABEED-DFB3-4353-983D-EA64B10D1778", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "C84ABEED-DFB3-4353-983D-EA64B10D1778", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sun, 26 Jan 2020 17:13:27 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C84ABEED-DFB3-4353-983D-EA64B10D1778", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "C84ABEED-DFB3-4353-983D-EA64B10D1778", + "type" : 4 + }, + { + "id" : "A19FD7F0-6CDF-458C-B952-AAAF62669FF6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/,\/uuid\/Serhii\/data?channel-group=test-channel-group&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=%7B%22user-state%22:%5B%22users-random-value%22%5D%7D" + }, + "type" : 0 + }, + { + "id" : "A19FD7F0-6CDF-458C-B952-AAAF62669FF6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/,\/uuid\/Serhii\/data?channel-group=test-channel-group&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=%7B%22user-state%22:%5B%22users-random-value%22%5D%7D", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sun, 26 Jan 2020 17:13:31 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "120", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "A19FD7F0-6CDF-458C-B952-AAAF62669FF6", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7InVzZXItc3RhdGUiOiBbInVzZXJzLXJhbmRvbS12YWx1ZSJdfSwgInNlcnZpY2UiOiAiUHJlc2VuY2UifQ==" + }, + "type" : 2 + }, + { + "id" : "A19FD7F0-6CDF-458C-B952-AAAF62669FF6", + "type" : 4 + }, + { + "id" : "6AB2FF7C-8857-4ECF-8FEA-E7353096F42E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/,\/uuid\/Serhii?channel-group=test-channel-group&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "6AB2FF7C-8857-4ECF-8FEA-E7353096F42E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/,\/uuid\/Serhii?channel-group=test-channel-group&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sun, 26 Jan 2020 17:13:34 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "284", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "6AB2FF7C-8857-4ECF-8FEA-E7353096F42E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWxzIjogeyJ0ZXN0LWNoYW5uZWwyIjogeyJ1c2VyLXN0YXRlIjogWyJ1c2Vycy1yYW5kb20tdmFsdWUiXX0sICJ0ZXN0LWNoYW5uZWwxIjogeyJ1c2VyLXN0YXRlIjogWyJ1c2Vycy1yYW5kb20tdmFsdWUiXX19fSwgInV1aWQiOiAiU2VyaGlpIiwgInNlcnZpY2UiOiAiUHJlc2VuY2UifQ==" + }, + "type" : 2 + }, + { + "id" : "6AB2FF7C-8857-4ECF-8FEA-E7353096F42E", + "type" : 4 + }, + { + "id" : "FB8321EF-546F-408A-A176-F8D575B42E2C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "FB8321EF-546F-408A-A176-F8D575B42E2C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sun, 26 Jan 2020 17:13:36 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "FB8321EF-546F-408A-A176-F8D575B42E2C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "FB8321EF-546F-408A-A176-F8D575B42E2C", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPresenceStateIntegrationTest.bundle/ItShouldFetchPresenceStateForChannelGroupUsingBuilderPatternInterface.json b/Tests/Support Files/Fixtures/PNPresenceStateIntegrationTest.bundle/ItShouldFetchPresenceStateForChannelGroupUsingBuilderPatternInterface.json new file mode 100644 index 000000000..6f13e0ddb --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPresenceStateIntegrationTest.bundle/ItShouldFetchPresenceStateForChannelGroupUsingBuilderPatternInterface.json @@ -0,0 +1,326 @@ +[ + { + "id" : "4023E23B-B5BC-4CA6-B449-F6B44844E0D7", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "4023E23B-B5BC-4CA6-B449-F6B44844E0D7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sun, 26 Jan 2020 17:04:11 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "4023E23B-B5BC-4CA6-B449-F6B44844E0D7", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "4023E23B-B5BC-4CA6-B449-F6B44844E0D7", + "type" : 4 + }, + { + "id" : "12549716-2D95-407D-92FD-246298F8DE70", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group2?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel3,test-channel4" + }, + "type" : 0 + }, + { + "id" : "12549716-2D95-407D-92FD-246298F8DE70", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group2?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel3,test-channel4", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sun, 26 Jan 2020 17:04:12 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "12549716-2D95-407D-92FD-246298F8DE70", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "12549716-2D95-407D-92FD-246298F8DE70", + "type" : 4 + }, + { + "id" : "176DBE48-CAB5-46DC-A785-AFD9E9B0E3CC", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/,\/uuid\/Serhii\/data?channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=%7B%22users-state%22:%5B%22channel-1-random-value%22%5D%7D" + }, + "type" : 0 + }, + { + "id" : "176DBE48-CAB5-46DC-A785-AFD9E9B0E3CC", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/,\/uuid\/Serhii\/data?channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=%7B%22users-state%22:%5B%22channel-1-random-value%22%5D%7D", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sun, 26 Jan 2020 17:04:17 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "125", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "176DBE48-CAB5-46DC-A785-AFD9E9B0E3CC", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7InVzZXJzLXN0YXRlIjogWyJjaGFubmVsLTEtcmFuZG9tLXZhbHVlIl19LCAic2VydmljZSI6ICJQcmVzZW5jZSJ9" + }, + "type" : 2 + }, + { + "id" : "176DBE48-CAB5-46DC-A785-AFD9E9B0E3CC", + "type" : 4 + }, + { + "id" : "004E6D2B-8C4C-4A32-A289-2A94841BFDC3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/,\/uuid\/Serhii?channel-group=test-channel-group1,test-channel-group2&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "004E6D2B-8C4C-4A32-A289-2A94841BFDC3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/,\/uuid\/Serhii?channel-group=test-channel-group1,test-channel-group2&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sun, 26 Jan 2020 17:04:20 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "474", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "004E6D2B-8C4C-4A32-A289-2A94841BFDC3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWxzIjogeyJ0ZXN0LWNoYW5uZWwxIjogeyJ1c2Vycy1zdGF0ZSI6IFsiY2hhbm5lbC0xLXJhbmRvbS12YWx1ZSJdfSwgInRlc3QtY2hhbm5lbDIiOiB7InVzZXJzLXN0YXRlIjogWyJjaGFubmVsLTEtcmFuZG9tLXZhbHVlIl19LCAidGVzdC1jaGFubmVsNCI6IHsidXNlcnMtc3RhdGUiOiBbImNoYW5uZWwtMS1yYW5kb20tdmFsdWUiXX0sICJ0ZXN0LWNoYW5uZWwzIjogeyJ1c2Vycy1zdGF0ZSI6IFsiY2hhbm5lbC0xLXJhbmRvbS12YWx1ZSJdfX19LCAidXVpZCI6ICJTZXJoaWkiLCAic2VydmljZSI6ICJQcmVzZW5jZSJ9" + }, + "type" : 2 + }, + { + "id" : "004E6D2B-8C4C-4A32-A289-2A94841BFDC3", + "type" : 4 + }, + { + "id" : "E7C25BC1-56F3-4C84-9EC5-A15C7911F971", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E7C25BC1-56F3-4C84-9EC5-A15C7911F971", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sun, 26 Jan 2020 17:04:31 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E7C25BC1-56F3-4C84-9EC5-A15C7911F971", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "E7C25BC1-56F3-4C84-9EC5-A15C7911F971", + "type" : 4 + }, + { + "id" : "C35DAB01-88B8-4665-8187-8752BC8016BB", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group2\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C35DAB01-88B8-4665-8187-8752BC8016BB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group2\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sun, 26 Jan 2020 17:04:32 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C35DAB01-88B8-4665-8187-8752BC8016BB", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "C35DAB01-88B8-4665-8187-8752BC8016BB", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPresenceStateIntegrationTest.bundle/ItShouldFetchPresenceStateForChannelUsingBuilderPatternInterface.json b/Tests/Support Files/Fixtures/PNPresenceStateIntegrationTest.bundle/ItShouldFetchPresenceStateForChannelUsingBuilderPatternInterface.json new file mode 100644 index 000000000..164c01e5f --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPresenceStateIntegrationTest.bundle/ItShouldFetchPresenceStateForChannelUsingBuilderPatternInterface.json @@ -0,0 +1,110 @@ +[ + { + "id" : "8AD37D3C-D294-4172-9D47-A9DB50894C04", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1,test-channel2\/uuid\/Serhii\/data?uuid=Serhii&state=%7B%22users-state%22:%5B%22users-random-value%22%5D%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "8AD37D3C-D294-4172-9D47-A9DB50894C04", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1,test-channel2\/uuid\/Serhii\/data?uuid=Serhii&state=%7B%22users-state%22:%5B%22users-random-value%22%5D%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sun, 26 Jan 2020 17:14:47 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "121", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "8AD37D3C-D294-4172-9D47-A9DB50894C04", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7InVzZXJzLXN0YXRlIjogWyJ1c2Vycy1yYW5kb20tdmFsdWUiXX0sICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "8AD37D3C-D294-4172-9D47-A9DB50894C04", + "type" : 4 + }, + { + "id" : "D83D543D-CF5B-4494-AFD3-18B52E9E253A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1,test-channel2\/uuid\/Serhii?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D83D543D-CF5B-4494-AFD3-18B52E9E253A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1,test-channel2\/uuid\/Serhii?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sun, 26 Jan 2020 17:14:50 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "286", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D83D543D-CF5B-4494-AFD3-18B52E9E253A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWxzIjogeyJ0ZXN0LWNoYW5uZWwxIjogeyJ1c2Vycy1zdGF0ZSI6IFsidXNlcnMtcmFuZG9tLXZhbHVlIl19LCAidGVzdC1jaGFubmVsMiI6IHsidXNlcnMtc3RhdGUiOiBbInVzZXJzLXJhbmRvbS12YWx1ZSJdfX19LCAidXVpZCI6ICJTZXJoaWkiLCAic2VydmljZSI6ICJQcmVzZW5jZSJ9" + }, + "type" : 2 + }, + { + "id" : "D83D543D-CF5B-4494-AFD3-18B52E9E253A", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPresenceStateIntegrationTest.bundle/ItShouldSetPresenceStateForChannelAndReceiveStatusWithExpectedOperationAndCategory.json b/Tests/Support Files/Fixtures/PNPresenceStateIntegrationTest.bundle/ItShouldSetPresenceStateForChannelAndReceiveStatusWithExpectedOperationAndCategory.json new file mode 100644 index 000000000..f6773d6e6 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPresenceStateIntegrationTest.bundle/ItShouldSetPresenceStateForChannelAndReceiveStatusWithExpectedOperationAndCategory.json @@ -0,0 +1,56 @@ +[ + { + "id" : "D2DA0BB4-327A-46FF-BE66-3926C35F48B7", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1\/uuid\/Serhii\/data?uuid=Serhii&state=%7B%22channel1-state%22:%5B%22channel-1-random-value%22%5D%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D2DA0BB4-327A-46FF-BE66-3926C35F48B7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1\/uuid\/Serhii\/data?uuid=Serhii&state=%7B%22channel1-state%22:%5B%22channel-1-random-value%22%5D%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sun, 26 Jan 2020 17:16:50 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "128", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D2DA0BB4-327A-46FF-BE66-3926C35F48B7", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWwxLXN0YXRlIjogWyJjaGFubmVsLTEtcmFuZG9tLXZhbHVlIl19LCAic2VydmljZSI6ICJQcmVzZW5jZSJ9" + }, + "type" : 2 + }, + { + "id" : "D2DA0BB4-327A-46FF-BE66-3926C35F48B7", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPresenceStateIntegrationTest.bundle/ItShouldSetPresenceStateForChannelAndTriggerUpdateEventToTargetChannel.json b/Tests/Support Files/Fixtures/PNPresenceStateIntegrationTest.bundle/ItShouldSetPresenceStateForChannelAndTriggerUpdateEventToTargetChannel.json new file mode 100644 index 000000000..f40e879b5 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPresenceStateIntegrationTest.bundle/ItShouldSetPresenceStateForChannelAndTriggerUpdateEventToTargetChannel.json @@ -0,0 +1,352 @@ +[ + { + "id" : "21E07D7E-0027-4D27-9B10-F82986DB4690", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1\/uuid\/serhii\/data?uuid=serhii&state=%7B%22channel1-state%22:%5B%22channel-1-random-value%22%5D%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "21E07D7E-0027-4D27-9B10-F82986DB4690", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1\/uuid\/serhii\/data?uuid=serhii&state=%7B%22channel1-state%22:%5B%22channel-1-random-value%22%5D%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sun, 26 Jan 2020 20:22:52 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "128", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "21E07D7E-0027-4D27-9B10-F82986DB4690", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWwxLXN0YXRlIjogWyJjaGFubmVsLTEtcmFuZG9tLXZhbHVlIl19LCAic2VydmljZSI6ICJQcmVzZW5jZSJ9" + }, + "type" : 2 + }, + { + "id" : "21E07D7E-0027-4D27-9B10-F82986DB4690", + "type" : 4 + }, + { + "id" : "A94939A5-4471-47C6-B6A1-CC8979318371", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres\/0?tt=0&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A94939A5-4471-47C6-B6A1-CC8979318371", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres\/0?tt=0&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Sun, 26 Jan 2020 20:22:53 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "A94939A5-4471-47C6-B6A1-CC8979318371", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwMDcwMTczNjI0Mzg4MiIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "A94939A5-4471-47C6-B6A1-CC8979318371", + "type" : 4 + }, + { + "id" : "590D7F93-0774-4FB8-B16A-A516EC690814", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15800701736243882&tr=12" + }, + "type" : 0 + }, + { + "id" : "590D7F93-0774-4FB8-B16A-A516EC690814", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15800701736243882&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Sun, 26 Jan 2020 20:22:54 GMT", + "Content-Length" : "479", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "590D7F93-0774-4FB8-B16A-A516EC690814", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwMDcwMTc0Nzg5NTUwOCIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwMDcwMTc0Nzg5OTc2MyIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMS1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoic2VyaGlpIiwicG5fdGltZXN0YW1wIjoxNTgwMDcwMTc0LCJwbl9vY2N1cGFuY3kiOjEsInBuX2lzcHJlc2VuY2UiOjEsInBuX2NoYW5uZWwiOiJ0ZXN0LWNoYW5uZWwxIn0sImQiOnsiYWN0aW9uIjoiam9pbiIsInV1aWQiOiJzZXJoaWkiLCJ0aW1lc3RhbXAiOjE1ODAwNzAxNzQsIm9jY3VwYW5jeSI6MX0sImIiOiJ0ZXN0LWNoYW5uZWwxLXBucHJlcyJ9XX0=" + }, + "type" : 2 + }, + { + "id" : "590D7F93-0774-4FB8-B16A-A516EC690814", + "type" : 4 + }, + { + "id" : "771A11F8-7413-48FF-98C2-FE89F4B518E6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15800701747895508&tr=12" + }, + "type" : 0 + }, + { + "id" : "6089739B-93B0-4409-9C68-587FD69FF5B6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1\/uuid\/serhii\/data?uuid=serhii&state=%7B%22channel1-state%22:%5B%22channel-1-updated-random-value%22%5D%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "771A11F8-7413-48FF-98C2-FE89F4B518E6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15800701747895508&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Sun, 26 Jan 2020 20:22:57 GMT", + "Content-Length" : "570", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "6089739B-93B0-4409-9C68-587FD69FF5B6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1\/uuid\/serhii\/data?uuid=serhii&state=%7B%22channel1-state%22:%5B%22channel-1-updated-random-value%22%5D%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sun, 26 Jan 2020 20:22:57 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "136", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "771A11F8-7413-48FF-98C2-FE89F4B518E6", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwMDcwMTc3MTEzODgxMyIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwMDcwMTc3MTEyOTc5NiIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMS1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6InN0YXRlLWNoYW5nZSIsInBuX3V1aWQiOiJzZXJoaWkiLCJwbl90aW1lc3RhbXAiOjE1ODAwNzAxNzcsInBuX29jY3VwYW5jeSI6MSwicG5faXNwcmVzZW5jZSI6MSwicG5fY2hhbm5lbCI6InRlc3QtY2hhbm5lbDEifSwiZCI6eyJhY3Rpb24iOiJzdGF0ZS1jaGFuZ2UiLCJ1dWlkIjoic2VyaGlpIiwidGltZXN0YW1wIjoxNTgwMDcwMTc3LCJkYXRhIjp7ImNoYW5uZWwxLXN0YXRlIjpbImNoYW5uZWwtMS11cGRhdGVkLXJhbmRvbS12YWx1ZSJdfSwib2NjdXBhbmN5IjoxfSwiYiI6InRlc3QtY2hhbm5lbDEtcG5wcmVzIn1dfQ==" + }, + "type" : 2 + }, + { + "id" : "6089739B-93B0-4409-9C68-587FD69FF5B6", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWwxLXN0YXRlIjogWyJjaGFubmVsLTEtdXBkYXRlZC1yYW5kb20tdmFsdWUiXX0sICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "771A11F8-7413-48FF-98C2-FE89F4B518E6", + "type" : 4 + }, + { + "id" : "6089739B-93B0-4409-9C68-587FD69FF5B6", + "type" : 4 + }, + { + "id" : "BFA9E30E-1D0F-4CA2-AE16-DCA6C8F6909C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15800701771138813&tr=12" + }, + "type" : 0 + }, + { + "id" : "BFA9E30E-1D0F-4CA2-AE16-DCA6C8F6909C", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15800701771138813&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15800701771138813&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "2E9DC82C-1849-47FC-885C-E402DB57BBCD", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2E9DC82C-1849-47FC-885C-E402DB57BBCD", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sun, 26 Jan 2020 20:23:00 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "2E9DC82C-1849-47FC-885C-E402DB57BBCD", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "2E9DC82C-1849-47FC-885C-E402DB57BBCD", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPresenceStateIntegrationTest.bundle/ItShouldSetPresenceStateForChannelGroupAndReceiveStatusWithExpectedOperationAndCategory.json b/Tests/Support Files/Fixtures/PNPresenceStateIntegrationTest.bundle/ItShouldSetPresenceStateForChannelGroupAndReceiveStatusWithExpectedOperationAndCategory.json new file mode 100644 index 000000000..ed0f9d661 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPresenceStateIntegrationTest.bundle/ItShouldSetPresenceStateForChannelGroupAndReceiveStatusWithExpectedOperationAndCategory.json @@ -0,0 +1,164 @@ +[ + { + "id" : "97D1AB6C-3724-4079-AC02-A81B4EF2BAB3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "97D1AB6C-3724-4079-AC02-A81B4EF2BAB3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sun, 26 Jan 2020 17:16:06 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "97D1AB6C-3724-4079-AC02-A81B4EF2BAB3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "97D1AB6C-3724-4079-AC02-A81B4EF2BAB3", + "type" : 4 + }, + { + "id" : "799F808B-E2FB-467D-BD19-A8DB9D0D9706", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/,\/uuid\/Serhii\/data?channel-group=test-channel-group&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=%7B%22user-state%22:%5B%22users-random-value%22%5D%7D" + }, + "type" : 0 + }, + { + "id" : "799F808B-E2FB-467D-BD19-A8DB9D0D9706", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/,\/uuid\/Serhii\/data?channel-group=test-channel-group&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=%7B%22user-state%22:%5B%22users-random-value%22%5D%7D", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sun, 26 Jan 2020 17:16:11 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "120", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "799F808B-E2FB-467D-BD19-A8DB9D0D9706", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7InVzZXItc3RhdGUiOiBbInVzZXJzLXJhbmRvbS12YWx1ZSJdfSwgInNlcnZpY2UiOiAiUHJlc2VuY2UifQ==" + }, + "type" : 2 + }, + { + "id" : "799F808B-E2FB-467D-BD19-A8DB9D0D9706", + "type" : 4 + }, + { + "id" : "DE24D983-FFCF-4D9D-BD4A-CA58937F9727", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "DE24D983-FFCF-4D9D-BD4A-CA58937F9727", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sun, 26 Jan 2020 17:16:12 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "DE24D983-FFCF-4D9D-BD4A-CA58937F9727", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "DE24D983-FFCF-4D9D-BD4A-CA58937F9727", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPresenceStateIntegrationTest.bundle/ItShouldSetPresenceStateForChannelGroupUsingBuilderPatternInterface.json b/Tests/Support Files/Fixtures/PNPresenceStateIntegrationTest.bundle/ItShouldSetPresenceStateForChannelGroupUsingBuilderPatternInterface.json new file mode 100644 index 000000000..0046d1dac --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPresenceStateIntegrationTest.bundle/ItShouldSetPresenceStateForChannelGroupUsingBuilderPatternInterface.json @@ -0,0 +1,272 @@ +[ + { + "id" : "2DF32771-8A80-4C97-8787-FFBC187C3408", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "2DF32771-8A80-4C97-8787-FFBC187C3408", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sun, 26 Jan 2020 17:15:32 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "2DF32771-8A80-4C97-8787-FFBC187C3408", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "2DF32771-8A80-4C97-8787-FFBC187C3408", + "type" : 4 + }, + { + "id" : "13923F67-B562-45D3-A7F1-56C4AD4627E1", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group2?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel3,test-channel4" + }, + "type" : 0 + }, + { + "id" : "13923F67-B562-45D3-A7F1-56C4AD4627E1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group2?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel3,test-channel4", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sun, 26 Jan 2020 17:15:33 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "13923F67-B562-45D3-A7F1-56C4AD4627E1", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "13923F67-B562-45D3-A7F1-56C4AD4627E1", + "type" : 4 + }, + { + "id" : "F45A5E61-5325-43AB-87CE-311091683CED", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/,\/uuid\/Serhii\/data?channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=%7B%22users-state%22:%5B%22channel-1-random-value%22%5D%7D" + }, + "type" : 0 + }, + { + "id" : "F45A5E61-5325-43AB-87CE-311091683CED", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/,\/uuid\/Serhii\/data?channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&state=%7B%22users-state%22:%5B%22channel-1-random-value%22%5D%7D", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sun, 26 Jan 2020 17:15:37 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "125", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F45A5E61-5325-43AB-87CE-311091683CED", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7InVzZXJzLXN0YXRlIjogWyJjaGFubmVsLTEtcmFuZG9tLXZhbHVlIl19LCAic2VydmljZSI6ICJQcmVzZW5jZSJ9" + }, + "type" : 2 + }, + { + "id" : "F45A5E61-5325-43AB-87CE-311091683CED", + "type" : 4 + }, + { + "id" : "AB14477A-A2CE-49A8-9052-B0175074AC70", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "AB14477A-A2CE-49A8-9052-B0175074AC70", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sun, 26 Jan 2020 17:15:38 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "AB14477A-A2CE-49A8-9052-B0175074AC70", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "AB14477A-A2CE-49A8-9052-B0175074AC70", + "type" : 4 + }, + { + "id" : "B66A3694-E8A5-4923-A79B-765DEB36F12E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group2\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B66A3694-E8A5-4923-A79B-765DEB36F12E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group2\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sun, 26 Jan 2020 17:15:40 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B66A3694-E8A5-4923-A79B-765DEB36F12E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "B66A3694-E8A5-4923-A79B-765DEB36F12E", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPresenceStateIntegrationTest.bundle/ItShouldSetPresenceStateForChannelUsingBuilderPatternInterface.json b/Tests/Support Files/Fixtures/PNPresenceStateIntegrationTest.bundle/ItShouldSetPresenceStateForChannelUsingBuilderPatternInterface.json new file mode 100644 index 000000000..eb6b7c6d3 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPresenceStateIntegrationTest.bundle/ItShouldSetPresenceStateForChannelUsingBuilderPatternInterface.json @@ -0,0 +1,56 @@ +[ + { + "id" : "12CC5FFD-CC7B-485E-BBE5-D2612E4168E4", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1,test-channel2\/uuid\/Serhii\/data?uuid=Serhii&state=%7B%22users-state%22:%5B%22users-random-value%22%5D%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "12CC5FFD-CC7B-485E-BBE5-D2612E4168E4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1,test-channel2\/uuid\/Serhii\/data?uuid=Serhii&state=%7B%22users-state%22:%5B%22users-random-value%22%5D%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Sun, 26 Jan 2020 17:16:22 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "121", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "12CC5FFD-CC7B-485E-BBE5-D2612E4168E4", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7InVzZXJzLXN0YXRlIjogWyJ1c2Vycy1yYW5kb20tdmFsdWUiXX0sICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "12CC5FFD-CC7B-485E-BBE5-D2612E4168E4", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldFireMessageAndFetchEmptyHistory.json b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldFireMessageAndFetchEmptyHistory.json new file mode 100644 index 000000000..2ceab653e --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldFireMessageAndFetchEmptyHistory.json @@ -0,0 +1,107 @@ +[ + { + "id" : "E046F8F1-84F7-4C6E-ACAE-D453359491EF", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22hello%22:%5B%22there%22,%7B%22general%22:%22kenobi%22%7D%5D%7D?norep=1&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=serhii&store=0" + }, + "type" : 0 + }, + { + "id" : "E046F8F1-84F7-4C6E-ACAE-D453359491EF", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22hello%22:%5B%22there%22,%7B%22general%22:%22kenobi%22%7D%5D%7D?uuid=serhii&store=0&norep=1&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:23:47 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E046F8F1-84F7-4C6E-ACAE-D453359491EF", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMjI3OTc0MzQwNiJd" + }, + "type" : 2 + }, + { + "id" : "E046F8F1-84F7-4C6E-ACAE-D453359491EF", + "type" : 4 + }, + { + "id" : "78D85E6C-C37E-4F70-9C88-4E3D62428F92", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&count=100" + }, + "type" : 0 + }, + { + "id" : "78D85E6C-C37E-4F70-9C88-4E3D62428F92", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&count=100", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:23:54 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "8", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "78D85E6C-C37E-4F70-9C88-4E3D62428F92", + "data" : { + "cls" : "NSData", + "base64" : "W1tdLDAsMF0=" + }, + "type" : 2 + }, + { + "id" : "78D85E6C-C37E-4F70-9C88-4E3D62428F92", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldNotPublishTooLongPublishMessage.json b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldNotPublishTooLongPublishMessage.json new file mode 100644 index 000000000..16e1921b2 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldNotPublishTooLongPublishMessage.json @@ -0,0 +1,102 @@ +[ + { + "id" : "5F38E37C-8A73-49FA-941E-212E9F6BFFA8", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22hello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-ther%22?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "5F38E37C-8A73-49FA-941E-212E9F6BFFA8", + "data" : { + "status" : 414, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22hello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-ther%22?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=serhii", + "headers" : { + "Server" : "openresty", + "Date" : "Mon, 06 Jan 2020 00:23:56 GMT", + "Content-Type" : "text\/javascript; charset=UTF-8", + "Access-Control-Allow-Methods" : "GET", + "Connection" : "close", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "5F38E37C-8A73-49FA-941E-212E9F6BFFA8", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjQxNCwic2VydmljZSI6IkJhbGFuY2VyIiwiZXJyb3IiOnRydWUsIm1lc3NhZ2UiOiJSZXF1ZXN0IFVSSSBUb28gTG9uZyJ9Cg==" + }, + "type" : 2 + }, + { + "id" : "5F38E37C-8A73-49FA-941E-212E9F6BFFA8", + "type" : 4 + }, + { + "id" : "14101D31-E75F-414E-9E72-A3728107417F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22hello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-ther%22?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "14101D31-E75F-414E-9E72-A3728107417F", + "data" : { + "status" : 414, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22hello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-ther%22?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=serhii", + "headers" : { + "Server" : "openresty", + "Date" : "Mon, 06 Jan 2020 00:23:56 GMT", + "Content-Type" : "text\/javascript; charset=UTF-8", + "Access-Control-Allow-Methods" : "GET", + "Connection" : "close", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "14101D31-E75F-414E-9E72-A3728107417F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjQxNCwic2VydmljZSI6IkJhbGFuY2VyIiwiZXJyb3IiOnRydWUsIm1lc3NhZ2UiOiJSZXF1ZXN0IFVSSSBUb28gTG9uZyJ9Cg==" + }, + "type" : 2 + }, + { + "id" : "14101D31-E75F-414E-9E72-A3728107417F", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldNotSendTooLongSignalMessage.json b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldNotSendTooLongSignalMessage.json new file mode 100644 index 000000000..6bde5976b --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldNotSendTooLongSignalMessage.json @@ -0,0 +1,104 @@ +[ + { + "id" : "37F15534-27B7-40BA-8AD6-0EC8C39E3D46", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/signal\/demo\/demo\/0\/test-channel\/0\/%22hello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehe%22?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "37F15534-27B7-40BA-8AD6-0EC8C39E3D46", + "data" : { + "status" : 400, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/signal\/demo\/demo\/0\/test-channel\/0\/%22hello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehe%22?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:23:57 GMT", + "Content-Length" : "47", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "37F15534-27B7-40BA-8AD6-0EC8C39E3D46", + "data" : { + "cls" : "NSData", + "base64" : "WzAsIlNpZ25hbCBzaXplIHRvbyBsYXJnZSIsIjE1NzgyNzAyMzc1MDQ4NzYzIl0=" + }, + "type" : 2 + }, + { + "id" : "37F15534-27B7-40BA-8AD6-0EC8C39E3D46", + "type" : 4 + }, + { + "id" : "B0563233-3C08-4E1A-82ED-44C2ACC137A0", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/signal\/demo\/demo\/0\/test-channel\/0\/%22hello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehe%22?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B0563233-3C08-4E1A-82ED-44C2ACC137A0", + "data" : { + "status" : 400, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/signal\/demo\/demo\/0\/test-channel\/0\/%22hello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehe%22?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:23:57 GMT", + "Content-Length" : "47", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B0563233-3C08-4E1A-82ED-44C2ACC137A0", + "data" : { + "cls" : "NSData", + "base64" : "WzAsIlNpZ25hbCBzaXplIHRvbyBsYXJnZSIsIjE1NzgyNzAyMzc1NjE0NzA0Il0=" + }, + "type" : 2 + }, + { + "id" : "B0563233-3C08-4E1A-82ED-44C2ACC137A0", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublish10000CharactersLongNSString.json b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublish10000CharactersLongNSString.json new file mode 100644 index 000000000..c7c419377 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublish10000CharactersLongNSString.json @@ -0,0 +1,253 @@ +[ + { + "id" : "6BAC75A2-CD03-430D-B02D-BE50267169C3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "6BAC75A2-CD03-430D-B02D-BE50267169C3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:23:58 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "6BAC75A2-CD03-430D-B02D-BE50267169C3", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjM4MjE1NzY2MCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "6BAC75A2-CD03-430D-B02D-BE50267169C3", + "type" : 4 + }, + { + "id" : "5DF30312-4417-41A0-9F94-8ECB987BB5C6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702382157660&tr=12" + }, + "type" : 0 + }, + { + "id" : "D50B7C64-4F56-4FA1-B057-5650D0B407C2", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22hello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-thereh%22?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "5DF30312-4417-41A0-9F94-8ECB987BB5C6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702382157660&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Connection" : "keep-alive", + "Date" : "Mon, 06 Jan 2020 00:23:58 GMT", + "Content-Encoding" : "gzip", + "Cache-Control" : "no-cache", + "Transfer-Encoding" : "Identity" + } + }, + "type" : 1 + }, + { + "id" : "D50B7C64-4F56-4FA1-B057-5650D0B407C2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22hello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-thereh%22?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:23:58 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "5DF30312-4417-41A0-9F94-8ECB987BB5C6", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjM4NjE1NjgzNiIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJpIjoic2VyaGlpIiwicyI6MTU3LCJwIjp7InQiOiIxNTc4MjcwMjM4NjE2MDEyNSIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsIiwiZCI6ImhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJl" + }, + "type" : 2 + }, + { + "id" : "5DF30312-4417-41A0-9F94-8ECB987BB5C6", + "data" : { + "cls" : "NSData", + "base64" : "aGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWgifV19" + }, + "type" : 2 + }, + { + "id" : "D50B7C64-4F56-4FA1-B057-5650D0B407C2", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMjM4NjE2MDEyNSJd" + }, + "type" : 2 + }, + { + "id" : "5DF30312-4417-41A0-9F94-8ECB987BB5C6", + "type" : 4 + }, + { + "id" : "D50B7C64-4F56-4FA1-B057-5650D0B407C2", + "type" : 4 + }, + { + "id" : "A955C241-3D91-4331-82DC-F1666DBF616B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702386156836&tr=12" + }, + "type" : 0 + }, + { + "id" : "A955C241-3D91-4331-82DC-F1666DBF616B", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702386156836&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702386156836&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "89AB86A5-A187-4FAA-B1CA-3C7FEC5B1625", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "89AB86A5-A187-4FAA-B1CA-3C7FEC5B1625", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:23:58 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "89AB86A5-A187-4FAA-B1CA-3C7FEC5B1625", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "89AB86A5-A187-4FAA-B1CA-3C7FEC5B1625", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublish1000CharactersLongNSString.json b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublish1000CharactersLongNSString.json new file mode 100644 index 000000000..b2e933de9 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublish1000CharactersLongNSString.json @@ -0,0 +1,245 @@ +[ + { + "id" : "8A2FFD72-7362-4F1C-88CB-7C43415CFD89", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "8A2FFD72-7362-4F1C-88CB-7C43415CFD89", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:23:59 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "8A2FFD72-7362-4F1C-88CB-7C43415CFD89", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjM5NTE0ODA0MiIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "8A2FFD72-7362-4F1C-88CB-7C43415CFD89", + "type" : 4 + }, + { + "id" : "76E0A46F-55E5-440A-9BFC-DE37D618DE4E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702395148042&tr=12" + }, + "type" : 0 + }, + { + "id" : "C35D11CC-2D82-4F51-B2DD-1D35E615656A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22hello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-ther%22?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "C35D11CC-2D82-4F51-B2DD-1D35E615656A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22hello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-therehello-ther%22?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:23:59 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C35D11CC-2D82-4F51-B2DD-1D35E615656A", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMjM5ODYzNDkxOSJd" + }, + "type" : 2 + }, + { + "id" : "C35D11CC-2D82-4F51-B2DD-1D35E615656A", + "type" : 4 + }, + { + "id" : "76E0A46F-55E5-440A-9BFC-DE37D618DE4E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702395148042&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Connection" : "keep-alive", + "Date" : "Mon, 06 Jan 2020 00:23:59 GMT", + "Content-Encoding" : "gzip", + "Cache-Control" : "no-cache", + "Transfer-Encoding" : "Identity" + } + }, + "type" : 1 + }, + { + "id" : "76E0A46F-55E5-440A-9BFC-DE37D618DE4E", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjM5ODY0NDQ2MSIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJpIjoic2VyaGlpIiwicyI6MTU4LCJwIjp7InQiOiIxNTc4MjcwMjM5ODYzNDkxOSIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsIiwiZCI6ImhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXJlaGVsbG8tdGhlcmVoZWxsby10aGVyZWhlbGxvLXRoZXIifV19" + }, + "type" : 2 + }, + { + "id" : "76E0A46F-55E5-440A-9BFC-DE37D618DE4E", + "type" : 4 + }, + { + "id" : "640D716E-FC02-48D1-B0B8-EEAC8C1467D6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702398644461&tr=12" + }, + "type" : 0 + }, + { + "id" : "640D716E-FC02-48D1-B0B8-EEAC8C1467D6", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702398644461&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702398644461&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "EB0B5F9C-038E-46C7-950F-A986562375EE", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "EB0B5F9C-038E-46C7-950F-A986562375EE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:24:00 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "EB0B5F9C-038E-46C7-950F-A986562375EE", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "EB0B5F9C-038E-46C7-950F-A986562375EE", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishAndFetchEmptyHistoryWhenStoreInHistoryDisabled.json b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishAndFetchEmptyHistoryWhenStoreInHistoryDisabled.json new file mode 100644 index 000000000..a5eac2c34 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishAndFetchEmptyHistoryWhenStoreInHistoryDisabled.json @@ -0,0 +1,107 @@ +[ + { + "id" : "80D418AE-1B71-4429-8358-E07D297865E0", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22Hello%20there%22?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=serhii&store=0" + }, + "type" : 0 + }, + { + "id" : "80D418AE-1B71-4429-8358-E07D297865E0", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22Hello%20there%22?uuid=serhii&store=0&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:00 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "80D418AE-1B71-4429-8358-E07D297865E0", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMjQwOTMyMDY4NCJd" + }, + "type" : 2 + }, + { + "id" : "80D418AE-1B71-4429-8358-E07D297865E0", + "type" : 4 + }, + { + "id" : "7054DB9D-82C1-4009-9C9A-FB4DB14A3DB5", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&count=100" + }, + "type" : 0 + }, + { + "id" : "7054DB9D-82C1-4009-9C9A-FB4DB14A3DB5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&count=100", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:24:07 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "8", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "7054DB9D-82C1-4009-9C9A-FB4DB14A3DB5", + "data" : { + "cls" : "NSData", + "base64" : "W1tdLDAsMF0=" + }, + "type" : 2 + }, + { + "id" : "7054DB9D-82C1-4009-9C9A-FB4DB14A3DB5", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishAndFetchMessageFromHistory.json b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishAndFetchMessageFromHistory.json new file mode 100644 index 000000000..d1efeecd2 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishAndFetchMessageFromHistory.json @@ -0,0 +1,107 @@ +[ + { + "id" : "B212552D-628F-47CC-9BF9-AEFE3CA10F38", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22Hello%20there%22?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "B212552D-628F-47CC-9BF9-AEFE3CA10F38", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22Hello%20there%22?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:07 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B212552D-628F-47CC-9BF9-AEFE3CA10F38", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMjQ3Nzk5MTUxNiJd" + }, + "type" : 2 + }, + { + "id" : "B212552D-628F-47CC-9BF9-AEFE3CA10F38", + "type" : 4 + }, + { + "id" : "228BAEFA-8F97-400F-856D-AE955258636B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&count=100" + }, + "type" : 0 + }, + { + "id" : "228BAEFA-8F97-400F-856D-AE955258636B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&count=100", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:24:13 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "53", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "228BAEFA-8F97-400F-856D-AE955258636B", + "data" : { + "cls" : "NSData", + "base64" : "W1siSGVsbG8gdGhlcmUiXSwxNTc4MjcwMjQ3Nzk5MTUxNiwxNTc4MjcwMjQ3Nzk5MTUxNl0=" + }, + "type" : 2 + }, + { + "id" : "228BAEFA-8F97-400F-856D-AE955258636B", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishAndReceivePublishTimetoken.json b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishAndReceivePublishTimetoken.json new file mode 100644 index 000000000..2cce42eb2 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishAndReceivePublishTimetoken.json @@ -0,0 +1,53 @@ +[ + { + "id" : "530B9575-D7ED-44A3-8A71-7EFBF95EB2B7", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22Hello%20there%22?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "530B9575-D7ED-44A3-8A71-7EFBF95EB2B7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22Hello%20there%22?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:14 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "530B9575-D7ED-44A3-8A71-7EFBF95EB2B7", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMjU0Njk5OTUzMSJd" + }, + "type" : 2 + }, + { + "id" : "530B9575-D7ED-44A3-8A71-7EFBF95EB2B7", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishAndReceiveStatusWithExpectedOperationAndCategory.json b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishAndReceiveStatusWithExpectedOperationAndCategory.json new file mode 100644 index 000000000..8c7776468 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishAndReceiveStatusWithExpectedOperationAndCategory.json @@ -0,0 +1,53 @@ +[ + { + "id" : "E0EA0CD2-EC61-49D9-A17D-F862DEBD98D4", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22Hello%20there%22?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "E0EA0CD2-EC61-49D9-A17D-F862DEBD98D4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22Hello%20there%22?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:15 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E0EA0CD2-EC61-49D9-A17D-F862DEBD98D4", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMjU1NDk2MDQ4NCJd" + }, + "type" : 2 + }, + { + "id" : "E0EA0CD2-EC61-49D9-A17D-F862DEBD98D4", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishCompressedAndFetchEmptyHistoryWhenStoreInHistoryDisabled.json b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishCompressedAndFetchEmptyHistoryWhenStoreInHistoryDisabled.json new file mode 100644 index 000000000..95be4a875 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishCompressedAndFetchEmptyHistoryWhenStoreInHistoryDisabled.json @@ -0,0 +1,114 @@ +[ + { + "id" : "D3BE83EF-CCEA-458C-9AA8-AB9ECBE2A0BD", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "Accept" : "*\/*", + "Content-Type" : "application\/json;charset=UTF-8", + "Content-Encoding" : "gzip", + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Content-Length" : "33", + "Accept-Encoding" : "gzip,deflate", + "Connection" : "keep-alive" + }, + "body" : { + "cls" : "NSData", + "base64" : "H4sIAAAAAAAAE1PySM3JyVcoyUgtSlUCAN9I1tMNAAAA" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=serhii&store=0" + }, + "type" : 0 + }, + { + "id" : "D3BE83EF-CCEA-458C-9AA8-AB9ECBE2A0BD", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0?uuid=serhii&store=0&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "POST", + "Date" : "Mon, 06 Jan 2020 00:24:16 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D3BE83EF-CCEA-458C-9AA8-AB9ECBE2A0BD", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMjU2MjQ2NzM5MyJd" + }, + "type" : 2 + }, + { + "id" : "D3BE83EF-CCEA-458C-9AA8-AB9ECBE2A0BD", + "type" : 4 + }, + { + "id" : "C41B2E60-BE1A-4706-8628-1698207E8408", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&count=100" + }, + "type" : 0 + }, + { + "id" : "C41B2E60-BE1A-4706-8628-1698207E8408", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&count=100", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:24:22 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "8", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C41B2E60-BE1A-4706-8628-1698207E8408", + "data" : { + "cls" : "NSData", + "base64" : "W1tdLDAsMF0=" + }, + "type" : 2 + }, + { + "id" : "C41B2E60-BE1A-4706-8628-1698207E8408", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishCompressedMessageUsingPOST.json b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishCompressedMessageUsingPOST.json new file mode 100644 index 000000000..1da8931f5 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishCompressedMessageUsingPOST.json @@ -0,0 +1,60 @@ +[ + { + "id" : "02863543-FFC1-4AD2-BCDB-6511AB408BAB", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "Accept" : "*\/*", + "Content-Type" : "application\/json;charset=UTF-8", + "Content-Encoding" : "gzip", + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Content-Length" : "70", + "Accept-Encoding" : "gzip,deflate", + "Connection" : "keep-alive" + }, + "body" : { + "cls" : "NSData", + "base64" : "H4sIAAAAAAAAE+3GwQkAIAwEsF36d6yDPgqCuD\/OISSvVGdmr9s5UVVVVVVVVVVVVVVVVVVVVVVVVf229QBBc+DhEicAAA==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "02863543-FFC1-4AD2-BCDB-6511AB408BAB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=serhii", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "POST", + "Date" : "Mon, 06 Jan 2020 00:24:23 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "02863543-FFC1-4AD2-BCDB-6511AB408BAB", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMjYzMTIwNDE5NyJd" + }, + "type" : 2 + }, + { + "id" : "02863543-FFC1-4AD2-BCDB-6511AB408BAB", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishCompressedMessageWithMobilePayload.json b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishCompressedMessageWithMobilePayload.json new file mode 100644 index 000000000..630d53ef1 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishCompressedMessageWithMobilePayload.json @@ -0,0 +1,251 @@ +[ + { + "id" : "F967CCA6-4D75-4555-A2FE-A63AC3C088F0", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F967CCA6-4D75-4555-A2FE-A63AC3C088F0", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:23 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F967CCA6-4D75-4555-A2FE-A63AC3C088F0", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjYzNzc4NDkyOSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "F967CCA6-4D75-4555-A2FE-A63AC3C088F0", + "type" : 4 + }, + { + "id" : "80EA71B7-4748-46E0-B319-4FEAE34A2744", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702637784929&tr=12" + }, + "type" : 0 + }, + { + "id" : "3360A802-CE6A-4F7F-BF66-A2266BE58AA3", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "Accept" : "*\/*", + "Content-Type" : "application\/json;charset=UTF-8", + "Content-Encoding" : "gzip", + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Content-Length" : "90", + "Accept-Encoding" : "gzip,deflate", + "Connection" : "keep-alive" + }, + "body" : { + "cls" : "NSData", + "base64" : "H4sIAAAAAAAAE6tWykjNyclXsopWKslILUpV0qlWSk\/NSy1KzFGyUspOzctPylSqjdVRKsiLTyzIK1ayqlZKLIBQOalFJUBFHiADFCC6a2trAXOelERSAAAA" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "3360A802-CE6A-4F7F-BF66-A2266BE58AA3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=serhii", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "POST", + "Date" : "Mon, 06 Jan 2020 00:24:24 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "3360A802-CE6A-4F7F-BF66-A2266BE58AA3", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMjY0MTM3MzQ5MyJd" + }, + "type" : 2 + }, + { + "id" : "3360A802-CE6A-4F7F-BF66-A2266BE58AA3", + "type" : 4 + }, + { + "id" : "80EA71B7-4748-46E0-B319-4FEAE34A2744", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702637784929&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:24 GMT", + "Content-Length" : "287", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "80EA71B7-4748-46E0-B319-4FEAE34A2744", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjY0MTM3MDM2NCIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJpIjoic2VyaGlpIiwicyI6MTY1LCJwIjp7InQiOiIxNTc4MjcwMjY0MTM3MzQ5MyIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsIiwiZCI6eyJoZWxsbyI6WyJ0aGVyZSIseyJnZW5lcmFsIjoia2Vub2JpIn1dLCJwbl9hcG5zIjp7ImFwcyI6eyJhbGVydCI6IkhlbGxvIHRoZXJlIn19fX1dfQ==" + }, + "type" : 2 + }, + { + "id" : "80EA71B7-4748-46E0-B319-4FEAE34A2744", + "type" : 4 + }, + { + "id" : "EBF90E65-5940-4835-A60A-5F57C0DE7D9B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702641370364&tr=12" + }, + "type" : 0 + }, + { + "id" : "EBF90E65-5940-4835-A60A-5F57C0DE7D9B", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702641370364&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702641370364&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "0480698E-E3B3-463E-A1D7-4553F78AB167", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "0480698E-E3B3-463E-A1D7-4553F78AB167", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:24:24 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "0480698E-E3B3-463E-A1D7-4553F78AB167", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "0480698E-E3B3-463E-A1D7-4553F78AB167", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishCompressedMessageWithMobilePayloadAndFetchMessageFromHistory.json b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishCompressedMessageWithMobilePayloadAndFetchMessageFromHistory.json new file mode 100644 index 000000000..ee31e6016 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishCompressedMessageWithMobilePayloadAndFetchMessageFromHistory.json @@ -0,0 +1,114 @@ +[ + { + "id" : "95E5F23A-1DE2-494C-B764-85DFCC4E6011", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "Accept" : "*\/*", + "Content-Type" : "application\/json;charset=UTF-8", + "Content-Encoding" : "gzip", + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Content-Length" : "90", + "Accept-Encoding" : "gzip,deflate", + "Connection" : "keep-alive" + }, + "body" : { + "cls" : "NSData", + "base64" : "H4sIAAAAAAAAE6tWykjNyclXsopWKslILUpV0qlWSk\/NSy1KzFGyUspOzctPylSqjdVRKsiLTyzIK1ayqlZKLIBQOalFJUBFHiADFCC6a2trAXOelERSAAAA" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "95E5F23A-1DE2-494C-B764-85DFCC4E6011", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=serhii", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Methods" : "POST", + "Date" : "Mon, 06 Jan 2020 00:24:25 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "95E5F23A-1DE2-494C-B764-85DFCC4E6011", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMjY1MTk5Njc0NCJd" + }, + "type" : 2 + }, + { + "id" : "95E5F23A-1DE2-494C-B764-85DFCC4E6011", + "type" : 4 + }, + { + "id" : "636E0172-22F1-419B-ADFC-0712783D8313", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&count=100" + }, + "type" : 0 + }, + { + "id" : "636E0172-22F1-419B-ADFC-0712783D8313", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&count=100", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:24:31 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "122", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "636E0172-22F1-419B-ADFC-0712783D8313", + "data" : { + "cls" : "NSData", + "base64" : "W1t7ImhlbGxvIjpbInRoZXJlIix7ImdlbmVyYWwiOiJrZW5vYmkifV0sInBuX2FwbnMiOnsiYXBzIjp7ImFsZXJ0IjoiSGVsbG8gdGhlcmUifX19XSwxNTc4MjcwMjY1MTk5Njc0NCwxNTc4MjcwMjY1MTk5Njc0NF0=" + }, + "type" : 2 + }, + { + "id" : "636E0172-22F1-419B-ADFC-0712783D8313", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishEncryptedMessage.json b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishEncryptedMessage.json new file mode 100644 index 000000000..e36f81b0a --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishEncryptedMessage.json @@ -0,0 +1,244 @@ +[ + { + "id" : "E8DD352D-4AC3-4EA8-9135-4177BC442AD1", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E8DD352D-4AC3-4EA8-9135-4177BC442AD1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:32 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E8DD352D-4AC3-4EA8-9135-4177BC442AD1", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjcxOTk4NDgyNiIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "E8DD352D-4AC3-4EA8-9135-4177BC442AD1", + "type" : 4 + }, + { + "id" : "03F063C1-F19C-4980-AC17-E1DC2E90B593", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702719984826&tr=12" + }, + "type" : 0 + }, + { + "id" : "C6B0E747-AE95-4913-B05A-7BB28AE0918F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22xY6oQ3eZMfoY03b6UtjUih+3u63\/VZQCcB1o3wavdJc+nabYNOLmZYdz2vuEEPup%22?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "C6B0E747-AE95-4913-B05A-7BB28AE0918F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22xY6oQ3eZMfoY03b6UtjUih+3u63\/VZQCcB1o3wavdJc+nabYNOLmZYdz2vuEEPup%22?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:32 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "03F063C1-F19C-4980-AC17-E1DC2E90B593", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702719984826&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:32 GMT", + "Content-Length" : "271", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C6B0E747-AE95-4913-B05A-7BB28AE0918F", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMjcyMzQ1Mzc2NSJd" + }, + "type" : 2 + }, + { + "id" : "03F063C1-F19C-4980-AC17-E1DC2E90B593", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjcyMzQzNDY5MiIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJpIjoic2VyaGlpIiwicyI6MTY3LCJwIjp7InQiOiIxNTc4MjcwMjcyMzQ1Mzc2NSIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsIiwiZCI6InhZNm9RM2VaTWZvWTAzYjZVdGpVaWgrM3U2My9WWlFDY0IxbzN3YXZkSmMrbmFiWU5PTG1aWWR6MnZ1RUVQdXAifV19" + }, + "type" : 2 + }, + { + "id" : "C6B0E747-AE95-4913-B05A-7BB28AE0918F", + "type" : 4 + }, + { + "id" : "03F063C1-F19C-4980-AC17-E1DC2E90B593", + "type" : 4 + }, + { + "id" : "0821F12F-C97D-4B20-AF29-98D9C3552178", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702723434692&tr=12" + }, + "type" : 0 + }, + { + "id" : "0821F12F-C97D-4B20-AF29-98D9C3552178", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702723434692&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702723434692&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "7DFD6182-0359-4B86-9283-3DC1B805F7C4", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "7DFD6182-0359-4B86-9283-3DC1B805F7C4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:24:32 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "7DFD6182-0359-4B86-9283-3DC1B805F7C4", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "7DFD6182-0359-4B86-9283-3DC1B805F7C4", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishEncryptedMessageWithNotEncryptedMobilePayload.json b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishEncryptedMessageWithNotEncryptedMobilePayload.json new file mode 100644 index 000000000..33aa422a1 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishEncryptedMessageWithNotEncryptedMobilePayload.json @@ -0,0 +1,244 @@ +[ + { + "id" : "8316E466-B579-4044-B284-E78E587B128B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "8316E466-B579-4044-B284-E78E587B128B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:33 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "8316E466-B579-4044-B284-E78E587B128B", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjczMzIzMDQ3NSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "8316E466-B579-4044-B284-E78E587B128B", + "type" : 4 + }, + { + "id" : "BD5973BD-0F3E-47EF-A31C-306CE6C2CBC9", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702733230475&tr=12" + }, + "type" : 0 + }, + { + "id" : "C2FEC899-F75D-414D-9AB9-87A402EA12CA", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22pn_other%22:%22%5C%22xY6oQ3eZMfoY03b6UtjUih+3u63%5C\/VZQCcB1o3wavdJc+nabYNOLmZYdz2vuEEPup%5C%22%22,%22pn_apns%22:%7B%22aps%22:%7B%22alert%22:%22Hello%20there%22%7D%7D%7D?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "C2FEC899-F75D-414D-9AB9-87A402EA12CA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22pn_other%22:%22%5C%22xY6oQ3eZMfoY03b6UtjUih+3u63%5C\/VZQCcB1o3wavdJc+nabYNOLmZYdz2vuEEPup%5C%22%22,%22pn_apns%22:%7B%22aps%22:%7B%22alert%22:%22Hello%20there%22%7D%7D%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:33 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C2FEC899-F75D-414D-9AB9-87A402EA12CA", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMjczNjU1NDAxNyJd" + }, + "type" : 2 + }, + { + "id" : "C2FEC899-F75D-414D-9AB9-87A402EA12CA", + "type" : 4 + }, + { + "id" : "BD5973BD-0F3E-47EF-A31C-306CE6C2CBC9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702733230475&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:33 GMT", + "Content-Length" : "331", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "BD5973BD-0F3E-47EF-A31C-306CE6C2CBC9", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjczNjU0OTUzMiIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJpIjoic2VyaGlpIiwicyI6MTY4LCJwIjp7InQiOiIxNTc4MjcwMjczNjU1NDAxNyIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsIiwiZCI6eyJwbl9vdGhlciI6IlwieFk2b1EzZVpNZm9ZMDNiNlV0alVpaCszdTYzXC9WWlFDY0IxbzN3YXZkSmMrbmFiWU5PTG1aWWR6MnZ1RUVQdXBcIiIsInBuX2FwbnMiOnsiYXBzIjp7ImFsZXJ0IjoiSGVsbG8gdGhlcmUifX19fV19" + }, + "type" : 2 + }, + { + "id" : "BD5973BD-0F3E-47EF-A31C-306CE6C2CBC9", + "type" : 4 + }, + { + "id" : "8C43FCBF-26C3-4566-ADE4-B5517A918F26", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702736549532&tr=12" + }, + "type" : 0 + }, + { + "id" : "8C43FCBF-26C3-4566-ADE4-B5517A918F26", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702736549532&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702736549532&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "F9E250CD-68EA-4555-B88F-BD2AB094D1E3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F9E250CD-68EA-4555-B88F-BD2AB094D1E3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:24:33 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F9E250CD-68EA-4555-B88F-BD2AB094D1E3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "F9E250CD-68EA-4555-B88F-BD2AB094D1E3", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishMessageWithMobilePayloadAndFetchEmptyHistoryWhenStoreInHistoryDisabled.json b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishMessageWithMobilePayloadAndFetchEmptyHistoryWhenStoreInHistoryDisabled.json new file mode 100644 index 000000000..2ba7e3f2c --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishMessageWithMobilePayloadAndFetchEmptyHistoryWhenStoreInHistoryDisabled.json @@ -0,0 +1,107 @@ +[ + { + "id" : "7C031112-1B53-4F23-9B49-0F66E8CED1D5", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22hello%22:%5B%22there%22,%7B%22general%22:%22kenobi%22%7D%5D,%22pn_apns%22:%7B%22aps%22:%7B%22alert%22:%22Hello%20there%22%7D%7D%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=serhii&store=0" + }, + "type" : 0 + }, + { + "id" : "7C031112-1B53-4F23-9B49-0F66E8CED1D5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22hello%22:%5B%22there%22,%7B%22general%22:%22kenobi%22%7D%5D,%22pn_apns%22:%7B%22aps%22:%7B%22alert%22:%22Hello%20there%22%7D%7D%7D?uuid=serhii&store=0&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:34 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "7C031112-1B53-4F23-9B49-0F66E8CED1D5", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMjc0NzMwNDYxNiJd" + }, + "type" : 2 + }, + { + "id" : "7C031112-1B53-4F23-9B49-0F66E8CED1D5", + "type" : 4 + }, + { + "id" : "F1FCAB6B-CBA4-41B9-B3A5-7E81B141BABC", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&count=100" + }, + "type" : 0 + }, + { + "id" : "F1FCAB6B-CBA4-41B9-B3A5-7E81B141BABC", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/history\/sub-key\/demo\/channel\/test-channel?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&count=100", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:24:40 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "8", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F1FCAB6B-CBA4-41B9-B3A5-7E81B141BABC", + "data" : { + "cls" : "NSData", + "base64" : "W1tdLDAsMF0=" + }, + "type" : 2 + }, + { + "id" : "F1FCAB6B-CBA4-41B9-B3A5-7E81B141BABC", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishMobilePayloadWithWrappedAPSKey.json b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishMobilePayloadWithWrappedAPSKey.json new file mode 100644 index 000000000..0363879b0 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishMobilePayloadWithWrappedAPSKey.json @@ -0,0 +1,244 @@ +[ + { + "id" : "FFDF2380-DD5B-4FE4-8CF6-319AE09AA1D3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "FFDF2380-DD5B-4FE4-8CF6-319AE09AA1D3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:41 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "FFDF2380-DD5B-4FE4-8CF6-319AE09AA1D3", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjgxNDk1ODY1MyIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "FFDF2380-DD5B-4FE4-8CF6-319AE09AA1D3", + "type" : 4 + }, + { + "id" : "75C22BEE-4CB3-42A4-BCE0-2D21ECCF081E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702814958653&tr=12" + }, + "type" : 0 + }, + { + "id" : "F9FB6F56-7A67-4339-91AA-27899A838911", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22pn_other%22:%22Hello%20there%22,%22pn_apns%22:%7B%22aps%22:%7B%22alert%22:%22Hello%20there%22%7D%7D%7D?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "75C22BEE-4CB3-42A4-BCE0-2D21ECCF081E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702814958653&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:41 GMT", + "Content-Length" : "273", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F9FB6F56-7A67-4339-91AA-27899A838911", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22pn_other%22:%22Hello%20there%22,%22pn_apns%22:%7B%22aps%22:%7B%22alert%22:%22Hello%20there%22%7D%7D%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:41 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "75C22BEE-4CB3-42A4-BCE0-2D21ECCF081E", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjgxODM1OTY5OCIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJpIjoic2VyaGlpIiwicyI6MTcwLCJwIjp7InQiOiIxNTc4MjcwMjgxODM1NDg1MyIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsIiwiZCI6eyJwbl9vdGhlciI6IkhlbGxvIHRoZXJlIiwicG5fYXBucyI6eyJhcHMiOnsiYWxlcnQiOiJIZWxsbyB0aGVyZSJ9fX19XX0=" + }, + "type" : 2 + }, + { + "id" : "F9FB6F56-7A67-4339-91AA-27899A838911", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMjgxODM1NDg1MyJd" + }, + "type" : 2 + }, + { + "id" : "F9FB6F56-7A67-4339-91AA-27899A838911", + "type" : 4 + }, + { + "id" : "75C22BEE-4CB3-42A4-BCE0-2D21ECCF081E", + "type" : 4 + }, + { + "id" : "A8222AEA-6C86-4711-AAE0-BD9634E45862", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702818359698&tr=12" + }, + "type" : 0 + }, + { + "id" : "A8222AEA-6C86-4711-AAE0-BD9634E45862", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702818359698&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702818359698&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "32C23ABE-E2B6-4745-AD11-A2797483A28E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "32C23ABE-E2B6-4745-AD11-A2797483A28E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:24:42 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "32C23ABE-E2B6-4745-AD11-A2797483A28E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "32C23ABE-E2B6-4745-AD11-A2797483A28E", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishMobilePayloadWithWrappedKeys.json b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishMobilePayloadWithWrappedKeys.json new file mode 100644 index 000000000..8f6962e3a --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishMobilePayloadWithWrappedKeys.json @@ -0,0 +1,244 @@ +[ + { + "id" : "EDA2E3A0-36C0-442E-AE08-6582304AD85E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "EDA2E3A0-36C0-442E-AE08-6582304AD85E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:42 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "EDA2E3A0-36C0-442E-AE08-6582304AD85E", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjgyNjkwMDM0NSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "EDA2E3A0-36C0-442E-AE08-6582304AD85E", + "type" : 4 + }, + { + "id" : "B158F5C6-6DC1-4061-A0BE-23A9F63EC3A5", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702826900345&tr=12" + }, + "type" : 0 + }, + { + "id" : "AA40A80C-DF35-4B1F-927C-0F276606950B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22pn_other%22:%22Hello%20there%22,%22pn_apns%22:%7B%22aps%22:%7B%22alert%22:%22Hello%20there%22%7D%7D,%22pn_gcm%22:%7B%22data%22:%7B%22hello%22:%22there%22%7D%7D%7D?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "AA40A80C-DF35-4B1F-927C-0F276606950B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22pn_other%22:%22Hello%20there%22,%22pn_apns%22:%7B%22aps%22:%7B%22alert%22:%22Hello%20there%22%7D%7D,%22pn_gcm%22:%7B%22data%22:%7B%22hello%22:%22there%22%7D%7D%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:43 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "AA40A80C-DF35-4B1F-927C-0F276606950B", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMjgzMDg2MDY5NyJd" + }, + "type" : 2 + }, + { + "id" : "AA40A80C-DF35-4B1F-927C-0F276606950B", + "type" : 4 + }, + { + "id" : "B158F5C6-6DC1-4061-A0BE-23A9F63EC3A5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702826900345&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:43 GMT", + "Content-Length" : "309", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B158F5C6-6DC1-4061-A0BE-23A9F63EC3A5", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjgzMDg1OTkxMCIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJpIjoic2VyaGlpIiwicyI6MTcxLCJwIjp7InQiOiIxNTc4MjcwMjgzMDg2MDY5NyIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsIiwiZCI6eyJwbl9vdGhlciI6IkhlbGxvIHRoZXJlIiwicG5fYXBucyI6eyJhcHMiOnsiYWxlcnQiOiJIZWxsbyB0aGVyZSJ9fSwicG5fZ2NtIjp7ImRhdGEiOnsiaGVsbG8iOiJ0aGVyZSJ9fX19XX0=" + }, + "type" : 2 + }, + { + "id" : "B158F5C6-6DC1-4061-A0BE-23A9F63EC3A5", + "type" : 4 + }, + { + "id" : "A2AE4B31-9E6F-4442-9935-B67081761120", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702830859910&tr=12" + }, + "type" : 0 + }, + { + "id" : "A2AE4B31-9E6F-4442-9935-B67081761120", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702830859910&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702830859910&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "C9847678-E76F-46C3-AF7D-61709EE079C7", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C9847678-E76F-46C3-AF7D-61709EE079C7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:24:43 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C9847678-E76F-46C3-AF7D-61709EE079C7", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "C9847678-E76F-46C3-AF7D-61709EE079C7", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishNSArray.json b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishNSArray.json new file mode 100644 index 000000000..f41b3307f --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishNSArray.json @@ -0,0 +1,244 @@ +[ + { + "id" : "9315FCB5-D55C-4D5B-8661-A6A9AAA31181", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9315FCB5-D55C-4D5B-8661-A6A9AAA31181", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:44 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9315FCB5-D55C-4D5B-8661-A6A9AAA31181", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjg0MDIyMzY2MyIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "9315FCB5-D55C-4D5B-8661-A6A9AAA31181", + "type" : 4 + }, + { + "id" : "9EFBDDB3-983E-4816-8F1D-C779EFB8FE26", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702840223663&tr=12" + }, + "type" : 0 + }, + { + "id" : "5BCE1DC2-D716-41C0-9596-6AE6AE77A9BF", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%5B%22hello%22,%22there%22%5D?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "9EFBDDB3-983E-4816-8F1D-C779EFB8FE26", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702840223663&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:44 GMT", + "Content-Length" : "222", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9EFBDDB3-983E-4816-8F1D-C779EFB8FE26", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjg0MzY3MDY4NCIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJpIjoic2VyaGlpIiwicyI6MTcyLCJwIjp7InQiOiIxNTc4MjcwMjg0MzY2MzY0MCIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsIiwiZCI6WyJoZWxsbyIsInRoZXJlIl19XX0=" + }, + "type" : 2 + }, + { + "id" : "9EFBDDB3-983E-4816-8F1D-C779EFB8FE26", + "type" : 4 + }, + { + "id" : "5BCE1DC2-D716-41C0-9596-6AE6AE77A9BF", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%5B%22hello%22,%22there%22%5D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:44 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "5BCE1DC2-D716-41C0-9596-6AE6AE77A9BF", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMjg0MzY2MzY0MCJd" + }, + "type" : 2 + }, + { + "id" : "5BCE1DC2-D716-41C0-9596-6AE6AE77A9BF", + "type" : 4 + }, + { + "id" : "601CD211-1125-48C9-9FDC-FFE36B5960F1", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702843670684&tr=12" + }, + "type" : 0 + }, + { + "id" : "601CD211-1125-48C9-9FDC-FFE36B5960F1", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702843670684&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702843670684&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "E51AB591-C70E-4768-8401-FA5ADACB77F9", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E51AB591-C70E-4768-8401-FA5ADACB77F9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:24:44 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E51AB591-C70E-4768-8401-FA5ADACB77F9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "E51AB591-C70E-4768-8401-FA5ADACB77F9", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishNSArrayWithMobilePayload.json b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishNSArrayWithMobilePayload.json new file mode 100644 index 000000000..25f75c4b2 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishNSArrayWithMobilePayload.json @@ -0,0 +1,244 @@ +[ + { + "id" : "DA773986-F1D4-4E60-912B-BAA05F8F6DF2", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "DA773986-F1D4-4E60-912B-BAA05F8F6DF2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:45 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "DA773986-F1D4-4E60-912B-BAA05F8F6DF2", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjg1MzMyODE2NyIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "DA773986-F1D4-4E60-912B-BAA05F8F6DF2", + "type" : 4 + }, + { + "id" : "0F8B0904-86FF-4A50-919E-03EE50015BD4", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702853328167&tr=12" + }, + "type" : 0 + }, + { + "id" : "36BFBFBE-5AA7-4319-B858-CC90A439CD17", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22pn_other%22:%5B%22hello%22,%5B%22there%22,%7B%22general%22:%22kenobi%22%7D%5D%5D,%22pn_apns%22:%7B%22aps%22:%7B%22alert%22:%22Hello%20there%22%7D%7D%7D?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "36BFBFBE-5AA7-4319-B858-CC90A439CD17", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22pn_other%22:%5B%22hello%22,%5B%22there%22,%7B%22general%22:%22kenobi%22%7D%5D%5D,%22pn_apns%22:%7B%22aps%22:%7B%22alert%22:%22Hello%20there%22%7D%7D%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:45 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "36BFBFBE-5AA7-4319-B858-CC90A439CD17", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMjg1NjgzMzQxOSJd" + }, + "type" : 2 + }, + { + "id" : "36BFBFBE-5AA7-4319-B858-CC90A439CD17", + "type" : 4 + }, + { + "id" : "0F8B0904-86FF-4A50-919E-03EE50015BD4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702853328167&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:45 GMT", + "Content-Length" : "300", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "0F8B0904-86FF-4A50-919E-03EE50015BD4", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjg1NjgyOTk1MiIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJpIjoic2VyaGlpIiwicyI6MTczLCJwIjp7InQiOiIxNTc4MjcwMjg1NjgzMzQxOSIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsIiwiZCI6eyJwbl9vdGhlciI6WyJoZWxsbyIsWyJ0aGVyZSIseyJnZW5lcmFsIjoia2Vub2JpIn1dXSwicG5fYXBucyI6eyJhcHMiOnsiYWxlcnQiOiJIZWxsbyB0aGVyZSJ9fX19XX0=" + }, + "type" : 2 + }, + { + "id" : "0F8B0904-86FF-4A50-919E-03EE50015BD4", + "type" : 4 + }, + { + "id" : "A9AB4BE7-44D3-4E17-8AD8-BDB90E04594F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702856829952&tr=12" + }, + "type" : 0 + }, + { + "id" : "A9AB4BE7-44D3-4E17-8AD8-BDB90E04594F", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702856829952&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702856829952&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "346E4380-FE82-418F-83DB-3D931B4CB955", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "346E4380-FE82-418F-83DB-3D931B4CB955", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:24:45 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "346E4380-FE82-418F-83DB-3D931B4CB955", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "346E4380-FE82-418F-83DB-3D931B4CB955", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishNSArrayWithNestedCollections.json b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishNSArrayWithNestedCollections.json new file mode 100644 index 000000000..db6a58787 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishNSArrayWithNestedCollections.json @@ -0,0 +1,244 @@ +[ + { + "id" : "DD597742-34AE-4EEC-95A7-37DC5A77C4BA", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "DD597742-34AE-4EEC-95A7-37DC5A77C4BA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:46 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "DD597742-34AE-4EEC-95A7-37DC5A77C4BA", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjg2NjY0MDgwNCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "DD597742-34AE-4EEC-95A7-37DC5A77C4BA", + "type" : 4 + }, + { + "id" : "DF4E026D-0484-447C-8AE2-7CFC99FF35AE", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702866640804&tr=12" + }, + "type" : 0 + }, + { + "id" : "4EDFEC60-4C71-4897-9DFD-BB2810428E7D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%5B%22hello%22,%5B%22there%22,%7B%22general%22:%22kenobi%22%7D%5D%5D?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "4EDFEC60-4C71-4897-9DFD-BB2810428E7D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%5B%22hello%22,%5B%22there%22,%7B%22general%22:%22kenobi%22%7D%5D%5D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:47 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "DF4E026D-0484-447C-8AE2-7CFC99FF35AE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702866640804&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:47 GMT", + "Content-Length" : "245", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "4EDFEC60-4C71-4897-9DFD-BB2810428E7D", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMjg3MDA4MDA3NiJd" + }, + "type" : 2 + }, + { + "id" : "DF4E026D-0484-447C-8AE2-7CFC99FF35AE", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjg3MDA4NDM1MiIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJpIjoic2VyaGlpIiwicyI6MTc0LCJwIjp7InQiOiIxNTc4MjcwMjg3MDA4MDA3NiIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsIiwiZCI6WyJoZWxsbyIsWyJ0aGVyZSIseyJnZW5lcmFsIjoia2Vub2JpIn1dXX1dfQ==" + }, + "type" : 2 + }, + { + "id" : "4EDFEC60-4C71-4897-9DFD-BB2810428E7D", + "type" : 4 + }, + { + "id" : "DF4E026D-0484-447C-8AE2-7CFC99FF35AE", + "type" : 4 + }, + { + "id" : "84755640-6CC0-48A5-B6FE-54A6F72C7366", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702870084352&tr=12" + }, + "type" : 0 + }, + { + "id" : "84755640-6CC0-48A5-B6FE-54A6F72C7366", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702870084352&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702870084352&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "BC3F4CE6-28B6-4E52-A5B8-CB6E22FB599E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "BC3F4CE6-28B6-4E52-A5B8-CB6E22FB599E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:24:47 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "BC3F4CE6-28B6-4E52-A5B8-CB6E22FB599E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "BC3F4CE6-28B6-4E52-A5B8-CB6E22FB599E", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishNSDictionary.json b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishNSDictionary.json new file mode 100644 index 000000000..5441f9616 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishNSDictionary.json @@ -0,0 +1,244 @@ +[ + { + "id" : "10367141-0C5A-4183-B59D-A7B8803BEA04", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "10367141-0C5A-4183-B59D-A7B8803BEA04", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:48 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "10367141-0C5A-4183-B59D-A7B8803BEA04", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjg3OTczMDcwMSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "10367141-0C5A-4183-B59D-A7B8803BEA04", + "type" : 4 + }, + { + "id" : "9F92A263-9CFF-4957-AC69-0DB40F96E785", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22hello%22:%22there%22%7D?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "28CE7A29-FF51-47DE-A01E-249144266DE4", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702879730701&tr=12" + }, + "type" : 0 + }, + { + "id" : "9F92A263-9CFF-4957-AC69-0DB40F96E785", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22hello%22:%22there%22%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:48 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9F92A263-9CFF-4957-AC69-0DB40F96E785", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMjg4MzA3NDMxNSJd" + }, + "type" : 2 + }, + { + "id" : "9F92A263-9CFF-4957-AC69-0DB40F96E785", + "type" : 4 + }, + { + "id" : "28CE7A29-FF51-47DE-A01E-249144266DE4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702879730701&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:48 GMT", + "Content-Length" : "222", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "28CE7A29-FF51-47DE-A01E-249144266DE4", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjg4MzA3NzU0OSIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJpIjoic2VyaGlpIiwicyI6MTc1LCJwIjp7InQiOiIxNTc4MjcwMjg4MzA3NDMxNSIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsIiwiZCI6eyJoZWxsbyI6InRoZXJlIn19XX0=" + }, + "type" : 2 + }, + { + "id" : "28CE7A29-FF51-47DE-A01E-249144266DE4", + "type" : 4 + }, + { + "id" : "EB97AD91-8359-4EA6-88F5-597719A2A250", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702883077549&tr=12" + }, + "type" : 0 + }, + { + "id" : "EB97AD91-8359-4EA6-88F5-597719A2A250", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702883077549&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702883077549&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "03355BBA-A4C8-40BD-B171-8FEC93E2F09F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "03355BBA-A4C8-40BD-B171-8FEC93E2F09F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:24:48 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "03355BBA-A4C8-40BD-B171-8FEC93E2F09F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "03355BBA-A4C8-40BD-B171-8FEC93E2F09F", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishNSDictionaryUsingBuilderPatternInterface.json b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishNSDictionaryUsingBuilderPatternInterface.json new file mode 100644 index 000000000..3eae4d874 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishNSDictionaryUsingBuilderPatternInterface.json @@ -0,0 +1,244 @@ +[ + { + "id" : "F5B9C430-3AF9-4B48-889E-65711E02FB83", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F5B9C430-3AF9-4B48-889E-65711E02FB83", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:49 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F5B9C430-3AF9-4B48-889E-65711E02FB83", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjg5MjgxOTE4NCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "F5B9C430-3AF9-4B48-889E-65711E02FB83", + "type" : 4 + }, + { + "id" : "F69B1B82-A62C-4FCC-86AE-DFA6F67AA2EC", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702892819184&tr=12" + }, + "type" : 0 + }, + { + "id" : "7F365149-EA0B-44E9-A191-9B5933A5087A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22hello%22:%22there%22%7D?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "7F365149-EA0B-44E9-A191-9B5933A5087A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22hello%22:%22there%22%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:49 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "7F365149-EA0B-44E9-A191-9B5933A5087A", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMjg5NjQyMzM4OCJd" + }, + "type" : 2 + }, + { + "id" : "7F365149-EA0B-44E9-A191-9B5933A5087A", + "type" : 4 + }, + { + "id" : "F69B1B82-A62C-4FCC-86AE-DFA6F67AA2EC", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702892819184&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:49 GMT", + "Content-Length" : "222", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F69B1B82-A62C-4FCC-86AE-DFA6F67AA2EC", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjg5NjQyNzQ1OSIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJpIjoic2VyaGlpIiwicyI6MTc2LCJwIjp7InQiOiIxNTc4MjcwMjg5NjQyMzM4OCIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsIiwiZCI6eyJoZWxsbyI6InRoZXJlIn19XX0=" + }, + "type" : 2 + }, + { + "id" : "F69B1B82-A62C-4FCC-86AE-DFA6F67AA2EC", + "type" : 4 + }, + { + "id" : "9CD66A02-97F9-4E43-912F-8DF1F1A29219", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702896427459&tr=12" + }, + "type" : 0 + }, + { + "id" : "9CD66A02-97F9-4E43-912F-8DF1F1A29219", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702896427459&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702896427459&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "6DE2175D-B527-4102-AB29-22AAB4F367F7", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "6DE2175D-B527-4102-AB29-22AAB4F367F7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:24:49 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "6DE2175D-B527-4102-AB29-22AAB4F367F7", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "6DE2175D-B527-4102-AB29-22AAB4F367F7", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishNSDictionaryWithMobilePayload.json b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishNSDictionaryWithMobilePayload.json new file mode 100644 index 000000000..8991ae000 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishNSDictionaryWithMobilePayload.json @@ -0,0 +1,244 @@ +[ + { + "id" : "79942CA6-B3B7-4CBF-A515-961FB712FA77", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "79942CA6-B3B7-4CBF-A515-961FB712FA77", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:50 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "79942CA6-B3B7-4CBF-A515-961FB712FA77", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjkwNTcxMzE3OSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "79942CA6-B3B7-4CBF-A515-961FB712FA77", + "type" : 4 + }, + { + "id" : "74028CA2-8A48-4F6A-8DE0-08C36EEF5797", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702905713179&tr=12" + }, + "type" : 0 + }, + { + "id" : "68F1A631-9B8E-4271-8494-BD256A25A55D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22hello%22:%5B%22there%22,%7B%22general%22:%22kenobi%22%7D%5D,%22pn_apns%22:%7B%22aps%22:%7B%22alert%22:%22Hello%20there%22%7D%7D%7D?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "74028CA2-8A48-4F6A-8DE0-08C36EEF5797", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702905713179&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:50 GMT", + "Content-Length" : "287", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "74028CA2-8A48-4F6A-8DE0-08C36EEF5797", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjkwOTE1OTQ5MiIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJpIjoic2VyaGlpIiwicyI6MTc3LCJwIjp7InQiOiIxNTc4MjcwMjkwOTE2NTQzOSIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsIiwiZCI6eyJoZWxsbyI6WyJ0aGVyZSIseyJnZW5lcmFsIjoia2Vub2JpIn1dLCJwbl9hcG5zIjp7ImFwcyI6eyJhbGVydCI6IkhlbGxvIHRoZXJlIn19fX1dfQ==" + }, + "type" : 2 + }, + { + "id" : "74028CA2-8A48-4F6A-8DE0-08C36EEF5797", + "type" : 4 + }, + { + "id" : "E688858F-93B3-47FA-809F-FFC1565D969C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702909159492&tr=12" + }, + "type" : 0 + }, + { + "id" : "68F1A631-9B8E-4271-8494-BD256A25A55D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22hello%22:%5B%22there%22,%7B%22general%22:%22kenobi%22%7D%5D,%22pn_apns%22:%7B%22aps%22:%7B%22alert%22:%22Hello%20there%22%7D%7D%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:50 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "68F1A631-9B8E-4271-8494-BD256A25A55D", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMjkwOTE2NTQzOSJd" + }, + "type" : 2 + }, + { + "id" : "E688858F-93B3-47FA-809F-FFC1565D969C", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702909159492&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702909159492&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "68F1A631-9B8E-4271-8494-BD256A25A55D", + "type" : 4 + }, + { + "id" : "B5485331-36B9-4A6D-B383-D4938550C5CA", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B5485331-36B9-4A6D-B383-D4938550C5CA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:24:51 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B5485331-36B9-4A6D-B383-D4938550C5CA", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "B5485331-36B9-4A6D-B383-D4938550C5CA", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishNSDictionaryWithNestedCollections.json b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishNSDictionaryWithNestedCollections.json new file mode 100644 index 000000000..aa3a940d0 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishNSDictionaryWithNestedCollections.json @@ -0,0 +1,244 @@ +[ + { + "id" : "8876A5C4-D494-4FC1-A73E-E6C07E08C553", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "8876A5C4-D494-4FC1-A73E-E6C07E08C553", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:51 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "8876A5C4-D494-4FC1-A73E-E6C07E08C553", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjkxNzk4NzAzNSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "8876A5C4-D494-4FC1-A73E-E6C07E08C553", + "type" : 4 + }, + { + "id" : "03299BEE-242A-4292-B7FB-A2F2D9887E22", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702917987035&tr=12" + }, + "type" : 0 + }, + { + "id" : "ACFA7792-D4CE-4E88-BD50-C980C22B006A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22hello%22:%5B%22there%22,%7B%22general%22:%22kenobi%22%7D%5D%7D?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "ACFA7792-D4CE-4E88-BD50-C980C22B006A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22hello%22:%5B%22there%22,%7B%22general%22:%22kenobi%22%7D%5D%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:52 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "ACFA7792-D4CE-4E88-BD50-C980C22B006A", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMjkyMTQxNzc5MyJd" + }, + "type" : 2 + }, + { + "id" : "03299BEE-242A-4292-B7FB-A2F2D9887E22", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702917987035&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:52 GMT", + "Content-Length" : "245", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "ACFA7792-D4CE-4E88-BD50-C980C22B006A", + "type" : 4 + }, + { + "id" : "03299BEE-242A-4292-B7FB-A2F2D9887E22", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjkyMTQxNTA3NSIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJpIjoic2VyaGlpIiwicyI6MTc4LCJwIjp7InQiOiIxNTc4MjcwMjkyMTQxNzc5MyIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsIiwiZCI6eyJoZWxsbyI6WyJ0aGVyZSIseyJnZW5lcmFsIjoia2Vub2JpIn1dfX1dfQ==" + }, + "type" : 2 + }, + { + "id" : "03299BEE-242A-4292-B7FB-A2F2D9887E22", + "type" : 4 + }, + { + "id" : "E1C9BACE-BEAC-42EC-8B3C-E8D216A870BA", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702921415075&tr=12" + }, + "type" : 0 + }, + { + "id" : "E1C9BACE-BEAC-42EC-8B3C-E8D216A870BA", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702921415075&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702921415075&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "2C23CEF6-D4E0-47D9-8527-DAF09ECB2347", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2C23CEF6-D4E0-47D9-8527-DAF09ECB2347", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:24:52 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "2C23CEF6-D4E0-47D9-8527-DAF09ECB2347", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "2C23CEF6-D4E0-47D9-8527-DAF09ECB2347", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishNSNumber.json b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishNSNumber.json new file mode 100644 index 000000000..fa984ef89 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishNSNumber.json @@ -0,0 +1,244 @@ +[ + { + "id" : "C893E5EB-023F-4ABC-AE87-C0B65FAB38F2", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C893E5EB-023F-4ABC-AE87-C0B65FAB38F2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:53 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C893E5EB-023F-4ABC-AE87-C0B65FAB38F2", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjkzMTE4MzEwNyIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "C893E5EB-023F-4ABC-AE87-C0B65FAB38F2", + "type" : 4 + }, + { + "id" : "FA0AE01E-59C3-41D0-A8D4-E71092D7B92E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702931183107&tr=12" + }, + "type" : 0 + }, + { + "id" : "856BC928-2316-4526-BAE3-4BA6E274BEB4", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/2010?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "856BC928-2316-4526-BAE3-4BA6E274BEB4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/2010?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:53 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "856BC928-2316-4526-BAE3-4BA6E274BEB4", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMjkzNDY2NzAwNSJd" + }, + "type" : 2 + }, + { + "id" : "856BC928-2316-4526-BAE3-4BA6E274BEB4", + "type" : 4 + }, + { + "id" : "FA0AE01E-59C3-41D0-A8D4-E71092D7B92E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702931183107&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:53 GMT", + "Content-Length" : "209", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "FA0AE01E-59C3-41D0-A8D4-E71092D7B92E", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjkzNDY3MDkyNSIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJpIjoic2VyaGlpIiwicyI6MTc5LCJwIjp7InQiOiIxNTc4MjcwMjkzNDY2NzAwNSIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsIiwiZCI6MjAxMH1dfQ==" + }, + "type" : 2 + }, + { + "id" : "FA0AE01E-59C3-41D0-A8D4-E71092D7B92E", + "type" : 4 + }, + { + "id" : "A52728CB-388C-48B4-9588-5CED1D1660E0", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702934670925&tr=12" + }, + "type" : 0 + }, + { + "id" : "A52728CB-388C-48B4-9588-5CED1D1660E0", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702934670925&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702934670925&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "CC60A5D7-838A-4797-8BA5-A08A4CDDE1D3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "CC60A5D7-838A-4797-8BA5-A08A4CDDE1D3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:24:53 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "CC60A5D7-838A-4797-8BA5-A08A4CDDE1D3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "CC60A5D7-838A-4797-8BA5-A08A4CDDE1D3", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishNSNumberWithMobilePayload.json b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishNSNumberWithMobilePayload.json new file mode 100644 index 000000000..d851d2cb1 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishNSNumberWithMobilePayload.json @@ -0,0 +1,244 @@ +[ + { + "id" : "CA73FE76-6E3A-4EC9-B8A7-3002B2AAA0FD", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "CA73FE76-6E3A-4EC9-B8A7-3002B2AAA0FD", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:54 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "CA73FE76-6E3A-4EC9-B8A7-3002B2AAA0FD", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjk0NDQ3NTA1OCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "CA73FE76-6E3A-4EC9-B8A7-3002B2AAA0FD", + "type" : 4 + }, + { + "id" : "45AFB2E8-6F77-4BD7-BA0A-CC82F4E49ED5", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702944475058&tr=12" + }, + "type" : 0 + }, + { + "id" : "0609474A-995A-4929-8B1C-59AA13340255", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22pn_other%22:2010,%22pn_apns%22:%7B%22aps%22:%7B%22alert%22:%22Hello%20there%22%7D%7D%7D?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "0609474A-995A-4929-8B1C-59AA13340255", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22pn_other%22:2010,%22pn_apns%22:%7B%22aps%22:%7B%22alert%22:%22Hello%20there%22%7D%7D%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:54 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "0609474A-995A-4929-8B1C-59AA13340255", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMjk0NzkwNzkxNCJd" + }, + "type" : 2 + }, + { + "id" : "0609474A-995A-4929-8B1C-59AA13340255", + "type" : 4 + }, + { + "id" : "45AFB2E8-6F77-4BD7-BA0A-CC82F4E49ED5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702944475058&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:54 GMT", + "Content-Length" : "264", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "45AFB2E8-6F77-4BD7-BA0A-CC82F4E49ED5", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjk0NzkwNDI0MyIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJpIjoic2VyaGlpIiwicyI6MTgwLCJwIjp7InQiOiIxNTc4MjcwMjk0NzkwNzkxNCIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsIiwiZCI6eyJwbl9vdGhlciI6MjAxMCwicG5fYXBucyI6eyJhcHMiOnsiYWxlcnQiOiJIZWxsbyB0aGVyZSJ9fX19XX0=" + }, + "type" : 2 + }, + { + "id" : "45AFB2E8-6F77-4BD7-BA0A-CC82F4E49ED5", + "type" : 4 + }, + { + "id" : "51DD3AEE-C665-4E4A-BF02-E2797C38D2DB", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702947904243&tr=12" + }, + "type" : 0 + }, + { + "id" : "51DD3AEE-C665-4E4A-BF02-E2797C38D2DB", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702947904243&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702947904243&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "F4DBB0D9-3115-4832-9BDC-093898046972", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F4DBB0D9-3115-4832-9BDC-093898046972", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:24:55 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F4DBB0D9-3115-4832-9BDC-093898046972", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "F4DBB0D9-3115-4832-9BDC-093898046972", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishNSString.json b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishNSString.json new file mode 100644 index 000000000..f5cbff860 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishNSString.json @@ -0,0 +1,244 @@ +[ + { + "id" : "1DBD3BD2-14EE-4E44-BEDE-255C36D83976", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1DBD3BD2-14EE-4E44-BEDE-255C36D83976", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:55 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "1DBD3BD2-14EE-4E44-BEDE-255C36D83976", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjk1NzE4MjEzMyIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "1DBD3BD2-14EE-4E44-BEDE-255C36D83976", + "type" : 4 + }, + { + "id" : "1435BC0F-1732-4241-A703-9069E4960D26", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702957182133&tr=12" + }, + "type" : 0 + }, + { + "id" : "E218659C-2E88-49EC-A3FB-DC70D48006F4", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22Hello%20there%22?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "E218659C-2E88-49EC-A3FB-DC70D48006F4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22Hello%20there%22?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:56 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E218659C-2E88-49EC-A3FB-DC70D48006F4", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMjk2MDU4NjIzNCJd" + }, + "type" : 2 + }, + { + "id" : "E218659C-2E88-49EC-A3FB-DC70D48006F4", + "type" : 4 + }, + { + "id" : "1435BC0F-1732-4241-A703-9069E4960D26", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702957182133&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:56 GMT", + "Content-Length" : "218", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "1435BC0F-1732-4241-A703-9069E4960D26", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjk2MDU5NDA5MyIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJpIjoic2VyaGlpIiwicyI6MTgxLCJwIjp7InQiOiIxNTc4MjcwMjk2MDU4NjIzNCIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsIiwiZCI6IkhlbGxvIHRoZXJlIn1dfQ==" + }, + "type" : 2 + }, + { + "id" : "1435BC0F-1732-4241-A703-9069E4960D26", + "type" : 4 + }, + { + "id" : "3FA9583F-A804-46AD-98FD-06BE43A4EFE9", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702960594093&tr=12" + }, + "type" : 0 + }, + { + "id" : "3FA9583F-A804-46AD-98FD-06BE43A4EFE9", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702960594093&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702960594093&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "CA3D15A0-BE2B-4660-A0C1-DBC5FAD327D7", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "CA3D15A0-BE2B-4660-A0C1-DBC5FAD327D7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:24:56 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "CA3D15A0-BE2B-4660-A0C1-DBC5FAD327D7", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "CA3D15A0-BE2B-4660-A0C1-DBC5FAD327D7", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishNSStringWithMobilePayload.json b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishNSStringWithMobilePayload.json new file mode 100644 index 000000000..b9ea0cf9f --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishNSStringWithMobilePayload.json @@ -0,0 +1,244 @@ +[ + { + "id" : "1497FB20-CD15-4689-9183-947A7F7FD908", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1497FB20-CD15-4689-9183-947A7F7FD908", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:57 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "1497FB20-CD15-4689-9183-947A7F7FD908", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjk3MDQ5MTE4NyIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "1497FB20-CD15-4689-9183-947A7F7FD908", + "type" : 4 + }, + { + "id" : "D2AB0DAB-47D7-4F1A-9DF5-57B86F7F4E09", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702970491187&tr=12" + }, + "type" : 0 + }, + { + "id" : "A49ABF55-F4A4-48BE-A8EC-BC5CC483DBB4", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22pn_other%22:%22Hello%20there%22,%22pn_apns%22:%7B%22aps%22:%7B%22alert%22:%22Hello%20there%22%7D%7D%7D?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "D2AB0DAB-47D7-4F1A-9DF5-57B86F7F4E09", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702970491187&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:57 GMT", + "Content-Length" : "273", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D2AB0DAB-47D7-4F1A-9DF5-57B86F7F4E09", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjk3NDA3NjAzMSIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJpIjoic2VyaGlpIiwicyI6MTgyLCJwIjp7InQiOiIxNTc4MjcwMjk3NDA4MTk1NCIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsIiwiZCI6eyJwbl9vdGhlciI6IkhlbGxvIHRoZXJlIiwicG5fYXBucyI6eyJhcHMiOnsiYWxlcnQiOiJIZWxsbyB0aGVyZSJ9fX19XX0=" + }, + "type" : 2 + }, + { + "id" : "A49ABF55-F4A4-48BE-A8EC-BC5CC483DBB4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22pn_other%22:%22Hello%20there%22,%22pn_apns%22:%7B%22aps%22:%7B%22alert%22:%22Hello%20there%22%7D%7D%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:57 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D2AB0DAB-47D7-4F1A-9DF5-57B86F7F4E09", + "type" : 4 + }, + { + "id" : "A49ABF55-F4A4-48BE-A8EC-BC5CC483DBB4", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMjk3NDA4MTk1NCJd" + }, + "type" : 2 + }, + { + "id" : "A49ABF55-F4A4-48BE-A8EC-BC5CC483DBB4", + "type" : 4 + }, + { + "id" : "B9089FF9-C1F6-43EC-A9F5-68A93214E7EC", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702974076031&tr=12" + }, + "type" : 0 + }, + { + "id" : "B9089FF9-C1F6-43EC-A9F5-68A93214E7EC", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702974076031&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702974076031&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "5A152327-62BB-47F2-B5E5-197D43F7CC53", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "5A152327-62BB-47F2-B5E5-197D43F7CC53", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:24:57 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "5A152327-62BB-47F2-B5E5-197D43F7CC53", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "5A152327-62BB-47F2-B5E5-197D43F7CC53", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishOnlyWithMobilePayload.json b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishOnlyWithMobilePayload.json new file mode 100644 index 000000000..a43b5d359 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishOnlyWithMobilePayload.json @@ -0,0 +1,244 @@ +[ + { + "id" : "F94D266E-6E6C-4496-9583-8E4E91AE6963", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F94D266E-6E6C-4496-9583-8E4E91AE6963", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:58 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F94D266E-6E6C-4496-9583-8E4E91AE6963", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjk4MzYzNDE0MCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "F94D266E-6E6C-4496-9583-8E4E91AE6963", + "type" : 4 + }, + { + "id" : "C237C6E7-18EC-4CD2-9973-C9EBE97988B5", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702983634140&tr=12" + }, + "type" : 0 + }, + { + "id" : "020CE75D-822F-411B-8FD9-F6293567656A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22pn_apns%22:%7B%22aps%22:%7B%22alert%22:%22Hello%20there%22%7D%7D%7D?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "020CE75D-822F-411B-8FD9-F6293567656A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%7B%22pn_apns%22:%7B%22aps%22:%7B%22alert%22:%22Hello%20there%22%7D%7D%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:58 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C237C6E7-18EC-4CD2-9973-C9EBE97988B5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702983634140&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:58 GMT", + "Content-Length" : "248", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "020CE75D-822F-411B-8FD9-F6293567656A", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMjk4NzAxMDI1MSJd" + }, + "type" : 2 + }, + { + "id" : "C237C6E7-18EC-4CD2-9973-C9EBE97988B5", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjk4NzAxMjMxOSIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJpIjoic2VyaGlpIiwicyI6MTgzLCJwIjp7InQiOiIxNTc4MjcwMjk4NzAxMDI1MSIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsIiwiZCI6eyJwbl9hcG5zIjp7ImFwcyI6eyJhbGVydCI6IkhlbGxvIHRoZXJlIn19fX1dfQ==" + }, + "type" : 2 + }, + { + "id" : "020CE75D-822F-411B-8FD9-F6293567656A", + "type" : 4 + }, + { + "id" : "C237C6E7-18EC-4CD2-9973-C9EBE97988B5", + "type" : 4 + }, + { + "id" : "A964E5BA-B396-4DD5-84A1-471D4455F7BE", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702987012319&tr=12" + }, + "type" : 0 + }, + { + "id" : "A964E5BA-B396-4DD5-84A1-471D4455F7BE", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702987012319&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702987012319&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "89D400D0-250B-42E1-845A-832D17EDADB1", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "89D400D0-250B-42E1-845A-832D17EDADB1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:24:58 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "89D400D0-250B-42E1-845A-832D17EDADB1", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "89D400D0-250B-42E1-845A-832D17EDADB1", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishStringWithSpecialSymbols.json b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishStringWithSpecialSymbols.json new file mode 100644 index 000000000..aad7cf807 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishStringWithSpecialSymbols.json @@ -0,0 +1,244 @@ +[ + { + "id" : "252E7F85-968E-487B-8235-19E96F2AD35F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "252E7F85-968E-487B-8235-19E96F2AD35F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:24:59 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "252E7F85-968E-487B-8235-19E96F2AD35F", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMjk5NjgwNTY2NCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "252E7F85-968E-487B-8235-19E96F2AD35F", + "type" : 4 + }, + { + "id" : "2B4EB06E-4ABB-4D3E-8AE5-53BEBC63703A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702996805664&tr=12" + }, + "type" : 0 + }, + { + "id" : "12DEDBFA-C547-4468-B641-F6392163B306", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22!@%23$%25%5E&*()_+%7C%22?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "12DEDBFA-C547-4468-B641-F6392163B306", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22!@%23$%25%5E&*()_+%7C%22?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:25:00 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "12DEDBFA-C547-4468-B641-F6392163B306", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMzAwMDQ1OTIyNSJd" + }, + "type" : 2 + }, + { + "id" : "12DEDBFA-C547-4468-B641-F6392163B306", + "type" : 4 + }, + { + "id" : "2B4EB06E-4ABB-4D3E-8AE5-53BEBC63703A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782702996805664&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:25:00 GMT", + "Content-Length" : "220", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "2B4EB06E-4ABB-4D3E-8AE5-53BEBC63703A", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMzAwMDQ2OTU0MiIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJpIjoic2VyaGlpIiwicyI6MTg0LCJwIjp7InQiOiIxNTc4MjcwMzAwMDQ1OTIyNSIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsIiwiZCI6IiFAIyQlXiYqKClfK3wifV19" + }, + "type" : 2 + }, + { + "id" : "2B4EB06E-4ABB-4D3E-8AE5-53BEBC63703A", + "type" : 4 + }, + { + "id" : "18BDB267-D387-495D-BB94-679AB8D869F6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782703000469542&tr=12" + }, + "type" : 0 + }, + { + "id" : "18BDB267-D387-495D-BB94-679AB8D869F6", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782703000469542&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782703000469542&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "969D0BB0-A26B-443D-BAD0-390FA648309D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "969D0BB0-A26B-443D-BAD0-390FA648309D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:00 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "969D0BB0-A26B-443D-BAD0-390FA648309D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "969D0BB0-A26B-443D-BAD0-390FA648309D", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishWithFilterMetadata.json b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishWithFilterMetadata.json new file mode 100644 index 000000000..a06a8abaf --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishWithFilterMetadata.json @@ -0,0 +1,244 @@ +[ + { + "id" : "17DDDCD0-9F46-4E01-BAB1-8CDC748B5C06", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "17DDDCD0-9F46-4E01-BAB1-8CDC748B5C06", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:25:01 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "17DDDCD0-9F46-4E01-BAB1-8CDC748B5C06", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMzAwOTY4NjQ0NiIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "17DDDCD0-9F46-4E01-BAB1-8CDC748B5C06", + "type" : 4 + }, + { + "id" : "6CAB9FAE-1380-468D-92A2-45CBD66BD546", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782703009686446&tr=12" + }, + "type" : 0 + }, + { + "id" : "345C75E3-34E6-48F6-A5A1-79A5E7264E06", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22Hello%20there%22?meta=%7B%22access-level%22:%22editor%22%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=serhii" + }, + "type" : 0 + }, + { + "id" : "345C75E3-34E6-48F6-A5A1-79A5E7264E06", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22Hello%20there%22?uuid=serhii&meta=%7B%22access-level%22:%22editor%22%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:25:01 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "345C75E3-34E6-48F6-A5A1-79A5E7264E06", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMzAxMzExODcxNCJd" + }, + "type" : 2 + }, + { + "id" : "345C75E3-34E6-48F6-A5A1-79A5E7264E06", + "type" : 4 + }, + { + "id" : "6CAB9FAE-1380-468D-92A2-45CBD66BD546", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782703009686446&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:25:01 GMT", + "Content-Length" : "248", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "6CAB9FAE-1380-468D-92A2-45CBD66BD546", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMzAxMzEzMTI1MiIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJpIjoic2VyaGlpIiwicyI6MTg1LCJwIjp7InQiOiIxNTc4MjcwMzAxMzExODcxNCIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsIiwidSI6eyJhY2Nlc3MtbGV2ZWwiOiJlZGl0b3IifSwiZCI6IkhlbGxvIHRoZXJlIn1dfQ==" + }, + "type" : 2 + }, + { + "id" : "6CAB9FAE-1380-468D-92A2-45CBD66BD546", + "type" : 4 + }, + { + "id" : "33F0770C-1F1F-4FCF-B4BB-8504DF19234A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782703013131252&tr=12" + }, + "type" : 0 + }, + { + "id" : "33F0770C-1F1F-4FCF-B4BB-8504DF19234A", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782703013131252&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782703013131252&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "2F5C665B-7810-4C64-A217-37010DF38EA1", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2F5C665B-7810-4C64-A217-37010DF38EA1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:01 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "2F5C665B-7810-4C64-A217-37010DF38EA1", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "2F5C665B-7810-4C64-A217-37010DF38EA1", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishWithNoReplicationPolicy.json b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishWithNoReplicationPolicy.json new file mode 100644 index 000000000..212750599 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishWithNoReplicationPolicy.json @@ -0,0 +1,53 @@ +[ + { + "id" : "16400B31-DDFA-4D13-813B-21DA52C7DEBF", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22Hello%20there%22?norep=1&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=serhii" + }, + "type" : 0 + }, + { + "id" : "16400B31-DDFA-4D13-813B-21DA52C7DEBF", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22Hello%20there%22?uuid=serhii&norep=1&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:25:02 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "16400B31-DDFA-4D13-813B-21DA52C7DEBF", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMzAyMzk3MTM4NiJd" + }, + "type" : 2 + }, + { + "id" : "16400B31-DDFA-4D13-813B-21DA52C7DEBF", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishWithOutTTLWhenStoreInHistoryDisabled.json b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishWithOutTTLWhenStoreInHistoryDisabled.json new file mode 100644 index 000000000..632b84fce --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishWithOutTTLWhenStoreInHistoryDisabled.json @@ -0,0 +1,53 @@ +[ + { + "id" : "D1F1CC6D-3488-4FAF-AF15-1C0DFD5CF19B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22Hello%20there%22?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=serhii&store=0" + }, + "type" : 0 + }, + { + "id" : "D1F1CC6D-3488-4FAF-AF15-1C0DFD5CF19B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22Hello%20there%22?uuid=serhii&store=0&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:25:03 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D1F1CC6D-3488-4FAF-AF15-1C0DFD5CF19B", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMzAzMTU0NDkwMSJd" + }, + "type" : 2 + }, + { + "id" : "D1F1CC6D-3488-4FAF-AF15-1C0DFD5CF19B", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishWithTTL.json b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishWithTTL.json new file mode 100644 index 000000000..b1af90e18 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldPublishWithTTL.json @@ -0,0 +1,53 @@ +[ + { + "id" : "740B0F51-E61A-4EAA-84B5-8B6E09A5EEF2", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22Hello%20there%22?ttl=120&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=serhii" + }, + "type" : 0 + }, + { + "id" : "740B0F51-E61A-4EAA-84B5-8B6E09A5EEF2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel\/0\/%22Hello%20there%22?uuid=serhii&ttl=120&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:25:03 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "740B0F51-E61A-4EAA-84B5-8B6E09A5EEF2", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMzAzOTEwMjczMiJd" + }, + "type" : 2 + }, + { + "id" : "740B0F51-E61A-4EAA-84B5-8B6E09A5EEF2", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldSendSignalAndReceivePublishTimetoken.json b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldSendSignalAndReceivePublishTimetoken.json new file mode 100644 index 000000000..56eade93c --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldSendSignalAndReceivePublishTimetoken.json @@ -0,0 +1,53 @@ +[ + { + "id" : "98940DB2-9A3F-4146-9578-141AE0ACC2FB", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/signal\/demo\/demo\/0\/test-channel\/0\/%22Hello%20there%22?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "98940DB2-9A3F-4146-9578-141AE0ACC2FB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/signal\/demo\/demo\/0\/test-channel\/0\/%22Hello%20there%22?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:25:04 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "98940DB2-9A3F-4146-9578-141AE0ACC2FB", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMzA0NjcwMDE4MSJd" + }, + "type" : 2 + }, + { + "id" : "98940DB2-9A3F-4146-9578-141AE0ACC2FB", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldSendSignalAndReceiveStatusWithExpectedOperationAndCategory.json b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldSendSignalAndReceiveStatusWithExpectedOperationAndCategory.json new file mode 100644 index 000000000..3fcdb4d16 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldSendSignalAndReceiveStatusWithExpectedOperationAndCategory.json @@ -0,0 +1,53 @@ +[ + { + "id" : "25BBBD9D-BDC1-4717-B115-4B7BCD8891B2", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/signal\/demo\/demo\/0\/test-channel\/0\/2010?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "25BBBD9D-BDC1-4717-B115-4B7BCD8891B2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/signal\/demo\/demo\/0\/test-channel\/0\/2010?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:25:05 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "25BBBD9D-BDC1-4717-B115-4B7BCD8891B2", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMzA1NDcxNTQ4OSJd" + }, + "type" : 2 + }, + { + "id" : "25BBBD9D-BDC1-4717-B115-4B7BCD8891B2", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldSendSignalUsingBuilderPatternInterface.json b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldSendSignalUsingBuilderPatternInterface.json new file mode 100644 index 000000000..4aae47352 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldSendSignalUsingBuilderPatternInterface.json @@ -0,0 +1,244 @@ +[ + { + "id" : "874F7BB4-7920-49B3-BBCE-97710BE1DDF2", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "874F7BB4-7920-49B3-BBCE-97710BE1DDF2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:25:06 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "874F7BB4-7920-49B3-BBCE-97710BE1DDF2", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMzA2MTIyMzczNSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "874F7BB4-7920-49B3-BBCE-97710BE1DDF2", + "type" : 4 + }, + { + "id" : "CDC103D4-3075-4B72-8C63-3C9F113A7D26", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782703061223735&tr=12" + }, + "type" : 0 + }, + { + "id" : "825BE6AA-9328-48B3-A935-A39EEF178DCB", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/signal\/demo\/demo\/0\/test-channel\/0\/%7B%22hello%22:%22there%22%7D?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "CDC103D4-3075-4B72-8C63-3C9F113A7D26", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782703061223735&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:25:06 GMT", + "Content-Length" : "220", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "CDC103D4-3075-4B72-8C63-3C9F113A7D26", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMzA2NDc4ODEwMyIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJlIjoxLCJpIjoic2VyaGlpIiwicCI6eyJ0IjoiMTU3ODI3MDMwNjQ3Nzc2NTkiLCJyIjoxMn0sImsiOiJkZW1vIiwiYyI6InRlc3QtY2hhbm5lbCIsImQiOnsiaGVsbG8iOiJ0aGVyZSJ9fV19" + }, + "type" : 2 + }, + { + "id" : "825BE6AA-9328-48B3-A935-A39EEF178DCB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/signal\/demo\/demo\/0\/test-channel\/0\/%7B%22hello%22:%22there%22%7D?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:25:06 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "825BE6AA-9328-48B3-A935-A39EEF178DCB", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMzA2NDc3NzY1OSJd" + }, + "type" : 2 + }, + { + "id" : "825BE6AA-9328-48B3-A935-A39EEF178DCB", + "type" : 4 + }, + { + "id" : "CDC103D4-3075-4B72-8C63-3C9F113A7D26", + "type" : 4 + }, + { + "id" : "0691B69C-D1B1-4C63-8524-EC8F8C307AA5", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782703064788103&tr=12" + }, + "type" : 0 + }, + { + "id" : "0691B69C-D1B1-4C63-8524-EC8F8C307AA5", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782703064788103&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782703064788103&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "C3915DE2-6F63-40D9-BF53-DD2469CC2C2B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C3915DE2-6F63-40D9-BF53-DD2469CC2C2B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:06 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C3915DE2-6F63-40D9-BF53-DD2469CC2C2B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "C3915DE2-6F63-40D9-BF53-DD2469CC2C2B", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldSendSignalWithNotEncryptedMessageWhenCipherKeyIsSet.json b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldSendSignalWithNotEncryptedMessageWhenCipherKeyIsSet.json new file mode 100644 index 000000000..ee21b4d8c --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPublishIntegrationTests.bundle/ItShouldSendSignalWithNotEncryptedMessageWhenCipherKeyIsSet.json @@ -0,0 +1,244 @@ +[ + { + "id" : "3FAC0F24-6251-4F16-B7BE-D3EEC7A6B5F9", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3FAC0F24-6251-4F16-B7BE-D3EEC7A6B5F9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?tt=0&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:25:07 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "3FAC0F24-6251-4F16-B7BE-D3EEC7A6B5F9", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMzA3NDA5NTM4NCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "3FAC0F24-6251-4F16-B7BE-D3EEC7A6B5F9", + "type" : 4 + }, + { + "id" : "4E930A07-44F4-43D8-B077-2F795FE369B3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782703074095384&tr=12" + }, + "type" : 0 + }, + { + "id" : "33E4B35E-E62B-4863-A93D-41E06C849A56", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/signal\/demo\/demo\/0\/test-channel\/0\/%7B%22hello%22:%22there%22%7D?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "33E4B35E-E62B-4863-A93D-41E06C849A56", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/signal\/demo\/demo\/0\/test-channel\/0\/%7B%22hello%22:%22there%22%7D?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:25:07 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "33E4B35E-E62B-4863-A93D-41E06C849A56", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTc4MjcwMzA3NzU3OTQwOSJd" + }, + "type" : 2 + }, + { + "id" : "4E930A07-44F4-43D8-B077-2F795FE369B3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782703074095384&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Mon, 06 Jan 2020 00:25:07 GMT", + "Content-Length" : "220", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "33E4B35E-E62B-4863-A93D-41E06C849A56", + "type" : 4 + }, + { + "id" : "4E930A07-44F4-43D8-B077-2F795FE369B3", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTc4MjcwMzA3NzU3MDQ3NyIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJlIjoxLCJpIjoic2VyaGlpIiwicCI6eyJ0IjoiMTU3ODI3MDMwNzc1Nzk0MDkiLCJyIjoxMn0sImsiOiJkZW1vIiwiYyI6InRlc3QtY2hhbm5lbCIsImQiOnsiaGVsbG8iOiJ0aGVyZSJ9fV19" + }, + "type" : 2 + }, + { + "id" : "4E930A07-44F4-43D8-B077-2F795FE369B3", + "type" : 4 + }, + { + "id" : "5AC30C86-9E86-442F-92D8-2D442CC37476", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782703077570477&tr=12" + }, + "type" : 0 + }, + { + "id" : "5AC30C86-9E86-442F-92D8-2D442CC37476", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782703077570477&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15782703077570477&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "317AE2A8-9BD5-4104-B1F0-5C26D924B5B8", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "317AE2A8-9BD5-4104-B1F0-5C26D924B5B8", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:08 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "317AE2A8-9BD5-4104-B1F0-5C26D924B5B8", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "317AE2A8-9BD5-4104-B1F0-5C26D924B5B8", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldAddPushNotificationsAndReceiveStatusWithExpectedOperationAndCategory.json b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldAddPushNotificationsAndReceiveStatusWithExpectedOperationAndCategory.json new file mode 100644 index 000000000..a9cc76fcb --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldAddPushNotificationsAndReceiveStatusWithExpectedOperationAndCategory.json @@ -0,0 +1,164 @@ +[ + { + "id" : "F0F987C7-D234-42F2-982D-7CAB85B7331D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns" + }, + "type" : 0 + }, + { + "id" : "F0F987C7-D234-42F2-982D-7CAB85B7331D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:09 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "21", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F0F987C7-D234-42F2-982D-7CAB85B7331D", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJSZW1vdmVkIERldmljZSJd" + }, + "type" : 2 + }, + { + "id" : "F0F987C7-D234-42F2-982D-7CAB85B7331D", + "type" : 4 + }, + { + "id" : "5ABF50A2-0FA8-45D7-9034-72444AE48E8A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=apns&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "5ABF50A2-0FA8-45D7-9034-72444AE48E8A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=apns&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:09 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "24", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "5ABF50A2-0FA8-45D7-9034-72444AE48E8A", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJNb2RpZmllZCBDaGFubmVscyJd" + }, + "type" : 2 + }, + { + "id" : "5ABF50A2-0FA8-45D7-9034-72444AE48E8A", + "type" : 4 + }, + { + "id" : "48C5AEE2-26E6-415F-9BB0-BB089D055313", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns" + }, + "type" : 0 + }, + { + "id" : "48C5AEE2-26E6-415F-9BB0-BB089D055313", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:09 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "62", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "48C5AEE2-26E6-415F-9BB0-BB089D055313", + "data" : { + "cls" : "NSData", + "base64" : "WyJ0ZXN0LWNoYW5uZWwxIiwgInRlc3QtY2hhbm5lbDIiXQ==" + }, + "type" : 2 + }, + { + "id" : "48C5AEE2-26E6-415F-9BB0-BB089D055313", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldAddPushNotificationsUsingV2APIAndBundleIdentifierAsDefaultTopicWhenTopicIsNil.json b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldAddPushNotificationsUsingV2APIAndBundleIdentifierAsDefaultTopicWhenTopicIsNil.json new file mode 100644 index 000000000..7682f3384 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldAddPushNotificationsUsingV2APIAndBundleIdentifierAsDefaultTopicWhenTopicIsNil.json @@ -0,0 +1,164 @@ +[ + { + "id" : "E7796BE3-9A05-4670-9F6E-C2D100B266A5", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.apple.dt.xctest.tool&type=apns" + }, + "type" : 0 + }, + { + "id" : "E7796BE3-9A05-4670-9F6E-C2D100B266A5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.apple.dt.xctest.tool&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:11 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "21", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E7796BE3-9A05-4670-9F6E-C2D100B266A5", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJSZW1vdmVkIERldmljZSJd" + }, + "type" : 2 + }, + { + "id" : "E7796BE3-9A05-4670-9F6E-C2D100B266A5", + "type" : 4 + }, + { + "id" : "D292C953-D91B-461D-8458-2829B6CC696D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.apple.dt.xctest.tool&type=apns&uuid=Serhii&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "D292C953-D91B-461D-8458-2829B6CC696D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.apple.dt.xctest.tool&type=apns&uuid=Serhii&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:11 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "24", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D292C953-D91B-461D-8458-2829B6CC696D", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJNb2RpZmllZCBDaGFubmVscyJd" + }, + "type" : 2 + }, + { + "id" : "D292C953-D91B-461D-8458-2829B6CC696D", + "type" : 4 + }, + { + "id" : "9B6F3A25-3C5B-4D1F-9556-BAD0E1A4398B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.apple.dt.xctest.tool&type=apns" + }, + "type" : 0 + }, + { + "id" : "9B6F3A25-3C5B-4D1F-9556-BAD0E1A4398B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.apple.dt.xctest.tool&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:11 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "62", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9B6F3A25-3C5B-4D1F-9556-BAD0E1A4398B", + "data" : { + "cls" : "NSData", + "base64" : "WyJ0ZXN0LWNoYW5uZWwxIiwgInRlc3QtY2hhbm5lbDIiXQ==" + }, + "type" : 2 + }, + { + "id" : "9B6F3A25-3C5B-4D1F-9556-BAD0E1A4398B", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldAddPushNotificationsUsingV2APIAndReceiveStatusWithExpectedOperationAndCategory.json b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldAddPushNotificationsUsingV2APIAndReceiveStatusWithExpectedOperationAndCategory.json new file mode 100644 index 000000000..80acb3e1e --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldAddPushNotificationsUsingV2APIAndReceiveStatusWithExpectedOperationAndCategory.json @@ -0,0 +1,164 @@ +[ + { + "id" : "AF1F0CE6-01F3-41AD-BBC1-9F2F12E4CAB8", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns" + }, + "type" : 0 + }, + { + "id" : "AF1F0CE6-01F3-41AD-BBC1-9F2F12E4CAB8", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:13 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "21", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "AF1F0CE6-01F3-41AD-BBC1-9F2F12E4CAB8", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJSZW1vdmVkIERldmljZSJd" + }, + "type" : 2 + }, + { + "id" : "AF1F0CE6-01F3-41AD-BBC1-9F2F12E4CAB8", + "type" : 4 + }, + { + "id" : "E4BFC0ED-EF72-41EA-8EBE-2EA9D97B3846", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns&uuid=Serhii&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "E4BFC0ED-EF72-41EA-8EBE-2EA9D97B3846", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns&uuid=Serhii&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:13 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "24", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E4BFC0ED-EF72-41EA-8EBE-2EA9D97B3846", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJNb2RpZmllZCBDaGFubmVscyJd" + }, + "type" : 2 + }, + { + "id" : "E4BFC0ED-EF72-41EA-8EBE-2EA9D97B3846", + "type" : 4 + }, + { + "id" : "19AD0122-59B4-4ACB-9A47-5B561D47D3E6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns" + }, + "type" : 0 + }, + { + "id" : "19AD0122-59B4-4ACB-9A47-5B561D47D3E6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:13 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "62", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "19AD0122-59B4-4ACB-9A47-5B561D47D3E6", + "data" : { + "cls" : "NSData", + "base64" : "WyJ0ZXN0LWNoYW5uZWwxIiwgInRlc3QtY2hhbm5lbDIiXQ==" + }, + "type" : 2 + }, + { + "id" : "19AD0122-59B4-4ACB-9A47-5B561D47D3E6", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldAddPushNotificationsWithDefaultToAPNSPushType.json b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldAddPushNotificationsWithDefaultToAPNSPushType.json new file mode 100644 index 000000000..b6484d705 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldAddPushNotificationsWithDefaultToAPNSPushType.json @@ -0,0 +1,56 @@ +[ + { + "id" : "046DC3C8-F7CE-48B7-AAC6-3C968BE9AD75", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=apns&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "046DC3C8-F7CE-48B7-AAC6-3C968BE9AD75", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=apns&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:14 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "24", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "046DC3C8-F7CE-48B7-AAC6-3C968BE9AD75", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJNb2RpZmllZCBDaGFubmVscyJd" + }, + "type" : 2 + }, + { + "id" : "046DC3C8-F7CE-48B7-AAC6-3C968BE9AD75", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldAddPushNotificationsWithFCMPushType.json b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldAddPushNotificationsWithFCMPushType.json new file mode 100644 index 000000000..83af32ea6 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldAddPushNotificationsWithFCMPushType.json @@ -0,0 +1,164 @@ +[ + { + "id" : "DD02C93A-B0C3-4612-8F2D-D6AD314EFCBA", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm" + }, + "type" : 0 + }, + { + "id" : "DD02C93A-B0C3-4612-8F2D-D6AD314EFCBA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:16 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "21", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "DD02C93A-B0C3-4612-8F2D-D6AD314EFCBA", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJSZW1vdmVkIERldmljZSJd" + }, + "type" : 2 + }, + { + "id" : "DD02C93A-B0C3-4612-8F2D-D6AD314EFCBA", + "type" : 4 + }, + { + "id" : "EE42E396-DFC2-4166-AFD7-102536BC51EA", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=gcm&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "EE42E396-DFC2-4166-AFD7-102536BC51EA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=gcm&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:16 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "24", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "EE42E396-DFC2-4166-AFD7-102536BC51EA", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJNb2RpZmllZCBDaGFubmVscyJd" + }, + "type" : 2 + }, + { + "id" : "EE42E396-DFC2-4166-AFD7-102536BC51EA", + "type" : 4 + }, + { + "id" : "9691D648-114D-43A1-B43F-7CE9E874DA93", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm" + }, + "type" : 0 + }, + { + "id" : "9691D648-114D-43A1-B43F-7CE9E874DA93", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:16 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "62", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9691D648-114D-43A1-B43F-7CE9E874DA93", + "data" : { + "cls" : "NSData", + "base64" : "WyJ0ZXN0LWNoYW5uZWwxIiwgInRlc3QtY2hhbm5lbDIiXQ==" + }, + "type" : 2 + }, + { + "id" : "9691D648-114D-43A1-B43F-7CE9E874DA93", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldAddPushNotificationsWithMPNSPushType.json b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldAddPushNotificationsWithMPNSPushType.json new file mode 100644 index 000000000..299dae673 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldAddPushNotificationsWithMPNSPushType.json @@ -0,0 +1,164 @@ +[ + { + "id" : "46130820-E045-4560-BB48-7F086F7DA3B4", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=mpns" + }, + "type" : 0 + }, + { + "id" : "46130820-E045-4560-BB48-7F086F7DA3B4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=mpns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:18 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "21", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "46130820-E045-4560-BB48-7F086F7DA3B4", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJSZW1vdmVkIERldmljZSJd" + }, + "type" : 2 + }, + { + "id" : "46130820-E045-4560-BB48-7F086F7DA3B4", + "type" : 4 + }, + { + "id" : "6FB95797-2338-4B4C-9187-1DE686E24281", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=mpns&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "6FB95797-2338-4B4C-9187-1DE686E24281", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=mpns&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:18 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "24", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "6FB95797-2338-4B4C-9187-1DE686E24281", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJNb2RpZmllZCBDaGFubmVscyJd" + }, + "type" : 2 + }, + { + "id" : "6FB95797-2338-4B4C-9187-1DE686E24281", + "type" : 4 + }, + { + "id" : "82D4327C-A4CF-42FB-BB03-AE74E2A2B7E1", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=mpns" + }, + "type" : 0 + }, + { + "id" : "82D4327C-A4CF-42FB-BB03-AE74E2A2B7E1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=mpns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:18 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "62", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "82D4327C-A4CF-42FB-BB03-AE74E2A2B7E1", + "data" : { + "cls" : "NSData", + "base64" : "WyJ0ZXN0LWNoYW5uZWwxIiwgInRlc3QtY2hhbm5lbDIiXQ==" + }, + "type" : 2 + }, + { + "id" : "82D4327C-A4CF-42FB-BB03-AE74E2A2B7E1", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldAuditPushNotificationsAndReceiveResultWithExpectedOperation.json b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldAuditPushNotificationsAndReceiveResultWithExpectedOperation.json new file mode 100644 index 000000000..774c51cf7 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldAuditPushNotificationsAndReceiveResultWithExpectedOperation.json @@ -0,0 +1,164 @@ +[ + { + "id" : "55F7B7D9-C4E4-40A0-9165-FAC36AA830B2", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns" + }, + "type" : 0 + }, + { + "id" : "55F7B7D9-C4E4-40A0-9165-FAC36AA830B2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:20 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "21", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "55F7B7D9-C4E4-40A0-9165-FAC36AA830B2", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJSZW1vdmVkIERldmljZSJd" + }, + "type" : 2 + }, + { + "id" : "55F7B7D9-C4E4-40A0-9165-FAC36AA830B2", + "type" : 4 + }, + { + "id" : "17F5886A-7187-4688-A35A-86A44D205F94", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=apns&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "17F5886A-7187-4688-A35A-86A44D205F94", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=apns&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:20 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "24", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "17F5886A-7187-4688-A35A-86A44D205F94", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJNb2RpZmllZCBDaGFubmVscyJd" + }, + "type" : 2 + }, + { + "id" : "17F5886A-7187-4688-A35A-86A44D205F94", + "type" : 4 + }, + { + "id" : "02D940B4-ADA1-473E-9D94-FA295A183580", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns" + }, + "type" : 0 + }, + { + "id" : "02D940B4-ADA1-473E-9D94-FA295A183580", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:21 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "62", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "02D940B4-ADA1-473E-9D94-FA295A183580", + "data" : { + "cls" : "NSData", + "base64" : "WyJ0ZXN0LWNoYW5uZWwxIiwgInRlc3QtY2hhbm5lbDIiXQ==" + }, + "type" : 2 + }, + { + "id" : "02D940B4-ADA1-473E-9D94-FA295A183580", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldAuditPushNotificationsUsingV2APIAndBundleIdentifierAsDefaultTopicWhenTopicIsNil.json b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldAuditPushNotificationsUsingV2APIAndBundleIdentifierAsDefaultTopicWhenTopicIsNil.json new file mode 100644 index 000000000..4fbad8161 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldAuditPushNotificationsUsingV2APIAndBundleIdentifierAsDefaultTopicWhenTopicIsNil.json @@ -0,0 +1,164 @@ +[ + { + "id" : "2F754AAE-0118-45C7-A478-65DAC548B65F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.apple.dt.xctest.tool&type=apns" + }, + "type" : 0 + }, + { + "id" : "2F754AAE-0118-45C7-A478-65DAC548B65F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.apple.dt.xctest.tool&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:23 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "21", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "2F754AAE-0118-45C7-A478-65DAC548B65F", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJSZW1vdmVkIERldmljZSJd" + }, + "type" : 2 + }, + { + "id" : "2F754AAE-0118-45C7-A478-65DAC548B65F", + "type" : 4 + }, + { + "id" : "4299FC39-B76A-4001-ABE6-27ED4738EA27", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.apple.dt.xctest.tool&type=apns&uuid=Serhii&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "4299FC39-B76A-4001-ABE6-27ED4738EA27", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.apple.dt.xctest.tool&type=apns&uuid=Serhii&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:23 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "24", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "4299FC39-B76A-4001-ABE6-27ED4738EA27", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJNb2RpZmllZCBDaGFubmVscyJd" + }, + "type" : 2 + }, + { + "id" : "4299FC39-B76A-4001-ABE6-27ED4738EA27", + "type" : 4 + }, + { + "id" : "772704E7-827A-4FFD-93FD-D6EEC2F67F96", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.apple.dt.xctest.tool&type=apns" + }, + "type" : 0 + }, + { + "id" : "772704E7-827A-4FFD-93FD-D6EEC2F67F96", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.apple.dt.xctest.tool&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:24 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "62", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "772704E7-827A-4FFD-93FD-D6EEC2F67F96", + "data" : { + "cls" : "NSData", + "base64" : "WyJ0ZXN0LWNoYW5uZWwxIiwgInRlc3QtY2hhbm5lbDIiXQ==" + }, + "type" : 2 + }, + { + "id" : "772704E7-827A-4FFD-93FD-D6EEC2F67F96", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldAuditPushNotificationsUsingV2APIAndReceiveResultWithExpectedOperationAndCategory.json b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldAuditPushNotificationsUsingV2APIAndReceiveResultWithExpectedOperationAndCategory.json new file mode 100644 index 000000000..ca83f702e --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldAuditPushNotificationsUsingV2APIAndReceiveResultWithExpectedOperationAndCategory.json @@ -0,0 +1,164 @@ +[ + { + "id" : "8C913CCB-8CB9-4738-8ED9-CC816335B7C8", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns" + }, + "type" : 0 + }, + { + "id" : "8C913CCB-8CB9-4738-8ED9-CC816335B7C8", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:26 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "21", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "8C913CCB-8CB9-4738-8ED9-CC816335B7C8", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJSZW1vdmVkIERldmljZSJd" + }, + "type" : 2 + }, + { + "id" : "8C913CCB-8CB9-4738-8ED9-CC816335B7C8", + "type" : 4 + }, + { + "id" : "06625413-2E3F-412B-BDC9-82669FBDB20E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns&uuid=Serhii&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "06625413-2E3F-412B-BDC9-82669FBDB20E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns&uuid=Serhii&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:26 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "24", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "06625413-2E3F-412B-BDC9-82669FBDB20E", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJNb2RpZmllZCBDaGFubmVscyJd" + }, + "type" : 2 + }, + { + "id" : "06625413-2E3F-412B-BDC9-82669FBDB20E", + "type" : 4 + }, + { + "id" : "C1E7590F-9B2E-48EE-923E-706D56EB975D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns" + }, + "type" : 0 + }, + { + "id" : "C1E7590F-9B2E-48EE-923E-706D56EB975D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:27 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "62", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C1E7590F-9B2E-48EE-923E-706D56EB975D", + "data" : { + "cls" : "NSData", + "base64" : "WyJ0ZXN0LWNoYW5uZWwyIiwgInRlc3QtY2hhbm5lbDEiXQ==" + }, + "type" : 2 + }, + { + "id" : "C1E7590F-9B2E-48EE-923E-706D56EB975D", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldAuditPushNotificationsWithDefaultToAPNSPushType.json b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldAuditPushNotificationsWithDefaultToAPNSPushType.json new file mode 100644 index 000000000..bda75898f --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldAuditPushNotificationsWithDefaultToAPNSPushType.json @@ -0,0 +1,164 @@ +[ + { + "id" : "439B9663-BF5B-458C-BC18-E31718AAE086", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns" + }, + "type" : 0 + }, + { + "id" : "439B9663-BF5B-458C-BC18-E31718AAE086", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:29 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "21", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "439B9663-BF5B-458C-BC18-E31718AAE086", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJSZW1vdmVkIERldmljZSJd" + }, + "type" : 2 + }, + { + "id" : "439B9663-BF5B-458C-BC18-E31718AAE086", + "type" : 4 + }, + { + "id" : "3C15B1D0-F812-4EBF-B465-A9C8D040BA63", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=apns&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "3C15B1D0-F812-4EBF-B465-A9C8D040BA63", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=apns&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:29 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "24", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "3C15B1D0-F812-4EBF-B465-A9C8D040BA63", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJNb2RpZmllZCBDaGFubmVscyJd" + }, + "type" : 2 + }, + { + "id" : "3C15B1D0-F812-4EBF-B465-A9C8D040BA63", + "type" : 4 + }, + { + "id" : "51AE5244-F100-4630-8AD7-28F8BB01B333", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns" + }, + "type" : 0 + }, + { + "id" : "51AE5244-F100-4630-8AD7-28F8BB01B333", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:30 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "62", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "51AE5244-F100-4630-8AD7-28F8BB01B333", + "data" : { + "cls" : "NSData", + "base64" : "WyJ0ZXN0LWNoYW5uZWwyIiwgInRlc3QtY2hhbm5lbDEiXQ==" + }, + "type" : 2 + }, + { + "id" : "51AE5244-F100-4630-8AD7-28F8BB01B333", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldAuditPushNotificationsWithFCMPushType.json b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldAuditPushNotificationsWithFCMPushType.json new file mode 100644 index 000000000..8ed1bb043 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldAuditPushNotificationsWithFCMPushType.json @@ -0,0 +1,164 @@ +[ + { + "id" : "7791F199-1B31-41EC-9B38-8F5D6B0830D4", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm" + }, + "type" : 0 + }, + { + "id" : "7791F199-1B31-41EC-9B38-8F5D6B0830D4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:32 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "21", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "7791F199-1B31-41EC-9B38-8F5D6B0830D4", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJSZW1vdmVkIERldmljZSJd" + }, + "type" : 2 + }, + { + "id" : "7791F199-1B31-41EC-9B38-8F5D6B0830D4", + "type" : 4 + }, + { + "id" : "B29692A9-3930-4F54-B838-51AF1B32CE4A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=gcm&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "B29692A9-3930-4F54-B838-51AF1B32CE4A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=gcm&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:32 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "24", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B29692A9-3930-4F54-B838-51AF1B32CE4A", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJNb2RpZmllZCBDaGFubmVscyJd" + }, + "type" : 2 + }, + { + "id" : "B29692A9-3930-4F54-B838-51AF1B32CE4A", + "type" : 4 + }, + { + "id" : "7DE3053A-18D1-40B6-B2FA-FA10E50C7201", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm" + }, + "type" : 0 + }, + { + "id" : "7DE3053A-18D1-40B6-B2FA-FA10E50C7201", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:33 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "62", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "7DE3053A-18D1-40B6-B2FA-FA10E50C7201", + "data" : { + "cls" : "NSData", + "base64" : "WyJ0ZXN0LWNoYW5uZWwyIiwgInRlc3QtY2hhbm5lbDEiXQ==" + }, + "type" : 2 + }, + { + "id" : "7DE3053A-18D1-40B6-B2FA-FA10E50C7201", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldAuditPushNotificationsWithMPNSPushType.json b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldAuditPushNotificationsWithMPNSPushType.json new file mode 100644 index 000000000..bfc4c659d --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldAuditPushNotificationsWithMPNSPushType.json @@ -0,0 +1,164 @@ +[ + { + "id" : "A107C266-74DF-4A4B-9E3D-A66403C8772A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=mpns" + }, + "type" : 0 + }, + { + "id" : "A107C266-74DF-4A4B-9E3D-A66403C8772A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=mpns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:35 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "21", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "A107C266-74DF-4A4B-9E3D-A66403C8772A", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJSZW1vdmVkIERldmljZSJd" + }, + "type" : 2 + }, + { + "id" : "A107C266-74DF-4A4B-9E3D-A66403C8772A", + "type" : 4 + }, + { + "id" : "1CD3C43A-92AD-4000-AE78-FBA29534B90C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=mpns&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "1CD3C43A-92AD-4000-AE78-FBA29534B90C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=mpns&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:35 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "24", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "1CD3C43A-92AD-4000-AE78-FBA29534B90C", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJNb2RpZmllZCBDaGFubmVscyJd" + }, + "type" : 2 + }, + { + "id" : "1CD3C43A-92AD-4000-AE78-FBA29534B90C", + "type" : 4 + }, + { + "id" : "4518063E-5B6B-4661-AD8C-C7339DE22F0D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=mpns" + }, + "type" : 0 + }, + { + "id" : "4518063E-5B6B-4661-AD8C-C7339DE22F0D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=mpns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:36 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "62", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "4518063E-5B6B-4661-AD8C-C7339DE22F0D", + "data" : { + "cls" : "NSData", + "base64" : "WyJ0ZXN0LWNoYW5uZWwxIiwgInRlc3QtY2hhbm5lbDIiXQ==" + }, + "type" : 2 + }, + { + "id" : "4518063E-5B6B-4661-AD8C-C7339DE22F0D", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldNotAddPushNotificationsAndReceiveBadRequestStatusWhenChannelsIsNil.json b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldNotAddPushNotificationsAndReceiveBadRequestStatusWhenChannelsIsNil.json new file mode 100644 index 000000000..aec8861f5 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldNotAddPushNotificationsAndReceiveBadRequestStatusWhenChannelsIsNil.json @@ -0,0 +1,110 @@ +[ + { + "id" : "317ADD46-584B-4D22-A297-61DAEC828EF6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns" + }, + "type" : 0 + }, + { + "id" : "317ADD46-584B-4D22-A297-61DAEC828EF6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:38 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "21", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "317ADD46-584B-4D22-A297-61DAEC828EF6", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJSZW1vdmVkIERldmljZSJd" + }, + "type" : 2 + }, + { + "id" : "317ADD46-584B-4D22-A297-61DAEC828EF6", + "type" : 4 + }, + { + "id" : "21F4C555-4F53-413F-B24A-763B0B354B86", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns" + }, + "type" : 0 + }, + { + "id" : "21F4C555-4F53-413F-B24A-763B0B354B86", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:38 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "2", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "21F4C555-4F53-413F-B24A-763B0B354B86", + "data" : { + "cls" : "NSData", + "base64" : "W10=" + }, + "type" : 2 + }, + { + "id" : "21F4C555-4F53-413F-B24A-763B0B354B86", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldNotAddPushNotificationsUsingV2APIAndReceiveBadRequestStatusWhenChannelsIsNil.json b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldNotAddPushNotificationsUsingV2APIAndReceiveBadRequestStatusWhenChannelsIsNil.json new file mode 100644 index 000000000..be3bd55a1 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldNotAddPushNotificationsUsingV2APIAndReceiveBadRequestStatusWhenChannelsIsNil.json @@ -0,0 +1,110 @@ +[ + { + "id" : "C8209BFE-23F8-4538-83D6-BA8D69F7F55A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns" + }, + "type" : 0 + }, + { + "id" : "C8209BFE-23F8-4538-83D6-BA8D69F7F55A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:40 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "21", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C8209BFE-23F8-4538-83D6-BA8D69F7F55A", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJSZW1vdmVkIERldmljZSJd" + }, + "type" : 2 + }, + { + "id" : "C8209BFE-23F8-4538-83D6-BA8D69F7F55A", + "type" : 4 + }, + { + "id" : "20DA8D68-6B94-4A06-825C-C5A10F7FD6CB", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns" + }, + "type" : 0 + }, + { + "id" : "20DA8D68-6B94-4A06-825C-C5A10F7FD6CB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:40 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "2", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "20DA8D68-6B94-4A06-825C-C5A10F7FD6CB", + "data" : { + "cls" : "NSData", + "base64" : "W10=" + }, + "type" : 2 + }, + { + "id" : "20DA8D68-6B94-4A06-825C-C5A10F7FD6CB", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldNotRemovePushNotificationsAndReceiveBadRequestStatusWhenChannelsIsNil.json b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldNotRemovePushNotificationsAndReceiveBadRequestStatusWhenChannelsIsNil.json new file mode 100644 index 000000000..3d61c73ab --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldNotRemovePushNotificationsAndReceiveBadRequestStatusWhenChannelsIsNil.json @@ -0,0 +1,218 @@ +[ + { + "id" : "959BCEE9-9B64-41BB-AD03-A760A7AA36F9", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns" + }, + "type" : 0 + }, + { + "id" : "959BCEE9-9B64-41BB-AD03-A760A7AA36F9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:44 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "21", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "959BCEE9-9B64-41BB-AD03-A760A7AA36F9", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJSZW1vdmVkIERldmljZSJd" + }, + "type" : 2 + }, + { + "id" : "959BCEE9-9B64-41BB-AD03-A760A7AA36F9", + "type" : 4 + }, + { + "id" : "3AB7FCD7-260B-46BB-9DCF-D6E8DF502493", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=apns&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "3AB7FCD7-260B-46BB-9DCF-D6E8DF502493", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=apns&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:44 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "24", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "3AB7FCD7-260B-46BB-9DCF-D6E8DF502493", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJNb2RpZmllZCBDaGFubmVscyJd" + }, + "type" : 2 + }, + { + "id" : "3AB7FCD7-260B-46BB-9DCF-D6E8DF502493", + "type" : 4 + }, + { + "id" : "04335020-CE6D-4082-A401-143D9ACB30AB", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns" + }, + "type" : 0 + }, + { + "id" : "04335020-CE6D-4082-A401-143D9ACB30AB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:45 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "62", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "04335020-CE6D-4082-A401-143D9ACB30AB", + "data" : { + "cls" : "NSData", + "base64" : "WyJ0ZXN0LWNoYW5uZWwyIiwgInRlc3QtY2hhbm5lbDEiXQ==" + }, + "type" : 2 + }, + { + "id" : "04335020-CE6D-4082-A401-143D9ACB30AB", + "type" : 4 + }, + { + "id" : "BA5C1450-1894-46D0-867C-3BC178D245BB", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns" + }, + "type" : 0 + }, + { + "id" : "BA5C1450-1894-46D0-867C-3BC178D245BB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:45 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "62", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "BA5C1450-1894-46D0-867C-3BC178D245BB", + "data" : { + "cls" : "NSData", + "base64" : "WyJ0ZXN0LWNoYW5uZWwyIiwgInRlc3QtY2hhbm5lbDEiXQ==" + }, + "type" : 2 + }, + { + "id" : "BA5C1450-1894-46D0-867C-3BC178D245BB", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldNotRemovePushNotificationsUsingV2APIAndReceiveBadRequestStatusWhenChannelsIsNil.json b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldNotRemovePushNotificationsUsingV2APIAndReceiveBadRequestStatusWhenChannelsIsNil.json new file mode 100644 index 000000000..61312f86d --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldNotRemovePushNotificationsUsingV2APIAndReceiveBadRequestStatusWhenChannelsIsNil.json @@ -0,0 +1,218 @@ +[ + { + "id" : "1BBD9E7F-7C72-4821-9EFD-71368CA9804E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns" + }, + "type" : 0 + }, + { + "id" : "1BBD9E7F-7C72-4821-9EFD-71368CA9804E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:48 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "21", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "1BBD9E7F-7C72-4821-9EFD-71368CA9804E", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJSZW1vdmVkIERldmljZSJd" + }, + "type" : 2 + }, + { + "id" : "1BBD9E7F-7C72-4821-9EFD-71368CA9804E", + "type" : 4 + }, + { + "id" : "7F05E9D0-1A42-43A0-8D7F-F7718E9F0B7D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns&uuid=Serhii&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "7F05E9D0-1A42-43A0-8D7F-F7718E9F0B7D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns&uuid=Serhii&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:48 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "24", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "7F05E9D0-1A42-43A0-8D7F-F7718E9F0B7D", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJNb2RpZmllZCBDaGFubmVscyJd" + }, + "type" : 2 + }, + { + "id" : "7F05E9D0-1A42-43A0-8D7F-F7718E9F0B7D", + "type" : 4 + }, + { + "id" : "3621754A-1BEB-4581-854B-8C35779C4FAE", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns" + }, + "type" : 0 + }, + { + "id" : "3621754A-1BEB-4581-854B-8C35779C4FAE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:49 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "62", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "3621754A-1BEB-4581-854B-8C35779C4FAE", + "data" : { + "cls" : "NSData", + "base64" : "WyJ0ZXN0LWNoYW5uZWwxIiwgInRlc3QtY2hhbm5lbDIiXQ==" + }, + "type" : 2 + }, + { + "id" : "3621754A-1BEB-4581-854B-8C35779C4FAE", + "type" : 4 + }, + { + "id" : "87FDA268-6804-41F2-9BE1-9757D5A31AC3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns" + }, + "type" : 0 + }, + { + "id" : "87FDA268-6804-41F2-9BE1-9757D5A31AC3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:49 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "62", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "87FDA268-6804-41F2-9BE1-9757D5A31AC3", + "data" : { + "cls" : "NSData", + "base64" : "WyJ0ZXN0LWNoYW5uZWwxIiwgInRlc3QtY2hhbm5lbDIiXQ==" + }, + "type" : 2 + }, + { + "id" : "87FDA268-6804-41F2-9BE1-9757D5A31AC3", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemoveAllPushNotificationsAndReceiveStatusWithExpectedOperationAndCategory.json b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemoveAllPushNotificationsAndReceiveStatusWithExpectedOperationAndCategory.json new file mode 100644 index 000000000..83bc43b6a --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemoveAllPushNotificationsAndReceiveStatusWithExpectedOperationAndCategory.json @@ -0,0 +1,272 @@ +[ + { + "id" : "D5A0A3F4-1C5C-48B2-AA1B-F901A9A10D3A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns" + }, + "type" : 0 + }, + { + "id" : "D5A0A3F4-1C5C-48B2-AA1B-F901A9A10D3A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:51 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "21", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D5A0A3F4-1C5C-48B2-AA1B-F901A9A10D3A", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJSZW1vdmVkIERldmljZSJd" + }, + "type" : 2 + }, + { + "id" : "D5A0A3F4-1C5C-48B2-AA1B-F901A9A10D3A", + "type" : 4 + }, + { + "id" : "5F26649D-0A50-47B0-80D3-397E0589239C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=apns&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "5F26649D-0A50-47B0-80D3-397E0589239C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=apns&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:51 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "24", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "5F26649D-0A50-47B0-80D3-397E0589239C", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJNb2RpZmllZCBDaGFubmVscyJd" + }, + "type" : 2 + }, + { + "id" : "5F26649D-0A50-47B0-80D3-397E0589239C", + "type" : 4 + }, + { + "id" : "8B20F881-316D-43B4-8001-D4B039309B51", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns" + }, + "type" : 0 + }, + { + "id" : "8B20F881-316D-43B4-8001-D4B039309B51", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:52 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "62", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "8B20F881-316D-43B4-8001-D4B039309B51", + "data" : { + "cls" : "NSData", + "base64" : "WyJ0ZXN0LWNoYW5uZWwxIiwgInRlc3QtY2hhbm5lbDIiXQ==" + }, + "type" : 2 + }, + { + "id" : "8B20F881-316D-43B4-8001-D4B039309B51", + "type" : 4 + }, + { + "id" : "EC8597D2-CBDB-4F45-B66D-ADFB465C2ECA", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns" + }, + "type" : 0 + }, + { + "id" : "EC8597D2-CBDB-4F45-B66D-ADFB465C2ECA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:52 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "21", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "EC8597D2-CBDB-4F45-B66D-ADFB465C2ECA", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJSZW1vdmVkIERldmljZSJd" + }, + "type" : 2 + }, + { + "id" : "EC8597D2-CBDB-4F45-B66D-ADFB465C2ECA", + "type" : 4 + }, + { + "id" : "285326D7-5CD7-4343-874F-A2FF1028AC6B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns" + }, + "type" : 0 + }, + { + "id" : "285326D7-5CD7-4343-874F-A2FF1028AC6B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:52 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "2", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "285326D7-5CD7-4343-874F-A2FF1028AC6B", + "data" : { + "cls" : "NSData", + "base64" : "W10=" + }, + "type" : 2 + }, + { + "id" : "285326D7-5CD7-4343-874F-A2FF1028AC6B", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemoveAllPushNotificationsUsingBuilderPatternInterface.json b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemoveAllPushNotificationsUsingBuilderPatternInterface.json new file mode 100644 index 000000000..64cba7261 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemoveAllPushNotificationsUsingBuilderPatternInterface.json @@ -0,0 +1,272 @@ +[ + { + "id" : "C445CBD2-2F94-498E-97D1-B21AFFA51132", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm" + }, + "type" : 0 + }, + { + "id" : "C445CBD2-2F94-498E-97D1-B21AFFA51132", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:54 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "21", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C445CBD2-2F94-498E-97D1-B21AFFA51132", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJSZW1vdmVkIERldmljZSJd" + }, + "type" : 2 + }, + { + "id" : "C445CBD2-2F94-498E-97D1-B21AFFA51132", + "type" : 4 + }, + { + "id" : "F3C3179C-C31C-4A1A-801F-7B27EE5BAE23", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=gcm&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "F3C3179C-C31C-4A1A-801F-7B27EE5BAE23", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=gcm&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:54 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "24", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F3C3179C-C31C-4A1A-801F-7B27EE5BAE23", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJNb2RpZmllZCBDaGFubmVscyJd" + }, + "type" : 2 + }, + { + "id" : "F3C3179C-C31C-4A1A-801F-7B27EE5BAE23", + "type" : 4 + }, + { + "id" : "627AEC43-7C43-44CE-B1FB-59C0B8F7A608", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm" + }, + "type" : 0 + }, + { + "id" : "627AEC43-7C43-44CE-B1FB-59C0B8F7A608", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:55 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "62", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "627AEC43-7C43-44CE-B1FB-59C0B8F7A608", + "data" : { + "cls" : "NSData", + "base64" : "WyJ0ZXN0LWNoYW5uZWwyIiwgInRlc3QtY2hhbm5lbDEiXQ==" + }, + "type" : 2 + }, + { + "id" : "627AEC43-7C43-44CE-B1FB-59C0B8F7A608", + "type" : 4 + }, + { + "id" : "163CE4D0-3488-445E-A40E-0131A7260280", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm" + }, + "type" : 0 + }, + { + "id" : "163CE4D0-3488-445E-A40E-0131A7260280", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:55 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "21", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "163CE4D0-3488-445E-A40E-0131A7260280", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJSZW1vdmVkIERldmljZSJd" + }, + "type" : 2 + }, + { + "id" : "163CE4D0-3488-445E-A40E-0131A7260280", + "type" : 4 + }, + { + "id" : "2B9D9568-5F3D-48B5-BE4C-24108FA5EA1B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm" + }, + "type" : 0 + }, + { + "id" : "2B9D9568-5F3D-48B5-BE4C-24108FA5EA1B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:55 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "2", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "2B9D9568-5F3D-48B5-BE4C-24108FA5EA1B", + "data" : { + "cls" : "NSData", + "base64" : "W10=" + }, + "type" : 2 + }, + { + "id" : "2B9D9568-5F3D-48B5-BE4C-24108FA5EA1B", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemoveAllPushNotificationsUsingV2APIAndBundleIdentifierAsDefaultTopicWhenTopicIsNil.json b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemoveAllPushNotificationsUsingV2APIAndBundleIdentifierAsDefaultTopicWhenTopicIsNil.json new file mode 100644 index 000000000..974716642 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemoveAllPushNotificationsUsingV2APIAndBundleIdentifierAsDefaultTopicWhenTopicIsNil.json @@ -0,0 +1,272 @@ +[ + { + "id" : "54F41B5E-5DBB-4059-B4B5-F5CABFDD8B6D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.apple.dt.xctest.tool&type=apns" + }, + "type" : 0 + }, + { + "id" : "54F41B5E-5DBB-4059-B4B5-F5CABFDD8B6D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.apple.dt.xctest.tool&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:57 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "21", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "54F41B5E-5DBB-4059-B4B5-F5CABFDD8B6D", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJSZW1vdmVkIERldmljZSJd" + }, + "type" : 2 + }, + { + "id" : "54F41B5E-5DBB-4059-B4B5-F5CABFDD8B6D", + "type" : 4 + }, + { + "id" : "D1AC60D4-6826-4475-AB44-73C7216E3369", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.apple.dt.xctest.tool&type=apns&uuid=Serhii&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "D1AC60D4-6826-4475-AB44-73C7216E3369", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.apple.dt.xctest.tool&type=apns&uuid=Serhii&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:57 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "24", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D1AC60D4-6826-4475-AB44-73C7216E3369", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJNb2RpZmllZCBDaGFubmVscyJd" + }, + "type" : 2 + }, + { + "id" : "D1AC60D4-6826-4475-AB44-73C7216E3369", + "type" : 4 + }, + { + "id" : "1465B646-2830-4748-B0F5-D9C3DFD7397E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.apple.dt.xctest.tool&type=apns" + }, + "type" : 0 + }, + { + "id" : "1465B646-2830-4748-B0F5-D9C3DFD7397E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.apple.dt.xctest.tool&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:58 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "62", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "1465B646-2830-4748-B0F5-D9C3DFD7397E", + "data" : { + "cls" : "NSData", + "base64" : "WyJ0ZXN0LWNoYW5uZWwyIiwgInRlc3QtY2hhbm5lbDEiXQ==" + }, + "type" : 2 + }, + { + "id" : "1465B646-2830-4748-B0F5-D9C3DFD7397E", + "type" : 4 + }, + { + "id" : "8D483190-A33C-4227-BCA3-75742A34545E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.apple.dt.xctest.tool&type=apns" + }, + "type" : 0 + }, + { + "id" : "8D483190-A33C-4227-BCA3-75742A34545E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.apple.dt.xctest.tool&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:58 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "21", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "8D483190-A33C-4227-BCA3-75742A34545E", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJSZW1vdmVkIERldmljZSJd" + }, + "type" : 2 + }, + { + "id" : "8D483190-A33C-4227-BCA3-75742A34545E", + "type" : 4 + }, + { + "id" : "DA43024F-28D8-47BB-B0DC-BDD9CC6C4952", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.apple.dt.xctest.tool&type=apns" + }, + "type" : 0 + }, + { + "id" : "DA43024F-28D8-47BB-B0DC-BDD9CC6C4952", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.apple.dt.xctest.tool&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:25:58 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "2", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "DA43024F-28D8-47BB-B0DC-BDD9CC6C4952", + "data" : { + "cls" : "NSData", + "base64" : "W10=" + }, + "type" : 2 + }, + { + "id" : "DA43024F-28D8-47BB-B0DC-BDD9CC6C4952", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemoveAllPushNotificationsUsingV2APIAndReceiveStatusWithExpectedOperationAndCategory.json b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemoveAllPushNotificationsUsingV2APIAndReceiveStatusWithExpectedOperationAndCategory.json new file mode 100644 index 000000000..4727d741e --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemoveAllPushNotificationsUsingV2APIAndReceiveStatusWithExpectedOperationAndCategory.json @@ -0,0 +1,272 @@ +[ + { + "id" : "927BA411-E99F-413D-8947-934425A1B47B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns" + }, + "type" : 0 + }, + { + "id" : "927BA411-E99F-413D-8947-934425A1B47B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:00 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "21", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "927BA411-E99F-413D-8947-934425A1B47B", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJSZW1vdmVkIERldmljZSJd" + }, + "type" : 2 + }, + { + "id" : "927BA411-E99F-413D-8947-934425A1B47B", + "type" : 4 + }, + { + "id" : "23C4302A-43AD-4E58-83E2-068047C8EAFD", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns&uuid=Serhii&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "23C4302A-43AD-4E58-83E2-068047C8EAFD", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns&uuid=Serhii&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:00 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "24", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "23C4302A-43AD-4E58-83E2-068047C8EAFD", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJNb2RpZmllZCBDaGFubmVscyJd" + }, + "type" : 2 + }, + { + "id" : "23C4302A-43AD-4E58-83E2-068047C8EAFD", + "type" : 4 + }, + { + "id" : "795A2E5E-7FE8-4C8B-99AC-8724A7B7EDA1", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns" + }, + "type" : 0 + }, + { + "id" : "795A2E5E-7FE8-4C8B-99AC-8724A7B7EDA1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:01 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "62", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "795A2E5E-7FE8-4C8B-99AC-8724A7B7EDA1", + "data" : { + "cls" : "NSData", + "base64" : "WyJ0ZXN0LWNoYW5uZWwyIiwgInRlc3QtY2hhbm5lbDEiXQ==" + }, + "type" : 2 + }, + { + "id" : "795A2E5E-7FE8-4C8B-99AC-8724A7B7EDA1", + "type" : 4 + }, + { + "id" : "C21C69AD-06A5-41F8-BB73-CC8BDBF138AA", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns" + }, + "type" : 0 + }, + { + "id" : "C21C69AD-06A5-41F8-BB73-CC8BDBF138AA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:01 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "21", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C21C69AD-06A5-41F8-BB73-CC8BDBF138AA", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJSZW1vdmVkIERldmljZSJd" + }, + "type" : 2 + }, + { + "id" : "C21C69AD-06A5-41F8-BB73-CC8BDBF138AA", + "type" : 4 + }, + { + "id" : "523305E9-C179-4B73-B6CA-2D82F8AEB017", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns" + }, + "type" : 0 + }, + { + "id" : "523305E9-C179-4B73-B6CA-2D82F8AEB017", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:01 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "2", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "523305E9-C179-4B73-B6CA-2D82F8AEB017", + "data" : { + "cls" : "NSData", + "base64" : "W10=" + }, + "type" : 2 + }, + { + "id" : "523305E9-C179-4B73-B6CA-2D82F8AEB017", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemoveAllPushNotificationsWithDefaultToAPNSPushType.json b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemoveAllPushNotificationsWithDefaultToAPNSPushType.json new file mode 100644 index 000000000..43bbacdb5 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemoveAllPushNotificationsWithDefaultToAPNSPushType.json @@ -0,0 +1,272 @@ +[ + { + "id" : "9B673B1F-3021-42D8-8C17-27778369A1CE", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns" + }, + "type" : 0 + }, + { + "id" : "9B673B1F-3021-42D8-8C17-27778369A1CE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:03 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "21", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9B673B1F-3021-42D8-8C17-27778369A1CE", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJSZW1vdmVkIERldmljZSJd" + }, + "type" : 2 + }, + { + "id" : "9B673B1F-3021-42D8-8C17-27778369A1CE", + "type" : 4 + }, + { + "id" : "9C7E8B04-EBB1-4406-B5E5-8F949E3B6FC0", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=apns&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "9C7E8B04-EBB1-4406-B5E5-8F949E3B6FC0", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=apns&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:03 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "24", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9C7E8B04-EBB1-4406-B5E5-8F949E3B6FC0", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJNb2RpZmllZCBDaGFubmVscyJd" + }, + "type" : 2 + }, + { + "id" : "9C7E8B04-EBB1-4406-B5E5-8F949E3B6FC0", + "type" : 4 + }, + { + "id" : "8D8B00F6-29FD-4CDC-AAB5-80586FCE2F05", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns" + }, + "type" : 0 + }, + { + "id" : "8D8B00F6-29FD-4CDC-AAB5-80586FCE2F05", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:04 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "62", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "8D8B00F6-29FD-4CDC-AAB5-80586FCE2F05", + "data" : { + "cls" : "NSData", + "base64" : "WyJ0ZXN0LWNoYW5uZWwxIiwgInRlc3QtY2hhbm5lbDIiXQ==" + }, + "type" : 2 + }, + { + "id" : "8D8B00F6-29FD-4CDC-AAB5-80586FCE2F05", + "type" : 4 + }, + { + "id" : "700515A6-284D-4F9C-BFEA-B6611FFB8584", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns" + }, + "type" : 0 + }, + { + "id" : "700515A6-284D-4F9C-BFEA-B6611FFB8584", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:04 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "21", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "700515A6-284D-4F9C-BFEA-B6611FFB8584", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJSZW1vdmVkIERldmljZSJd" + }, + "type" : 2 + }, + { + "id" : "700515A6-284D-4F9C-BFEA-B6611FFB8584", + "type" : 4 + }, + { + "id" : "F9248F9A-10AE-498E-8AAC-F769CA50551B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns" + }, + "type" : 0 + }, + { + "id" : "F9248F9A-10AE-498E-8AAC-F769CA50551B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:04 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "2", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F9248F9A-10AE-498E-8AAC-F769CA50551B", + "data" : { + "cls" : "NSData", + "base64" : "W10=" + }, + "type" : 2 + }, + { + "id" : "F9248F9A-10AE-498E-8AAC-F769CA50551B", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemoveAllPushNotificationsWithFCMPushType.json b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemoveAllPushNotificationsWithFCMPushType.json new file mode 100644 index 000000000..d7725e845 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemoveAllPushNotificationsWithFCMPushType.json @@ -0,0 +1,272 @@ +[ + { + "id" : "090CECB7-626D-4B4C-97B9-E78EDE5AAB9E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm" + }, + "type" : 0 + }, + { + "id" : "090CECB7-626D-4B4C-97B9-E78EDE5AAB9E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:06 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "21", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "090CECB7-626D-4B4C-97B9-E78EDE5AAB9E", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJSZW1vdmVkIERldmljZSJd" + }, + "type" : 2 + }, + { + "id" : "090CECB7-626D-4B4C-97B9-E78EDE5AAB9E", + "type" : 4 + }, + { + "id" : "C8E9BF53-FE5A-4243-BDB3-6DDF6B182FFD", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=gcm&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "C8E9BF53-FE5A-4243-BDB3-6DDF6B182FFD", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=gcm&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:06 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "24", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C8E9BF53-FE5A-4243-BDB3-6DDF6B182FFD", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJNb2RpZmllZCBDaGFubmVscyJd" + }, + "type" : 2 + }, + { + "id" : "C8E9BF53-FE5A-4243-BDB3-6DDF6B182FFD", + "type" : 4 + }, + { + "id" : "2A12CBF9-6234-44DC-B2E9-64E4EA6BE187", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm" + }, + "type" : 0 + }, + { + "id" : "2A12CBF9-6234-44DC-B2E9-64E4EA6BE187", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:07 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "62", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "2A12CBF9-6234-44DC-B2E9-64E4EA6BE187", + "data" : { + "cls" : "NSData", + "base64" : "WyJ0ZXN0LWNoYW5uZWwxIiwgInRlc3QtY2hhbm5lbDIiXQ==" + }, + "type" : 2 + }, + { + "id" : "2A12CBF9-6234-44DC-B2E9-64E4EA6BE187", + "type" : 4 + }, + { + "id" : "EA4921FC-4C2F-4C28-96D9-FCFDCEF10F0B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm" + }, + "type" : 0 + }, + { + "id" : "EA4921FC-4C2F-4C28-96D9-FCFDCEF10F0B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:07 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "21", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "EA4921FC-4C2F-4C28-96D9-FCFDCEF10F0B", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJSZW1vdmVkIERldmljZSJd" + }, + "type" : 2 + }, + { + "id" : "EA4921FC-4C2F-4C28-96D9-FCFDCEF10F0B", + "type" : 4 + }, + { + "id" : "0576ABA8-EF59-4EE9-91CE-87882BABEC50", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm" + }, + "type" : 0 + }, + { + "id" : "0576ABA8-EF59-4EE9-91CE-87882BABEC50", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:08 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "2", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "0576ABA8-EF59-4EE9-91CE-87882BABEC50", + "data" : { + "cls" : "NSData", + "base64" : "W10=" + }, + "type" : 2 + }, + { + "id" : "0576ABA8-EF59-4EE9-91CE-87882BABEC50", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemoveAllPushNotificationsWithMPNSPushType.json b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemoveAllPushNotificationsWithMPNSPushType.json new file mode 100644 index 000000000..17a090ef3 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemoveAllPushNotificationsWithMPNSPushType.json @@ -0,0 +1,272 @@ +[ + { + "id" : "6561E50F-7DD3-417B-83E2-00A162A8E7ED", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=mpns" + }, + "type" : 0 + }, + { + "id" : "6561E50F-7DD3-417B-83E2-00A162A8E7ED", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=mpns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:09 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "21", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "6561E50F-7DD3-417B-83E2-00A162A8E7ED", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJSZW1vdmVkIERldmljZSJd" + }, + "type" : 2 + }, + { + "id" : "6561E50F-7DD3-417B-83E2-00A162A8E7ED", + "type" : 4 + }, + { + "id" : "14D514D7-BC14-4172-9B71-FE2AE4EC48ED", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=mpns&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "14D514D7-BC14-4172-9B71-FE2AE4EC48ED", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=mpns&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:09 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "24", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "14D514D7-BC14-4172-9B71-FE2AE4EC48ED", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJNb2RpZmllZCBDaGFubmVscyJd" + }, + "type" : 2 + }, + { + "id" : "14D514D7-BC14-4172-9B71-FE2AE4EC48ED", + "type" : 4 + }, + { + "id" : "FDF098CA-C144-48D1-A402-ECDFBAAA0D6F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=mpns" + }, + "type" : 0 + }, + { + "id" : "FDF098CA-C144-48D1-A402-ECDFBAAA0D6F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=mpns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:10 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "62", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "FDF098CA-C144-48D1-A402-ECDFBAAA0D6F", + "data" : { + "cls" : "NSData", + "base64" : "WyJ0ZXN0LWNoYW5uZWwyIiwgInRlc3QtY2hhbm5lbDEiXQ==" + }, + "type" : 2 + }, + { + "id" : "FDF098CA-C144-48D1-A402-ECDFBAAA0D6F", + "type" : 4 + }, + { + "id" : "22149D3D-7FB2-4C3B-8073-7A93B35262E0", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=mpns" + }, + "type" : 0 + }, + { + "id" : "22149D3D-7FB2-4C3B-8073-7A93B35262E0", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=mpns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:11 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "21", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "22149D3D-7FB2-4C3B-8073-7A93B35262E0", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJSZW1vdmVkIERldmljZSJd" + }, + "type" : 2 + }, + { + "id" : "22149D3D-7FB2-4C3B-8073-7A93B35262E0", + "type" : 4 + }, + { + "id" : "B2523D0E-7DBD-4D1C-AD5D-0679845C8839", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=mpns" + }, + "type" : 0 + }, + { + "id" : "B2523D0E-7DBD-4D1C-AD5D-0679845C8839", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=mpns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:11 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "2", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B2523D0E-7DBD-4D1C-AD5D-0679845C8839", + "data" : { + "cls" : "NSData", + "base64" : "W10=" + }, + "type" : 2 + }, + { + "id" : "B2523D0E-7DBD-4D1C-AD5D-0679845C8839", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemovePushNotificationsAndReceiveStatusWithExpectedOperationAndCategory.json b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemovePushNotificationsAndReceiveStatusWithExpectedOperationAndCategory.json new file mode 100644 index 000000000..7181e651f --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemovePushNotificationsAndReceiveStatusWithExpectedOperationAndCategory.json @@ -0,0 +1,272 @@ +[ + { + "id" : "FC35E367-A786-42B7-B3DC-86017AC46EE7", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns" + }, + "type" : 0 + }, + { + "id" : "FC35E367-A786-42B7-B3DC-86017AC46EE7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:12 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "21", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "FC35E367-A786-42B7-B3DC-86017AC46EE7", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJSZW1vdmVkIERldmljZSJd" + }, + "type" : 2 + }, + { + "id" : "FC35E367-A786-42B7-B3DC-86017AC46EE7", + "type" : 4 + }, + { + "id" : "8ABBF903-FA20-46A0-94DA-9C0416E81097", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=apns&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "8ABBF903-FA20-46A0-94DA-9C0416E81097", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=apns&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:12 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "24", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "8ABBF903-FA20-46A0-94DA-9C0416E81097", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJNb2RpZmllZCBDaGFubmVscyJd" + }, + "type" : 2 + }, + { + "id" : "8ABBF903-FA20-46A0-94DA-9C0416E81097", + "type" : 4 + }, + { + "id" : "E2546CCC-343E-4E24-9395-675502301D36", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns" + }, + "type" : 0 + }, + { + "id" : "E2546CCC-343E-4E24-9395-675502301D36", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:14 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "62", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E2546CCC-343E-4E24-9395-675502301D36", + "data" : { + "cls" : "NSData", + "base64" : "WyJ0ZXN0LWNoYW5uZWwyIiwgInRlc3QtY2hhbm5lbDEiXQ==" + }, + "type" : 2 + }, + { + "id" : "E2546CCC-343E-4E24-9395-675502301D36", + "type" : 4 + }, + { + "id" : "F8A5194C-9EE9-4E46-AAFC-98192F040954", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?remove=test-channel1&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=apns" + }, + "type" : 0 + }, + { + "id" : "F8A5194C-9EE9-4E46-AAFC-98192F040954", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?remove=test-channel1&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:14 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "24", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F8A5194C-9EE9-4E46-AAFC-98192F040954", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJNb2RpZmllZCBDaGFubmVscyJd" + }, + "type" : 2 + }, + { + "id" : "F8A5194C-9EE9-4E46-AAFC-98192F040954", + "type" : 4 + }, + { + "id" : "1A1D8541-3E90-4A6E-A204-87AD68873441", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns" + }, + "type" : 0 + }, + { + "id" : "1A1D8541-3E90-4A6E-A204-87AD68873441", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:14 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "31", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "1A1D8541-3E90-4A6E-A204-87AD68873441", + "data" : { + "cls" : "NSData", + "base64" : "WyJ0ZXN0LWNoYW5uZWwyIl0=" + }, + "type" : 2 + }, + { + "id" : "1A1D8541-3E90-4A6E-A204-87AD68873441", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemovePushNotificationsUsingBuilderPatternInterface.json b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemovePushNotificationsUsingBuilderPatternInterface.json new file mode 100644 index 000000000..558d6b8af --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemovePushNotificationsUsingBuilderPatternInterface.json @@ -0,0 +1,272 @@ +[ + { + "id" : "3BA674C3-87B1-49C4-BCFA-1236DA4C5288", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm" + }, + "type" : 0 + }, + { + "id" : "3BA674C3-87B1-49C4-BCFA-1236DA4C5288", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:15 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "21", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "3BA674C3-87B1-49C4-BCFA-1236DA4C5288", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJSZW1vdmVkIERldmljZSJd" + }, + "type" : 2 + }, + { + "id" : "3BA674C3-87B1-49C4-BCFA-1236DA4C5288", + "type" : 4 + }, + { + "id" : "52E4B212-2C8F-4D28-A882-C594A6D25775", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=gcm&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "52E4B212-2C8F-4D28-A882-C594A6D25775", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=gcm&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:16 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "24", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "52E4B212-2C8F-4D28-A882-C594A6D25775", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJNb2RpZmllZCBDaGFubmVscyJd" + }, + "type" : 2 + }, + { + "id" : "52E4B212-2C8F-4D28-A882-C594A6D25775", + "type" : 4 + }, + { + "id" : "46B9534B-DBA3-440F-B79A-0CECD0F31C6C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm" + }, + "type" : 0 + }, + { + "id" : "46B9534B-DBA3-440F-B79A-0CECD0F31C6C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:17 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "62", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "46B9534B-DBA3-440F-B79A-0CECD0F31C6C", + "data" : { + "cls" : "NSData", + "base64" : "WyJ0ZXN0LWNoYW5uZWwxIiwgInRlc3QtY2hhbm5lbDIiXQ==" + }, + "type" : 2 + }, + { + "id" : "46B9534B-DBA3-440F-B79A-0CECD0F31C6C", + "type" : 4 + }, + { + "id" : "3BF43B1A-7BA6-4C59-88B7-53B876CDA56F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?remove=test-channel1&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=serhii&type=gcm" + }, + "type" : 0 + }, + { + "id" : "3BF43B1A-7BA6-4C59-88B7-53B876CDA56F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?remove=test-channel1&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=serhii&type=gcm", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:18 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "24", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "3BF43B1A-7BA6-4C59-88B7-53B876CDA56F", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJNb2RpZmllZCBDaGFubmVscyJd" + }, + "type" : 2 + }, + { + "id" : "3BF43B1A-7BA6-4C59-88B7-53B876CDA56F", + "type" : 4 + }, + { + "id" : "91913704-BAE1-4A93-BD35-23A8AF3C0CA2", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm" + }, + "type" : 0 + }, + { + "id" : "91913704-BAE1-4A93-BD35-23A8AF3C0CA2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:18 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "31", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "91913704-BAE1-4A93-BD35-23A8AF3C0CA2", + "data" : { + "cls" : "NSData", + "base64" : "WyJ0ZXN0LWNoYW5uZWwyIl0=" + }, + "type" : 2 + }, + { + "id" : "91913704-BAE1-4A93-BD35-23A8AF3C0CA2", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemovePushNotificationsUsingV2APIAndBundleIdentifierAsDefaultTopicWhenTopicIsNil.json b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemovePushNotificationsUsingV2APIAndBundleIdentifierAsDefaultTopicWhenTopicIsNil.json new file mode 100644 index 000000000..645b500d3 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemovePushNotificationsUsingV2APIAndBundleIdentifierAsDefaultTopicWhenTopicIsNil.json @@ -0,0 +1,272 @@ +[ + { + "id" : "08F3CC36-7E72-4187-9AFF-579345564B4A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.apple.dt.xctest.tool&type=apns" + }, + "type" : 0 + }, + { + "id" : "08F3CC36-7E72-4187-9AFF-579345564B4A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.apple.dt.xctest.tool&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:20 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "21", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "08F3CC36-7E72-4187-9AFF-579345564B4A", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJSZW1vdmVkIERldmljZSJd" + }, + "type" : 2 + }, + { + "id" : "08F3CC36-7E72-4187-9AFF-579345564B4A", + "type" : 4 + }, + { + "id" : "D0608300-6BCD-4EF8-A87E-D2E5600C3A9A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.apple.dt.xctest.tool&type=apns&uuid=Serhii&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "D0608300-6BCD-4EF8-A87E-D2E5600C3A9A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.apple.dt.xctest.tool&type=apns&uuid=Serhii&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:20 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "24", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D0608300-6BCD-4EF8-A87E-D2E5600C3A9A", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJNb2RpZmllZCBDaGFubmVscyJd" + }, + "type" : 2 + }, + { + "id" : "D0608300-6BCD-4EF8-A87E-D2E5600C3A9A", + "type" : 4 + }, + { + "id" : "BF09311C-1DDC-4ECC-92D3-6085ABF4D476", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.apple.dt.xctest.tool&type=apns" + }, + "type" : 0 + }, + { + "id" : "BF09311C-1DDC-4ECC-92D3-6085ABF4D476", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.apple.dt.xctest.tool&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:21 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "62", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "BF09311C-1DDC-4ECC-92D3-6085ABF4D476", + "data" : { + "cls" : "NSData", + "base64" : "WyJ0ZXN0LWNoYW5uZWwyIiwgInRlc3QtY2hhbm5lbDEiXQ==" + }, + "type" : 2 + }, + { + "id" : "BF09311C-1DDC-4ECC-92D3-6085ABF4D476", + "type" : 4 + }, + { + "id" : "0B67FD72-9308-46BD-A480-7BEC2AAE32CE", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?remove=test-channel1&uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.apple.dt.xctest.tool&type=apns" + }, + "type" : 0 + }, + { + "id" : "0B67FD72-9308-46BD-A480-7BEC2AAE32CE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?remove=test-channel1&uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.apple.dt.xctest.tool&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:21 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "24", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "0B67FD72-9308-46BD-A480-7BEC2AAE32CE", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJNb2RpZmllZCBDaGFubmVscyJd" + }, + "type" : 2 + }, + { + "id" : "0B67FD72-9308-46BD-A480-7BEC2AAE32CE", + "type" : 4 + }, + { + "id" : "3D34833E-62C1-4689-927D-5AB161FD8402", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.apple.dt.xctest.tool&type=apns" + }, + "type" : 0 + }, + { + "id" : "3D34833E-62C1-4689-927D-5AB161FD8402", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.apple.dt.xctest.tool&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:21 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "31", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "3D34833E-62C1-4689-927D-5AB161FD8402", + "data" : { + "cls" : "NSData", + "base64" : "WyJ0ZXN0LWNoYW5uZWwyIl0=" + }, + "type" : 2 + }, + { + "id" : "3D34833E-62C1-4689-927D-5AB161FD8402", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemovePushNotificationsUsingV2APIAndReceiveStatusWithExpectedOperationAndCategory.json b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemovePushNotificationsUsingV2APIAndReceiveStatusWithExpectedOperationAndCategory.json new file mode 100644 index 000000000..23c0a068f --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemovePushNotificationsUsingV2APIAndReceiveStatusWithExpectedOperationAndCategory.json @@ -0,0 +1,272 @@ +[ + { + "id" : "1AF1A41A-9555-4A4E-A9F9-B286FAC1E201", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns" + }, + "type" : 0 + }, + { + "id" : "1AF1A41A-9555-4A4E-A9F9-B286FAC1E201", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:23 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "21", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "1AF1A41A-9555-4A4E-A9F9-B286FAC1E201", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJSZW1vdmVkIERldmljZSJd" + }, + "type" : 2 + }, + { + "id" : "1AF1A41A-9555-4A4E-A9F9-B286FAC1E201", + "type" : 4 + }, + { + "id" : "1D280957-9503-470E-A6ED-942E602F809C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns&uuid=Serhii&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "1D280957-9503-470E-A6ED-942E602F809C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns&uuid=Serhii&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:23 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "24", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "1D280957-9503-470E-A6ED-942E602F809C", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJNb2RpZmllZCBDaGFubmVscyJd" + }, + "type" : 2 + }, + { + "id" : "1D280957-9503-470E-A6ED-942E602F809C", + "type" : 4 + }, + { + "id" : "FFFB029D-6B13-4214-983B-66C87ED0EC1E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns" + }, + "type" : 0 + }, + { + "id" : "FFFB029D-6B13-4214-983B-66C87ED0EC1E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:24 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "62", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "FFFB029D-6B13-4214-983B-66C87ED0EC1E", + "data" : { + "cls" : "NSData", + "base64" : "WyJ0ZXN0LWNoYW5uZWwxIiwgInRlc3QtY2hhbm5lbDIiXQ==" + }, + "type" : 2 + }, + { + "id" : "FFFB029D-6B13-4214-983B-66C87ED0EC1E", + "type" : 4 + }, + { + "id" : "EE564A12-3289-45B2-8287-D22495931A4A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?remove=test-channel1&uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns" + }, + "type" : 0 + }, + { + "id" : "EE564A12-3289-45B2-8287-D22495931A4A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?remove=test-channel1&uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:24 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "24", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "EE564A12-3289-45B2-8287-D22495931A4A", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJNb2RpZmllZCBDaGFubmVscyJd" + }, + "type" : 2 + }, + { + "id" : "EE564A12-3289-45B2-8287-D22495931A4A", + "type" : 4 + }, + { + "id" : "41C6B24C-A17F-431A-BF3A-0BE1C2826DA6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns" + }, + "type" : 0 + }, + { + "id" : "41C6B24C-A17F-431A-BF3A-0BE1C2826DA6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/push\/sub-key\/demo\/devices-apns2\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&environment=development&pnsdk=PubNub-ObjC-iOS\/4.x.x&topic=com.pubnub.test-topic&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:24 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "31", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "41C6B24C-A17F-431A-BF3A-0BE1C2826DA6", + "data" : { + "cls" : "NSData", + "base64" : "WyJ0ZXN0LWNoYW5uZWwyIl0=" + }, + "type" : 2 + }, + { + "id" : "41C6B24C-A17F-431A-BF3A-0BE1C2826DA6", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemovePushNotificationsWithDefaultToAPNSPushType.json b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemovePushNotificationsWithDefaultToAPNSPushType.json new file mode 100644 index 000000000..b07899d95 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemovePushNotificationsWithDefaultToAPNSPushType.json @@ -0,0 +1,56 @@ +[ + { + "id" : "2F8A53F4-8C60-439E-82D3-C58AE5A5AC96", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?remove=test-channel1,test-channel2&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=apns" + }, + "type" : 0 + }, + { + "id" : "2F8A53F4-8C60-439E-82D3-C58AE5A5AC96", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?remove=test-channel1,test-channel2&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=apns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:25 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "24", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "2F8A53F4-8C60-439E-82D3-C58AE5A5AC96", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJNb2RpZmllZCBDaGFubmVscyJd" + }, + "type" : 2 + }, + { + "id" : "2F8A53F4-8C60-439E-82D3-C58AE5A5AC96", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemovePushNotificationsWithFCMPushType.json b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemovePushNotificationsWithFCMPushType.json new file mode 100644 index 000000000..23d3a7873 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemovePushNotificationsWithFCMPushType.json @@ -0,0 +1,272 @@ +[ + { + "id" : "CBF00B78-C282-473B-9DF8-D5FA1B46AEF0", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm" + }, + "type" : 0 + }, + { + "id" : "CBF00B78-C282-473B-9DF8-D5FA1B46AEF0", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:26 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "21", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "CBF00B78-C282-473B-9DF8-D5FA1B46AEF0", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJSZW1vdmVkIERldmljZSJd" + }, + "type" : 2 + }, + { + "id" : "CBF00B78-C282-473B-9DF8-D5FA1B46AEF0", + "type" : 4 + }, + { + "id" : "409B0F5B-2C21-4830-B911-E0E22CDB1DEE", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=gcm&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "409B0F5B-2C21-4830-B911-E0E22CDB1DEE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=gcm&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:27 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "24", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "409B0F5B-2C21-4830-B911-E0E22CDB1DEE", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJNb2RpZmllZCBDaGFubmVscyJd" + }, + "type" : 2 + }, + { + "id" : "409B0F5B-2C21-4830-B911-E0E22CDB1DEE", + "type" : 4 + }, + { + "id" : "4B9652FA-F064-4009-A01F-680243DE23DB", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm" + }, + "type" : 0 + }, + { + "id" : "4B9652FA-F064-4009-A01F-680243DE23DB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:28 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "62", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "4B9652FA-F064-4009-A01F-680243DE23DB", + "data" : { + "cls" : "NSData", + "base64" : "WyJ0ZXN0LWNoYW5uZWwyIiwgInRlc3QtY2hhbm5lbDEiXQ==" + }, + "type" : 2 + }, + { + "id" : "4B9652FA-F064-4009-A01F-680243DE23DB", + "type" : 4 + }, + { + "id" : "469463F0-C414-41C6-8241-1197CE1DB2AB", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?remove=test-channel1&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=gcm" + }, + "type" : 0 + }, + { + "id" : "469463F0-C414-41C6-8241-1197CE1DB2AB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?remove=test-channel1&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=gcm", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:28 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "24", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "469463F0-C414-41C6-8241-1197CE1DB2AB", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJNb2RpZmllZCBDaGFubmVscyJd" + }, + "type" : 2 + }, + { + "id" : "469463F0-C414-41C6-8241-1197CE1DB2AB", + "type" : 4 + }, + { + "id" : "2E088CB7-B117-4107-91AE-F3DC48AEEEB9", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm" + }, + "type" : 0 + }, + { + "id" : "2E088CB7-B117-4107-91AE-F3DC48AEEEB9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:28 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "31", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "2E088CB7-B117-4107-91AE-F3DC48AEEEB9", + "data" : { + "cls" : "NSData", + "base64" : "WyJ0ZXN0LWNoYW5uZWwyIl0=" + }, + "type" : 2 + }, + { + "id" : "2E088CB7-B117-4107-91AE-F3DC48AEEEB9", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemovePushNotificationsWithMPNSPushType.json b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemovePushNotificationsWithMPNSPushType.json new file mode 100644 index 000000000..0b8d68f34 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldRemovePushNotificationsWithMPNSPushType.json @@ -0,0 +1,272 @@ +[ + { + "id" : "7A3874A8-EA52-4512-BFCA-3EA06C623309", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=mpns" + }, + "type" : 0 + }, + { + "id" : "7A3874A8-EA52-4512-BFCA-3EA06C623309", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=mpns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:30 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "21", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "7A3874A8-EA52-4512-BFCA-3EA06C623309", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJSZW1vdmVkIERldmljZSJd" + }, + "type" : 2 + }, + { + "id" : "7A3874A8-EA52-4512-BFCA-3EA06C623309", + "type" : 4 + }, + { + "id" : "9CB38737-A164-498B-A97D-BFA9EC062F62", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=mpns&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "9CB38737-A164-498B-A97D-BFA9EC062F62", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=mpns&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:30 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "24", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9CB38737-A164-498B-A97D-BFA9EC062F62", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJNb2RpZmllZCBDaGFubmVscyJd" + }, + "type" : 2 + }, + { + "id" : "9CB38737-A164-498B-A97D-BFA9EC062F62", + "type" : 4 + }, + { + "id" : "57546770-374A-4362-A223-489C03B9F45D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=mpns" + }, + "type" : 0 + }, + { + "id" : "57546770-374A-4362-A223-489C03B9F45D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=mpns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:31 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "62", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "57546770-374A-4362-A223-489C03B9F45D", + "data" : { + "cls" : "NSData", + "base64" : "WyJ0ZXN0LWNoYW5uZWwyIiwgInRlc3QtY2hhbm5lbDEiXQ==" + }, + "type" : 2 + }, + { + "id" : "57546770-374A-4362-A223-489C03B9F45D", + "type" : 4 + }, + { + "id" : "C968B455-A264-4432-A701-336E1F4824EF", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?remove=test-channel1&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=mpns" + }, + "type" : 0 + }, + { + "id" : "C968B455-A264-4432-A701-336E1F4824EF", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?remove=test-channel1&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=mpns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:31 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "24", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C968B455-A264-4432-A701-336E1F4824EF", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJNb2RpZmllZCBDaGFubmVscyJd" + }, + "type" : 2 + }, + { + "id" : "C968B455-A264-4432-A701-336E1F4824EF", + "type" : 4 + }, + { + "id" : "A2644A19-BA42-42DC-9982-8EC80A55D6A9", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=mpns" + }, + "type" : 0 + }, + { + "id" : "A2644A19-BA42-42DC-9982-8EC80A55D6A9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=mpns", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:31 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "31", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "A2644A19-BA42-42DC-9982-8EC80A55D6A9", + "data" : { + "cls" : "NSData", + "base64" : "WyJ0ZXN0LWNoYW5uZWwyIl0=" + }, + "type" : 2 + }, + { + "id" : "A2644A19-BA42-42DC-9982-8EC80A55D6A9", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldShouldAddPushNotificationsUsingBuilderPatternInterface.json b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldShouldAddPushNotificationsUsingBuilderPatternInterface.json new file mode 100644 index 000000000..f932dfedc --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldShouldAddPushNotificationsUsingBuilderPatternInterface.json @@ -0,0 +1,164 @@ +[ + { + "id" : "34138EFF-59CD-4322-8F5B-E07DC12334E3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm" + }, + "type" : 0 + }, + { + "id" : "34138EFF-59CD-4322-8F5B-E07DC12334E3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:33 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "21", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "34138EFF-59CD-4322-8F5B-E07DC12334E3", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJSZW1vdmVkIERldmljZSJd" + }, + "type" : 2 + }, + { + "id" : "34138EFF-59CD-4322-8F5B-E07DC12334E3", + "type" : 4 + }, + { + "id" : "F51B9D63-8486-4FFE-AFFF-9D3703E3D914", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=serhii&type=gcm&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "F51B9D63-8486-4FFE-AFFF-9D3703E3D914", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=serhii&type=gcm&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:33 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "24", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F51B9D63-8486-4FFE-AFFF-9D3703E3D914", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJNb2RpZmllZCBDaGFubmVscyJd" + }, + "type" : 2 + }, + { + "id" : "F51B9D63-8486-4FFE-AFFF-9D3703E3D914", + "type" : 4 + }, + { + "id" : "525C2759-CA5D-4E0B-89E2-98CB9E5144F1", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm" + }, + "type" : 0 + }, + { + "id" : "525C2759-CA5D-4E0B-89E2-98CB9E5144F1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:33 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "62", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "525C2759-CA5D-4E0B-89E2-98CB9E5144F1", + "data" : { + "cls" : "NSData", + "base64" : "WyJ0ZXN0LWNoYW5uZWwxIiwgInRlc3QtY2hhbm5lbDIiXQ==" + }, + "type" : 2 + }, + { + "id" : "525C2759-CA5D-4E0B-89E2-98CB9E5144F1", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldShouldAuditPushNotificationsUsingBuilderPatternInterface.json b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldShouldAuditPushNotificationsUsingBuilderPatternInterface.json new file mode 100644 index 000000000..25b13ab3b --- /dev/null +++ b/Tests/Support Files/Fixtures/PNPushNotificationsIntegrationTests.bundle/ItShouldShouldAuditPushNotificationsUsingBuilderPatternInterface.json @@ -0,0 +1,164 @@ +[ + { + "id" : "06677FDC-BD84-41F1-90F5-A0BF0884773F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm" + }, + "type" : 0 + }, + { + "id" : "06677FDC-BD84-41F1-90F5-A0BF0884773F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:35 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "21", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "06677FDC-BD84-41F1-90F5-A0BF0884773F", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJSZW1vdmVkIERldmljZSJd" + }, + "type" : 2 + }, + { + "id" : "06677FDC-BD84-41F1-90F5-A0BF0884773F", + "type" : 4 + }, + { + "id" : "24D3FFEE-477C-48FF-8CBD-8A1778282DCB", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=gcm&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "24D3FFEE-477C-48FF-8CBD-8A1778282DCB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&type=gcm&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:35 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "24", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "24D3FFEE-477C-48FF-8CBD-8A1778282DCB", + "data" : { + "cls" : "NSData", + "base64" : "WzEsICJNb2RpZmllZCBDaGFubmVscyJd" + }, + "type" : 2 + }, + { + "id" : "24D3FFEE-477C-48FF-8CBD-8A1778282DCB", + "type" : 4 + }, + { + "id" : "B89575CE-F57B-46BD-AB43-DBD86F0001C6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.2.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm" + }, + "type" : 0 + }, + { + "id" : "B89575CE-F57B-46BD-AB43-DBD86F0001C6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/push\/sub-key\/demo\/devices\/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&type=gcm", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Mon, 06 Jan 2020 00:26:36 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "62", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B89575CE-F57B-46BD-AB43-DBD86F0001C6", + "data" : { + "cls" : "NSData", + "base64" : "WyJ0ZXN0LWNoYW5uZWwyIiwgInRlc3QtY2hhbm5lbDEiXQ==" + }, + "type" : 2 + }, + { + "id" : "B89575CE-F57B-46BD-AB43-DBD86F0001C6", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldCreateSpaceAndReceiveStatusWithExpectedOperationAndCategoryWhenOnlySpaceAndIdentifierIsSet.json b/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldCreateSpaceAndReceiveStatusWithExpectedOperationAndCategoryWhenOnlySpaceAndIdentifierIsSet.json new file mode 100644 index 000000000..cad79573a --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldCreateSpaceAndReceiveStatusWithExpectedOperationAndCategoryWhenOnlySpaceAndIdentifierIsSet.json @@ -0,0 +1,208 @@ +[ + { + "id" : "41C54EE9-C5E0-4E41-A726-28F01E62E5A3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "41C54EE9-C5E0-4E41-A726-28F01E62E5A3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:26:34 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "41C54EE9-C5E0-4E41-A726-28F01E62E5A3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "41C54EE9-C5E0-4E41-A726-28F01E62E5A3", + "type" : 4 + }, + { + "id" : "DD4CD745-79A5-4E32-BE5B-8790E74B09DF", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "DD4CD745-79A5-4E32-BE5B-8790E74B09DF", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:26:34 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "DD4CD745-79A5-4E32-BE5B-8790E74B09DF", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "DD4CD745-79A5-4E32-BE5B-8790E74B09DF", + "type" : 4 + }, + { + "id" : "B72EE7C2-00CE-437F-A5D2-41BCCF12A5A9", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "72", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6InRlc3Qtc3BhY2UiLCJuYW1lIjoidGVzdC1zcGFjZS1uYW1lIn0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B72EE7C2-00CE-437F-A5D2-41BCCF12A5A9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:26:35 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "232", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "B72EE7C2-00CE-437F-A5D2-41BCCF12A5A9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6InRlc3Qtc3BhY2UiLCJuYW1lIjoidGVzdC1zcGFjZS1uYW1lIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6MjY6MzQuNjA5OTI4WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjI2OjM0LjYwOTkyOFoiLCJlVGFnIjoiQWZDdDU4aS9yYzJ0M1FFIn19" + }, + "type" : 2 + }, + { + "id" : "B72EE7C2-00CE-437F-A5D2-41BCCF12A5A9", + "type" : 4 + }, + { + "id" : "46A622E6-3DEA-4F1D-9A13-2A1FDC65378A", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/test-space?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "46A622E6-3DEA-4F1D-9A13-2A1FDC65378A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/test-space?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:26:35 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "46A622E6-3DEA-4F1D-9A13-2A1FDC65378A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "46A622E6-3DEA-4F1D-9A13-2A1FDC65378A", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldCreateSpaceWhenAdditionalInformationIsSet.json b/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldCreateSpaceWhenAdditionalInformationIsSet.json new file mode 100644 index 000000000..940886675 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldCreateSpaceWhenAdditionalInformationIsSet.json @@ -0,0 +1,210 @@ +[ + { + "id" : "1DA8B415-496E-458C-B774-2472D5D16A17", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1DA8B415-496E-458C-B774-2472D5D16A17", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:26:37 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "1DA8B415-496E-458C-B774-2472D5D16A17", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "1DA8B415-496E-458C-B774-2472D5D16A17", + "type" : 4 + }, + { + "id" : "77539604-8FDE-4650-8E42-B57BD580FF87", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "77539604-8FDE-4650-8E42-B57BD580FF87", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:26:38 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "77539604-8FDE-4650-8E42-B57BD580FF87", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "77539604-8FDE-4650-8E42-B57BD580FF87", + "type" : 4 + }, + { + "id" : "CF5EE775-131C-4B7B-8AE5-E7129609CFA0", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "260", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6InRlc3Qtc3BhY2UiLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMiI6InRlc3Qtc3BhY2UtbmFtZS1jdXN0b20tZGF0YS0yIiwic3BhY2UtY3VzdG9tMSI6InRlc3Qtc3BhY2UtbmFtZS1jdXN0b20tZGF0YS0xIn0sIm5hbWUiOiJ0ZXN0LXNwYWNlLW5hbWUiLCJkZXNjcmlwdGlvbiI6InRlc3Qtc3BhY2UtaW5mb3JtYXRpb24ifQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "CF5EE775-131C-4B7B-8AE5-E7129609CFA0", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:26:38 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "CF5EE775-131C-4B7B-8AE5-E7129609CFA0", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6InRlc3Qtc3BhY2UiLCJuYW1lIjoidGVzdC1zcGFjZS1uYW1lIiwiZGVzY3JpcHRpb24iOiJ0ZXN0LXNwYWNlLWluZm9ybWF0aW9uIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTEiOiJ0ZXN0LXNwYWNlLW5hbWUtY3VzdG9tLWRhdGEtMSIsInNwYWNlLWN1c3RvbTIiOiJ0ZXN0LXNwYWNlLW5hbWUtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyNjozOC4xNDYwOTRaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6MjY6MzguMTQ2MDk0WiIsImVUYWciOiJBZHo4c2JhUDRmSE1tZ0UifX0=" + }, + "type" : 2 + }, + { + "id" : "CF5EE775-131C-4B7B-8AE5-E7129609CFA0", + "type" : 4 + }, + { + "id" : "F5B824D8-038C-4BC0-AE4E-EC5152416DE7", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/test-space?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F5B824D8-038C-4BC0-AE4E-EC5152416DE7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/test-space?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:26:39 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "F5B824D8-038C-4BC0-AE4E-EC5152416DE7", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "F5B824D8-038C-4BC0-AE4E-EC5152416DE7", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldDeleteSpaceAndReceiveStatusWithExpectedOperationAndCategory.json b/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldDeleteSpaceAndReceiveStatusWithExpectedOperationAndCategory.json new file mode 100644 index 000000000..02caa1795 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldDeleteSpaceAndReceiveStatusWithExpectedOperationAndCategory.json @@ -0,0 +1,418 @@ +[ + { + "id" : "354CCE9E-61DE-49E2-A1AA-4099494FF75B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "354CCE9E-61DE-49E2-A1AA-4099494FF75B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:35:04 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "354CCE9E-61DE-49E2-A1AA-4099494FF75B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "354CCE9E-61DE-49E2-A1AA-4099494FF75B", + "type" : 4 + }, + { + "id" : "270A47B1-E06B-45D4-AABB-2316F0A3D700", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "270A47B1-E06B-45D4-AABB-2316F0A3D700", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:35:04 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "270A47B1-E06B-45D4-AABB-2316F0A3D700", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "270A47B1-E06B-45D4-AABB-2316F0A3D700", + "type" : 4 + }, + { + "id" : "98A834C7-DD1A-46BA-A208-7105A566FA58", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "98A834C7-DD1A-46BA-A208-7105A566FA58", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 13:35:05 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "98A834C7-DD1A-46BA-A208-7105A566FA58", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMzozNTowNS4xMDQ0OTVaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMTM6MzU6MDUuMTA0NDk1WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "98A834C7-DD1A-46BA-A208-7105A566FA58", + "type" : 4 + }, + { + "id" : "E862283B-D91A-49D8-950F-B44D3EE5B0AD", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E862283B-D91A-49D8-950F-B44D3EE5B0AD", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 13:35:06 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "E862283B-D91A-49D8-950F-B44D3EE5B0AD", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMzozNTowNS42ODUwMDhaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMTM6MzU6MDUuNjg1MDA4WiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "E862283B-D91A-49D8-950F-B44D3EE5B0AD", + "type" : 4 + }, + { + "id" : "9CDAECC5-EBF7-4B76-8AC1-790039924435", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9CDAECC5-EBF7-4B76-8AC1-790039924435", + "data" : { + "status" : 404, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:35:07 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "9CDAECC5-EBF7-4B76-8AC1-790039924435", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "9CDAECC5-EBF7-4B76-8AC1-790039924435", + "type" : 4 + }, + { + "id" : "9CDAECC5-EBF7-4B76-8AC1-790039924438", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9CDAECC5-EBF7-4B76-8AC1-790039924438", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:35:07 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "9CDAECC5-EBF7-4B76-8AC1-790039924438", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "9CDAECC5-EBF7-4B76-8AC1-790039924438", + "type" : 4 + }, + { + "id" : "49E44EF9-3C9D-4BA2-9B36-17EA2A0D92B2", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?count=1&pnsdk=PubNub-ObjC-iOS\/4.x.x&limit=100&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "49E44EF9-3C9D-4BA2-9B36-17EA2A0D92B2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?count=1&pnsdk=PubNub-ObjC-iOS\/4.x.x&limit=100&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:35:09 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "238", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "49E44EF9-3C9D-4BA2-9B36-17EA2A0D92B2", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGlwcGVyLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiQ2hpcHBlciIsImRlc2NyaXB0aW9uIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMzozNTowNS42ODUwMDhaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMTM6MzU6MDUuNjg1MDA4WiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9XSwidG90YWxDb3VudCI6MSwibmV4dCI6Ik1RIn0=" + }, + "type" : 2 + }, + { + "id" : "49E44EF9-3C9D-4BA2-9B36-17EA2A0D92B2", + "type" : 4 + }, + { + "id" : "859F2EA1-6160-4ABC-A164-B335065FFB54", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "859F2EA1-6160-4ABC-A164-B335065FFB54", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:35:09 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "859F2EA1-6160-4ABC-A164-B335065FFB54", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "859F2EA1-6160-4ABC-A164-B335065FFB54", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldDeleteSpaceAndTriggerDeleteEventToSpaceChannel.json b/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldDeleteSpaceAndTriggerDeleteEventToSpaceChannel.json new file mode 100644 index 000000000..5f3f8f9e6 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldDeleteSpaceAndTriggerDeleteEventToSpaceChannel.json @@ -0,0 +1,559 @@ +[ + { + "id" : "C672E94A-966E-478A-A578-1310F589C37E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C672E94A-966E-478A-A578-1310F589C37E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:27:03 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "C672E94A-966E-478A-A578-1310F589C37E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "C672E94A-966E-478A-A578-1310F589C37E", + "type" : 4 + }, + { + "id" : "DA5704BB-4B70-41C7-AE69-891A5511E3D2", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "DA5704BB-4B70-41C7-AE69-891A5511E3D2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:27:03 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "DA5704BB-4B70-41C7-AE69-891A5511E3D2", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "DA5704BB-4B70-41C7-AE69-891A5511E3D2", + "type" : 4 + }, + { + "id" : "1B0E4B89-C7E4-4292-AE75-F509C436745D", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1B0E4B89-C7E4-4292-AE75-F509C436745D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:27:04 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "1B0E4B89-C7E4-4292-AE75-F509C436745D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyNzowNC4xMzc2MjdaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6Mjc6MDQuMTM3NjI3WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "1B0E4B89-C7E4-4292-AE75-F509C436745D", + "type" : 4 + }, + { + "id" : "5DAA0318-5F85-4995-8CCE-C8E0E2A5586A", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "5DAA0318-5F85-4995-8CCE-C8E0E2A5586A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:27:05 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "5DAA0318-5F85-4995-8CCE-C8E0E2A5586A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyNzowNC43MTY4NDJaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6Mjc6MDQuNzE2ODQyWiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "5DAA0318-5F85-4995-8CCE-C8E0E2A5586A", + "type" : 4 + }, + { + "id" : "E8BEA92A-47DD-434A-9010-A22EFB16518D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&tt=0&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E8BEA92A-47DD-434A-9010-A22EFB16518D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&tt=0&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 06:27:06 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E8BEA92A-47DD-434A-9010-A22EFB16518D", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDU2ODI2NDE2NDIxMyIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "E8BEA92A-47DD-434A-9010-A22EFB16518D", + "type" : 4 + }, + { + "id" : "4AA48E78-034D-4623-9EBF-61F4556131E7", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810568264164213&tr=12" + }, + "type" : 0 + }, + { + "id" : "EF265DD0-6AB4-417E-8EFA-C5AF2FFAE422", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "4AA48E78-034D-4623-9EBF-61F4556131E7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810568264164213&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 06:27:07 GMT", + "Content-Length" : "325", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "4AA48E78-034D-4623-9EBF-61F4556131E7", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDU2ODI3MDk5NDE3OSIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJlIjoyLCJwIjp7InQiOiIxNTgxMDU2ODI3MDk4NDY4MSIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIiwiZCI6eyJzb3VyY2UiOiJvYmplY3RzIiwidmVyc2lvbiI6IjEuMCIsImV2ZW50IjoiZGVsZXRlIiwidHlwZSI6InNwYWNlIiwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciJ9fX1dfQ==" + }, + "type" : 2 + }, + { + "id" : "4AA48E78-034D-4623-9EBF-61F4556131E7", + "type" : 4 + }, + { + "id" : "EF265DD0-6AB4-417E-8EFA-C5AF2FFAE422", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:27:07 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "EF265DD0-6AB4-417E-8EFA-C5AF2FFAE422", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "EF265DD0-6AB4-417E-8EFA-C5AF2FFAE422", + "type" : 4 + }, + { + "id" : "E031146D-4E50-4D1D-92BE-73ADDCD8EDCE", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810568270994179&tr=12" + }, + "type" : 0 + }, + { + "id" : "E031146D-4E50-4D1D-92BE-73ADDCD8EDCE", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810568270994179&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810568270994179&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "E72B42DF-BFAC-498C-BDC9-69CD87C6263F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/Chanted-space-identifier\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E72B42DF-BFAC-498C-BDC9-69CD87C6263F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/Chanted-space-identifier\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Fri, 07 Feb 2020 06:27:07 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E72B42DF-BFAC-498C-BDC9-69CD87C6263F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "E72B42DF-BFAC-498C-BDC9-69CD87C6263F", + "type" : 4 + }, + { + "id" : "F1945AF6-C07B-44BE-920D-94AA65CEF93B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?count=1&pnsdk=PubNub-ObjC-iOS\/4.x.x&limit=100&uuid=serhii" + }, + "type" : 0 + }, + { + "id" : "F1945AF6-C07B-44BE-920D-94AA65CEF93B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?count=1&pnsdk=PubNub-ObjC-iOS\/4.x.x&limit=100&uuid=serhii", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:27:08 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "238", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "F1945AF6-C07B-44BE-920D-94AA65CEF93B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGlwcGVyLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiQ2hpcHBlciIsImRlc2NyaXB0aW9uIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyNzowNC43MTY4NDJaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6Mjc6MDQuNzE2ODQyWiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9XSwidG90YWxDb3VudCI6MSwibmV4dCI6Ik1RIn0=" + }, + "type" : 2 + }, + { + "id" : "F1945AF6-C07B-44BE-920D-94AA65CEF93B", + "type" : 4 + }, + { + "id" : "4CF29758-AB38-41B8-9979-3E4FD3777BB3", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "4CF29758-AB38-41B8-9979-3E4FD3777BB3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:27:09 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "4CF29758-AB38-41B8-9979-3E4FD3777BB3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "4CF29758-AB38-41B8-9979-3E4FD3777BB3", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldFetchAllSpacesAndReceiveResultWithExpectedOperation.json b/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldFetchAllSpacesAndReceiveResultWithExpectedOperation.json new file mode 100644 index 000000000..a39e44691 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldFetchAllSpacesAndReceiveResultWithExpectedOperation.json @@ -0,0 +1,854 @@ +[ + { + "id" : "6F785882-D28D-4A08-A127-210809B436EC", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "6F785882-D28D-4A08-A127-210809B436EC", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:36:06 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "6F785882-D28D-4A08-A127-210809B436EC", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "6F785882-D28D-4A08-A127-210809B436EC", + "type" : 4 + }, + { + "id" : "8B308297-0968-4027-A85D-9240D30D94C4", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "8B308297-0968-4027-A85D-9240D30D94C4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:36:06 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "8B308297-0968-4027-A85D-9240D30D94C4", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "8B308297-0968-4027-A85D-9240D30D94C4", + "type" : 4 + }, + { + "id" : "3AC7234D-CA9D-4589-99B0-DFE37010BED9", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3AC7234D-CA9D-4589-99B0-DFE37010BED9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 13:36:07 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "3AC7234D-CA9D-4589-99B0-DFE37010BED9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMzozNjowNi45NjU1OFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMzozNjowNi45NjU1OFoiLCJlVGFnIjoiQWNXajlPVFF3TWFtcFFFIn19" + }, + "type" : 2 + }, + { + "id" : "3AC7234D-CA9D-4589-99B0-DFE37010BED9", + "type" : 4 + }, + { + "id" : "26A565F9-6310-48FA-A13A-22ECA0E33FB8", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "26A565F9-6310-48FA-A13A-22ECA0E33FB8", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 13:36:08 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "26A565F9-6310-48FA-A13A-22ECA0E33FB8", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMzozNjowNy42MzAzNDhaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMTM6MzY6MDcuNjMwMzQ4WiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "26A565F9-6310-48FA-A13A-22ECA0E33FB8", + "type" : 4 + }, + { + "id" : "C55956AC-125D-4185-AB81-0B482751CBFB", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "159", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNvbHN0aWNlLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiU29sc3RpY2UiLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMiI6IlNvbHN0aWNlLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiU29sc3RpY2UtY3VzdG9tLWRhdGEtMSJ9fQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C55956AC-125D-4185-AB81-0B482751CBFB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 13:36:08 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "C55956AC-125D-4185-AB81-0B482751CBFB", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNvbHN0aWNlLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiU29sc3RpY2UiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTEiOiJTb2xzdGljZS1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IlNvbHN0aWNlLWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMTM6MzY6MDguMjQ1NDk0WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDEzOjM2OjA4LjI0NTQ5NFoiLCJlVGFnIjoiQWN1QnhMcTB4TU9hb3dFIn19" + }, + "type" : 2 + }, + { + "id" : "C55956AC-125D-4185-AB81-0B482751CBFB", + "type" : 4 + }, + { + "id" : "5C1DB0BA-AC66-4F28-82FF-90D167A964D9", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "159", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiTWlkbmlnaHQiLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMiI6Ik1pZG5pZ2h0LWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiTWlkbmlnaHQtY3VzdG9tLWRhdGEtMSJ9fQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "5C1DB0BA-AC66-4F28-82FF-90D167A964D9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 13:36:09 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "5C1DB0BA-AC66-4F28-82FF-90D167A964D9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiTWlkbmlnaHQiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTEiOiJNaWRuaWdodC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6Ik1pZG5pZ2h0LWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMTM6MzY6MDguODYwMzI0WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDEzOjM2OjA4Ljg2MDMyNFoiLCJlVGFnIjoiQVpIRjQ3WEYyYU9pcEFFIn19" + }, + "type" : 2 + }, + { + "id" : "5C1DB0BA-AC66-4F28-82FF-90D167A964D9", + "type" : 4 + }, + { + "id" : "0F52C626-8DDF-4781-AE13-76D4B85C9CCB", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "143", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6Ild5bm4tc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJXeW5uIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJXeW5uLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiV3lubi1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "0F52C626-8DDF-4781-AE13-76D4B85C9CCB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 13:36:09 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "0F52C626-8DDF-4781-AE13-76D4B85C9CCB", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6Ild5bm4tc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJXeW5uIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiV3lubi1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6Ild5bm4tY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMzozNjowOS40MzUzNjVaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMTM6MzY6MDkuNDM1MzY1WiIsImVUYWciOiJBZXVHM0l5dzVKejFCUSJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "0F52C626-8DDF-4781-AE13-76D4B85C9CCB", + "type" : 4 + }, + { + "id" : "8207BD3B-3AD3-401A-AF1F-3DEBCC12BE6B", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "163", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNub3dmbGFrZS1zcGFjZS1pZGVudGlmaWVyIiwibmFtZSI6IlNub3dmbGFrZSIsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20yIjoiU25vd2ZsYWtlLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiU25vd2ZsYWtlLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "8207BD3B-3AD3-401A-AF1F-3DEBCC12BE6B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 13:36:10 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "8207BD3B-3AD3-401A-AF1F-3DEBCC12BE6B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNub3dmbGFrZS1zcGFjZS1pZGVudGlmaWVyIiwibmFtZSI6IlNub3dmbGFrZSIsImRlc2NyaXB0aW9uIjpudWxsLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMSI6IlNub3dmbGFrZS1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IlNub3dmbGFrZS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDEzOjM2OjEwLjAxMTU5OFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMzozNjoxMC4wMTE1OThaIiwiZVRhZyI6IkFZZk82OTNCajhLWVlBIn19" + }, + "type" : 2 + }, + { + "id" : "8207BD3B-3AD3-401A-AF1F-3DEBCC12BE6B", + "type" : 4 + }, + { + "id" : "4F636ACA-10E0-4B69-AC20-C22F6BB70472", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "4F636ACA-10E0-4B69-AC20-C22F6BB70472", + "data" : { + "status" : 404, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 13:36:11 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "4F636ACA-10E0-4B69-AC20-C22F6BB70472", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiQ2hhbnRlZCIsImRlc2NyaXB0aW9uIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMzozNjowNi45NjU1OFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMzozNjowNi45NjU1OFoiLCJlVGFnIjoiQWNXajlPVFF3TWFtcFFFIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDEzOjM2OjA3LjYzMDM0OFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMzozNjowNy42MzAzNDhaIiwiZVRhZyI6IkFackY2NGI5aU55bUl3In0seyJpZCI6IlNvbHN0aWNlLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiU29sc3RpY2UiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMTM6MzY6MDguMjQ1NDk0WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDEzOjM2OjA4LjI0NTQ5NFoiLCJlVGFnIjoiQWN1QnhMcTB4TU9hb3dFIn0seyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiTWlkbmlnaHQiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMTM6MzY6MDguODYwMzI0WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDEzOjM2OjA4Ljg2MDMyNFoiLCJlVGFnIjoiQVpIRjQ3WEYyYU9pcEFFIn0seyJpZCI6Ild5bm4tc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJXeW5uIiwiZGVzY3JpcHRpb24iOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDEzOjM2OjA5LjQzNTM2NVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMzozNjowOS40MzUzNjVaIiwiZVRhZyI6IkFldUczSXl3NUp6MUJRIn0seyJpZCI6IlNub3dmbGFrZS1zcGFjZS1pZGVudGlmaWVyIiwibmFtZSI6IlNub3dmbGFrZSIsImRlc2NyaXB0aW9uIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMzozNjoxMC4wMTE1OThaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMTM6MzY6MTAuMDExNTk4WiIsImVUYWciOiJBWWZPNjkzQmo4S1lZQSJ9XSwibmV4dCI6Ik5nIn0=" + }, + "type" : 2 + }, + { + "id" : "4F636ACA-10E0-4B69-AC20-C22F6BB70472", + "type" : 4 + }, + { + "id" : "4F636ACA-10E0-4B69-AC20-C22F6BB70474", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "4F636ACA-10E0-4B69-AC20-C22F6BB70474", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 13:36:11 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "4F636ACA-10E0-4B69-AC20-C22F6BB70474", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiQ2hhbnRlZCIsImRlc2NyaXB0aW9uIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMzozNjowNi45NjU1OFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMzozNjowNi45NjU1OFoiLCJlVGFnIjoiQWNXajlPVFF3TWFtcFFFIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDEzOjM2OjA3LjYzMDM0OFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMzozNjowNy42MzAzNDhaIiwiZVRhZyI6IkFackY2NGI5aU55bUl3In0seyJpZCI6IlNvbHN0aWNlLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiU29sc3RpY2UiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMTM6MzY6MDguMjQ1NDk0WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDEzOjM2OjA4LjI0NTQ5NFoiLCJlVGFnIjoiQWN1QnhMcTB4TU9hb3dFIn0seyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiTWlkbmlnaHQiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMTM6MzY6MDguODYwMzI0WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDEzOjM2OjA4Ljg2MDMyNFoiLCJlVGFnIjoiQVpIRjQ3WEYyYU9pcEFFIn0seyJpZCI6Ild5bm4tc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJXeW5uIiwiZGVzY3JpcHRpb24iOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDEzOjM2OjA5LjQzNTM2NVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMzozNjowOS40MzUzNjVaIiwiZVRhZyI6IkFldUczSXl3NUp6MUJRIn0seyJpZCI6IlNub3dmbGFrZS1zcGFjZS1pZGVudGlmaWVyIiwibmFtZSI6IlNub3dmbGFrZSIsImRlc2NyaXB0aW9uIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMzozNjoxMC4wMTE1OThaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMTM6MzY6MTAuMDExNTk4WiIsImVUYWciOiJBWWZPNjkzQmo4S1lZQSJ9XSwibmV4dCI6Ik5nIn0=" + }, + "type" : 2 + }, + { + "id" : "4F636ACA-10E0-4B69-AC20-C22F6BB70474", + "type" : 4 + }, + { + "id" : "2EE1E60D-6A89-496F-A11C-89C03E1E4EB1", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2EE1E60D-6A89-496F-A11C-89C03E1E4EB1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:36:12 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "2EE1E60D-6A89-496F-A11C-89C03E1E4EB1", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "2EE1E60D-6A89-496F-A11C-89C03E1E4EB1", + "type" : 4 + }, + { + "id" : "57C864FF-6F20-4320-B779-9A062940B144", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "57C864FF-6F20-4320-B779-9A062940B144", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:36:12 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "57C864FF-6F20-4320-B779-9A062940B144", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "57C864FF-6F20-4320-B779-9A062940B144", + "type" : 4 + }, + { + "id" : "F7C7EA0D-55FA-475F-9A5F-F5C273743A6A", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Solstice-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F7C7EA0D-55FA-475F-9A5F-F5C273743A6A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Solstice-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:36:13 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "F7C7EA0D-55FA-475F-9A5F-F5C273743A6A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "F7C7EA0D-55FA-475F-9A5F-F5C273743A6A", + "type" : 4 + }, + { + "id" : "473D121E-53DA-4BE3-BE06-C899CBC0C935", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Midnight-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "473D121E-53DA-4BE3-BE06-C899CBC0C935", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Midnight-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:36:14 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "473D121E-53DA-4BE3-BE06-C899CBC0C935", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "473D121E-53DA-4BE3-BE06-C899CBC0C935", + "type" : 4 + }, + { + "id" : "8806F2BA-A912-4E2D-B6F3-7BB841F338E3", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Wynn-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "8806F2BA-A912-4E2D-B6F3-7BB841F338E3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Wynn-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:36:15 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "8806F2BA-A912-4E2D-B6F3-7BB841F338E3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "8806F2BA-A912-4E2D-B6F3-7BB841F338E3", + "type" : 4 + }, + { + "id" : "3B293505-F0AB-40D9-BA5E-AF78E67B8526", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Snowflake-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3B293505-F0AB-40D9-BA5E-AF78E67B8526", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Snowflake-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:36:15 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "3B293505-F0AB-40D9-BA5E-AF78E67B8526", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "3B293505-F0AB-40D9-BA5E-AF78E67B8526", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldFetchAllSpacesWhenLimitItSet.json b/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldFetchAllSpacesWhenLimitItSet.json new file mode 100644 index 000000000..1a2861f84 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldFetchAllSpacesWhenLimitItSet.json @@ -0,0 +1,802 @@ +[ + { + "id" : "A8B07D69-7726-4AA3-A768-96783F3BEFBE", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A8B07D69-7726-4AA3-A768-96783F3BEFBE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:27:36 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "A8B07D69-7726-4AA3-A768-96783F3BEFBE", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "A8B07D69-7726-4AA3-A768-96783F3BEFBE", + "type" : 4 + }, + { + "id" : "97771E6A-8C40-4835-8D9E-24C3028FB74C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "97771E6A-8C40-4835-8D9E-24C3028FB74C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:27:37 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "97771E6A-8C40-4835-8D9E-24C3028FB74C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "97771E6A-8C40-4835-8D9E-24C3028FB74C", + "type" : 4 + }, + { + "id" : "03D794EE-1914-498B-84A4-50AA9229949B", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "03D794EE-1914-498B-84A4-50AA9229949B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:27:37 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "03D794EE-1914-498B-84A4-50AA9229949B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyNzozNy4xMzA1NTRaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6Mjc6MzcuMTMwNTU0WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "03D794EE-1914-498B-84A4-50AA9229949B", + "type" : 4 + }, + { + "id" : "B4A9A28C-C176-4071-8F8B-7A30EDC527CF", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B4A9A28C-C176-4071-8F8B-7A30EDC527CF", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:27:38 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "B4A9A28C-C176-4071-8F8B-7A30EDC527CF", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyNzozNy44MDU2NjVaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6Mjc6MzcuODA1NjY1WiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "B4A9A28C-C176-4071-8F8B-7A30EDC527CF", + "type" : 4 + }, + { + "id" : "E7467398-C630-4639-9610-8180C91A2D06", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "159", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNvbHN0aWNlLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiU29sc3RpY2UiLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMiI6IlNvbHN0aWNlLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiU29sc3RpY2UtY3VzdG9tLWRhdGEtMSJ9fQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E7467398-C630-4639-9610-8180C91A2D06", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:27:38 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "E7467398-C630-4639-9610-8180C91A2D06", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNvbHN0aWNlLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiU29sc3RpY2UiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTEiOiJTb2xzdGljZS1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IlNvbHN0aWNlLWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6Mjc6MzguNDI0ODhaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6Mjc6MzguNDI0ODhaIiwiZVRhZyI6IkFjdUJ4THEweE1PYW93RSJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "E7467398-C630-4639-9610-8180C91A2D06", + "type" : 4 + }, + { + "id" : "8A50A9C6-C43A-40AC-9148-541AF3B4EB17", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "159", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiTWlkbmlnaHQiLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMiI6Ik1pZG5pZ2h0LWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiTWlkbmlnaHQtY3VzdG9tLWRhdGEtMSJ9fQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "8A50A9C6-C43A-40AC-9148-541AF3B4EB17", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:27:39 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "8A50A9C6-C43A-40AC-9148-541AF3B4EB17", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiTWlkbmlnaHQiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTEiOiJNaWRuaWdodC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6Ik1pZG5pZ2h0LWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6Mjc6MzkuMDkxOTY2WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjI3OjM5LjA5MTk2NloiLCJlVGFnIjoiQVpIRjQ3WEYyYU9pcEFFIn19" + }, + "type" : 2 + }, + { + "id" : "8A50A9C6-C43A-40AC-9148-541AF3B4EB17", + "type" : 4 + }, + { + "id" : "CE70CE56-D33D-4C81-BC93-9311BEFA70A9", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "143", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6Ild5bm4tc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJXeW5uIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJXeW5uLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiV3lubi1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "CE70CE56-D33D-4C81-BC93-9311BEFA70A9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:27:40 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "CE70CE56-D33D-4C81-BC93-9311BEFA70A9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6Ild5bm4tc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJXeW5uIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiV3lubi1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6Ild5bm4tY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyNzozOS43Nzk3NTVaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6Mjc6MzkuNzc5NzU1WiIsImVUYWciOiJBZXVHM0l5dzVKejFCUSJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "CE70CE56-D33D-4C81-BC93-9311BEFA70A9", + "type" : 4 + }, + { + "id" : "20FFD926-CA7E-4CE4-B353-E7E9F6737885", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "163", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNub3dmbGFrZS1zcGFjZS1pZGVudGlmaWVyIiwibmFtZSI6IlNub3dmbGFrZSIsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20yIjoiU25vd2ZsYWtlLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiU25vd2ZsYWtlLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "20FFD926-CA7E-4CE4-B353-E7E9F6737885", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:27:40 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "20FFD926-CA7E-4CE4-B353-E7E9F6737885", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNub3dmbGFrZS1zcGFjZS1pZGVudGlmaWVyIiwibmFtZSI6IlNub3dmbGFrZSIsImRlc2NyaXB0aW9uIjpudWxsLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMSI6IlNub3dmbGFrZS1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IlNub3dmbGFrZS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjI3OjQwLjQ2ODgzNVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyNzo0MC40Njg4MzVaIiwiZVRhZyI6IkFZZk82OTNCajhLWVlBIn19" + }, + "type" : 2 + }, + { + "id" : "20FFD926-CA7E-4CE4-B353-E7E9F6737885", + "type" : 4 + }, + { + "id" : "F7F0F775-292C-47D1-919C-59D13FEA9D3F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?count=1&limit=2&pnsdk=PubNub-ObjC-iOS\/4.x.x&include=custom&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "F7F0F775-292C-47D1-919C-59D13FEA9D3F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?count=1&limit=2&pnsdk=PubNub-ObjC-iOS\/4.x.x&include=custom&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:27:42 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "F7F0F775-292C-47D1-919C-59D13FEA9D3F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiQ2hhbnRlZCIsImRlc2NyaXB0aW9uIjpudWxsLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMSI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMSIsInNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6Mjc6MzcuMTMwNTU0WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjI3OjM3LjEzMDU1NFoiLCJlVGFnIjoiQWNXajlPVFF3TWFtcFFFIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyNzozNy44MDU2NjVaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6Mjc6MzcuODA1NjY1WiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9XSwidG90YWxDb3VudCI6NiwibmV4dCI6Ik1nIn0=" + }, + "type" : 2 + }, + { + "id" : "F7F0F775-292C-47D1-919C-59D13FEA9D3F", + "type" : 4 + }, + { + "id" : "AEC27A98-F4EC-4222-A536-22145001BEF7", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "AEC27A98-F4EC-4222-A536-22145001BEF7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:27:42 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "AEC27A98-F4EC-4222-A536-22145001BEF7", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "AEC27A98-F4EC-4222-A536-22145001BEF7", + "type" : 4 + }, + { + "id" : "43962C6F-EC36-4E95-8927-F736F12A50ED", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "43962C6F-EC36-4E95-8927-F736F12A50ED", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:27:43 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "43962C6F-EC36-4E95-8927-F736F12A50ED", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "43962C6F-EC36-4E95-8927-F736F12A50ED", + "type" : 4 + }, + { + "id" : "61ED07E5-2C7A-4A7E-8111-3389E2FE3704", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Solstice-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "61ED07E5-2C7A-4A7E-8111-3389E2FE3704", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Solstice-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:27:44 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "61ED07E5-2C7A-4A7E-8111-3389E2FE3704", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "61ED07E5-2C7A-4A7E-8111-3389E2FE3704", + "type" : 4 + }, + { + "id" : "DC4ECF0A-9E2F-4FF4-A9AE-3A473F154A5A", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Midnight-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "DC4ECF0A-9E2F-4FF4-A9AE-3A473F154A5A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Midnight-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:27:44 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "DC4ECF0A-9E2F-4FF4-A9AE-3A473F154A5A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "DC4ECF0A-9E2F-4FF4-A9AE-3A473F154A5A", + "type" : 4 + }, + { + "id" : "715E10AC-472A-414B-A114-A93933DED1AB", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Wynn-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "715E10AC-472A-414B-A114-A93933DED1AB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Wynn-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:27:45 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "715E10AC-472A-414B-A114-A93933DED1AB", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "715E10AC-472A-414B-A114-A93933DED1AB", + "type" : 4 + }, + { + "id" : "FAC32D24-1314-4083-A3A4-0FF6CDF8CE01", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Snowflake-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "FAC32D24-1314-4083-A3A4-0FF6CDF8CE01", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Snowflake-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:27:46 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "FAC32D24-1314-4083-A3A4-0FF6CDF8CE01", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "FAC32D24-1314-4083-A3A4-0FF6CDF8CE01", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldFetchFilteredSpacesWhenFilterIsSet.json b/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldFetchFilteredSpacesWhenFilterIsSet.json new file mode 100644 index 000000000..63f756343 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldFetchFilteredSpacesWhenFilterIsSet.json @@ -0,0 +1,802 @@ +[ + { + "id" : "83777902-04DF-43B2-8DAC-E7E397217623", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "83777902-04DF-43B2-8DAC-E7E397217623", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:27:47 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "83777902-04DF-43B2-8DAC-E7E397217623", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "83777902-04DF-43B2-8DAC-E7E397217623", + "type" : 4 + }, + { + "id" : "DB528B92-ED1F-4468-9A9D-4D09DDF4378C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "DB528B92-ED1F-4468-9A9D-4D09DDF4378C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:27:48 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "DB528B92-ED1F-4468-9A9D-4D09DDF4378C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "DB528B92-ED1F-4468-9A9D-4D09DDF4378C", + "type" : 4 + }, + { + "id" : "5D45EEB2-4042-4F2C-9BF1-EC29F171B71D", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "5D45EEB2-4042-4F2C-9BF1-EC29F171B71D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:27:48 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "5D45EEB2-4042-4F2C-9BF1-EC29F171B71D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyNzo0OC4zMjI5ODdaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6Mjc6NDguMzIyOTg3WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "5D45EEB2-4042-4F2C-9BF1-EC29F171B71D", + "type" : 4 + }, + { + "id" : "9704C53C-5571-4FE0-9DA1-703B7AF724FA", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9704C53C-5571-4FE0-9DA1-703B7AF724FA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:27:49 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "9704C53C-5571-4FE0-9DA1-703B7AF724FA", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyNzo0OC45MDU5NjlaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6Mjc6NDguOTA1OTY5WiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "9704C53C-5571-4FE0-9DA1-703B7AF724FA", + "type" : 4 + }, + { + "id" : "1B29E33B-07CD-47A0-9E54-57E2C8BA191C", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "159", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNvbHN0aWNlLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiU29sc3RpY2UiLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMiI6IlNvbHN0aWNlLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiU29sc3RpY2UtY3VzdG9tLWRhdGEtMSJ9fQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1B29E33B-07CD-47A0-9E54-57E2C8BA191C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:27:50 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "1B29E33B-07CD-47A0-9E54-57E2C8BA191C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNvbHN0aWNlLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiU29sc3RpY2UiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTEiOiJTb2xzdGljZS1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IlNvbHN0aWNlLWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6Mjc6NDkuNTc4MzA4WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjI3OjQ5LjU3ODMwOFoiLCJlVGFnIjoiQWN1QnhMcTB4TU9hb3dFIn19" + }, + "type" : 2 + }, + { + "id" : "1B29E33B-07CD-47A0-9E54-57E2C8BA191C", + "type" : 4 + }, + { + "id" : "BF19A80C-C2C9-48CF-A99B-3BCB041EFF8A", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "159", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiTWlkbmlnaHQiLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMiI6Ik1pZG5pZ2h0LWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiTWlkbmlnaHQtY3VzdG9tLWRhdGEtMSJ9fQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "BF19A80C-C2C9-48CF-A99B-3BCB041EFF8A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:27:50 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "BF19A80C-C2C9-48CF-A99B-3BCB041EFF8A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiTWlkbmlnaHQiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTEiOiJNaWRuaWdodC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6Ik1pZG5pZ2h0LWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6Mjc6NTAuMTkwMzYyWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjI3OjUwLjE5MDM2MloiLCJlVGFnIjoiQVpIRjQ3WEYyYU9pcEFFIn19" + }, + "type" : 2 + }, + { + "id" : "BF19A80C-C2C9-48CF-A99B-3BCB041EFF8A", + "type" : 4 + }, + { + "id" : "036B89E0-DDEE-439C-A3B3-5BB54DC06854", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "143", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6Ild5bm4tc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJXeW5uIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJXeW5uLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiV3lubi1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "036B89E0-DDEE-439C-A3B3-5BB54DC06854", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:27:51 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "036B89E0-DDEE-439C-A3B3-5BB54DC06854", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6Ild5bm4tc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJXeW5uIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiV3lubi1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6Ild5bm4tY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyNzo1MC43NzQxNDlaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6Mjc6NTAuNzc0MTQ5WiIsImVUYWciOiJBZXVHM0l5dzVKejFCUSJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "036B89E0-DDEE-439C-A3B3-5BB54DC06854", + "type" : 4 + }, + { + "id" : "99E895A3-0B4D-4290-8609-7BD5093CC9C3", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "163", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNub3dmbGFrZS1zcGFjZS1pZGVudGlmaWVyIiwibmFtZSI6IlNub3dmbGFrZSIsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20yIjoiU25vd2ZsYWtlLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiU25vd2ZsYWtlLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "99E895A3-0B4D-4290-8609-7BD5093CC9C3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:27:51 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "99E895A3-0B4D-4290-8609-7BD5093CC9C3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNub3dmbGFrZS1zcGFjZS1pZGVudGlmaWVyIiwibmFtZSI6IlNub3dmbGFrZSIsImRlc2NyaXB0aW9uIjpudWxsLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMSI6IlNub3dmbGFrZS1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IlNub3dmbGFrZS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjI3OjUxLjM1NTEyOFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyNzo1MS4zNTUxMjhaIiwiZVRhZyI6IkFZZk82OTNCajhLWVlBIn19" + }, + "type" : 2 + }, + { + "id" : "99E895A3-0B4D-4290-8609-7BD5093CC9C3", + "type" : 4 + }, + { + "id" : "CCADB1BE-DCDF-4129-860C-C3F0BA14BB42", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?filter=updated%20%3E=%20'2020-02-07T06:27:50.190Z'&count=1&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "CCADB1BE-DCDF-4129-860C-C3F0BA14BB42", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?filter=updated%20%3E=%20'2020-02-07T06:27:50.190Z'&count=1&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:27:53 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "CCADB1BE-DCDF-4129-860C-C3F0BA14BB42", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJNaWRuaWdodC1zcGFjZS1pZGVudGlmaWVyIiwibmFtZSI6Ik1pZG5pZ2h0IiwiZGVzY3JpcHRpb24iOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjI3OjUwLjE5MDM2MloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyNzo1MC4xOTAzNjJaIiwiZVRhZyI6IkFaSEY0N1hGMmFPaXBBRSJ9LHsiaWQiOiJXeW5uLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiV3lubiIsImRlc2NyaXB0aW9uIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyNzo1MC43NzQxNDlaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6Mjc6NTAuNzc0MTQ5WiIsImVUYWciOiJBZXVHM0l5dzVKejFCUSJ9LHsiaWQiOiJTbm93Zmxha2Utc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJTbm93Zmxha2UiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6Mjc6NTEuMzU1MTI4WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjI3OjUxLjM1NTEyOFoiLCJlVGFnIjoiQVlmTzY5M0JqOEtZWUEifV0sInRvdGFsQ291bnQiOjMsIm5leHQiOiJNdyJ9" + }, + "type" : 2 + }, + { + "id" : "CCADB1BE-DCDF-4129-860C-C3F0BA14BB42", + "type" : 4 + }, + { + "id" : "92F2AC75-7843-4934-BF5F-CD5BAEDFC7F5", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "92F2AC75-7843-4934-BF5F-CD5BAEDFC7F5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:27:53 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "92F2AC75-7843-4934-BF5F-CD5BAEDFC7F5", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "92F2AC75-7843-4934-BF5F-CD5BAEDFC7F5", + "type" : 4 + }, + { + "id" : "E371E1E2-E7D1-40A3-BFEE-C97E75DE530F", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E371E1E2-E7D1-40A3-BFEE-C97E75DE530F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:27:54 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "E371E1E2-E7D1-40A3-BFEE-C97E75DE530F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "E371E1E2-E7D1-40A3-BFEE-C97E75DE530F", + "type" : 4 + }, + { + "id" : "542D9365-75FC-4D72-A14F-086945EB234C", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Solstice-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "542D9365-75FC-4D72-A14F-086945EB234C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Solstice-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:27:55 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "542D9365-75FC-4D72-A14F-086945EB234C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "542D9365-75FC-4D72-A14F-086945EB234C", + "type" : 4 + }, + { + "id" : "6467E1AE-921C-40BE-BF7F-4FEF77C42BF7", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Midnight-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "6467E1AE-921C-40BE-BF7F-4FEF77C42BF7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Midnight-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:27:55 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "6467E1AE-921C-40BE-BF7F-4FEF77C42BF7", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "6467E1AE-921C-40BE-BF7F-4FEF77C42BF7", + "type" : 4 + }, + { + "id" : "2E8AA39C-4775-4452-BB6B-F7037A33A29E", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Wynn-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2E8AA39C-4775-4452-BB6B-F7037A33A29E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Wynn-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:27:56 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "2E8AA39C-4775-4452-BB6B-F7037A33A29E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "2E8AA39C-4775-4452-BB6B-F7037A33A29E", + "type" : 4 + }, + { + "id" : "1B501A4F-4618-4078-9EB0-3AEB027A5E6A", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Snowflake-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1B501A4F-4618-4078-9EB0-3AEB027A5E6A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Snowflake-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:27:56 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "1B501A4F-4618-4078-9EB0-3AEB027A5E6A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "1B501A4F-4618-4078-9EB0-3AEB027A5E6A", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldFetchNextSpacesPageWhenStartAndLimitIsSet.json b/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldFetchNextSpacesPageWhenStartAndLimitIsSet.json new file mode 100644 index 000000000..3199465d1 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldFetchNextSpacesPageWhenStartAndLimitIsSet.json @@ -0,0 +1,854 @@ +[ + { + "id" : "B9715819-BB4E-44B8-BEBA-7FCBD8E956B8", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B9715819-BB4E-44B8-BEBA-7FCBD8E956B8", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:27:58 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "B9715819-BB4E-44B8-BEBA-7FCBD8E956B8", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "B9715819-BB4E-44B8-BEBA-7FCBD8E956B8", + "type" : 4 + }, + { + "id" : "32F0A733-148F-4CD1-ADDB-9C5B14047AE7", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "32F0A733-148F-4CD1-ADDB-9C5B14047AE7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:27:59 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "32F0A733-148F-4CD1-ADDB-9C5B14047AE7", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "32F0A733-148F-4CD1-ADDB-9C5B14047AE7", + "type" : 4 + }, + { + "id" : "FF579778-44BA-4E8D-B8B5-C2D5C1EC00A3", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "FF579778-44BA-4E8D-B8B5-C2D5C1EC00A3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:27:59 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "FF579778-44BA-4E8D-B8B5-C2D5C1EC00A3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyNzo1OS4xMzYwODJaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6Mjc6NTkuMTM2MDgyWiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "FF579778-44BA-4E8D-B8B5-C2D5C1EC00A3", + "type" : 4 + }, + { + "id" : "EF9EF0F7-5FC5-473C-8F55-8B342357BA03", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "EF9EF0F7-5FC5-473C-8F55-8B342357BA03", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:28:00 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "EF9EF0F7-5FC5-473C-8F55-8B342357BA03", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyNzo1OS43MTExNDlaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6Mjc6NTkuNzExMTQ5WiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "EF9EF0F7-5FC5-473C-8F55-8B342357BA03", + "type" : 4 + }, + { + "id" : "8DC44A6F-4709-41F5-9DB6-7A5F6B852AE3", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "159", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNvbHN0aWNlLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiU29sc3RpY2UiLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMiI6IlNvbHN0aWNlLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiU29sc3RpY2UtY3VzdG9tLWRhdGEtMSJ9fQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "8DC44A6F-4709-41F5-9DB6-7A5F6B852AE3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:28:00 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "8DC44A6F-4709-41F5-9DB6-7A5F6B852AE3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNvbHN0aWNlLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiU29sc3RpY2UiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTEiOiJTb2xzdGljZS1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IlNvbHN0aWNlLWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6Mjg6MDAuMjg3MDgyWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjI4OjAwLjI4NzA4MloiLCJlVGFnIjoiQWN1QnhMcTB4TU9hb3dFIn19" + }, + "type" : 2 + }, + { + "id" : "8DC44A6F-4709-41F5-9DB6-7A5F6B852AE3", + "type" : 4 + }, + { + "id" : "DE84A416-BB5E-4343-99FB-9FC61E292829", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "159", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiTWlkbmlnaHQiLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMiI6Ik1pZG5pZ2h0LWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiTWlkbmlnaHQtY3VzdG9tLWRhdGEtMSJ9fQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "DE84A416-BB5E-4343-99FB-9FC61E292829", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:28:01 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "DE84A416-BB5E-4343-99FB-9FC61E292829", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiTWlkbmlnaHQiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTEiOiJNaWRuaWdodC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6Ik1pZG5pZ2h0LWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6Mjg6MDAuODcxMTQzWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjI4OjAwLjg3MTE0M1oiLCJlVGFnIjoiQVpIRjQ3WEYyYU9pcEFFIn19" + }, + "type" : 2 + }, + { + "id" : "DE84A416-BB5E-4343-99FB-9FC61E292829", + "type" : 4 + }, + { + "id" : "37D764A7-BF42-468C-9A07-0C49E535CC37", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "143", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6Ild5bm4tc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJXeW5uIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJXeW5uLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiV3lubi1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "37D764A7-BF42-468C-9A07-0C49E535CC37", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:28:01 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "37D764A7-BF42-468C-9A07-0C49E535CC37", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6Ild5bm4tc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJXeW5uIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiV3lubi1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6Ild5bm4tY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyODowMS40NDgzMjRaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6Mjg6MDEuNDQ4MzI0WiIsImVUYWciOiJBZXVHM0l5dzVKejFCUSJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "37D764A7-BF42-468C-9A07-0C49E535CC37", + "type" : 4 + }, + { + "id" : "5B5296C7-BED0-4577-88F5-44DF84BB3F71", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "163", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNub3dmbGFrZS1zcGFjZS1pZGVudGlmaWVyIiwibmFtZSI6IlNub3dmbGFrZSIsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20yIjoiU25vd2ZsYWtlLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiU25vd2ZsYWtlLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "5B5296C7-BED0-4577-88F5-44DF84BB3F71", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:28:02 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "5B5296C7-BED0-4577-88F5-44DF84BB3F71", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNub3dmbGFrZS1zcGFjZS1pZGVudGlmaWVyIiwibmFtZSI6IlNub3dmbGFrZSIsImRlc2NyaXB0aW9uIjpudWxsLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMSI6IlNub3dmbGFrZS1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IlNub3dmbGFrZS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjI4OjAyLjAzNzA1MloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyODowMi4wMzcwNTJaIiwiZVRhZyI6IkFZZk82OTNCajhLWVlBIn19" + }, + "type" : 2 + }, + { + "id" : "5B5296C7-BED0-4577-88F5-44DF84BB3F71", + "type" : 4 + }, + { + "id" : "B39698D5-3838-41B0-B2D0-8AF4FCE0AB7C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?count=1&pnsdk=PubNub-ObjC-iOS\/4.x.x&limit=4&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "B39698D5-3838-41B0-B2D0-8AF4FCE0AB7C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?count=1&pnsdk=PubNub-ObjC-iOS\/4.x.x&limit=4&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:28:03 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "B39698D5-3838-41B0-B2D0-8AF4FCE0AB7C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJDaGFudGVkLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiQ2hhbnRlZCIsImRlc2NyaXB0aW9uIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyNzo1OS4xMzYwODJaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6Mjc6NTkuMTM2MDgyWiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifSx7ImlkIjoiQ2hpcHBlci1zcGFjZS1pZGVudGlmaWVyIiwibmFtZSI6IkNoaXBwZXIiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6Mjc6NTkuNzExMTQ5WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjI3OjU5LjcxMTE0OVoiLCJlVGFnIjoiQVpyRjY0YjlpTnltSXcifSx7ImlkIjoiU29sc3RpY2Utc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJTb2xzdGljZSIsImRlc2NyaXB0aW9uIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyODowMC4yODcwODJaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6Mjg6MDAuMjg3MDgyWiIsImVUYWciOiJBY3VCeExxMHhNT2Fvd0UifSx7ImlkIjoiTWlkbmlnaHQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJNaWRuaWdodCIsImRlc2NyaXB0aW9uIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyODowMC44NzExNDNaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6Mjg6MDAuODcxMTQzWiIsImVUYWciOiJBWkhGNDdYRjJhT2lwQUUifV0sInRvdGFsQ291bnQiOjYsIm5leHQiOiJOQSJ9" + }, + "type" : 2 + }, + { + "id" : "B39698D5-3838-41B0-B2D0-8AF4FCE0AB7C", + "type" : 4 + }, + { + "id" : "358AE918-466F-4FB2-80C1-72461ED467DF", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?start=NA&count=1&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&limit=100" + }, + "type" : 0 + }, + { + "id" : "358AE918-466F-4FB2-80C1-72461ED467DF", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?start=NA&count=1&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&limit=100", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:28:04 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "358AE918-466F-4FB2-80C1-72461ED467DF", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJXeW5uLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiV3lubiIsImRlc2NyaXB0aW9uIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyODowMS40NDgzMjRaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6Mjg6MDEuNDQ4MzI0WiIsImVUYWciOiJBZXVHM0l5dzVKejFCUSJ9LHsiaWQiOiJTbm93Zmxha2Utc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJTbm93Zmxha2UiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMDY6Mjg6MDIuMDM3MDUyWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjI4OjAyLjAzNzA1MloiLCJlVGFnIjoiQVlmTzY5M0JqOEtZWUEifV0sInRvdGFsQ291bnQiOjYsIm5leHQiOiJOZyIsInByZXYiOiJOQSJ9" + }, + "type" : 2 + }, + { + "id" : "358AE918-466F-4FB2-80C1-72461ED467DF", + "type" : 4 + }, + { + "id" : "068154F1-9CEA-4F9B-94E7-0BE72F65902F", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "068154F1-9CEA-4F9B-94E7-0BE72F65902F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:28:04 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "068154F1-9CEA-4F9B-94E7-0BE72F65902F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "068154F1-9CEA-4F9B-94E7-0BE72F65902F", + "type" : 4 + }, + { + "id" : "6B531E3D-7747-42C5-8D23-4239F4DEEC24", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "6B531E3D-7747-42C5-8D23-4239F4DEEC24", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:28:05 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "6B531E3D-7747-42C5-8D23-4239F4DEEC24", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "6B531E3D-7747-42C5-8D23-4239F4DEEC24", + "type" : 4 + }, + { + "id" : "778BF8F6-40CB-46C4-BDAF-E600716C537B", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Solstice-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "778BF8F6-40CB-46C4-BDAF-E600716C537B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Solstice-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:28:06 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "778BF8F6-40CB-46C4-BDAF-E600716C537B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "778BF8F6-40CB-46C4-BDAF-E600716C537B", + "type" : 4 + }, + { + "id" : "7C38CFE8-CAF7-437F-8A94-7D7486EDEA25", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Midnight-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "7C38CFE8-CAF7-437F-8A94-7D7486EDEA25", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Midnight-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:28:06 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "7C38CFE8-CAF7-437F-8A94-7D7486EDEA25", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "7C38CFE8-CAF7-437F-8A94-7D7486EDEA25", + "type" : 4 + }, + { + "id" : "E346B9B8-0804-4019-8E8C-67634D4A2698", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Wynn-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E346B9B8-0804-4019-8E8C-67634D4A2698", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Wynn-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:28:07 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "E346B9B8-0804-4019-8E8C-67634D4A2698", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "E346B9B8-0804-4019-8E8C-67634D4A2698", + "type" : 4 + }, + { + "id" : "23BA9C9E-E9F0-4CB8-8754-08E34E399F2B", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Snowflake-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "23BA9C9E-E9F0-4CB8-8754-08E34E399F2B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Snowflake-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:28:07 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "23BA9C9E-E9F0-4CB8-8754-08E34E399F2B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "23BA9C9E-E9F0-4CB8-8754-08E34E399F2B", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldFetchSortedSpacesWhenSortIsSet.json b/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldFetchSortedSpacesWhenSortIsSet.json new file mode 100644 index 000000000..45b3cb7c0 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldFetchSortedSpacesWhenSortIsSet.json @@ -0,0 +1,802 @@ +[ + { + "id" : "ED9945D9-E943-4C42-B9E8-D2A4A5EE59A6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "ED9945D9-E943-4C42-B9E8-D2A4A5EE59A6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:20:33 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "ED9945D9-E943-4C42-B9E8-D2A4A5EE59A6", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "ED9945D9-E943-4C42-B9E8-D2A4A5EE59A6", + "type" : 4 + }, + { + "id" : "CDAD66AA-9FFB-475E-BEA6-F3826AFE8E3F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "CDAD66AA-9FFB-475E-BEA6-F3826AFE8E3F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:20:33 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "CDAD66AA-9FFB-475E-BEA6-F3826AFE8E3F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "CDAD66AA-9FFB-475E-BEA6-F3826AFE8E3F", + "type" : 4 + }, + { + "id" : "C23AEF2C-E250-4E24-BE0E-C2CB35C750DC", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C23AEF2C-E250-4E24-BE0E-C2CB35C750DC", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:20:34 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "C23AEF2C-E250-4E24-BE0E-C2CB35C750DC", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMToyMDozMy44MjU0NzNaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MjA6MzMuODI1NDczWiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "C23AEF2C-E250-4E24-BE0E-C2CB35C750DC", + "type" : 4 + }, + { + "id" : "44C1857B-004E-4716-9E2D-4009747B7396", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGlwcGVyLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "44C1857B-004E-4716-9E2D-4009747B7396", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:20:34 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "44C1857B-004E-4716-9E2D-4009747B7396", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hpcHBlci1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoaXBwZXItY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMToyMDozNC40MTUwOThaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MjA6MzQuNDE1MDk4WiIsImVUYWciOiJBWnJGNjRiOWlOeW1JdyJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "44C1857B-004E-4716-9E2D-4009747B7396", + "type" : 4 + }, + { + "id" : "FE6637CD-2222-4742-BC71-FCB2673229E6", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "159", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNvbHN0aWNlLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiU29sc3RpY2UiLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMiI6IlNvbHN0aWNlLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiU29sc3RpY2UtY3VzdG9tLWRhdGEtMSJ9fQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "FE6637CD-2222-4742-BC71-FCB2673229E6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:20:35 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "FE6637CD-2222-4742-BC71-FCB2673229E6", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNvbHN0aWNlLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiU29sc3RpY2UiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTEiOiJTb2xzdGljZS1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IlNvbHN0aWNlLWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDE6MjA6MzUuMDI4OTI3WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAxOjIwOjM1LjAyODkyN1oiLCJlVGFnIjoiQWN1QnhMcTB4TU9hb3dFIn19" + }, + "type" : 2 + }, + { + "id" : "FE6637CD-2222-4742-BC71-FCB2673229E6", + "type" : 4 + }, + { + "id" : "F0BD3689-1F51-44F4-8154-71DED75E385A", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "159", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiTWlkbmlnaHQiLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMiI6Ik1pZG5pZ2h0LWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiTWlkbmlnaHQtY3VzdG9tLWRhdGEtMSJ9fQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F0BD3689-1F51-44F4-8154-71DED75E385A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:20:36 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "F0BD3689-1F51-44F4-8154-71DED75E385A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiTWlkbmlnaHQiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTEiOiJNaWRuaWdodC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6Ik1pZG5pZ2h0LWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDE6MjA6MzUuNjA3MDk3WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAxOjIwOjM1LjYwNzA5N1oiLCJlVGFnIjoiQVpIRjQ3WEYyYU9pcEFFIn19" + }, + "type" : 2 + }, + { + "id" : "F0BD3689-1F51-44F4-8154-71DED75E385A", + "type" : 4 + }, + { + "id" : "F20516BC-0569-421D-9E52-6F613D258065", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "143", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6Ild5bm4tc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJXeW5uIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJXeW5uLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiV3lubi1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F20516BC-0569-421D-9E52-6F613D258065", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:20:36 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "F20516BC-0569-421D-9E52-6F613D258065", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6Ild5bm4tc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJXeW5uIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiV3lubi1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6Ild5bm4tY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMToyMDozNi4yNTYzMjRaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MjA6MzYuMjU2MzI0WiIsImVUYWciOiJBZXVHM0l5dzVKejFCUSJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "F20516BC-0569-421D-9E52-6F613D258065", + "type" : 4 + }, + { + "id" : "CA2E8CB5-C11E-4246-984E-E49AFFC3A814", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "163", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNub3dmbGFrZS1zcGFjZS1pZGVudGlmaWVyIiwibmFtZSI6IlNub3dmbGFrZSIsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20yIjoiU25vd2ZsYWtlLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiU25vd2ZsYWtlLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "CA2E8CB5-C11E-4246-984E-E49AFFC3A814", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:20:37 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "CA2E8CB5-C11E-4246-984E-E49AFFC3A814", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNub3dmbGFrZS1zcGFjZS1pZGVudGlmaWVyIiwibmFtZSI6IlNub3dmbGFrZSIsImRlc2NyaXB0aW9uIjpudWxsLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMSI6IlNub3dmbGFrZS1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IlNub3dmbGFrZS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjIwOjM2LjgzMzk3WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAxOjIwOjM2LjgzMzk3WiIsImVUYWciOiJBWWZPNjkzQmo4S1lZQSJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "CA2E8CB5-C11E-4246-984E-E49AFFC3A814", + "type" : 4 + }, + { + "id" : "3F1E0A2A-E2EE-4193-82F8-27C94A6C8554", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?sort=name:desc,created&count=1&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "3F1E0A2A-E2EE-4193-82F8-27C94A6C8554", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?sort=name:desc,created&count=1&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 25 Feb 2020 01:20:38 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "3F1E0A2A-E2EE-4193-82F8-27C94A6C8554", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJXeW5uLXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiV3lubiIsImRlc2NyaXB0aW9uIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0yNVQwMToyMDozNi4yNTYzMjRaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MjA6MzYuMjU2MzI0WiIsImVUYWciOiJBZXVHM0l5dzVKejFCUSJ9LHsiaWQiOiJTb2xzdGljZS1zcGFjZS1pZGVudGlmaWVyIiwibmFtZSI6IlNvbHN0aWNlIiwiZGVzY3JpcHRpb24iOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjIwOjM1LjAyODkyN1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMToyMDozNS4wMjg5MjdaIiwiZVRhZyI6IkFjdUJ4THEweE1PYW93RSJ9LHsiaWQiOiJTbm93Zmxha2Utc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJTbm93Zmxha2UiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDE6MjA6MzYuODMzOTdaIiwidXBkYXRlZCI6IjIwMjAtMDItMjVUMDE6MjA6MzYuODMzOTdaIiwiZVRhZyI6IkFZZk82OTNCajhLWVlBIn0seyJpZCI6Ik1pZG5pZ2h0LXNwYWNlLWlkZW50aWZpZXIiLCJuYW1lIjoiTWlkbmlnaHQiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMjVUMDE6MjA6MzUuNjA3MDk3WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI1VDAxOjIwOjM1LjYwNzA5N1oiLCJlVGFnIjoiQVpIRjQ3WEYyYU9pcEFFIn0seyJpZCI6IkNoaXBwZXItc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGlwcGVyIiwiZGVzY3JpcHRpb24iOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjIwOjM0LjQxNTA5OFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMToyMDozNC40MTUwOThaIiwiZVRhZyI6IkFackY2NGI5aU55bUl3In0seyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTI1VDAxOjIwOjMzLjgyNTQ3M1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNVQwMToyMDozMy44MjU0NzNaIiwiZVRhZyI6IkFjV2o5T1RRd01hbXBRRSJ9XSwidG90YWxDb3VudCI6NiwibmV4dCI6Ik5nIn0=" + }, + "type" : 2 + }, + { + "id" : "3F1E0A2A-E2EE-4193-82F8-27C94A6C8554", + "type" : 4 + }, + { + "id" : "A349C8B8-EF85-4441-BFA5-4BE57B65ABCF", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A349C8B8-EF85-4441-BFA5-4BE57B65ABCF", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:20:39 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "A349C8B8-EF85-4441-BFA5-4BE57B65ABCF", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "A349C8B8-EF85-4441-BFA5-4BE57B65ABCF", + "type" : 4 + }, + { + "id" : "46513D79-1AEF-45FD-A4FD-39E36BBB9463", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "46513D79-1AEF-45FD-A4FD-39E36BBB9463", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chipper-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:20:39 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "46513D79-1AEF-45FD-A4FD-39E36BBB9463", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "46513D79-1AEF-45FD-A4FD-39E36BBB9463", + "type" : 4 + }, + { + "id" : "FBB86C1D-C25E-4C4A-BE4D-6ED475DE1EF2", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Solstice-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "FBB86C1D-C25E-4C4A-BE4D-6ED475DE1EF2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Solstice-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:20:40 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "FBB86C1D-C25E-4C4A-BE4D-6ED475DE1EF2", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "FBB86C1D-C25E-4C4A-BE4D-6ED475DE1EF2", + "type" : 4 + }, + { + "id" : "8B5B4185-ABCB-4A53-8679-179B9F2A2EBE", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Midnight-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "8B5B4185-ABCB-4A53-8679-179B9F2A2EBE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Midnight-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:20:41 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "8B5B4185-ABCB-4A53-8679-179B9F2A2EBE", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "8B5B4185-ABCB-4A53-8679-179B9F2A2EBE", + "type" : 4 + }, + { + "id" : "19F4FC9F-D0CA-484C-ACC2-36DA60D92127", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Wynn-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "19F4FC9F-D0CA-484C-ACC2-36DA60D92127", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Wynn-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:20:41 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "19F4FC9F-D0CA-484C-ACC2-36DA60D92127", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "19F4FC9F-D0CA-484C-ACC2-36DA60D92127", + "type" : 4 + }, + { + "id" : "F0B11486-2A37-4750-BAE5-0C9B30867B88", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Snowflake-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F0B11486-2A37-4750-BAE5-0C9B30867B88", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Snowflake-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Tue, 25 Feb 2020 01:20:42 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "F0B11486-2A37-4750-BAE5-0C9B30867B88", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "F0B11486-2A37-4750-BAE5-0C9B30867B88", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldFetchSpaceAndReceiveResultWithExpectedOperation.json b/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldFetchSpaceAndReceiveResultWithExpectedOperation.json new file mode 100644 index 000000000..b0bb69ddb --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldFetchSpaceAndReceiveResultWithExpectedOperation.json @@ -0,0 +1,262 @@ +[ + { + "id" : "2E0A134A-175E-400F-9CA0-C22BCCEBEF2F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2E0A134A-175E-400F-9CA0-C22BCCEBEF2F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:28:09 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "2E0A134A-175E-400F-9CA0-C22BCCEBEF2F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "2E0A134A-175E-400F-9CA0-C22BCCEBEF2F", + "type" : 4 + }, + { + "id" : "B8DF54EB-06D2-4FB2-BB23-FE50CC826E51", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B8DF54EB-06D2-4FB2-BB23-FE50CC826E51", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:28:10 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "B8DF54EB-06D2-4FB2-BB23-FE50CC826E51", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "B8DF54EB-06D2-4FB2-BB23-FE50CC826E51", + "type" : 4 + }, + { + "id" : "6E3FD707-C2DC-4930-B8CE-48DB6720BBF5", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "6E3FD707-C2DC-4930-B8CE-48DB6720BBF5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:28:10 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "6E3FD707-C2DC-4930-B8CE-48DB6720BBF5", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyODoxMC4xNzAzNloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyODoxMC4xNzAzNloiLCJlVGFnIjoiQWNXajlPVFF3TWFtcFFFIn19" + }, + "type" : 2 + }, + { + "id" : "6E3FD707-C2DC-4930-B8CE-48DB6720BBF5", + "type" : 4 + }, + { + "id" : "34AEDFBD-F900-4636-B0A1-DA750CCA771D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "34AEDFBD-F900-4636-B0A1-DA750CCA771D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:28:11 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "34AEDFBD-F900-4636-B0A1-DA750CCA771D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyODoxMC4xNzAzNloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyODoxMC4xNzAzNloiLCJlVGFnIjoiQWNXajlPVFF3TWFtcFFFIn19" + }, + "type" : 2 + }, + { + "id" : "34AEDFBD-F900-4636-B0A1-DA750CCA771D", + "type" : 4 + }, + { + "id" : "2383A041-C765-4870-AB78-25CEBC3E2A10", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2383A041-C765-4870-AB78-25CEBC3E2A10", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:28:12 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "2383A041-C765-4870-AB78-25CEBC3E2A10", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "2383A041-C765-4870-AB78-25CEBC3E2A10", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldNotCreateSpaceWhenSameSpaceAlreadyExists.json b/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldNotCreateSpaceWhenSameSpaceAlreadyExists.json new file mode 100644 index 000000000..c72e30758 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldNotCreateSpaceWhenSameSpaceAlreadyExists.json @@ -0,0 +1,322 @@ +[ + { + "id" : "2C53A1EB-5758-4BC0-97A4-0763BBE1A8A7", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2C53A1EB-5758-4BC0-97A4-0763BBE1A8A7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:28:14 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "2C53A1EB-5758-4BC0-97A4-0763BBE1A8A7", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "2C53A1EB-5758-4BC0-97A4-0763BBE1A8A7", + "type" : 4 + }, + { + "id" : "3DDF31BE-ADCF-4BE0-8D6A-D65FDC104771", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3DDF31BE-ADCF-4BE0-8D6A-D65FDC104771", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:28:14 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "3DDF31BE-ADCF-4BE0-8D6A-D65FDC104771", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "3DDF31BE-ADCF-4BE0-8D6A-D65FDC104771", + "type" : 4 + }, + { + "id" : "D9E807EA-7D6F-4AAD-9C19-CF3F75A2F4A7", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D9E807EA-7D6F-4AAD-9C19-CF3F75A2F4A7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:28:15 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "D9E807EA-7D6F-4AAD-9C19-CF3F75A2F4A7", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyODoxNC44MDExOTJaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6Mjg6MTQuODAxMTkyWiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "D9E807EA-7D6F-4AAD-9C19-CF3F75A2F4A7", + "type" : 4 + }, + { + "id" : "F512F2C6-6DEC-4394-9251-6311D9A07381", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "64", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIn0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F512F2C6-6DEC-4394-9251-6311D9A07381", + "data" : { + "status" : 409, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:28:16 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "108", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "F512F2C6-6DEC-4394-9251-6311D9A07381", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjQwOSwiZXJyb3IiOnsibWVzc2FnZSI6Ik9iamVjdCB3aXRoIHRoZSByZXF1ZXN0ZWQgaWRlbnRpZmllciBhbHJlYWR5IGV4aXN0cy4iLCJzb3VyY2UiOiJvYmplY3RzIn19" + }, + "type" : 2 + }, + { + "id" : "F512F2C6-6DEC-4394-9251-6311D9A07381", + "type" : 4 + }, + { + "id" : "83E27ED4-D06B-4DE4-8160-E653A4EF30DC", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "64", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIn0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "83E27ED4-D06B-4DE4-8160-E653A4EF30DC", + "data" : { + "status" : 409, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:28:17 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "108", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "83E27ED4-D06B-4DE4-8160-E653A4EF30DC", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjQwOSwiZXJyb3IiOnsibWVzc2FnZSI6Ik9iamVjdCB3aXRoIHRoZSByZXF1ZXN0ZWQgaWRlbnRpZmllciBhbHJlYWR5IGV4aXN0cy4iLCJzb3VyY2UiOiJvYmplY3RzIn19" + }, + "type" : 2 + }, + { + "id" : "83E27ED4-D06B-4DE4-8160-E653A4EF30DC", + "type" : 4 + }, + { + "id" : "A5592EB6-97B4-490B-BC20-71603E6B8274", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A5592EB6-97B4-490B-BC20-71603E6B8274", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:28:17 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "A5592EB6-97B4-490B-BC20-71603E6B8274", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "A5592EB6-97B4-490B-BC20-71603E6B8274", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldNotFetchSpaceWhenTargetSpaceNotExists.json b/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldNotFetchSpaceWhenTargetSpaceNotExists.json new file mode 100644 index 000000000..cacfb26d7 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldNotFetchSpaceWhenTargetSpaceNotExists.json @@ -0,0 +1,202 @@ +[ + { + "id" : "B94260DA-145F-4F70-ADD9-764D4B9C227D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B94260DA-145F-4F70-ADD9-764D4B9C227D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:28:19 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "B94260DA-145F-4F70-ADD9-764D4B9C227D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "B94260DA-145F-4F70-ADD9-764D4B9C227D", + "type" : 4 + }, + { + "id" : "01D95DAE-8955-4F21-B4B7-965DEF4415A6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "01D95DAE-8955-4F21-B4B7-965DEF4415A6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:28:19 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "01D95DAE-8955-4F21-B4B7-965DEF4415A6", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "01D95DAE-8955-4F21-B4B7-965DEF4415A6", + "type" : 4 + }, + { + "id" : "1F258154-04B8-44BC-99FF-0C07527AB130", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/test-space?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1F258154-04B8-44BC-99FF-0C07527AB130", + "data" : { + "status" : 404, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/test-space?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:28:20 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "87", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "1F258154-04B8-44BC-99FF-0C07527AB130", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjQwNCwiZXJyb3IiOnsibWVzc2FnZSI6IlJlcXVlc3RlZCBvYmplY3Qgd2FzIG5vdCBmb3VuZC4iLCJzb3VyY2UiOiJvYmplY3RzIn19" + }, + "type" : 2 + }, + { + "id" : "1F258154-04B8-44BC-99FF-0C07527AB130", + "type" : 4 + }, + { + "id" : "10C019BD-27D1-424D-BB4D-F40A748A479B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/test-space?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "10C019BD-27D1-424D-BB4D-F40A748A479B", + "data" : { + "status" : 404, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/test-space?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:28:20 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "87", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "10C019BD-27D1-424D-BB4D-F40A748A479B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjQwNCwiZXJyb3IiOnsibWVzc2FnZSI6IlJlcXVlc3RlZCBvYmplY3Qgd2FzIG5vdCBmb3VuZC4iLCJzb3VyY2UiOiJvYmplY3RzIn19" + }, + "type" : 2 + }, + { + "id" : "10C019BD-27D1-424D-BB4D-F40A748A479B", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldNotUpdateSpaceWhenTargetSpaceNotExists.json b/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldNotUpdateSpaceWhenTargetSpaceNotExists.json new file mode 100644 index 000000000..9bf19a27e --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldNotUpdateSpaceWhenTargetSpaceNotExists.json @@ -0,0 +1,214 @@ +[ + { + "id" : "FCFAD3B8-1222-4AEE-8BB6-733557E192F3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "FCFAD3B8-1222-4AEE-8BB6-733557E192F3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:28:21 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "FCFAD3B8-1222-4AEE-8BB6-733557E192F3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "FCFAD3B8-1222-4AEE-8BB6-733557E192F3", + "type" : 4 + }, + { + "id" : "D64723EB-7CF1-466D-A208-935C8FF5A337", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D64723EB-7CF1-466D-A208-935C8FF5A337", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:28:21 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "D64723EB-7CF1-466D-A208-935C8FF5A337", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "D64723EB-7CF1-466D-A208-935C8FF5A337", + "type" : 4 + }, + { + "id" : "CC6805BE-4DC2-4152-81BA-B0787FA7022C", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "72", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6InRlc3Qtc3BhY2UiLCJuYW1lIjoidGVzdC1zcGFjZS1uYW1lIn0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/test-space?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "CC6805BE-4DC2-4152-81BA-B0787FA7022C", + "data" : { + "status" : 404, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/test-space?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:28:22 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "87", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "CC6805BE-4DC2-4152-81BA-B0787FA7022C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjQwNCwiZXJyb3IiOnsibWVzc2FnZSI6IlJlcXVlc3RlZCBvYmplY3Qgd2FzIG5vdCBmb3VuZC4iLCJzb3VyY2UiOiJvYmplY3RzIn19" + }, + "type" : 2 + }, + { + "id" : "CC6805BE-4DC2-4152-81BA-B0787FA7022C", + "type" : 4 + }, + { + "id" : "A2598D53-F193-42F0-A177-D4D2AAB2CE8D", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "72", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6InRlc3Qtc3BhY2UiLCJuYW1lIjoidGVzdC1zcGFjZS1uYW1lIn0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/test-space?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A2598D53-F193-42F0-A177-D4D2AAB2CE8D", + "data" : { + "status" : 404, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/test-space?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:28:22 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "87", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "A2598D53-F193-42F0-A177-D4D2AAB2CE8D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjQwNCwiZXJyb3IiOnsibWVzc2FnZSI6IlJlcXVlc3RlZCBvYmplY3Qgd2FzIG5vdCBmb3VuZC4iLCJzb3VyY2UiOiJvYmplY3RzIn19" + }, + "type" : 2 + }, + { + "id" : "A2598D53-F193-42F0-A177-D4D2AAB2CE8D", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldUpdateSpaceAndReceiveStatusWithExpectedOperationAndCategory.json b/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldUpdateSpaceAndReceiveStatusWithExpectedOperationAndCategory.json new file mode 100644 index 000000000..002bd90d6 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldUpdateSpaceAndReceiveStatusWithExpectedOperationAndCategory.json @@ -0,0 +1,268 @@ +[ + { + "id" : "03923510-A58F-4A77-8A3D-1E81094A6053", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "03923510-A58F-4A77-8A3D-1E81094A6053", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:28:23 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "03923510-A58F-4A77-8A3D-1E81094A6053", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "03923510-A58F-4A77-8A3D-1E81094A6053", + "type" : 4 + }, + { + "id" : "1C80D498-E826-4E9D-BD13-72F924907959", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1C80D498-E826-4E9D-BD13-72F924907959", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:28:23 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "1C80D498-E826-4E9D-BD13-72F924907959", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "1C80D498-E826-4E9D-BD13-72F924907959", + "type" : 4 + }, + { + "id" : "4DCEA3F2-A891-486C-88C6-BB7C43C870ED", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "4DCEA3F2-A891-486C-88C6-BB7C43C870ED", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:28:24 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "4DCEA3F2-A891-486C-88C6-BB7C43C870ED", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyODoyMy42NzkyMDRaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMDY6Mjg6MjMuNjc5MjA0WiIsImVUYWciOiJBY1dqOU9UUXdNYW1wUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "4DCEA3F2-A891-486C-88C6-BB7C43C870ED", + "type" : 4 + }, + { + "id" : "B3878015-AC78-47F1-B7D1-11957D172CD1", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "86", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJ0ZXN0LXNwYWNlLW5hbWUifQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B3878015-AC78-47F1-B7D1-11957D172CD1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:28:25 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "B3878015-AC78-47F1-B7D1-11957D172CD1", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJ0ZXN0LXNwYWNlLW5hbWUiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTEiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTEiLCJzcGFjZS1jdXN0b20yIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDA2OjI4OjIzLjY3OTIwNFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyODoyNS41MDcyNFoiLCJlVGFnIjoiQWY3SXdyYU5qNzNvMUFFIn19" + }, + "type" : 2 + }, + { + "id" : "B3878015-AC78-47F1-B7D1-11957D172CD1", + "type" : 4 + }, + { + "id" : "E1A453C4-970A-448C-B08B-2FF339B2F15E", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E1A453C4-970A-448C-B08B-2FF339B2F15E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:28:26 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "E1A453C4-970A-448C-B08B-2FF339B2F15E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "E1A453C4-970A-448C-B08B-2FF339B2F15E", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldUpdateSpaceAndTriggerUpdateEventToSpaceChannel.json b/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldUpdateSpaceAndTriggerUpdateEventToSpaceChannel.json new file mode 100644 index 000000000..53a7b1578 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSpaceIntegrationTest.bundle/ItShouldUpdateSpaceAndTriggerUpdateEventToSpaceChannel.json @@ -0,0 +1,459 @@ +[ + { + "id" : "20C9415D-146F-4CCD-B70E-D6231B2CE4D8", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "20C9415D-146F-4CCD-B70E-D6231B2CE4D8", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:28:28 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "20C9415D-146F-4CCD-B70E-D6231B2CE4D8", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "20C9415D-146F-4CCD-B70E-D6231B2CE4D8", + "type" : 4 + }, + { + "id" : "C889A540-80FA-4BA2-94E2-3ACE511AC7D5", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C889A540-80FA-4BA2-94E2-3ACE511AC7D5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:28:28 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "C889A540-80FA-4BA2-94E2-3ACE511AC7D5", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "C889A540-80FA-4BA2-94E2-3ACE511AC7D5", + "type" : 4 + }, + { + "id" : "450B5FE9-EE3E-4CBF-A81B-3E69BE7C91CE", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "155", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTIiOiJDaGFudGVkLWN1c3RvbS1kYXRhLTIiLCJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "450B5FE9-EE3E-4CBF-A81B-3E69BE7C91CE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:28:29 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "450B5FE9-EE3E-4CBF-A81B-3E69BE7C91CE", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJDaGFudGVkIiwiZGVzY3JpcHRpb24iOm51bGwsImN1c3RvbSI6eyJzcGFjZS1jdXN0b20xIjoiQ2hhbnRlZC1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6IkNoYW50ZWQtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyODoyOC45MDYxM1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyODoyOC45MDYxM1oiLCJlVGFnIjoiQWNXajlPVFF3TWFtcFFFIn19" + }, + "type" : 2 + }, + { + "id" : "450B5FE9-EE3E-4CBF-A81B-3E69BE7C91CE", + "type" : 4 + }, + { + "id" : "93ECC556-7125-4085-9E7D-1EEF0186CBEA", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&tt=0&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "93ECC556-7125-4085-9E7D-1EEF0186CBEA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&tt=0&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 06:28:30 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "93ECC556-7125-4085-9E7D-1EEF0186CBEA", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDU2OTEwNTkyOTI4OSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "93ECC556-7125-4085-9E7D-1EEF0186CBEA", + "type" : 4 + }, + { + "id" : "01A3BA81-C379-4424-95BF-6D2116021FAE", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810569105929289&tr=12" + }, + "type" : 0 + }, + { + "id" : "80A7A595-1F38-42FB-9316-0F84BEEE4884", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "221", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJ0ZXN0LXNwYWNlLW5hbWUiLCJjdXN0b20iOnsic3BhY2UtY3VzdG9tMiI6InRlc3Qtc3BhY2UtbmFtZS1jdXN0b20tZGF0YS0yIiwic3BhY2UtY3VzdG9tMSI6InRlc3Qtc3BhY2UtbmFtZS1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "80A7A595-1F38-42FB-9316-0F84BEEE4884", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 06:28:31 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "80A7A595-1F38-42FB-9316-0F84BEEE4884", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkNoYW50ZWQtc3BhY2UtaWRlbnRpZmllciIsIm5hbWUiOiJ0ZXN0LXNwYWNlLW5hbWUiLCJkZXNjcmlwdGlvbiI6bnVsbCwiY3VzdG9tIjp7InNwYWNlLWN1c3RvbTEiOiJ0ZXN0LXNwYWNlLW5hbWUtY3VzdG9tLWRhdGEtMSIsInNwYWNlLWN1c3RvbTIiOiJ0ZXN0LXNwYWNlLW5hbWUtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QwNjoyODoyOC45MDYxM1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QwNjoyODozMS4wMzcyMTdaIiwiZVRhZyI6IkFkYk13dXlRakk2dGN3In19" + }, + "type" : 2 + }, + { + "id" : "80A7A595-1F38-42FB-9316-0F84BEEE4884", + "type" : 4 + }, + { + "id" : "01A3BA81-C379-4424-95BF-6D2116021FAE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810569105929289&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 06:28:31 GMT", + "Content-Length" : "563", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "01A3BA81-C379-4424-95BF-6D2116021FAE", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDU2OTExMzAxMjcwOCIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJlIjoyLCJwIjp7InQiOiIxNTgxMDU2OTExMjk5OTQxMiIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIiwiZCI6eyJzb3VyY2UiOiJvYmplY3RzIiwidmVyc2lvbiI6IjEuMCIsImV2ZW50IjoidXBkYXRlIiwidHlwZSI6InNwYWNlIiwiZGF0YSI6eyJjdXN0b20iOnsic3BhY2UtY3VzdG9tMSI6InRlc3Qtc3BhY2UtbmFtZS1jdXN0b20tZGF0YS0xIiwic3BhY2UtY3VzdG9tMiI6InRlc3Qtc3BhY2UtbmFtZS1jdXN0b20tZGF0YS0yIn0sImVUYWciOiJBZGJNd3V5UWpJNnRjdyIsImlkIjoiQ2hhbnRlZC1zcGFjZS1pZGVudGlmaWVyIiwibmFtZSI6InRlc3Qtc3BhY2UtbmFtZSIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDA2OjI4OjMxLjAzNzIxN1oifX19XX0=" + }, + "type" : 2 + }, + { + "id" : "01A3BA81-C379-4424-95BF-6D2116021FAE", + "type" : 4 + }, + { + "id" : "9E4B973F-A6BE-41CD-8B13-0F8E5E44DC09", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810569113012708&tr=12" + }, + "type" : 0 + }, + { + "id" : "9E4B973F-A6BE-41CD-8B13-0F8E5E44DC09", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810569113012708&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Chanted-space-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810569113012708&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "1A799524-43A0-45B0-A855-8A3D9ADDC7B1", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/Chanted-space-identifier\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1A799524-43A0-45B0-A855-8A3D9ADDC7B1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/Chanted-space-identifier\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Fri, 07 Feb 2020 06:28:31 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "1A799524-43A0-45B0-A855-8A3D9ADDC7B1", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "1A799524-43A0-45B0-A855-8A3D9ADDC7B1", + "type" : 4 + }, + { + "id" : "8D206472-8BE6-4D74-B5D4-A87C16612D94", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "8D206472-8BE6-4D74-B5D4-A87C16612D94", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces\/Chanted-space-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 06:28:32 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "8D206472-8BE6-4D74-B5D4-A87C16612D94", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "8D206472-8BE6-4D74-B5D4-A87C16612D94", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldNotSubscribeToChannelAndReceiveAccessDeniedEventWhenPAMKeysUsed.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldNotSubscribeToChannelAndReceiveAccessDeniedEventWhenPAMKeysUsed.json new file mode 100644 index 000000000..9f811860d --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldNotSubscribeToChannelAndReceiveAccessDeniedEventWhenPAMKeysUsed.json @@ -0,0 +1,110 @@ +[ + { + "id" : "71BA0FF8-1F33-4E30-8C91-7B8644434438", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "71BA0FF8-1F33-4E30-8C91-7B8644434438", + "data" : { + "status" : 403, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=UTF-8", + "Connection" : "keep-alive", + "Server" : "openresty", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 04 Feb 2020 13:07:39 GMT", + "Access-Control-Allow-Headers" : "Origin, X-Requested-With, Content-Type, Accept", + "Content-Encoding" : "gzip", + "Cache-Control" : "no-cache, no-store, must-revalidate", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "71BA0FF8-1F33-4E30-8C91-7B8644434438", + "data" : { + "cls" : "NSData", + "base64" : "eyJtZXNzYWdlIjoiRm9yYmlkZGVuIiwicGF5bG9hZCI6eyJjaGFubmVscyI6WyJ0ZXN0LWNoYW5uZWwxIl19LCJlcnJvciI6dHJ1ZSwic2VydmljZSI6IkFjY2VzcyBNYW5hZ2VyIiwic3RhdHVzIjo0MDN9Cg==" + }, + "type" : 2 + }, + { + "id" : "71BA0FF8-1F33-4E30-8C91-7B8644434438", + "type" : 4 + }, + { + "id" : "A1787C71-3B19-4CC2-A6FC-E22F8C3FD932", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A1787C71-3B19-4CC2-A6FC-E22F8C3FD932", + "data" : { + "status" : 403, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=UTF-8", + "Connection" : "keep-alive", + "Server" : "openresty", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 04 Feb 2020 13:07:39 GMT", + "Access-Control-Allow-Headers" : "Origin, X-Requested-With, Content-Type, Accept", + "Content-Encoding" : "gzip", + "Cache-Control" : "no-cache, no-store, must-revalidate", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "A1787C71-3B19-4CC2-A6FC-E22F8C3FD932", + "data" : { + "cls" : "NSData", + "base64" : "eyJtZXNzYWdlIjoiRm9yYmlkZGVuIiwicGF5bG9hZCI6eyJjaGFubmVscyI6WyJ0ZXN0LWNoYW5uZWwxIl19LCJlcnJvciI6dHJ1ZSwic2VydmljZSI6IkFjY2VzcyBNYW5hZ2VyIiwic3RhdHVzIjo0MDN9Cg==" + }, + "type" : 2 + }, + { + "id" : "A1787C71-3B19-4CC2-A6FC-E22F8C3FD932", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldNotSubscribeToChannelAndRetryWhenReceiveAccessDeniedEvent.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldNotSubscribeToChannelAndRetryWhenReceiveAccessDeniedEvent.json new file mode 100644 index 000000000..d9c07faad --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldNotSubscribeToChannelAndRetryWhenReceiveAccessDeniedEvent.json @@ -0,0 +1,164 @@ +[ + { + "id" : "F0A1E293-219F-4214-8E9E-5C730CD7939A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "F0A1E293-219F-4214-8E9E-5C730CD7939A", + "data" : { + "status" : 403, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=UTF-8", + "Connection" : "keep-alive", + "Server" : "openresty", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 04 Feb 2020 13:07:39 GMT", + "Access-Control-Allow-Headers" : "Origin, X-Requested-With, Content-Type, Accept", + "Content-Encoding" : "gzip", + "Cache-Control" : "no-cache, no-store, must-revalidate", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "F0A1E293-219F-4214-8E9E-5C730CD7939A", + "data" : { + "cls" : "NSData", + "base64" : "eyJtZXNzYWdlIjoiRm9yYmlkZGVuIiwicGF5bG9hZCI6eyJjaGFubmVscyI6WyJ0ZXN0LWNoYW5uZWwxIl19LCJlcnJvciI6dHJ1ZSwic2VydmljZSI6IkFjY2VzcyBNYW5hZ2VyIiwic3RhdHVzIjo0MDN9Cg==" + }, + "type" : 2 + }, + { + "id" : "F0A1E293-219F-4214-8E9E-5C730CD7939A", + "type" : 4 + }, + { + "id" : "C1CEF0E3-3221-42D9-B9E4-41E32E3C7B7E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "C1CEF0E3-3221-42D9-B9E4-41E32E3C7B7E", + "data" : { + "status" : 403, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=UTF-8", + "Connection" : "keep-alive", + "Server" : "openresty", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 04 Feb 2020 13:07:41 GMT", + "Access-Control-Allow-Headers" : "Origin, X-Requested-With, Content-Type, Accept", + "Content-Encoding" : "gzip", + "Cache-Control" : "no-cache, no-store, must-revalidate", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "C1CEF0E3-3221-42D9-B9E4-41E32E3C7B7E", + "data" : { + "cls" : "NSData", + "base64" : "eyJtZXNzYWdlIjoiRm9yYmlkZGVuIiwicGF5bG9hZCI6eyJjaGFubmVscyI6WyJ0ZXN0LWNoYW5uZWwxIl19LCJlcnJvciI6dHJ1ZSwic2VydmljZSI6IkFjY2VzcyBNYW5hZ2VyIiwic3RhdHVzIjo0MDN9Cg==" + }, + "type" : 2 + }, + { + "id" : "C1CEF0E3-3221-42D9-B9E4-41E32E3C7B7E", + "type" : 4 + }, + { + "id" : "5B5A1FED-8DFB-4763-841F-E3FDBE2D4B46", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "5B5A1FED-8DFB-4763-841F-E3FDBE2D4B46", + "data" : { + "status" : 403, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=UTF-8", + "Connection" : "keep-alive", + "Server" : "openresty", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 04 Feb 2020 13:07:41 GMT", + "Access-Control-Allow-Headers" : "Origin, X-Requested-With, Content-Type, Accept", + "Content-Encoding" : "gzip", + "Cache-Control" : "no-cache, no-store, must-revalidate", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "5B5A1FED-8DFB-4763-841F-E3FDBE2D4B46", + "data" : { + "cls" : "NSData", + "base64" : "eyJtZXNzYWdlIjoiRm9yYmlkZGVuIiwicGF5bG9hZCI6eyJjaGFubmVscyI6WyJ0ZXN0LWNoYW5uZWwxIl19LCJlcnJvciI6dHJ1ZSwic2VydmljZSI6IkFjY2VzcyBNYW5hZ2VyIiwic3RhdHVzIjo0MDN9Cg==" + }, + "type" : 2 + }, + { + "id" : "5B5A1FED-8DFB-4763-841F-E3FDBE2D4B46", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldNotSubscribeToChannelGroupAndReceiveAccessDeniedEventWhenPAMKeysUsed.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldNotSubscribeToChannelGroupAndReceiveAccessDeniedEventWhenPAMKeysUsed.json new file mode 100644 index 000000000..433201065 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldNotSubscribeToChannelGroupAndReceiveAccessDeniedEventWhenPAMKeysUsed.json @@ -0,0 +1,110 @@ +[ + { + "id" : "EB9F356C-021C-416F-8B87-1A58B0B8D254", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=Serhii&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "EB9F356C-021C-416F-8B87-1A58B0B8D254", + "data" : { + "status" : 403, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=Serhii&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=UTF-8", + "Connection" : "keep-alive", + "Server" : "openresty", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 04 Feb 2020 13:07:41 GMT", + "Access-Control-Allow-Headers" : "Origin, X-Requested-With, Content-Type, Accept", + "Content-Encoding" : "gzip", + "Cache-Control" : "no-cache, no-store, must-revalidate", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "EB9F356C-021C-416F-8B87-1A58B0B8D254", + "data" : { + "cls" : "NSData", + "base64" : "eyJtZXNzYWdlIjoiRm9yYmlkZGVuIiwicGF5bG9hZCI6eyJjaGFubmVsLWdyb3VwcyI6WyI6dGVzdC1jaGFubmVsLWdyb3VwMSJdfSwiZXJyb3IiOnRydWUsInNlcnZpY2UiOiJBY2Nlc3MgTWFuYWdlciIsInN0YXR1cyI6NDAzfQo=" + }, + "type" : 2 + }, + { + "id" : "EB9F356C-021C-416F-8B87-1A58B0B8D254", + "type" : 4 + }, + { + "id" : "29B5C980-4BB7-4660-B111-21F684DD28D4", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "29B5C980-4BB7-4660-B111-21F684DD28D4", + "data" : { + "status" : 403, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=UTF-8", + "Connection" : "keep-alive", + "Server" : "openresty", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 04 Feb 2020 13:07:41 GMT", + "Access-Control-Allow-Headers" : "Origin, X-Requested-With, Content-Type, Accept", + "Content-Encoding" : "gzip", + "Cache-Control" : "no-cache, no-store, must-revalidate", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "29B5C980-4BB7-4660-B111-21F684DD28D4", + "data" : { + "cls" : "NSData", + "base64" : "eyJtZXNzYWdlIjoiRm9yYmlkZGVuIiwicGF5bG9hZCI6eyJjaGFubmVsLWdyb3VwcyI6WyI6dGVzdC1jaGFubmVsLWdyb3VwMSJdfSwiZXJyb3IiOnRydWUsInNlcnZpY2UiOiJBY2Nlc3MgTWFuYWdlciIsInN0YXR1cyI6NDAzfQo=" + }, + "type" : 2 + }, + { + "id" : "29B5C980-4BB7-4660-B111-21F684DD28D4", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldNotSubscribeToChannelGroupAndRetryWhenReceiveAccessDeniedEvent.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldNotSubscribeToChannelGroupAndRetryWhenReceiveAccessDeniedEvent.json new file mode 100644 index 000000000..064456779 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldNotSubscribeToChannelGroupAndRetryWhenReceiveAccessDeniedEvent.json @@ -0,0 +1,164 @@ +[ + { + "id" : "29C7A678-C4F1-47BF-9DDD-974896288DF8", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=Serhii&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "29C7A678-C4F1-47BF-9DDD-974896288DF8", + "data" : { + "status" : 403, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=Serhii&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=UTF-8", + "Connection" : "keep-alive", + "Server" : "openresty", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 04 Feb 2020 13:07:42 GMT", + "Access-Control-Allow-Headers" : "Origin, X-Requested-With, Content-Type, Accept", + "Content-Encoding" : "gzip", + "Cache-Control" : "no-cache, no-store, must-revalidate", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "29C7A678-C4F1-47BF-9DDD-974896288DF8", + "data" : { + "cls" : "NSData", + "base64" : "eyJtZXNzYWdlIjoiRm9yYmlkZGVuIiwicGF5bG9hZCI6eyJjaGFubmVsLWdyb3VwcyI6WyI6dGVzdC1jaGFubmVsLWdyb3VwMSJdfSwiZXJyb3IiOnRydWUsInNlcnZpY2UiOiJBY2Nlc3MgTWFuYWdlciIsInN0YXR1cyI6NDAzfQo=" + }, + "type" : 2 + }, + { + "id" : "29C7A678-C4F1-47BF-9DDD-974896288DF8", + "type" : 4 + }, + { + "id" : "C3A3E1E7-4E62-403F-8487-F3E47CC495DA", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=Serhii&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "C3A3E1E7-4E62-403F-8487-F3E47CC495DA", + "data" : { + "status" : 403, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=Serhii&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=UTF-8", + "Connection" : "keep-alive", + "Server" : "openresty", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 04 Feb 2020 13:07:43 GMT", + "Access-Control-Allow-Headers" : "Origin, X-Requested-With, Content-Type, Accept", + "Content-Encoding" : "gzip", + "Cache-Control" : "no-cache, no-store, must-revalidate", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "C3A3E1E7-4E62-403F-8487-F3E47CC495DA", + "data" : { + "cls" : "NSData", + "base64" : "eyJtZXNzYWdlIjoiRm9yYmlkZGVuIiwicGF5bG9hZCI6eyJjaGFubmVsLWdyb3VwcyI6WyI6dGVzdC1jaGFubmVsLWdyb3VwMSJdfSwiZXJyb3IiOnRydWUsInNlcnZpY2UiOiJBY2Nlc3MgTWFuYWdlciIsInN0YXR1cyI6NDAzfQo=" + }, + "type" : 2 + }, + { + "id" : "C3A3E1E7-4E62-403F-8487-F3E47CC495DA", + "type" : 4 + }, + { + "id" : "DEE47776-AF29-43EC-B3A4-DA8851E1760E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "DEE47776-AF29-43EC-B3A4-DA8851E1760E", + "data" : { + "status" : 403, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=UTF-8", + "Connection" : "keep-alive", + "Server" : "openresty", + "Transfer-Encoding" : "Identity", + "Date" : "Tue, 04 Feb 2020 13:07:43 GMT", + "Access-Control-Allow-Headers" : "Origin, X-Requested-With, Content-Type, Accept", + "Content-Encoding" : "gzip", + "Cache-Control" : "no-cache, no-store, must-revalidate", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "DEE47776-AF29-43EC-B3A4-DA8851E1760E", + "data" : { + "cls" : "NSData", + "base64" : "eyJtZXNzYWdlIjoiRm9yYmlkZGVuIiwicGF5bG9hZCI6eyJjaGFubmVsLWdyb3VwcyI6WyI6dGVzdC1jaGFubmVsLWdyb3VwMSJdfSwiZXJyb3IiOnRydWUsInNlcnZpY2UiOiJBY2Nlc3MgTWFuYWdlciIsInN0YXR1cyI6NDAzfQo=" + }, + "type" : 2 + }, + { + "id" : "DEE47776-AF29-43EC-B3A4-DA8851E1760E", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToChannelAndGroupUsingBuilderPatternInterface.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToChannelAndGroupUsingBuilderPatternInterface.json new file mode 100644 index 000000000..04116ebd5 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToChannelAndGroupUsingBuilderPatternInterface.json @@ -0,0 +1,250 @@ +[ + { + "id" : "CF8351E1-EB00-47D5-8F0C-4FF5045646C9", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "CF8351E1-EB00-47D5-8F0C-4FF5045646C9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:38:40 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "CF8351E1-EB00-47D5-8F0C-4FF5045646C9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "CF8351E1-EB00-47D5-8F0C-4FF5045646C9", + "type" : 4 + }, + { + "id" : "17CDC006-6201-4251-A753-1AB65508C05E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?uuid=Serhii&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "17CDC006-6201-4251-A753-1AB65508C05E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?uuid=Serhii&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:38:44 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "17CDC006-6201-4251-A753-1AB65508C05E", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIzNTI0NjcwNzg2NyIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "17CDC006-6201-4251-A753-1AB65508C05E", + "type" : 4 + }, + { + "id" : "D2B1E73E-A3F8-49EA-875E-C1FA716FB01C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808235246707867&uuid=Serhii&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "9FC4DD45-61E9-489E-9E80-A41338A8C756", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9FC4DD45-61E9-489E-9E80-A41338A8C756", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:38:46 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9FC4DD45-61E9-489E-9E80-A41338A8C756", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "9FC4DD45-61E9-489E-9E80-A41338A8C756", + "type" : 4 + }, + { + "id" : "D2B1E73E-A3F8-49EA-875E-C1FA716FB01C", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808235246707867&uuid=Serhii&heartbeat=20", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808235246707867&uuid=Serhii&heartbeat=20" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "4F82126D-3B39-4FC2-B731-7FB47AFC1642", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel3\/leave?channel-group=test-channel-group1&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "4F82126D-3B39-4FC2-B731-7FB47AFC1642", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel3\/leave?channel-group=test-channel-group1&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:38:46 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "4F82126D-3B39-4FC2-B731-7FB47AFC1642", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "4F82126D-3B39-4FC2-B731-7FB47AFC1642", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToMultipleChannelGroupsAndReceiveConnectedEvent.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToMultipleChannelGroupsAndReceiveConnectedEvent.json new file mode 100644 index 000000000..c4c3ecafe --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToMultipleChannelGroupsAndReceiveConnectedEvent.json @@ -0,0 +1,409 @@ +[ + { + "id" : "948C9143-CEBB-4182-9BB5-7288F41FDFCA", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1" + }, + "type" : 0 + }, + { + "id" : "948C9143-CEBB-4182-9BB5-7288F41FDFCA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:07:44 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "948C9143-CEBB-4182-9BB5-7288F41FDFCA", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "948C9143-CEBB-4182-9BB5-7288F41FDFCA", + "type" : 4 + }, + { + "id" : "C7EC5C15-89A5-438B-B262-B79E9A3E717E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group2?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel2" + }, + "type" : 0 + }, + { + "id" : "C7EC5C15-89A5-438B-B262-B79E9A3E717E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group2?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:07:45 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C7EC5C15-89A5-438B-B262-B79E9A3E717E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "C7EC5C15-89A5-438B-B262-B79E9A3E717E", + "type" : 4 + }, + { + "id" : "4A92A697-24DF-4665-915B-5032087FDD52", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=Serhii&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "4A92A697-24DF-4665-915B-5032087FDD52", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=Serhii&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:07:50 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "4A92A697-24DF-4665-915B-5032087FDD52", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxNjcwMTU5ODUyNCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "4A92A697-24DF-4665-915B-5032087FDD52", + "type" : 4 + }, + { + "id" : "56797A53-9CEE-441E-BD69-651335CB3430", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808216701598524&uuid=Serhii&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "196E09C1-EF94-4474-8F12-1D7AA8BD85A0", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "196E09C1-EF94-4474-8F12-1D7AA8BD85A0", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:07:51 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "196E09C1-EF94-4474-8F12-1D7AA8BD85A0", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "196E09C1-EF94-4474-8F12-1D7AA8BD85A0", + "type" : 4 + }, + { + "id" : "56797A53-9CEE-441E-BD69-651335CB3430", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808216701598524&uuid=Serhii&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:07:51 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "56797A53-9CEE-441E-BD69-651335CB3430", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxNjcwMTU5ODUyNCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "56797A53-9CEE-441E-BD69-651335CB3430", + "type" : 4 + }, + { + "id" : "AF727DBD-7941-4CB9-B656-E5BB85A72765", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808216701598524&uuid=Serhii&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "ED502287-5064-4CD7-B0BB-C07E75777E94", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group2\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "ED502287-5064-4CD7-B0BB-C07E75777E94", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group2\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:07:52 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "ED502287-5064-4CD7-B0BB-C07E75777E94", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "ED502287-5064-4CD7-B0BB-C07E75777E94", + "type" : 4 + }, + { + "id" : "AF727DBD-7941-4CB9-B656-E5BB85A72765", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808216701598524&uuid=Serhii&heartbeat=20", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808216701598524&uuid=Serhii&heartbeat=20" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "6A447B04-A096-4D3E-BD60-C46FADC10DA3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1,test-channel-group2&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "6A447B04-A096-4D3E-BD60-C46FADC10DA3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1,test-channel-group2&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:07:52 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "6A447B04-A096-4D3E-BD60-C46FADC10DA3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "6A447B04-A096-4D3E-BD60-C46FADC10DA3", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToMultipleChannelGroupsAndReceiveMessageWhenPublished.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToMultipleChannelGroupsAndReceiveMessageWhenPublished.json new file mode 100644 index 000000000..43c334f1f --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToMultipleChannelGroupsAndReceiveMessageWhenPublished.json @@ -0,0 +1,511 @@ +[ + { + "id" : "EB49DA36-BC9F-4C72-9C46-5822E102374F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1" + }, + "type" : 0 + }, + { + "id" : "EB49DA36-BC9F-4C72-9C46-5822E102374F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:07:53 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "EB49DA36-BC9F-4C72-9C46-5822E102374F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "EB49DA36-BC9F-4C72-9C46-5822E102374F", + "type" : 4 + }, + { + "id" : "866B43B3-7B70-4C5C-8C56-C2929CB23CFA", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group2?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel2" + }, + "type" : 0 + }, + { + "id" : "866B43B3-7B70-4C5C-8C56-C2929CB23CFA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group2?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:07:54 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "866B43B3-7B70-4C5C-8C56-C2929CB23CFA", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "866B43B3-7B70-4C5C-8C56-C2929CB23CFA", + "type" : 4 + }, + { + "id" : "70D44A13-AC79-4479-B470-79FF0ED3A655", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=Serhii&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "70D44A13-AC79-4479-B470-79FF0ED3A655", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=Serhii&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:07:56 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "70D44A13-AC79-4479-B470-79FF0ED3A655", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxNjc2MDExMDMyNyIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "70D44A13-AC79-4479-B470-79FF0ED3A655", + "type" : 4 + }, + { + "id" : "EAB2265E-0795-49D6-B059-8852A8915EE3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808216760110327&uuid=Serhii&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "14A266F9-027D-4ED4-85DB-F82E410F0472", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22test-message%22:%5B%22message%22%5D%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "EAB2265E-0795-49D6-B059-8852A8915EE3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808216760110327&uuid=Serhii&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:07:59 GMT", + "Content-Length" : "300", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "14A266F9-027D-4ED4-85DB-F82E410F0472", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22test-message%22:%5B%22message%22%5D%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:07:59 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "EAB2265E-0795-49D6-B059-8852A8915EE3", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxNjc5MjI0ODU3OCIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJpIjoiU2VyaGlpIiwicyI6MSwicCI6eyJ0IjoiMTU4MDgyMTY3OTIyNDI1NTciLCJyIjoxMn0sImsiOiJkZW1vIiwiYyI6InRlc3QtY2hhbm5lbDEiLCJkIjp7InRlc3QtbWVzc2FnZSI6WyJtZXNzYWdlIl19LCJiIjoidGVzdC1jaGFubmVsLWdyb3VwMSJ9XX0=" + }, + "type" : 2 + }, + { + "id" : "14A266F9-027D-4ED4-85DB-F82E410F0472", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTgwODIxNjc5MjI0MjU1NyJd" + }, + "type" : 2 + }, + { + "id" : "14A266F9-027D-4ED4-85DB-F82E410F0472", + "type" : 4 + }, + { + "id" : "EAB2265E-0795-49D6-B059-8852A8915EE3", + "type" : 4 + }, + { + "id" : "B43E3787-9D4E-46BD-B960-14E2F8FF149F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808216792248578&uuid=Serhii&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "2246CE29-A993-4CC9-80B0-4B465A00593D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2246CE29-A993-4CC9-80B0-4B465A00593D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:08:00 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "2246CE29-A993-4CC9-80B0-4B465A00593D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "2246CE29-A993-4CC9-80B0-4B465A00593D", + "type" : 4 + }, + { + "id" : "B43E3787-9D4E-46BD-B960-14E2F8FF149F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808216792248578&uuid=Serhii&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:08:00 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B43E3787-9D4E-46BD-B960-14E2F8FF149F", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxNjc5MjI0ODU3OCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "B43E3787-9D4E-46BD-B960-14E2F8FF149F", + "type" : 4 + }, + { + "id" : "FCF92527-9628-4920-B1F1-FEA8700389B7", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808216792248578&uuid=Serhii&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "1550890E-7A36-4352-B84A-63EEEACB13D9", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group2\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1550890E-7A36-4352-B84A-63EEEACB13D9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group2\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:08:01 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "1550890E-7A36-4352-B84A-63EEEACB13D9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "1550890E-7A36-4352-B84A-63EEEACB13D9", + "type" : 4 + }, + { + "id" : "FCF92527-9628-4920-B1F1-FEA8700389B7", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808216792248578&uuid=Serhii&heartbeat=20", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808216792248578&uuid=Serhii&heartbeat=20" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "04ED58E2-BB66-4A64-AF4E-63539392E6FF", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1,test-channel-group2&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "04ED58E2-BB66-4A64-AF4E-63539392E6FF", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1,test-channel-group2&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:08:01 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "04ED58E2-BB66-4A64-AF4E-63539392E6FF", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "04ED58E2-BB66-4A64-AF4E-63539392E6FF", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToMultipleChannelGroupsAndSetState.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToMultipleChannelGroupsAndSetState.json new file mode 100644 index 000000000..09878293b --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToMultipleChannelGroupsAndSetState.json @@ -0,0 +1,463 @@ +[ + { + "id" : "0CE22C69-584A-43CE-951C-51C3789A2D17", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1" + }, + "type" : 0 + }, + { + "id" : "0CE22C69-584A-43CE-951C-51C3789A2D17", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:08:02 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "0CE22C69-584A-43CE-951C-51C3789A2D17", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "0CE22C69-584A-43CE-951C-51C3789A2D17", + "type" : 4 + }, + { + "id" : "F312086E-5F04-4B87-9398-04C919722348", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group2?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel2" + }, + "type" : 0 + }, + { + "id" : "F312086E-5F04-4B87-9398-04C919722348", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group2?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:08:03 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F312086E-5F04-4B87-9398-04C919722348", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "F312086E-5F04-4B87-9398-04C919722348", + "type" : 4 + }, + { + "id" : "74DF378C-A26D-4D63-972F-40D792D1B117", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&uuid=Serhii&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "74DF378C-A26D-4D63-972F-40D792D1B117", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&uuid=Serhii&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:08:08 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "74DF378C-A26D-4D63-972F-40D792D1B117", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxNjg3OTMzMjgzMiIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "74DF378C-A26D-4D63-972F-40D792D1B117", + "type" : 4 + }, + { + "id" : "00047628-C576-42D8-82A8-3B82B5539552", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?heartbeat=20&tr=12&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808216879332832&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "A507D5F7-9A41-442D-94CD-40B1686D3449", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/,\/uuid\/Serhii?channel-group=test-channel-group1,test-channel-group2&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A507D5F7-9A41-442D-94CD-40B1686D3449", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/,\/uuid\/Serhii?channel-group=test-channel-group1,test-channel-group2&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:08:13 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "326", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "A507D5F7-9A41-442D-94CD-40B1686D3449", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWxzIjogeyJ0ZXN0LWNoYW5uZWwxIjogeyJjaGFubmVsLWdyb3VwLTEtc3RhdGUiOiBbImNoYW5uZWwtZ3JvdXAtMS1yYW5kb20tdmFsdWUiXX0sICJ0ZXN0LWNoYW5uZWwyIjogeyJjaGFubmVsLWdyb3VwLTItc3RhdGUiOiBbImNoYW5uZWwtZ3JvdXAtMi1yYW5kb20tdmFsdWUiXX19fSwgInV1aWQiOiAiU2VyaGlpIiwgInNlcnZpY2UiOiAiUHJlc2VuY2UifQ==" + }, + "type" : 2 + }, + { + "id" : "A507D5F7-9A41-442D-94CD-40B1686D3449", + "type" : 4 + }, + { + "id" : "9F419050-B96E-4CD8-A64D-2CA578AC809B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9F419050-B96E-4CD8-A64D-2CA578AC809B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:08:14 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9F419050-B96E-4CD8-A64D-2CA578AC809B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "9F419050-B96E-4CD8-A64D-2CA578AC809B", + "type" : 4 + }, + { + "id" : "00047628-C576-42D8-82A8-3B82B5539552", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?heartbeat=20&tr=12&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808216879332832&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:08:14 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "00047628-C576-42D8-82A8-3B82B5539552", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxNjg3OTMzMjgzMiIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "00047628-C576-42D8-82A8-3B82B5539552", + "type" : 4 + }, + { + "id" : "B4DA67D5-0C4D-41EF-805F-2123622CAB67", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?heartbeat=20&tr=12&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808216879332832&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "ECF275AD-4E4B-4BA2-8FEF-A71C60B79543", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group2\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "ECF275AD-4E4B-4BA2-8FEF-A71C60B79543", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group2\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:08:15 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "ECF275AD-4E4B-4BA2-8FEF-A71C60B79543", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "ECF275AD-4E4B-4BA2-8FEF-A71C60B79543", + "type" : 4 + }, + { + "id" : "B4DA67D5-0C4D-41EF-805F-2123622CAB67", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?heartbeat=20&tr=12&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808216879332832&uuid=Serhii", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?heartbeat=20&tr=12&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808216879332832&uuid=Serhii" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "1D89B99C-7626-4596-8578-7D91E382EDC7", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1,test-channel-group2&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1D89B99C-7626-4596-8578-7D91E382EDC7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1,test-channel-group2&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:08:15 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "1D89B99C-7626-4596-8578-7D91E382EDC7", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "1D89B99C-7626-4596-8578-7D91E382EDC7", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToMultipleChannelGroupsAndTriggerOnlineEvent.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToMultipleChannelGroupsAndTriggerOnlineEvent.json new file mode 100644 index 000000000..036097636 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToMultipleChannelGroupsAndTriggerOnlineEvent.json @@ -0,0 +1,804 @@ +[ + { + "id" : "76394580-5A38-41B3-B693-93EBA62EAB0B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1" + }, + "type" : 0 + }, + { + "id" : "76394580-5A38-41B3-B693-93EBA62EAB0B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:08:16 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "76394580-5A38-41B3-B693-93EBA62EAB0B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "76394580-5A38-41B3-B693-93EBA62EAB0B", + "type" : 4 + }, + { + "id" : "13BA1F98-C27A-4B76-AF65-4473B8266D69", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group2?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel2" + }, + "type" : 0 + }, + { + "id" : "13BA1F98-C27A-4B76-AF65-4473B8266D69", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group2?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:08:17 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "13BA1F98-C27A-4B76-AF65-4473B8266D69", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "13BA1F98-C27A-4B76-AF65-4473B8266D69", + "type" : 4 + }, + { + "id" : "86B713AA-74B4-49F7-B80A-0C2B9447D756", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=david&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "86B713AA-74B4-49F7-B80A-0C2B9447D756", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=david&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:08:18 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "86B713AA-74B4-49F7-B80A-0C2B9447D756", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxNjk4ODQ1MDc4MiIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "86B713AA-74B4-49F7-B80A-0C2B9447D756", + "type" : 4 + }, + { + "id" : "64C569F2-1A74-4315-93A8-80E6F2428B41", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808216988450782&uuid=david&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "64C569F2-1A74-4315-93A8-80E6F2428B41", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808216988450782&uuid=david&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:08:19 GMT", + "Content-Length" : "483", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "64C569F2-1A74-4315-93A8-80E6F2428B41", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxNjk5NjA4MDc2NSIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODIxNjk5NjA1NjU3NyIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMS1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoiZGF2aWQiLCJwbl90aW1lc3RhbXAiOjE1ODA4MjE2OTksInBuX29jY3VwYW5jeSI6MSwicG5faXNwcmVzZW5jZSI6MSwicG5fY2hhbm5lbCI6InRlc3QtY2hhbm5lbDEifSwiZCI6eyJhY3Rpb24iOiJqb2luIiwidXVpZCI6ImRhdmlkIiwidGltZXN0YW1wIjoxNTgwODIxNjk5LCJvY2N1cGFuY3kiOjF9LCJiIjoidGVzdC1jaGFubmVsLWdyb3VwMS1wbnByZXMifV19" + }, + "type" : 2 + }, + { + "id" : "64C569F2-1A74-4315-93A8-80E6F2428B41", + "type" : 4 + }, + { + "id" : "1CF3C6EC-4CE4-4B77-A8F4-9FE5A99DF28E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808216996080765&uuid=david&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "1CF3C6EC-4CE4-4B77-A8F4-9FE5A99DF28E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808216996080765&uuid=david&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:08:19 GMT", + "Content-Length" : "483", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "1CF3C6EC-4CE4-4B77-A8F4-9FE5A99DF28E", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxNjk5NjEwNDMzNiIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODIxNjk5NjEzMjY2NSIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMi1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoiZGF2aWQiLCJwbl90aW1lc3RhbXAiOjE1ODA4MjE2OTksInBuX29jY3VwYW5jeSI6MSwicG5faXNwcmVzZW5jZSI6MSwicG5fY2hhbm5lbCI6InRlc3QtY2hhbm5lbDIifSwiZCI6eyJhY3Rpb24iOiJqb2luIiwidXVpZCI6ImRhdmlkIiwidGltZXN0YW1wIjoxNTgwODIxNjk5LCJvY2N1cGFuY3kiOjF9LCJiIjoidGVzdC1jaGFubmVsLWdyb3VwMi1wbnByZXMifV19" + }, + "type" : 2 + }, + { + "id" : "1CF3C6EC-4CE4-4B77-A8F4-9FE5A99DF28E", + "type" : 4 + }, + { + "id" : "A7DDB6E5-BB7C-4E61-86AD-3378F41EAC84", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808216996104336&uuid=david&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "85C5143F-68C0-4160-8581-5A8E35B86586", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=serhii&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "85C5143F-68C0-4160-8581-5A8E35B86586", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=serhii&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:08:22 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "85C5143F-68C0-4160-8581-5A8E35B86586", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxNzAyMTYxMTU3NCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "85C5143F-68C0-4160-8581-5A8E35B86586", + "type" : 4 + }, + { + "id" : "D1127923-9C86-4E40-91F1-D21C1DB6AC60", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217021611574&uuid=serhii&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "A7DDB6E5-BB7C-4E61-86AD-3378F41EAC84", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808216996104336&uuid=david&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:08:22 GMT", + "Content-Length" : "485", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "A7DDB6E5-BB7C-4E61-86AD-3378F41EAC84", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxNzAyNzgxNDIxMyIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODIxNzAyNzgwMzg3NyIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMS1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoic2VyaGlpIiwicG5fdGltZXN0YW1wIjoxNTgwODIxNzAyLCJwbl9vY2N1cGFuY3kiOjIsInBuX2lzcHJlc2VuY2UiOjEsInBuX2NoYW5uZWwiOiJ0ZXN0LWNoYW5uZWwxIn0sImQiOnsiYWN0aW9uIjoiam9pbiIsInV1aWQiOiJzZXJoaWkiLCJ0aW1lc3RhbXAiOjE1ODA4MjE3MDIsIm9jY3VwYW5jeSI6Mn0sImIiOiJ0ZXN0LWNoYW5uZWwtZ3JvdXAxLXBucHJlcyJ9XX0=" + }, + "type" : 2 + }, + { + "id" : "A7DDB6E5-BB7C-4E61-86AD-3378F41EAC84", + "type" : 4 + }, + { + "id" : "C7E03A64-B96B-44E3-9871-314A017FEC97", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217027814213&uuid=david&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "C7E03A64-B96B-44E3-9871-314A017FEC97", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217027814213&uuid=david&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:08:22 GMT", + "Content-Length" : "485", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C7E03A64-B96B-44E3-9871-314A017FEC97", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxNzAyODA1MTkwNiIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODIxNzAyODA0ODY2NCIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMi1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoic2VyaGlpIiwicG5fdGltZXN0YW1wIjoxNTgwODIxNzAyLCJwbl9vY2N1cGFuY3kiOjIsInBuX2lzcHJlc2VuY2UiOjEsInBuX2NoYW5uZWwiOiJ0ZXN0LWNoYW5uZWwyIn0sImQiOnsiYWN0aW9uIjoiam9pbiIsInV1aWQiOiJzZXJoaWkiLCJ0aW1lc3RhbXAiOjE1ODA4MjE3MDIsIm9jY3VwYW5jeSI6Mn0sImIiOiJ0ZXN0LWNoYW5uZWwtZ3JvdXAyLXBucHJlcyJ9XX0=" + }, + "type" : 2 + }, + { + "id" : "C7E03A64-B96B-44E3-9871-314A017FEC97", + "type" : 4 + }, + { + "id" : "5F64EA7E-3FAF-4353-92CD-C8A83B6AB0D6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217028051906&uuid=david&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "DD563E80-A4F7-4F43-AB05-D96BE4A3AC5D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1\/remove?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "DD563E80-A4F7-4F43-AB05-D96BE4A3AC5D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1\/remove?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:08:24 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "DD563E80-A4F7-4F43-AB05-D96BE4A3AC5D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "DD563E80-A4F7-4F43-AB05-D96BE4A3AC5D", + "type" : 4 + }, + { + "id" : "5F64EA7E-3FAF-4353-92CD-C8A83B6AB0D6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217028051906&uuid=david&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:08:24 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "5F64EA7E-3FAF-4353-92CD-C8A83B6AB0D6", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxNzAyODA1MTkwNiIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "5F64EA7E-3FAF-4353-92CD-C8A83B6AB0D6", + "type" : 4 + }, + { + "id" : "DDFD6D54-7248-4836-8DA4-98B572FD8A76", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217028051906&uuid=david&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "D1127923-9C86-4E40-91F1-D21C1DB6AC60", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217021611574&uuid=serhii&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:08:24 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D1127923-9C86-4E40-91F1-D21C1DB6AC60", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxNzAyMTYxMTU3NCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "D1127923-9C86-4E40-91F1-D21C1DB6AC60", + "type" : 4 + }, + { + "id" : "7039B967-0A86-40A7-8980-3B54AFA94001", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217021611574&uuid=serhii&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "47B8380F-1BD4-4176-A6DB-66E23C9BA4A5", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group2\/remove?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "47B8380F-1BD4-4176-A6DB-66E23C9BA4A5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group2\/remove?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:08:25 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "47B8380F-1BD4-4176-A6DB-66E23C9BA4A5", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "47B8380F-1BD4-4176-A6DB-66E23C9BA4A5", + "type" : 4 + }, + { + "id" : "7039B967-0A86-40A7-8980-3B54AFA94001", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217021611574&uuid=serhii&heartbeat=20", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217021611574&uuid=serhii&heartbeat=20" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "A99EB5FA-C5AC-43AF-88FB-23FDEC7C5027", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1,test-channel-group2&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A99EB5FA-C5AC-43AF-88FB-23FDEC7C5027", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1,test-channel-group2&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:08:25 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "A99EB5FA-C5AC-43AF-88FB-23FDEC7C5027", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "A99EB5FA-C5AC-43AF-88FB-23FDEC7C5027", + "type" : 4 + }, + { + "id" : "DDFD6D54-7248-4836-8DA4-98B572FD8A76", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217028051906&uuid=david&heartbeat=20", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217028051906&uuid=david&heartbeat=20" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "C2317C67-7474-41B0-9604-38AE1EA37847", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1,test-channel-group2&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C2317C67-7474-41B0-9604-38AE1EA37847", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1,test-channel-group2&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:08:25 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C2317C67-7474-41B0-9604-38AE1EA37847", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "C2317C67-7474-41B0-9604-38AE1EA37847", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToMultipleChannelGroupsWithPresenceAndReceiveOwnOnlineEvent.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToMultipleChannelGroupsWithPresenceAndReceiveOwnOnlineEvent.json new file mode 100644 index 000000000..fab85c32d --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToMultipleChannelGroupsWithPresenceAndReceiveOwnOnlineEvent.json @@ -0,0 +1,511 @@ +[ + { + "id" : "58731451-ED51-47B6-A2A6-B0739BA479F3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1" + }, + "type" : 0 + }, + { + "id" : "58731451-ED51-47B6-A2A6-B0739BA479F3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:08:26 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "58731451-ED51-47B6-A2A6-B0739BA479F3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "58731451-ED51-47B6-A2A6-B0739BA479F3", + "type" : 4 + }, + { + "id" : "6EC63159-898C-459E-A247-90E1F697E537", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group2?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel2" + }, + "type" : 0 + }, + { + "id" : "6EC63159-898C-459E-A247-90E1F697E537", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group2?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:08:27 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "6EC63159-898C-459E-A247-90E1F697E537", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "6EC63159-898C-459E-A247-90E1F697E537", + "type" : 4 + }, + { + "id" : "DAAC1D83-750C-48AD-8E4C-10C543D1D598", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=Serhii&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "DAAC1D83-750C-48AD-8E4C-10C543D1D598", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=Serhii&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:08:31 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "DAAC1D83-750C-48AD-8E4C-10C543D1D598", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxNzExNzkwMjkxOCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "DAAC1D83-750C-48AD-8E4C-10C543D1D598", + "type" : 4 + }, + { + "id" : "760D96BE-7D07-4D8C-8543-8AB6C001C44E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217117902918&uuid=Serhii&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "760D96BE-7D07-4D8C-8543-8AB6C001C44E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217117902918&uuid=Serhii&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:08:32 GMT", + "Content-Length" : "485", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "760D96BE-7D07-4D8C-8543-8AB6C001C44E", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxNzEyOTgwNzkzNiIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODIxNzEyOTgwNzgzMyIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMi1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoiU2VyaGlpIiwicG5fdGltZXN0YW1wIjoxNTgwODIxNzEyLCJwbl9vY2N1cGFuY3kiOjEsInBuX2lzcHJlc2VuY2UiOjEsInBuX2NoYW5uZWwiOiJ0ZXN0LWNoYW5uZWwyIn0sImQiOnsiYWN0aW9uIjoiam9pbiIsInV1aWQiOiJTZXJoaWkiLCJ0aW1lc3RhbXAiOjE1ODA4MjE3MTIsIm9jY3VwYW5jeSI6MX0sImIiOiJ0ZXN0LWNoYW5uZWwtZ3JvdXAyLXBucHJlcyJ9XX0=" + }, + "type" : 2 + }, + { + "id" : "760D96BE-7D07-4D8C-8543-8AB6C001C44E", + "type" : 4 + }, + { + "id" : "DA72C25C-2E61-4DFC-9446-4D9444B8C85C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217129807936&uuid=Serhii&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "DA72C25C-2E61-4DFC-9446-4D9444B8C85C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217129807936&uuid=Serhii&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:08:33 GMT", + "Content-Length" : "485", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "DA72C25C-2E61-4DFC-9446-4D9444B8C85C", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxNzEyOTgyOTYxMyIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODIxNzEyOTgyOTIwNSIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMS1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoiU2VyaGlpIiwicG5fdGltZXN0YW1wIjoxNTgwODIxNzEyLCJwbl9vY2N1cGFuY3kiOjEsInBuX2lzcHJlc2VuY2UiOjEsInBuX2NoYW5uZWwiOiJ0ZXN0LWNoYW5uZWwxIn0sImQiOnsiYWN0aW9uIjoiam9pbiIsInV1aWQiOiJTZXJoaWkiLCJ0aW1lc3RhbXAiOjE1ODA4MjE3MTIsIm9jY3VwYW5jeSI6MX0sImIiOiJ0ZXN0LWNoYW5uZWwtZ3JvdXAxLXBucHJlcyJ9XX0=" + }, + "type" : 2 + }, + { + "id" : "DA72C25C-2E61-4DFC-9446-4D9444B8C85C", + "type" : 4 + }, + { + "id" : "3751A0CA-287E-4DA5-9BAF-CE1ED3819DCB", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217129829613&uuid=Serhii&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "11DAE1C9-4E92-4D7C-B783-04BF1F9D8A62", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "11DAE1C9-4E92-4D7C-B783-04BF1F9D8A62", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:08:34 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "11DAE1C9-4E92-4D7C-B783-04BF1F9D8A62", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "11DAE1C9-4E92-4D7C-B783-04BF1F9D8A62", + "type" : 4 + }, + { + "id" : "3751A0CA-287E-4DA5-9BAF-CE1ED3819DCB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217129829613&uuid=Serhii&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:08:34 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "3751A0CA-287E-4DA5-9BAF-CE1ED3819DCB", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxNzEyOTgyOTYxMyIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "3751A0CA-287E-4DA5-9BAF-CE1ED3819DCB", + "type" : 4 + }, + { + "id" : "E233DF6D-6EE8-4B2C-9ADD-A13AF8EF064F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217129829613&uuid=Serhii&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "622523CB-CA10-42C1-94CD-F8AAB4B24D14", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group2\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "622523CB-CA10-42C1-94CD-F8AAB4B24D14", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group2\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:08:35 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "622523CB-CA10-42C1-94CD-F8AAB4B24D14", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "622523CB-CA10-42C1-94CD-F8AAB4B24D14", + "type" : 4 + }, + { + "id" : "E233DF6D-6EE8-4B2C-9ADD-A13AF8EF064F", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217129829613&uuid=Serhii&heartbeat=20", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217129829613&uuid=Serhii&heartbeat=20" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "59ADCE4C-E6DB-42E2-8541-9ED759E8E486", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1,test-channel-group2&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "59ADCE4C-E6DB-42E2-8541-9ED759E8E486", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1,test-channel-group2&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:08:35 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "59ADCE4C-E6DB-42E2-8541-9ED759E8E486", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "59ADCE4C-E6DB-42E2-8541-9ED759E8E486", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToMultipleChannelsAndReceiveConnectedEvent.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToMultipleChannelsAndReceiveConnectedEvent.json new file mode 100644 index 000000000..e533e47b9 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToMultipleChannelsAndReceiveConnectedEvent.json @@ -0,0 +1,142 @@ +[ + { + "id" : "4A19175C-9C03-46B2-A321-7CC1AEF56E2C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "4A19175C-9C03-46B2-A321-7CC1AEF56E2C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:08:36 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "4A19175C-9C03-46B2-A321-7CC1AEF56E2C", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxNzE2MTM0MDc1NSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "4A19175C-9C03-46B2-A321-7CC1AEF56E2C", + "type" : 4 + }, + { + "id" : "7B2B9500-5ED8-49F9-B7DF-B5374F984165", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217161340755&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "7B2B9500-5ED8-49F9-B7DF-B5374F984165", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217161340755&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217161340755&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "760D1D9D-FE20-4C0E-BF26-ACE730BC50BE", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "760D1D9D-FE20-4C0E-BF26-ACE730BC50BE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:08:36 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "760D1D9D-FE20-4C0E-BF26-ACE730BC50BE", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "760D1D9D-FE20-4C0E-BF26-ACE730BC50BE", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToMultipleChannelsAndReceiveMessageWhenPublished.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToMultipleChannelsAndReceiveMessageWhenPublished.json new file mode 100644 index 000000000..09a632849 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToMultipleChannelsAndReceiveMessageWhenPublished.json @@ -0,0 +1,244 @@ +[ + { + "id" : "3F00D1E2-798F-435A-AC6B-5D1B71B46DA1", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "3F00D1E2-798F-435A-AC6B-5D1B71B46DA1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:08:37 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "3F00D1E2-798F-435A-AC6B-5D1B71B46DA1", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxNzE3MDkwNTA5MyIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "3F00D1E2-798F-435A-AC6B-5D1B71B46DA1", + "type" : 4 + }, + { + "id" : "978A037E-8DA3-4135-A640-7FF5022B7BFD", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217170905093&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "06407C46-93D2-45A1-B790-1FF9C962665F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22test-message%22:%5B%22message%22%5D%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "06407C46-93D2-45A1-B790-1FF9C962665F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22test-message%22:%5B%22message%22%5D%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:08:40 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "06407C46-93D2-45A1-B790-1FF9C962665F", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTgwODIxNzIwNTA0OTYyNiJd" + }, + "type" : 2 + }, + { + "id" : "06407C46-93D2-45A1-B790-1FF9C962665F", + "type" : 4 + }, + { + "id" : "978A037E-8DA3-4135-A640-7FF5022B7BFD", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217170905093&heartbeat=20&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:08:40 GMT", + "Content-Length" : "294", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "978A037E-8DA3-4135-A640-7FF5022B7BFD", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxNzIwNTA3OTM5MCIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJpIjoiU2VyaGlpIiwicyI6MiwicCI6eyJ0IjoiMTU4MDgyMTcyMDUwNDk2MjYiLCJyIjoxMn0sImsiOiJkZW1vIiwiYyI6InRlc3QtY2hhbm5lbDIiLCJkIjp7InRlc3QtbWVzc2FnZSI6WyJtZXNzYWdlIl19LCJiIjoidGVzdC1jaGFubmVsMiJ9XX0=" + }, + "type" : 2 + }, + { + "id" : "978A037E-8DA3-4135-A640-7FF5022B7BFD", + "type" : 4 + }, + { + "id" : "19F3440A-C585-43C2-AD5C-C6207F43D1DE", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217205079390&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "19F3440A-C585-43C2-AD5C-C6207F43D1DE", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217205079390&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217205079390&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "CE2E99FC-24EE-4264-B7CF-46744CC03514", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "CE2E99FC-24EE-4264-B7CF-46744CC03514", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:08:40 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "CE2E99FC-24EE-4264-B7CF-46744CC03514", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "CE2E99FC-24EE-4264-B7CF-46744CC03514", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToMultipleChannelsAndSetState.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToMultipleChannelsAndSetState.json new file mode 100644 index 000000000..420c0740d --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToMultipleChannelsAndSetState.json @@ -0,0 +1,196 @@ +[ + { + "id" : "9E179041-A1D0-45DA-933C-6E5BB7958FE1", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "9E179041-A1D0-45DA-933C-6E5BB7958FE1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:08:41 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9E179041-A1D0-45DA-933C-6E5BB7958FE1", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxNzIxNDY1NTk4OCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "9E179041-A1D0-45DA-933C-6E5BB7958FE1", + "type" : 4 + }, + { + "id" : "D4E1FB70-7875-496D-8177-C85660518550", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?tr=12&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=15808217214655988&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "0B313EA7-53A0-48DB-99C9-0339DB6CE218", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1,test-channel2\/uuid\/Serhii?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "0B313EA7-53A0-48DB-99C9-0339DB6CE218", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1,test-channel2\/uuid\/Serhii?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:08:47 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "300", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "0B313EA7-53A0-48DB-99C9-0339DB6CE218", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWxzIjogeyJ0ZXN0LWNoYW5uZWwxIjogeyJjaGFubmVsMS1zdGF0ZSI6IFsiY2hhbm5lbC0xLXJhbmRvbS12YWx1ZSJdfSwgInRlc3QtY2hhbm5lbDIiOiB7ImNoYW5uZWwyLXN0YXRlIjogWyJjaGFubmVsLTItcmFuZG9tLXZhbHVlIl19fX0sICJ1dWlkIjogIlNlcmhpaSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "0B313EA7-53A0-48DB-99C9-0339DB6CE218", + "type" : 4 + }, + { + "id" : "D4E1FB70-7875-496D-8177-C85660518550", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?tr=12&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=15808217214655988&heartbeat=20", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?tr=12&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=15808217214655988&heartbeat=20" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "2C6F90BF-6D87-43A6-A9D8-92F7CA5D4248", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2C6F90BF-6D87-43A6-A9D8-92F7CA5D4248", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:08:47 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "2C6F90BF-6D87-43A6-A9D8-92F7CA5D4248", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "2C6F90BF-6D87-43A6-A9D8-92F7CA5D4248", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToMultipleChannelsAndTriggerOnlineEvent.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToMultipleChannelsAndTriggerOnlineEvent.json new file mode 100644 index 000000000..48bbcb0fc --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToMultipleChannelsAndTriggerOnlineEvent.json @@ -0,0 +1,486 @@ +[ + { + "id" : "896973DA-4DBB-48A4-A212-762E0D439810", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=david&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "896973DA-4DBB-48A4-A212-762E0D439810", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=david&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:13:19 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "896973DA-4DBB-48A4-A212-762E0D439810", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxOTk5NTA1MDA2OSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "896973DA-4DBB-48A4-A212-762E0D439810", + "type" : 4 + }, + { + "id" : "416D6D15-2C54-4A7D-95C8-A0CE0C6250BA", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219995050069&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "416D6D15-2C54-4A7D-95C8-A0CE0C6250BA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219995050069&heartbeat=20&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:13:21 GMT", + "Content-Length" : "477", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "416D6D15-2C54-4A7D-95C8-A0CE0C6250BA", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIyMDAxMDQzNjM3OSIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODIyMDAxMDQzMzY5OCIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMS1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoiZGF2aWQiLCJwbl90aW1lc3RhbXAiOjE1ODA4MjIwMDEsInBuX29jY3VwYW5jeSI6MSwicG5faXNwcmVzZW5jZSI6MSwicG5fY2hhbm5lbCI6InRlc3QtY2hhbm5lbDEifSwiZCI6eyJhY3Rpb24iOiJqb2luIiwidXVpZCI6ImRhdmlkIiwidGltZXN0YW1wIjoxNTgwODIyMDAxLCJvY2N1cGFuY3kiOjF9LCJiIjoidGVzdC1jaGFubmVsMS1wbnByZXMifV19" + }, + "type" : 2 + }, + { + "id" : "416D6D15-2C54-4A7D-95C8-A0CE0C6250BA", + "type" : 4 + }, + { + "id" : "94BF4D16-63B4-457A-93C6-A4F45132DBC0", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808220010436379&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "94BF4D16-63B4-457A-93C6-A4F45132DBC0", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808220010436379&heartbeat=20&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:13:21 GMT", + "Content-Length" : "477", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "94BF4D16-63B4-457A-93C6-A4F45132DBC0", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIyMDAxMDQ4ODIxNCIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODIyMDAxMDQ2MjM4MyIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMi1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoiZGF2aWQiLCJwbl90aW1lc3RhbXAiOjE1ODA4MjIwMDEsInBuX29jY3VwYW5jeSI6MSwicG5faXNwcmVzZW5jZSI6MSwicG5fY2hhbm5lbCI6InRlc3QtY2hhbm5lbDIifSwiZCI6eyJhY3Rpb24iOiJqb2luIiwidXVpZCI6ImRhdmlkIiwidGltZXN0YW1wIjoxNTgwODIyMDAxLCJvY2N1cGFuY3kiOjF9LCJiIjoidGVzdC1jaGFubmVsMi1wbnByZXMifV19" + }, + "type" : 2 + }, + { + "id" : "94BF4D16-63B4-457A-93C6-A4F45132DBC0", + "type" : 4 + }, + { + "id" : "53D18A45-737F-4492-8A77-3BE6785AB909", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808220010488214&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "6C29DA27-85AF-4CDB-BA93-6BDB25044099", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=serhii&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "6C29DA27-85AF-4CDB-BA93-6BDB25044099", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=serhii&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:13:22 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "6C29DA27-85AF-4CDB-BA93-6BDB25044099", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIyMDAyNzgyNzY1MiIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "6C29DA27-85AF-4CDB-BA93-6BDB25044099", + "type" : 4 + }, + { + "id" : "F421C483-ECEC-4159-A4FC-16F6277835F2", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808220027827652&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "53D18A45-737F-4492-8A77-3BE6785AB909", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808220010488214&heartbeat=20&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:13:23 GMT", + "Content-Length" : "479", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "53D18A45-737F-4492-8A77-3BE6785AB909", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIyMDAzNTQ4NzY3NCIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODIyMDAzNTQ4NDMxNyIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMS1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoic2VyaGlpIiwicG5fdGltZXN0YW1wIjoxNTgwODIyMDAzLCJwbl9vY2N1cGFuY3kiOjIsInBuX2lzcHJlc2VuY2UiOjEsInBuX2NoYW5uZWwiOiJ0ZXN0LWNoYW5uZWwxIn0sImQiOnsiYWN0aW9uIjoiam9pbiIsInV1aWQiOiJzZXJoaWkiLCJ0aW1lc3RhbXAiOjE1ODA4MjIwMDMsIm9jY3VwYW5jeSI6Mn0sImIiOiJ0ZXN0LWNoYW5uZWwxLXBucHJlcyJ9XX0=" + }, + "type" : 2 + }, + { + "id" : "53D18A45-737F-4492-8A77-3BE6785AB909", + "type" : 4 + }, + { + "id" : "80185534-3F05-44D3-9F38-D515800AA9F4", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808220035487674&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "80185534-3F05-44D3-9F38-D515800AA9F4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808220035487674&heartbeat=20&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:13:23 GMT", + "Content-Length" : "479", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "80185534-3F05-44D3-9F38-D515800AA9F4", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIyMDAzNTUxNTI2OCIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODIyMDAzNTUwNTExMiIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMi1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoic2VyaGlpIiwicG5fdGltZXN0YW1wIjoxNTgwODIyMDAzLCJwbl9vY2N1cGFuY3kiOjIsInBuX2lzcHJlc2VuY2UiOjEsInBuX2NoYW5uZWwiOiJ0ZXN0LWNoYW5uZWwyIn0sImQiOnsiYWN0aW9uIjoiam9pbiIsInV1aWQiOiJzZXJoaWkiLCJ0aW1lc3RhbXAiOjE1ODA4MjIwMDMsIm9jY3VwYW5jeSI6Mn0sImIiOiJ0ZXN0LWNoYW5uZWwyLXBucHJlcyJ9XX0=" + }, + "type" : 2 + }, + { + "id" : "80185534-3F05-44D3-9F38-D515800AA9F4", + "type" : 4 + }, + { + "id" : "8F5D7799-665E-4EBA-9EC1-C44FDCB4EA89", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808220035515268&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "F421C483-ECEC-4159-A4FC-16F6277835F2", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808220027827652&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808220027827652&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "2AC1A765-68CB-4B89-9BD9-430598FBA0A2", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2\/leave?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "2AC1A765-68CB-4B89-9BD9-430598FBA0A2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2\/leave?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:13:23 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "2AC1A765-68CB-4B89-9BD9-430598FBA0A2", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "2AC1A765-68CB-4B89-9BD9-430598FBA0A2", + "type" : 4 + }, + { + "id" : "8F5D7799-665E-4EBA-9EC1-C44FDCB4EA89", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808220035515268&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808220035515268&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "9F8CE51B-55F8-432D-BE4A-0B9245E3882D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9F8CE51B-55F8-432D-BE4A-0B9245E3882D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:13:24 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9F8CE51B-55F8-432D-BE4A-0B9245E3882D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "9F8CE51B-55F8-432D-BE4A-0B9245E3882D", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToMultipleChannelsAndTriggerOnlineEventWhenSubscribedOnPresenceChannelSeparatelly.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToMultipleChannelsAndTriggerOnlineEventWhenSubscribedOnPresenceChannelSeparatelly.json new file mode 100644 index 000000000..0602c6263 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToMultipleChannelsAndTriggerOnlineEventWhenSubscribedOnPresenceChannelSeparatelly.json @@ -0,0 +1,556 @@ +[ + { + "id" : "E3297FAA-619D-4804-8BD9-C5E56905D241", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=david&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "E3297FAA-619D-4804-8BD9-C5E56905D241", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=david&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 14:05:27 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E3297FAA-619D-4804-8BD9-C5E56905D241", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODI1MTI3NTc5NTE4MiIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "E3297FAA-619D-4804-8BD9-C5E56905D241", + "type" : 4 + }, + { + "id" : "BA473C71-9D8C-4A2F-A419-29C0DDFCA2B6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808251275795182&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "6634FF57-DF72-4D07-AE98-50C8D34ADD84", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=serhii&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "6634FF57-DF72-4D07-AE98-50C8D34ADD84", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=serhii&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 14:05:30 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "6634FF57-DF72-4D07-AE98-50C8D34ADD84", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODI1MTMwODkzODUwMiIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "6634FF57-DF72-4D07-AE98-50C8D34ADD84", + "type" : 4 + }, + { + "id" : "DCF90840-3078-4484-83B2-62813E14549A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808251308938502&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "BA473C71-9D8C-4A2F-A419-29C0DDFCA2B6", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808251275795182&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808251275795182&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "FCA687D2-D930-40B2-8590-8EAE106B95E2", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2,test-channel2-pnpres\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=david&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "FCA687D2-D930-40B2-8590-8EAE106B95E2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2,test-channel2-pnpres\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=david&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 14:05:46 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "FCA687D2-D930-40B2-8590-8EAE106B95E2", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODI1MTQ1OTc2NDI3NiIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "FCA687D2-D930-40B2-8590-8EAE106B95E2", + "type" : 4 + }, + { + "id" : "9B863E76-20D7-4040-8225-F77610639659", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808251275795182&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "9B863E76-20D7-4040-8225-F77610639659", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808251275795182&heartbeat=20&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 14:05:46 GMT", + "Content-Length" : "477", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9B863E76-20D7-4040-8225-F77610639659", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODI1MTI5MDM1Nzc3OSIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODI1MTI5MDMzMDI2MyIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMi1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoiZGF2aWQiLCJwbl90aW1lc3RhbXAiOjE1ODA4MjUxMjksInBuX29jY3VwYW5jeSI6MSwicG5faXNwcmVzZW5jZSI6MSwicG5fY2hhbm5lbCI6InRlc3QtY2hhbm5lbDIifSwiZCI6eyJhY3Rpb24iOiJqb2luIiwidXVpZCI6ImRhdmlkIiwidGltZXN0YW1wIjoxNTgwODI1MTI5LCJvY2N1cGFuY3kiOjF9LCJiIjoidGVzdC1jaGFubmVsMi1wbnByZXMifV19" + }, + "type" : 2 + }, + { + "id" : "9B863E76-20D7-4040-8225-F77610639659", + "type" : 4 + }, + { + "id" : "865A7488-F8BD-4820-B02E-71A21371AD3C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808251290357779&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "DCF90840-3078-4484-83B2-62813E14549A", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808251308938502&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808251308938502&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "4E2AD13D-D3E1-4397-97B3-4EE27065267B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=serhii&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "4E2AD13D-D3E1-4397-97B3-4EE27065267B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=serhii&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 14:05:49 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "4E2AD13D-D3E1-4397-97B3-4EE27065267B", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODI1MTQ4OTU3NzEyNyIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "4E2AD13D-D3E1-4397-97B3-4EE27065267B", + "type" : 4 + }, + { + "id" : "684F3023-62CB-43C4-8719-D16E49B85C3E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808251308938502&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "865A7488-F8BD-4820-B02E-71A21371AD3C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808251290357779&heartbeat=20&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 14:05:51 GMT", + "Content-Length" : "479", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "865A7488-F8BD-4820-B02E-71A21371AD3C", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODI1MTUxMTQ2ODkwMCIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODI1MTUxMTQ2ODg2NSIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMi1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoic2VyaGlpIiwicG5fdGltZXN0YW1wIjoxNTgwODI1MTUxLCJwbl9vY2N1cGFuY3kiOjIsInBuX2lzcHJlc2VuY2UiOjEsInBuX2NoYW5uZWwiOiJ0ZXN0LWNoYW5uZWwyIn0sImQiOnsiYWN0aW9uIjoiam9pbiIsInV1aWQiOiJzZXJoaWkiLCJ0aW1lc3RhbXAiOjE1ODA4MjUxNTEsIm9jY3VwYW5jeSI6Mn0sImIiOiJ0ZXN0LWNoYW5uZWwyLXBucHJlcyJ9XX0=" + }, + "type" : 2 + }, + { + "id" : "865A7488-F8BD-4820-B02E-71A21371AD3C", + "type" : 4 + }, + { + "id" : "B1CE2659-D962-4CCF-9AA7-98164FC230DD", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808251511468900&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "684F3023-62CB-43C4-8719-D16E49B85C3E", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808251308938502&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808251308938502&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "46FA0D6E-3D96-4B25-A517-BFB6FB09A927", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2\/leave?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "46FA0D6E-3D96-4B25-A517-BFB6FB09A927", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2\/leave?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 14:05:51 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "46FA0D6E-3D96-4B25-A517-BFB6FB09A927", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "46FA0D6E-3D96-4B25-A517-BFB6FB09A927", + "type" : 4 + }, + { + "id" : "B1CE2659-D962-4CCF-9AA7-98164FC230DD", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808251511468900&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808251511468900&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "712C84D9-41F2-4D1A-BF42-F827706BF994", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "712C84D9-41F2-4D1A-BF42-F827706BF994", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 14:05:52 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "712C84D9-41F2-4D1A-BF42-F827706BF994", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "712C84D9-41F2-4D1A-BF42-F827706BF994", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToMultipleChannelsWithPresenceAndReceiveOwnOnlineEvent.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToMultipleChannelsWithPresenceAndReceiveOwnOnlineEvent.json new file mode 100644 index 000000000..5291dd1da --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToMultipleChannelsWithPresenceAndReceiveOwnOnlineEvent.json @@ -0,0 +1,244 @@ +[ + { + "id" : "AAC1EBD9-D115-461A-9338-87B85A010C9D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "AAC1EBD9-D115-461A-9338-87B85A010C9D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:09:07 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "AAC1EBD9-D115-461A-9338-87B85A010C9D", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxNzQ3NDczNTA0MyIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "AAC1EBD9-D115-461A-9338-87B85A010C9D", + "type" : 4 + }, + { + "id" : "01743FA3-9C80-42F6-8CF9-E3E3901ABC55", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217474735043&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "01743FA3-9C80-42F6-8CF9-E3E3901ABC55", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217474735043&heartbeat=20&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:09:08 GMT", + "Content-Length" : "479", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "01743FA3-9C80-42F6-8CF9-E3E3901ABC55", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxNzQ4NjU0MDk1MiIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODIxNzQ4NjU2OTM5MiIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMi1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoiU2VyaGlpIiwicG5fdGltZXN0YW1wIjoxNTgwODIxNzQ4LCJwbl9vY2N1cGFuY3kiOjEsInBuX2lzcHJlc2VuY2UiOjEsInBuX2NoYW5uZWwiOiJ0ZXN0LWNoYW5uZWwyIn0sImQiOnsiYWN0aW9uIjoiam9pbiIsInV1aWQiOiJTZXJoaWkiLCJ0aW1lc3RhbXAiOjE1ODA4MjE3NDgsIm9jY3VwYW5jeSI6MX0sImIiOiJ0ZXN0LWNoYW5uZWwyLXBucHJlcyJ9XX0=" + }, + "type" : 2 + }, + { + "id" : "01743FA3-9C80-42F6-8CF9-E3E3901ABC55", + "type" : 4 + }, + { + "id" : "63CDA665-D2D5-45C8-A725-E5EFF3C4EE4E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217486540952&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "63CDA665-D2D5-45C8-A725-E5EFF3C4EE4E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217486540952&heartbeat=20&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:09:08 GMT", + "Content-Length" : "479", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "63CDA665-D2D5-45C8-A725-E5EFF3C4EE4E", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxNzQ4NjU3MTM4NCIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODIxNzQ4NjU3MDgzOCIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMS1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoiU2VyaGlpIiwicG5fdGltZXN0YW1wIjoxNTgwODIxNzQ4LCJwbl9vY2N1cGFuY3kiOjEsInBuX2lzcHJlc2VuY2UiOjEsInBuX2NoYW5uZWwiOiJ0ZXN0LWNoYW5uZWwxIn0sImQiOnsiYWN0aW9uIjoiam9pbiIsInV1aWQiOiJTZXJoaWkiLCJ0aW1lc3RhbXAiOjE1ODA4MjE3NDgsIm9jY3VwYW5jeSI6MX0sImIiOiJ0ZXN0LWNoYW5uZWwxLXBucHJlcyJ9XX0=" + }, + "type" : 2 + }, + { + "id" : "63CDA665-D2D5-45C8-A725-E5EFF3C4EE4E", + "type" : 4 + }, + { + "id" : "8ED471EE-E655-4600-BF60-72B4EDA6170E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217486571384&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "8ED471EE-E655-4600-BF60-72B4EDA6170E", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217486571384&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217486571384&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "05B9BCA9-624F-433C-82DA-5EEA21F6F20E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "05B9BCA9-624F-433C-82DA-5EEA21F6F20E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:09:08 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "05B9BCA9-624F-433C-82DA-5EEA21F6F20E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "05B9BCA9-624F-433C-82DA-5EEA21F6F20E", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToPresenceChannelUsingBuilderPatternInterface.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToPresenceChannelUsingBuilderPatternInterface.json new file mode 100644 index 000000000..4ecfab9b6 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToPresenceChannelUsingBuilderPatternInterface.json @@ -0,0 +1,556 @@ +[ + { + "id" : "F85BD96D-2D1F-4AB9-8A19-3B7D6A56BE16", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=david&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "F85BD96D-2D1F-4AB9-8A19-3B7D6A56BE16", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=david&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 14:38:27 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F85BD96D-2D1F-4AB9-8A19-3B7D6A56BE16", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODI3MTA3NzA3NjE3NyIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "F85BD96D-2D1F-4AB9-8A19-3B7D6A56BE16", + "type" : 4 + }, + { + "id" : "56F8DF77-018E-48CA-97EB-8FE04955A2D0", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808271077076177&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "1A6D9FDA-EBEF-416A-9846-C85ACD4C6038", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=serhii&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "1A6D9FDA-EBEF-416A-9846-C85ACD4C6038", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=serhii&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 14:38:31 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "1A6D9FDA-EBEF-416A-9846-C85ACD4C6038", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODI3MTEwOTk3MTc0MSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "1A6D9FDA-EBEF-416A-9846-C85ACD4C6038", + "type" : 4 + }, + { + "id" : "3D4D7F61-E6D5-4EE0-A974-42AA938D0DD0", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808271109971741&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "56F8DF77-018E-48CA-97EB-8FE04955A2D0", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808271077076177&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808271077076177&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "9E1CF344-DC33-44AD-988B-9854E4385F3F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2,test-channel2-pnpres\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=david&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "9E1CF344-DC33-44AD-988B-9854E4385F3F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2,test-channel2-pnpres\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=david&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 14:38:46 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9E1CF344-DC33-44AD-988B-9854E4385F3F", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODI3MTI1OTk5NDI5MSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "9E1CF344-DC33-44AD-988B-9854E4385F3F", + "type" : 4 + }, + { + "id" : "881783EF-88E7-46FE-B33E-C779E8BF1691", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808271077076177&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "881783EF-88E7-46FE-B33E-C779E8BF1691", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808271077076177&heartbeat=20&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 14:38:46 GMT", + "Content-Length" : "477", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "881783EF-88E7-46FE-B33E-C779E8BF1691", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODI3MTA4NzA2MTgyNyIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODI3MTA4NzA0MzA4MSIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMi1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoiZGF2aWQiLCJwbl90aW1lc3RhbXAiOjE1ODA4MjcxMDgsInBuX29jY3VwYW5jeSI6MSwicG5faXNwcmVzZW5jZSI6MSwicG5fY2hhbm5lbCI6InRlc3QtY2hhbm5lbDIifSwiZCI6eyJhY3Rpb24iOiJqb2luIiwidXVpZCI6ImRhdmlkIiwidGltZXN0YW1wIjoxNTgwODI3MTA4LCJvY2N1cGFuY3kiOjF9LCJiIjoidGVzdC1jaGFubmVsMi1wbnByZXMifV19" + }, + "type" : 2 + }, + { + "id" : "881783EF-88E7-46FE-B33E-C779E8BF1691", + "type" : 4 + }, + { + "id" : "173A4FF0-5AD4-4154-AC9A-FB978D00D3ED", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808271087061827&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "3D4D7F61-E6D5-4EE0-A974-42AA938D0DD0", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808271109971741&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808271109971741&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "B5FB3E79-4E6A-4693-AC19-6125E207EDB3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=serhii&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "B5FB3E79-4E6A-4693-AC19-6125E207EDB3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=serhii&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 14:38:49 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B5FB3E79-4E6A-4693-AC19-6125E207EDB3", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODI3MTI5MDM5NDk0MCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "B5FB3E79-4E6A-4693-AC19-6125E207EDB3", + "type" : 4 + }, + { + "id" : "98141366-1CB5-487D-8D80-D61C79BACFE3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808271109971741&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "173A4FF0-5AD4-4154-AC9A-FB978D00D3ED", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808271087061827&heartbeat=20&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 14:38:50 GMT", + "Content-Length" : "479", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "173A4FF0-5AD4-4154-AC9A-FB978D00D3ED", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODI3MTMwNDQyNzI3OCIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODI3MTMwNDQyNTI4NiIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMi1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoic2VyaGlpIiwicG5fdGltZXN0YW1wIjoxNTgwODI3MTMwLCJwbl9vY2N1cGFuY3kiOjIsInBuX2lzcHJlc2VuY2UiOjEsInBuX2NoYW5uZWwiOiJ0ZXN0LWNoYW5uZWwyIn0sImQiOnsiYWN0aW9uIjoiam9pbiIsInV1aWQiOiJzZXJoaWkiLCJ0aW1lc3RhbXAiOjE1ODA4MjcxMzAsIm9jY3VwYW5jeSI6Mn0sImIiOiJ0ZXN0LWNoYW5uZWwyLXBucHJlcyJ9XX0=" + }, + "type" : 2 + }, + { + "id" : "173A4FF0-5AD4-4154-AC9A-FB978D00D3ED", + "type" : 4 + }, + { + "id" : "E01306C9-B45D-4330-AFBC-F8698820A671", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808271304427278&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "98141366-1CB5-487D-8D80-D61C79BACFE3", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808271109971741&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808271109971741&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "F368B103-B130-410B-A52B-7D32EE5EE636", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2\/leave?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F368B103-B130-410B-A52B-7D32EE5EE636", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2\/leave?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 14:38:50 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F368B103-B130-410B-A52B-7D32EE5EE636", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "F368B103-B130-410B-A52B-7D32EE5EE636", + "type" : 4 + }, + { + "id" : "E01306C9-B45D-4330-AFBC-F8698820A671", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808271304427278&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808271304427278&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "D2CDECB1-6CEF-4689-8DD9-44E97CB9B19E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D2CDECB1-6CEF-4689-8DD9-44E97CB9B19E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 14:38:51 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D2CDECB1-6CEF-4689-8DD9-44E97CB9B19E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "D2CDECB1-6CEF-4689-8DD9-44E97CB9B19E", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelAndNotReceiveMessageWhenFilterExpressionIsSetToCompound.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelAndNotReceiveMessageWhenFilterExpressionIsSetToCompound.json new file mode 100644 index 000000000..2081dbb43 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelAndNotReceiveMessageWhenFilterExpressionIsSetToCompound.json @@ -0,0 +1,193 @@ +[ + { + "id" : "41189B87-F0B3-4E33-B656-15C98AD92928", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&filter-expr=uuid%20==%20'Serhii'%20&&%20!admin%20&&%20age%20%3E=%2032&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "41189B87-F0B3-4E33-B656-15C98AD92928", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&filter-expr=uuid%20==%20'Serhii'%20&&%20!admin%20&&%20age%20%3E=%2032&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:09:09 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "41189B87-F0B3-4E33-B656-15C98AD92928", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxNzQ5NTg5NzgxNiIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "41189B87-F0B3-4E33-B656-15C98AD92928", + "type" : 4 + }, + { + "id" : "2F129C72-BE9E-4B33-96F3-61D61836123D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?tr=12&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=15808217495897816&filter-expr=uuid%20==%20'Serhii'%20&&%20!admin%20&&%20age%20%3E=%2032&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "595502A9-39F7-4BCB-9E11-2FD10ECE34BC", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22test-message%22:%5B%22message%22%5D%7D?meta=%7B%22admin%22:true,%22age%22:33,%22uuid%22:%22Serhii%22%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "595502A9-39F7-4BCB-9E11-2FD10ECE34BC", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22test-message%22:%5B%22message%22%5D%7D?uuid=Serhii&meta=%7B%22admin%22:true,%22age%22:33,%22uuid%22:%22Serhii%22%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:09:12 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "595502A9-39F7-4BCB-9E11-2FD10ECE34BC", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTgwODIxNzUyOTg4OTM3NCJd" + }, + "type" : 2 + }, + { + "id" : "595502A9-39F7-4BCB-9E11-2FD10ECE34BC", + "type" : 4 + }, + { + "id" : "2F129C72-BE9E-4B33-96F3-61D61836123D", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?tr=12&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=15808217495897816&filter-expr=uuid%20==%20'Serhii'%20&&%20!admin%20&&%20age%20%3E=%2032&heartbeat=20", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?tr=12&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=15808217495897816&filter-expr=uuid%20==%20'Serhii'%20&&%20!admin%20&&%20age%20%3E=%2032&heartbeat=20" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "F388B99F-9FD7-4756-BE9B-FA9A9CC5DE78", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F388B99F-9FD7-4756-BE9B-FA9A9CC5DE78", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:09:28 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F388B99F-9FD7-4756-BE9B-FA9A9CC5DE78", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "F388B99F-9FD7-4756-BE9B-FA9A9CC5DE78", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelAndNotReceiveMessageWhenFilterExpressionIsSetToExactMatch.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelAndNotReceiveMessageWhenFilterExpressionIsSetToExactMatch.json new file mode 100644 index 000000000..48043dbfa --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelAndNotReceiveMessageWhenFilterExpressionIsSetToExactMatch.json @@ -0,0 +1,193 @@ +[ + { + "id" : "A5A30877-1C5B-42DE-BE71-68060C1BE662", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&filter-expr=uuid%20==%20'bob'&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "A5A30877-1C5B-42DE-BE71-68060C1BE662", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&filter-expr=uuid%20==%20'bob'&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:09:28 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "A5A30877-1C5B-42DE-BE71-68060C1BE662", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxNzY4NjkwMjc2OSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "A5A30877-1C5B-42DE-BE71-68060C1BE662", + "type" : 4 + }, + { + "id" : "09DFE71D-5F5A-459A-92BA-4E8B30C736B3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?tr=12&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=15808217686902769&filter-expr=uuid%20==%20'bob'&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "38EBDFCB-B81B-4438-8AFD-031263DE7D96", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22test-message%22:%5B%22message%22%5D%7D?meta=%7B%22uuid%22:%22Serhii%22%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "38EBDFCB-B81B-4438-8AFD-031263DE7D96", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22test-message%22:%5B%22message%22%5D%7D?uuid=Serhii&meta=%7B%22uuid%22:%22Serhii%22%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:09:32 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "38EBDFCB-B81B-4438-8AFD-031263DE7D96", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTgwODIxNzcyMDkxNjk5OSJd" + }, + "type" : 2 + }, + { + "id" : "38EBDFCB-B81B-4438-8AFD-031263DE7D96", + "type" : 4 + }, + { + "id" : "09DFE71D-5F5A-459A-92BA-4E8B30C736B3", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?tr=12&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=15808217686902769&filter-expr=uuid%20==%20'bob'&heartbeat=20", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?tr=12&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=15808217686902769&filter-expr=uuid%20==%20'bob'&heartbeat=20" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "4BEFFA4D-C6A1-4037-9D59-87C030F84A9C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "4BEFFA4D-C6A1-4037-9D59-87C030F84A9C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:09:47 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "4BEFFA4D-C6A1-4037-9D59-87C030F84A9C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "4BEFFA4D-C6A1-4037-9D59-87C030F84A9C", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelAndReceiveConnectedEvent.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelAndReceiveConnectedEvent.json new file mode 100644 index 000000000..579dbf4be --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelAndReceiveConnectedEvent.json @@ -0,0 +1,142 @@ +[ + { + "id" : "C47BA4D3-5622-4FAF-9D18-C79889885658", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "C47BA4D3-5622-4FAF-9D18-C79889885658", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:09:47 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C47BA4D3-5622-4FAF-9D18-C79889885658", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxNzg3ODQ3MTUyNCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "C47BA4D3-5622-4FAF-9D18-C79889885658", + "type" : 4 + }, + { + "id" : "B02EB480-C20E-47BE-9465-F5A8B58F5DD8", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217878471524&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "B02EB480-C20E-47BE-9465-F5A8B58F5DD8", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217878471524&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217878471524&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "11201434-B1E9-471F-A958-ED064EE1E3D6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "11201434-B1E9-471F-A958-ED064EE1E3D6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:09:48 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "11201434-B1E9-471F-A958-ED064EE1E3D6", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "11201434-B1E9-471F-A958-ED064EE1E3D6", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelAndReceiveDecryptedMessageWhenPublisherAndReceivedHasSameCipherKey.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelAndReceiveDecryptedMessageWhenPublisherAndReceivedHasSameCipherKey.json new file mode 100644 index 000000000..9615a6f2b --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelAndReceiveDecryptedMessageWhenPublisherAndReceivedHasSameCipherKey.json @@ -0,0 +1,244 @@ +[ + { + "id" : "5AB612D4-98FF-4F67-BCB3-9D8369F5DF64", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=david&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "5AB612D4-98FF-4F67-BCB3-9D8369F5DF64", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=david&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:09:48 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "5AB612D4-98FF-4F67-BCB3-9D8369F5DF64", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxNzg4ODY3MzU5MSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "5AB612D4-98FF-4F67-BCB3-9D8369F5DF64", + "type" : 4 + }, + { + "id" : "5AA55045-2A2B-49CC-9E50-26C7C991F1F6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217888673591&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "9F74CB4A-D8C2-4E51-B463-E4899516B9F6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%22lj9tnXwdHDMHktlZBHVfOID6MoJIhj2zF0Ngrog6vAK5OIT\/Ft6a96a0ob72oAIn%22?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "9F74CB4A-D8C2-4E51-B463-E4899516B9F6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%22lj9tnXwdHDMHktlZBHVfOID6MoJIhj2zF0Ngrog6vAK5OIT\/Ft6a96a0ob72oAIn%22?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:09:52 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "5AA55045-2A2B-49CC-9E50-26C7C991F1F6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217888673591&heartbeat=20&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:09:52 GMT", + "Content-Length" : "284", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9F74CB4A-D8C2-4E51-B463-E4899516B9F6", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTgwODIxNzkyNjc1ODk0OCJd" + }, + "type" : 2 + }, + { + "id" : "5AA55045-2A2B-49CC-9E50-26C7C991F1F6", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxNzkyNjc2MTI4OCIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJpIjoic2VyaGlpIiwicyI6NSwicCI6eyJ0IjoiMTU4MDgyMTc5MjY3NTg5NDgiLCJyIjoxMn0sImsiOiJkZW1vIiwiYyI6InRlc3QtY2hhbm5lbDEiLCJkIjoibGo5dG5Yd2RIRE1Ia3RsWkJIVmZPSUQ2TW9KSWhqMnpGME5ncm9nNnZBSzVPSVQvRnQ2YTk2YTBvYjcyb0FJbiJ9XX0=" + }, + "type" : 2 + }, + { + "id" : "9F74CB4A-D8C2-4E51-B463-E4899516B9F6", + "type" : 4 + }, + { + "id" : "5AA55045-2A2B-49CC-9E50-26C7C991F1F6", + "type" : 4 + }, + { + "id" : "7D4DBE40-828E-4E02-B834-68003D78E7A8", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217926761288&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "7D4DBE40-828E-4E02-B834-68003D78E7A8", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217926761288&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808217926761288&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "9385E192-DA15-4299-8215-45A1ABCECB47", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9385E192-DA15-4299-8215-45A1ABCECB47", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:09:53 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9385E192-DA15-4299-8215-45A1ABCECB47", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "9385E192-DA15-4299-8215-45A1ABCECB47", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelAndReceiveFilteredMessagesWhenFilterExpressionSetAfterSubscribe.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelAndReceiveFilteredMessagesWhenFilterExpressionSetAfterSubscribe.json new file mode 100644 index 000000000..9da6a4b3b --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelAndReceiveFilteredMessagesWhenFilterExpressionSetAfterSubscribe.json @@ -0,0 +1,381 @@ +[ + { + "id" : "C6BB50FB-0CD4-4A7A-8974-0DB028F1A53B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "C6BB50FB-0CD4-4A7A-8974-0DB028F1A53B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:44:27 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C6BB50FB-0CD4-4A7A-8974-0DB028F1A53B", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIzODY3MTc1MDY0NSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "C6BB50FB-0CD4-4A7A-8974-0DB028F1A53B", + "type" : 4 + }, + { + "id" : "975014F0-E99D-4104-9DA2-D62ABB06B838", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808238671750645&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "D5EEF19D-9F83-425D-9E05-29D3B560271F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22test-message%22:%5B%22message%22%5D%7D?meta=%7B%22admin%22:true,%22age%22:33,%22uuid%22:%22Serhii%22%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "D5EEF19D-9F83-425D-9E05-29D3B560271F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22test-message%22:%5B%22message%22%5D%7D?uuid=Serhii&meta=%7B%22admin%22:true,%22age%22:33,%22uuid%22:%22Serhii%22%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:44:30 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D5EEF19D-9F83-425D-9E05-29D3B560271F", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTgwODIzODcwNjI1NzMxMCJd" + }, + "type" : 2 + }, + { + "id" : "D5EEF19D-9F83-425D-9E05-29D3B560271F", + "type" : 4 + }, + { + "id" : "975014F0-E99D-4104-9DA2-D62ABB06B838", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808238671750645&heartbeat=20&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:44:30 GMT", + "Content-Length" : "318", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "975014F0-E99D-4104-9DA2-D62ABB06B838", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIzODcwNjI2ODk2MCIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJpIjoiU2VyaGlpIiwicyI6MSwicCI6eyJ0IjoiMTU4MDgyMzg3MDYyNTczMTAiLCJyIjoxMn0sImsiOiJkZW1vIiwiYyI6InRlc3QtY2hhbm5lbDEiLCJ1Ijp7ImFkbWluIjp0cnVlLCJhZ2UiOjMzLCJ1dWlkIjoiU2VyaGlpIn0sImQiOnsidGVzdC1tZXNzYWdlIjpbIm1lc3NhZ2UiXX19XX0=" + }, + "type" : 2 + }, + { + "id" : "975014F0-E99D-4104-9DA2-D62ABB06B838", + "type" : 4 + }, + { + "id" : "ECE9CC73-FDD2-4FCC-9B4E-3CF458156462", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808238706268960&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "ECE9CC73-FDD2-4FCC-9B4E-3CF458156462", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808238706268960&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808238706268960&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "F77CC79F-5E63-4FF8-9062-8B65FE8D89C4", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&filter-expr=uuid%20==%20'Serhii'%20&&%20!admin%20&&%20age%20%3E=%2032&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "F77CC79F-5E63-4FF8-9062-8B65FE8D89C4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&filter-expr=uuid%20==%20'Serhii'%20&&%20!admin%20&&%20age%20%3E=%2032&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:44:30 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F77CC79F-5E63-4FF8-9062-8B65FE8D89C4", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIzODcwNjI2ODk2MCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "F77CC79F-5E63-4FF8-9062-8B65FE8D89C4", + "type" : 4 + }, + { + "id" : "65F15DF0-2473-4D66-BF29-FCCB35533084", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?tr=12&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=15808238706268960&filter-expr=uuid%20==%20'Serhii'%20&&%20!admin%20&&%20age%20%3E=%2032&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "650DC320-94AD-40E2-8C46-70F9502EC4DB", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22test-message%22:%5B%22message%22%5D%7D?meta=%7B%22admin%22:true,%22age%22:33,%22uuid%22:%22Serhii%22%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "650DC320-94AD-40E2-8C46-70F9502EC4DB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22test-message%22:%5B%22message%22%5D%7D?uuid=Serhii&meta=%7B%22admin%22:true,%22age%22:33,%22uuid%22:%22Serhii%22%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:44:33 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "650DC320-94AD-40E2-8C46-70F9502EC4DB", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTgwODIzODczNzU5MzA4NyJd" + }, + "type" : 2 + }, + { + "id" : "650DC320-94AD-40E2-8C46-70F9502EC4DB", + "type" : 4 + }, + { + "id" : "65F15DF0-2473-4D66-BF29-FCCB35533084", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?tr=12&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=15808238706268960&filter-expr=uuid%20==%20'Serhii'%20&&%20!admin%20&&%20age%20%3E=%2032&heartbeat=20", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?tr=12&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=15808238706268960&filter-expr=uuid%20==%20'Serhii'%20&&%20!admin%20&&%20age%20%3E=%2032&heartbeat=20" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "FFC175CB-EF35-45F9-BAE3-BCEFD67370D7", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "FFC175CB-EF35-45F9-BAE3-BCEFD67370D7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:44:48 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "FFC175CB-EF35-45F9-BAE3-BCEFD67370D7", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "FFC175CB-EF35-45F9-BAE3-BCEFD67370D7", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelAndReceiveMessageWhenFilterExpressionIsSetToCompound.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelAndReceiveMessageWhenFilterExpressionIsSetToCompound.json new file mode 100644 index 000000000..85b291f4a --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelAndReceiveMessageWhenFilterExpressionIsSetToCompound.json @@ -0,0 +1,244 @@ +[ + { + "id" : "1453A99F-EE71-405D-8546-C9C2B0AA88D9", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&filter-expr=uuid%20==%20'Serhii'%20&&%20(('admin','super-user')%20contains%20role)%20&&%20age%20%3E=%2032&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "1453A99F-EE71-405D-8546-C9C2B0AA88D9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&filter-expr=uuid%20==%20'Serhii'%20&&%20(('admin','super-user')%20contains%20role)%20&&%20age%20%3E=%2032&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:09:54 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "1453A99F-EE71-405D-8546-C9C2B0AA88D9", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxNzk0MTYwMTcyNCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "1453A99F-EE71-405D-8546-C9C2B0AA88D9", + "type" : 4 + }, + { + "id" : "A77E5151-193D-49D5-B561-AA70A9843C53", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?tr=12&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=15808217941601724&filter-expr=uuid%20==%20'Serhii'%20&&%20(('admin','super-user')%20contains%20role)%20&&%20age%20%3E=%2032&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "F2960764-44E6-4CBC-B4D5-7C33ABB9505E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22test-message%22:%5B%22message%22%5D%7D?meta=%7B%22age%22:32,%22role%22:%22super-user%22,%22uuid%22:%22Serhii%22%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "F2960764-44E6-4CBC-B4D5-7C33ABB9505E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22test-message%22:%5B%22message%22%5D%7D?uuid=Serhii&meta=%7B%22age%22:32,%22role%22:%22super-user%22,%22uuid%22:%22Serhii%22%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:09:57 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F2960764-44E6-4CBC-B4D5-7C33ABB9505E", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTgwODIxNzk3NTUyNzczOCJd" + }, + "type" : 2 + }, + { + "id" : "F2960764-44E6-4CBC-B4D5-7C33ABB9505E", + "type" : 4 + }, + { + "id" : "A77E5151-193D-49D5-B561-AA70A9843C53", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?tr=12&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=15808217941601724&filter-expr=uuid%20==%20'Serhii'%20&&%20(('admin','super-user')%20contains%20role)%20&&%20age%20%3E=%2032&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:09:57 GMT", + "Content-Length" : "325", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "A77E5151-193D-49D5-B561-AA70A9843C53", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxNzk3NTUyNzk3MCIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJpIjoiU2VyaGlpIiwicyI6NiwicCI6eyJ0IjoiMTU4MDgyMTc5NzU1Mjc3MzgiLCJyIjoxMn0sImsiOiJkZW1vIiwiYyI6InRlc3QtY2hhbm5lbDEiLCJ1Ijp7ImFnZSI6MzIsInJvbGUiOiJzdXBlci11c2VyIiwidXVpZCI6IlNlcmhpaSJ9LCJkIjp7InRlc3QtbWVzc2FnZSI6WyJtZXNzYWdlIl19fV19" + }, + "type" : 2 + }, + { + "id" : "A77E5151-193D-49D5-B561-AA70A9843C53", + "type" : 4 + }, + { + "id" : "4654407B-838A-4ABD-901E-87FC8F640985", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?tr=12&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=15808217975527970&filter-expr=uuid%20==%20'Serhii'%20&&%20(('admin','super-user')%20contains%20role)%20&&%20age%20%3E=%2032&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "4654407B-838A-4ABD-901E-87FC8F640985", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?tr=12&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=15808217975527970&filter-expr=uuid%20==%20'Serhii'%20&&%20(('admin','super-user')%20contains%20role)%20&&%20age%20%3E=%2032&heartbeat=20", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?tr=12&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=15808217975527970&filter-expr=uuid%20==%20'Serhii'%20&&%20(('admin','super-user')%20contains%20role)%20&&%20age%20%3E=%2032&heartbeat=20" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "D45E4BE3-9514-4467-BB0A-4D1EBB14C965", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D45E4BE3-9514-4467-BB0A-4D1EBB14C965", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:09:57 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D45E4BE3-9514-4467-BB0A-4D1EBB14C965", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "D45E4BE3-9514-4467-BB0A-4D1EBB14C965", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelAndReceiveMessageWhenFilterExpressionIsSetToCompoundWithLike.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelAndReceiveMessageWhenFilterExpressionIsSetToCompoundWithLike.json new file mode 100644 index 000000000..e5b680ce7 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelAndReceiveMessageWhenFilterExpressionIsSetToCompoundWithLike.json @@ -0,0 +1,244 @@ +[ + { + "id" : "9B479D94-5572-458E-BCFE-53D56EAE07E4", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&filter-expr=uuid%20==%20'Serhii'%20&&%20privileges%20like%20'*write'%20&&%20age%20%3E=%2032&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "9B479D94-5572-458E-BCFE-53D56EAE07E4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&filter-expr=uuid%20==%20'Serhii'%20&&%20privileges%20like%20'*write'%20&&%20age%20%3E=%2032&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:09:58 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9B479D94-5572-458E-BCFE-53D56EAE07E4", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxNzk4NTE2MzgzMCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "9B479D94-5572-458E-BCFE-53D56EAE07E4", + "type" : 4 + }, + { + "id" : "4037475A-D40B-4069-A78E-04A9AF0963C1", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?tr=12&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=15808217985163830&filter-expr=uuid%20==%20'Serhii'%20&&%20privileges%20like%20'*write'%20&&%20age%20%3E=%2032&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "392E4526-9038-428A-A67E-BE1620A5AD22", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22test-message%22:%5B%22message%22%5D%7D?meta=%7B%22age%22:32,%22privileges%22:%5B%22write%22,%22read-write%22%5D,%22uuid%22:%22Serhii%22%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "392E4526-9038-428A-A67E-BE1620A5AD22", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22test-message%22:%5B%22message%22%5D%7D?uuid=Serhii&meta=%7B%22age%22:32,%22privileges%22:%5B%22write%22,%22read-write%22%5D,%22uuid%22:%22Serhii%22%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:10:01 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "392E4526-9038-428A-A67E-BE1620A5AD22", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTgwODIxODAxOTM5OTgyMiJd" + }, + "type" : 2 + }, + { + "id" : "392E4526-9038-428A-A67E-BE1620A5AD22", + "type" : 4 + }, + { + "id" : "4037475A-D40B-4069-A78E-04A9AF0963C1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?tr=12&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=15808217985163830&filter-expr=uuid%20==%20'Serhii'%20&&%20privileges%20like%20'*write'%20&&%20age%20%3E=%2032&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:10:01 GMT", + "Content-Length" : "341", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "4037475A-D40B-4069-A78E-04A9AF0963C1", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxODAxOTQxMzk1MyIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJpIjoiU2VyaGlpIiwicyI6NywicCI6eyJ0IjoiMTU4MDgyMTgwMTkzOTk4MjIiLCJyIjoxMn0sImsiOiJkZW1vIiwiYyI6InRlc3QtY2hhbm5lbDEiLCJ1Ijp7ImFnZSI6MzIsInByaXZpbGVnZXMiOlsid3JpdGUiLCJyZWFkLXdyaXRlIl0sInV1aWQiOiJTZXJoaWkifSwiZCI6eyJ0ZXN0LW1lc3NhZ2UiOlsibWVzc2FnZSJdfX1dfQ==" + }, + "type" : 2 + }, + { + "id" : "4037475A-D40B-4069-A78E-04A9AF0963C1", + "type" : 4 + }, + { + "id" : "B31D754E-05FA-48C4-A34A-7AEDFFD184BF", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?tr=12&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=15808218019413953&filter-expr=uuid%20==%20'Serhii'%20&&%20privileges%20like%20'*write'%20&&%20age%20%3E=%2032&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "B31D754E-05FA-48C4-A34A-7AEDFFD184BF", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?tr=12&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=15808218019413953&filter-expr=uuid%20==%20'Serhii'%20&&%20privileges%20like%20'*write'%20&&%20age%20%3E=%2032&heartbeat=20", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?tr=12&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=15808218019413953&filter-expr=uuid%20==%20'Serhii'%20&&%20privileges%20like%20'*write'%20&&%20age%20%3E=%2032&heartbeat=20" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "F7E12AC9-FEFB-4269-9056-C900506BA55F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F7E12AC9-FEFB-4269-9056-C900506BA55F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:10:02 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F7E12AC9-FEFB-4269-9056-C900506BA55F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "F7E12AC9-FEFB-4269-9056-C900506BA55F", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelAndReceiveMessageWhenFilterExpressionIsSetToCompoundWithSubstringCheck.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelAndReceiveMessageWhenFilterExpressionIsSetToCompoundWithSubstringCheck.json new file mode 100644 index 000000000..d454d6701 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelAndReceiveMessageWhenFilterExpressionIsSetToCompoundWithSubstringCheck.json @@ -0,0 +1,244 @@ +[ + { + "id" : "A618DB18-B772-46A0-9C32-3B8F4B5240E9", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&filter-expr=uuid%20==%20'Serhii'%20&&%20role%20contains%20'adm'%20&&%20age%20%3E=%2032&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "A618DB18-B772-46A0-9C32-3B8F4B5240E9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&filter-expr=uuid%20==%20'Serhii'%20&&%20role%20contains%20'adm'%20&&%20age%20%3E=%2032&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:10:03 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "A618DB18-B772-46A0-9C32-3B8F4B5240E9", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxODAyOTE0ODE5MyIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "A618DB18-B772-46A0-9C32-3B8F4B5240E9", + "type" : 4 + }, + { + "id" : "0318478F-5E7B-47C6-A6B8-4CBA58E411C1", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?tr=12&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=15808218029148193&filter-expr=uuid%20==%20'Serhii'%20&&%20role%20contains%20'adm'%20&&%20age%20%3E=%2032&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "2D5C4E2E-04AF-4888-9791-0CB668F25276", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22test-message%22:%5B%22message%22%5D%7D?meta=%7B%22age%22:32,%22role%22:%22admin%22,%22uuid%22:%22Serhii%22%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "2D5C4E2E-04AF-4888-9791-0CB668F25276", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22test-message%22:%5B%22message%22%5D%7D?uuid=Serhii&meta=%7B%22age%22:32,%22role%22:%22admin%22,%22uuid%22:%22Serhii%22%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:10:06 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "0318478F-5E7B-47C6-A6B8-4CBA58E411C1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?tr=12&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=15808218029148193&filter-expr=uuid%20==%20'Serhii'%20&&%20role%20contains%20'adm'%20&&%20age%20%3E=%2032&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:10:06 GMT", + "Content-Length" : "320", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "2D5C4E2E-04AF-4888-9791-0CB668F25276", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTgwODIxODA2MzM5MzQ4NiJd" + }, + "type" : 2 + }, + { + "id" : "0318478F-5E7B-47C6-A6B8-4CBA58E411C1", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxODA2MzQyMjY4NiIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJpIjoiU2VyaGlpIiwicyI6OCwicCI6eyJ0IjoiMTU4MDgyMTgwNjMzOTM0ODYiLCJyIjoxMn0sImsiOiJkZW1vIiwiYyI6InRlc3QtY2hhbm5lbDEiLCJ1Ijp7ImFnZSI6MzIsInJvbGUiOiJhZG1pbiIsInV1aWQiOiJTZXJoaWkifSwiZCI6eyJ0ZXN0LW1lc3NhZ2UiOlsibWVzc2FnZSJdfX1dfQ==" + }, + "type" : 2 + }, + { + "id" : "2D5C4E2E-04AF-4888-9791-0CB668F25276", + "type" : 4 + }, + { + "id" : "0318478F-5E7B-47C6-A6B8-4CBA58E411C1", + "type" : 4 + }, + { + "id" : "598324E7-C15D-4CC1-9216-021E1D5ECA7A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?tr=12&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=15808218063422686&filter-expr=uuid%20==%20'Serhii'%20&&%20role%20contains%20'adm'%20&&%20age%20%3E=%2032&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "598324E7-C15D-4CC1-9216-021E1D5ECA7A", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?tr=12&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=15808218063422686&filter-expr=uuid%20==%20'Serhii'%20&&%20role%20contains%20'adm'%20&&%20age%20%3E=%2032&heartbeat=20", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?tr=12&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=15808218063422686&filter-expr=uuid%20==%20'Serhii'%20&&%20role%20contains%20'adm'%20&&%20age%20%3E=%2032&heartbeat=20" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "8CB106E8-B9FC-404C-A000-25387A81B162", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "8CB106E8-B9FC-404C-A000-25387A81B162", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:10:06 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "8CB106E8-B9FC-404C-A000-25387A81B162", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "8CB106E8-B9FC-404C-A000-25387A81B162", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelAndReceiveMessageWhenFilterExpressionIsSetToExactMatch.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelAndReceiveMessageWhenFilterExpressionIsSetToExactMatch.json new file mode 100644 index 000000000..aa69c2760 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelAndReceiveMessageWhenFilterExpressionIsSetToExactMatch.json @@ -0,0 +1,244 @@ +[ + { + "id" : "D637C465-9978-40F3-8489-48A99282DB32", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&filter-expr=uuid%20==%20'Serhii'&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "D637C465-9978-40F3-8489-48A99282DB32", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&filter-expr=uuid%20==%20'Serhii'&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:10:07 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D637C465-9978-40F3-8489-48A99282DB32", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxODA3MzIyNzExNCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "D637C465-9978-40F3-8489-48A99282DB32", + "type" : 4 + }, + { + "id" : "ADFE0F25-E1A3-4773-AF23-07DEFD71D8BE", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?tr=12&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=15808218073227114&filter-expr=uuid%20==%20'Serhii'&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "077280EC-45C8-495C-80DA-DAFDA689D1B3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22test-message%22:%5B%22message%22%5D%7D?meta=%7B%22uuid%22:%22Serhii%22%7D&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "077280EC-45C8-495C-80DA-DAFDA689D1B3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22test-message%22:%5B%22message%22%5D%7D?uuid=Serhii&meta=%7B%22uuid%22:%22Serhii%22%7D&seqn=1&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:10:10 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "ADFE0F25-E1A3-4773-AF23-07DEFD71D8BE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?tr=12&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=15808218073227114&filter-expr=uuid%20==%20'Serhii'&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:10:10 GMT", + "Content-Length" : "296", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "077280EC-45C8-495C-80DA-DAFDA689D1B3", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTgwODIxODEwNzIxNTQwNyJd" + }, + "type" : 2 + }, + { + "id" : "077280EC-45C8-495C-80DA-DAFDA689D1B3", + "type" : 4 + }, + { + "id" : "ADFE0F25-E1A3-4773-AF23-07DEFD71D8BE", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxODEwNzIwNTU5MiIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJpIjoiU2VyaGlpIiwicyI6OSwicCI6eyJ0IjoiMTU4MDgyMTgxMDcyMTU0MDciLCJyIjoxMn0sImsiOiJkZW1vIiwiYyI6InRlc3QtY2hhbm5lbDEiLCJ1Ijp7InV1aWQiOiJTZXJoaWkifSwiZCI6eyJ0ZXN0LW1lc3NhZ2UiOlsibWVzc2FnZSJdfX1dfQ==" + }, + "type" : 2 + }, + { + "id" : "ADFE0F25-E1A3-4773-AF23-07DEFD71D8BE", + "type" : 4 + }, + { + "id" : "3D15AAE9-9081-4B6F-A128-3943C160DBA0", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?tr=12&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=15808218107205592&filter-expr=uuid%20==%20'Serhii'&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "3D15AAE9-9081-4B6F-A128-3943C160DBA0", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?tr=12&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=15808218107205592&filter-expr=uuid%20==%20'Serhii'&heartbeat=20", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?tr=12&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=15808218107205592&filter-expr=uuid%20==%20'Serhii'&heartbeat=20" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "7007167C-E36D-4549-90D6-ECD9B189A57E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "7007167C-E36D-4549-90D6-ECD9B189A57E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:10:10 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "7007167C-E36D-4549-90D6-ECD9B189A57E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "7007167C-E36D-4549-90D6-ECD9B189A57E", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelAndReceiveMessageWhenPublished.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelAndReceiveMessageWhenPublished.json new file mode 100644 index 000000000..9de005ea8 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelAndReceiveMessageWhenPublished.json @@ -0,0 +1,244 @@ +[ + { + "id" : "6D9CF0BE-C72E-451C-BD56-ADC3759E4907", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "6D9CF0BE-C72E-451C-BD56-ADC3759E4907", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:10:11 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "6D9CF0BE-C72E-451C-BD56-ADC3759E4907", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxODExNDczMDU1OSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "6D9CF0BE-C72E-451C-BD56-ADC3759E4907", + "type" : 4 + }, + { + "id" : "56380FEF-3510-4D26-8D88-22A028B35117", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218114730559&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "9060F768-F824-4970-93AC-4BF1FA1121D3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22test-message%22:%5B%22message%22%5D%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "9060F768-F824-4970-93AC-4BF1FA1121D3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22test-message%22:%5B%22message%22%5D%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:10:14 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9060F768-F824-4970-93AC-4BF1FA1121D3", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTgwODIxODE0ODc5NTIwMCJd" + }, + "type" : 2 + }, + { + "id" : "9060F768-F824-4970-93AC-4BF1FA1121D3", + "type" : 4 + }, + { + "id" : "56380FEF-3510-4D26-8D88-22A028B35117", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218114730559&heartbeat=20&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:10:14 GMT", + "Content-Length" : "261", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "56380FEF-3510-4D26-8D88-22A028B35117", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxODE0ODgwNDc4NyIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJpIjoiU2VyaGlpIiwicyI6MTAsInAiOnsidCI6IjE1ODA4MjE4MTQ4Nzk1MjAwIiwiciI6MTJ9LCJrIjoiZGVtbyIsImMiOiJ0ZXN0LWNoYW5uZWwxIiwiZCI6eyJ0ZXN0LW1lc3NhZ2UiOlsibWVzc2FnZSJdfX1dfQ==" + }, + "type" : 2 + }, + { + "id" : "56380FEF-3510-4D26-8D88-22A028B35117", + "type" : 4 + }, + { + "id" : "8166D76F-F897-4ABB-934A-13726D756948", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218148804787&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "8166D76F-F897-4ABB-934A-13726D756948", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218148804787&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218148804787&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "1966F67F-1E40-41C0-B669-9A9607D8514C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1966F67F-1E40-41C0-B669-9A9607D8514C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:10:15 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "1966F67F-1E40-41C0-B669-9A9607D8514C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "1966F67F-1E40-41C0-B669-9A9607D8514C", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelAndReceiveNotDecryptedMessageWhenPublishedReceivedHasDifferentCipherKey.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelAndReceiveNotDecryptedMessageWhenPublishedReceivedHasDifferentCipherKey.json new file mode 100644 index 000000000..13dc1c01b --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelAndReceiveNotDecryptedMessageWhenPublishedReceivedHasDifferentCipherKey.json @@ -0,0 +1,244 @@ +[ + { + "id" : "24FE7338-5D57-4333-AF62-14ADE9B527AB", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=david&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "24FE7338-5D57-4333-AF62-14ADE9B527AB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=david&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:10:15 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "24FE7338-5D57-4333-AF62-14ADE9B527AB", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxODE1ODc1NjIxMCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "24FE7338-5D57-4333-AF62-14ADE9B527AB", + "type" : 4 + }, + { + "id" : "745C5D68-8467-45EB-A369-424F06DA0F2C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218158756210&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "3B070EEE-6900-40AD-BD57-7B21C6995403", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%22lj9tnXwdHDMHktlZBHVfOID6MoJIhj2zF0Ngrog6vAK5OIT\/Ft6a96a0ob72oAIn%22?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "3B070EEE-6900-40AD-BD57-7B21C6995403", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%22lj9tnXwdHDMHktlZBHVfOID6MoJIhj2zF0Ngrog6vAK5OIT\/Ft6a96a0ob72oAIn%22?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:10:19 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "3B070EEE-6900-40AD-BD57-7B21C6995403", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTgwODIxODE5Mjg3NDUxNSJd" + }, + "type" : 2 + }, + { + "id" : "745C5D68-8467-45EB-A369-424F06DA0F2C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218158756210&heartbeat=20&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:10:19 GMT", + "Content-Length" : "285", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "3B070EEE-6900-40AD-BD57-7B21C6995403", + "type" : 4 + }, + { + "id" : "745C5D68-8467-45EB-A369-424F06DA0F2C", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxODE5Mjg4OTIxNSIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJpIjoic2VyaGlpIiwicyI6MTEsInAiOnsidCI6IjE1ODA4MjE4MTkyODc0NTE1IiwiciI6MTJ9LCJrIjoiZGVtbyIsImMiOiJ0ZXN0LWNoYW5uZWwxIiwiZCI6ImxqOXRuWHdkSERNSGt0bFpCSFZmT0lENk1vSkloajJ6RjBOZ3JvZzZ2QUs1T0lUL0Z0NmE5NmEwb2I3Mm9BSW4ifV19" + }, + "type" : 2 + }, + { + "id" : "745C5D68-8467-45EB-A369-424F06DA0F2C", + "type" : 4 + }, + { + "id" : "06F7A981-ACEF-42EE-8FD9-661F5E223B50", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218192889215&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "06F7A981-ACEF-42EE-8FD9-661F5E223B50", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218192889215&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218192889215&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "745F624A-4E78-4F30-87F3-0DE2402A5347", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "745F624A-4E78-4F30-87F3-0DE2402A5347", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:10:19 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "745F624A-4E78-4F30-87F3-0DE2402A5347", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "745F624A-4E78-4F30-87F3-0DE2402A5347", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelAndSetState.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelAndSetState.json new file mode 100644 index 000000000..1069a4566 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelAndSetState.json @@ -0,0 +1,196 @@ +[ + { + "id" : "75A6570B-0C5F-4059-987F-C4AF29AD86FF", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&state=%7B%22test-channel1%22:%7B%22channel1-state%22:%5B%22channel-1-random-value%22%5D%7D%7D&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "75A6570B-0C5F-4059-987F-C4AF29AD86FF", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&state=%7B%22test-channel1%22:%7B%22channel1-state%22:%5B%22channel-1-random-value%22%5D%7D%7D&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:10:20 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "75A6570B-0C5F-4059-987F-C4AF29AD86FF", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxODIwMzE3Nzg2OSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "75A6570B-0C5F-4059-987F-C4AF29AD86FF", + "type" : 4 + }, + { + "id" : "16F52FB0-8E8E-4224-B4D7-135E5ABB1A1C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?tr=12&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=15808218203177869&state=%7B%22test-channel1%22:%7B%22channel1-state%22:%5B%22channel-1-random-value%22%5D%7D%7D&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "77ED4ED6-B390-459E-8998-5224BF05E0BB", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1\/uuid\/Serhii?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "77ED4ED6-B390-459E-8998-5224BF05E0BB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1\/uuid\/Serhii?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:10:25 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "202", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "77ED4ED6-B390-459E-8998-5224BF05E0BB", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWwxLXN0YXRlIjogWyJjaGFubmVsLTEtcmFuZG9tLXZhbHVlIl19LCAidXVpZCI6ICJTZXJoaWkiLCAiY2hhbm5lbCI6ICJ0ZXN0LWNoYW5uZWwxIiwgInNlcnZpY2UiOiAiUHJlc2VuY2UifQ==" + }, + "type" : 2 + }, + { + "id" : "77ED4ED6-B390-459E-8998-5224BF05E0BB", + "type" : 4 + }, + { + "id" : "16F52FB0-8E8E-4224-B4D7-135E5ABB1A1C", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?tr=12&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=15808218203177869&state=%7B%22test-channel1%22:%7B%22channel1-state%22:%5B%22channel-1-random-value%22%5D%7D%7D&heartbeat=20", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?tr=12&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=15808218203177869&state=%7B%22test-channel1%22:%7B%22channel1-state%22:%5B%22channel-1-random-value%22%5D%7D%7D&heartbeat=20" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "1CD267E9-6BB2-4910-9CD4-22C50A1C2583", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1CD267E9-6BB2-4910-9CD4-22C50A1C2583", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:10:26 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "1CD267E9-6BB2-4910-9CD4-22C50A1C2583", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "1CD267E9-6BB2-4910-9CD4-22C50A1C2583", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelAndTriggerOnlineEvent.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelAndTriggerOnlineEvent.json new file mode 100644 index 000000000..457a98307 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelAndTriggerOnlineEvent.json @@ -0,0 +1,384 @@ +[ + { + "id" : "7F4B85DC-FEF1-4E82-8117-491F3B0220AB", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=david&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "7F4B85DC-FEF1-4E82-8117-491F3B0220AB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=david&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:10:26 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "7F4B85DC-FEF1-4E82-8117-491F3B0220AB", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxODI2ODA5OTQ2MSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "7F4B85DC-FEF1-4E82-8117-491F3B0220AB", + "type" : 4 + }, + { + "id" : "32B4FD5D-8376-4E01-842F-50ECC8F743B5", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218268099461&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "32B4FD5D-8376-4E01-842F-50ECC8F743B5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218268099461&heartbeat=20&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:10:28 GMT", + "Content-Length" : "477", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "32B4FD5D-8376-4E01-842F-50ECC8F743B5", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxODI4MjEwNDgzMSIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODIxODI4MjEwMTUzMiIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMS1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoiZGF2aWQiLCJwbl90aW1lc3RhbXAiOjE1ODA4MjE4MjgsInBuX29jY3VwYW5jeSI6MSwicG5faXNwcmVzZW5jZSI6MSwicG5fY2hhbm5lbCI6InRlc3QtY2hhbm5lbDEifSwiZCI6eyJhY3Rpb24iOiJqb2luIiwidXVpZCI6ImRhdmlkIiwidGltZXN0YW1wIjoxNTgwODIxODI4LCJvY2N1cGFuY3kiOjF9LCJiIjoidGVzdC1jaGFubmVsMS1wbnByZXMifV19" + }, + "type" : 2 + }, + { + "id" : "32B4FD5D-8376-4E01-842F-50ECC8F743B5", + "type" : 4 + }, + { + "id" : "25E65CA2-CBDB-4A18-B39A-1429C2A89AE1", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218282104831&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "F0A80764-215A-4526-9057-80A40B95AE9E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=serhii&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "F0A80764-215A-4526-9057-80A40B95AE9E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=serhii&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:10:30 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F0A80764-215A-4526-9057-80A40B95AE9E", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxODMwMTI1MDM3MyIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "F0A80764-215A-4526-9057-80A40B95AE9E", + "type" : 4 + }, + { + "id" : "5634E7A2-A146-4172-B66B-1822BD5CDC1C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218301250373&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "25E65CA2-CBDB-4A18-B39A-1429C2A89AE1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218282104831&heartbeat=20&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:10:30 GMT", + "Content-Length" : "479", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "25E65CA2-CBDB-4A18-B39A-1429C2A89AE1", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxODMwODE1NDM5OSIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODIxODMwODEzMDE3MiIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMS1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoic2VyaGlpIiwicG5fdGltZXN0YW1wIjoxNTgwODIxODMwLCJwbl9vY2N1cGFuY3kiOjIsInBuX2lzcHJlc2VuY2UiOjEsInBuX2NoYW5uZWwiOiJ0ZXN0LWNoYW5uZWwxIn0sImQiOnsiYWN0aW9uIjoiam9pbiIsInV1aWQiOiJzZXJoaWkiLCJ0aW1lc3RhbXAiOjE1ODA4MjE4MzAsIm9jY3VwYW5jeSI6Mn0sImIiOiJ0ZXN0LWNoYW5uZWwxLXBucHJlcyJ9XX0=" + }, + "type" : 2 + }, + { + "id" : "25E65CA2-CBDB-4A18-B39A-1429C2A89AE1", + "type" : 4 + }, + { + "id" : "83C3E229-35D8-4496-B82A-570C95AEA5FA", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218308154399&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "5634E7A2-A146-4172-B66B-1822BD5CDC1C", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218301250373&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218301250373&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "20EC6879-B711-497F-80A7-A39C8A98155D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "20EC6879-B711-497F-80A7-A39C8A98155D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:10:31 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "20EC6879-B711-497F-80A7-A39C8A98155D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "20EC6879-B711-497F-80A7-A39C8A98155D", + "type" : 4 + }, + { + "id" : "83C3E229-35D8-4496-B82A-570C95AEA5FA", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218308154399&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218308154399&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "C9E6703C-C576-4F3A-A498-29ADCC7C20B1", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C9E6703C-C576-4F3A-A498-29ADCC7C20B1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:10:31 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C9E6703C-C576-4F3A-A498-29ADCC7C20B1", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "C9E6703C-C576-4F3A-A498-29ADCC7C20B1", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelGroupAndReceiveConnectedEvent.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelGroupAndReceiveConnectedEvent.json new file mode 100644 index 000000000..91ebd4ff4 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelGroupAndReceiveConnectedEvent.json @@ -0,0 +1,250 @@ +[ + { + "id" : "7A66CE36-9A5F-4851-8EA5-DA066872DE1B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1" + }, + "type" : 0 + }, + { + "id" : "7A66CE36-9A5F-4851-8EA5-DA066872DE1B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:10:32 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "7A66CE36-9A5F-4851-8EA5-DA066872DE1B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "7A66CE36-9A5F-4851-8EA5-DA066872DE1B", + "type" : 4 + }, + { + "id" : "C41CD9A7-558C-4286-B97F-924F7296A837", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=Serhii&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "C41CD9A7-558C-4286-B97F-924F7296A837", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=Serhii&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:10:36 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C41CD9A7-558C-4286-B97F-924F7296A837", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxODM2MzgxNzMwNCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "C41CD9A7-558C-4286-B97F-924F7296A837", + "type" : 4 + }, + { + "id" : "C6C5C2F6-30DF-4AA8-BBC3-6E013A225F42", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218363817304&uuid=Serhii&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "CA2DBE69-23BC-482F-90E7-1AFD358C9F67", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "CA2DBE69-23BC-482F-90E7-1AFD358C9F67", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:10:37 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "CA2DBE69-23BC-482F-90E7-1AFD358C9F67", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "CA2DBE69-23BC-482F-90E7-1AFD358C9F67", + "type" : 4 + }, + { + "id" : "C6C5C2F6-30DF-4AA8-BBC3-6E013A225F42", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218363817304&uuid=Serhii&heartbeat=20", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218363817304&uuid=Serhii&heartbeat=20" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "5E1AEA63-3F1A-46F1-B995-414B0D1E1549", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "5E1AEA63-3F1A-46F1-B995-414B0D1E1549", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:10:37 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "5E1AEA63-3F1A-46F1-B995-414B0D1E1549", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "5E1AEA63-3F1A-46F1-B995-414B0D1E1549", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelGroupAndReceiveMessageWhenPublished.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelGroupAndReceiveMessageWhenPublished.json new file mode 100644 index 000000000..df5c2c6d3 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelGroupAndReceiveMessageWhenPublished.json @@ -0,0 +1,352 @@ +[ + { + "id" : "8E1C38A2-2FF6-44FD-A5DA-2AAC8C3CC1CB", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1" + }, + "type" : 0 + }, + { + "id" : "8E1C38A2-2FF6-44FD-A5DA-2AAC8C3CC1CB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:10:38 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "8E1C38A2-2FF6-44FD-A5DA-2AAC8C3CC1CB", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "8E1C38A2-2FF6-44FD-A5DA-2AAC8C3CC1CB", + "type" : 4 + }, + { + "id" : "A00DE5AE-65A6-40D9-B6E5-425875FC0446", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=Serhii&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "A00DE5AE-65A6-40D9-B6E5-425875FC0446", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=Serhii&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:10:39 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "A00DE5AE-65A6-40D9-B6E5-425875FC0446", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxODM5ODA4MTk1NSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "A00DE5AE-65A6-40D9-B6E5-425875FC0446", + "type" : 4 + }, + { + "id" : "4CEE5160-C34D-46D5-BB66-028BA788C498", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218398081955&uuid=Serhii&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "EB9B72B8-0CAA-4D3E-B2FB-0B1B9D497334", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22test-message%22:%5B%22message%22%5D%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "EB9B72B8-0CAA-4D3E-B2FB-0B1B9D497334", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel1\/0\/%7B%22test-message%22:%5B%22message%22%5D%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:10:43 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "4CEE5160-C34D-46D5-BB66-028BA788C498", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218398081955&uuid=Serhii&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:10:43 GMT", + "Content-Length" : "301", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "EB9B72B8-0CAA-4D3E-B2FB-0B1B9D497334", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTgwODIxODQzMDMxOTA3NiJd" + }, + "type" : 2 + }, + { + "id" : "EB9B72B8-0CAA-4D3E-B2FB-0B1B9D497334", + "type" : 4 + }, + { + "id" : "4CEE5160-C34D-46D5-BB66-028BA788C498", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxODQzMDMwOTQ4NiIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJpIjoiU2VyaGlpIiwicyI6MTIsInAiOnsidCI6IjE1ODA4MjE4NDMwMzE5MDc2IiwiciI6MTJ9LCJrIjoiZGVtbyIsImMiOiJ0ZXN0LWNoYW5uZWwxIiwiZCI6eyJ0ZXN0LW1lc3NhZ2UiOlsibWVzc2FnZSJdfSwiYiI6InRlc3QtY2hhbm5lbC1ncm91cDEifV19" + }, + "type" : 2 + }, + { + "id" : "4CEE5160-C34D-46D5-BB66-028BA788C498", + "type" : 4 + }, + { + "id" : "058194E2-A246-49DD-B5BC-A8E8C1989E60", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218430309486&uuid=Serhii&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "96CECD77-A736-48FB-887F-E208DB3AD9C5", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "96CECD77-A736-48FB-887F-E208DB3AD9C5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:10:44 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "96CECD77-A736-48FB-887F-E208DB3AD9C5", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "96CECD77-A736-48FB-887F-E208DB3AD9C5", + "type" : 4 + }, + { + "id" : "058194E2-A246-49DD-B5BC-A8E8C1989E60", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218430309486&uuid=Serhii&heartbeat=20", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218430309486&uuid=Serhii&heartbeat=20" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "BC7C31C6-8FD6-4973-9EEA-92DC699A9E3A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "BC7C31C6-8FD6-4973-9EEA-92DC699A9E3A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:10:44 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "BC7C31C6-8FD6-4973-9EEA-92DC699A9E3A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "BC7C31C6-8FD6-4973-9EEA-92DC699A9E3A", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelGroupAndSetState.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelGroupAndSetState.json new file mode 100644 index 000000000..e3f17395d --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelGroupAndSetState.json @@ -0,0 +1,304 @@ +[ + { + "id" : "713A9FC7-11B7-4BD9-8652-8167292447D3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1" + }, + "type" : 0 + }, + { + "id" : "713A9FC7-11B7-4BD9-8652-8167292447D3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:10:45 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "713A9FC7-11B7-4BD9-8652-8167292447D3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "713A9FC7-11B7-4BD9-8652-8167292447D3", + "type" : 4 + }, + { + "id" : "9648649D-2A69-42C0-9559-98BB998BC725", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?state=%7B%22test-channel-group1%22:%7B%22channel-group-1-state%22:%5B%22channel-group-1-random-value%22%5D%7D%7D&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&uuid=Serhii&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "9648649D-2A69-42C0-9559-98BB998BC725", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?state=%7B%22test-channel-group1%22:%7B%22channel-group-1-state%22:%5B%22channel-group-1-random-value%22%5D%7D%7D&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&uuid=Serhii&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:10:49 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9648649D-2A69-42C0-9559-98BB998BC725", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxODQ5NTM0NTI4NyIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "9648649D-2A69-42C0-9559-98BB998BC725", + "type" : 4 + }, + { + "id" : "3B04284C-9BC8-4ADE-954D-EFDD2F888BBA", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?heartbeat=20&tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218495345287&uuid=Serhii&state=%7B%22test-channel-group1%22:%7B%22channel-group-1-state%22:%5B%22channel-group-1-random-value%22%5D%7D%7D" + }, + "type" : 0 + }, + { + "id" : "259DFFE9-64A4-4EEA-B4F9-F1A5E729271B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1\/uuid\/Serhii?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "259DFFE9-64A4-4EEA-B4F9-F1A5E729271B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub-key\/demo\/channel\/test-channel1\/uuid\/Serhii?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:10:54 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "215", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "259DFFE9-64A4-4EEA-B4F9-F1A5E729271B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWwtZ3JvdXAtMS1zdGF0ZSI6IFsiY2hhbm5lbC1ncm91cC0xLXJhbmRvbS12YWx1ZSJdfSwgInV1aWQiOiAiU2VyaGlpIiwgImNoYW5uZWwiOiAidGVzdC1jaGFubmVsMSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "259DFFE9-64A4-4EEA-B4F9-F1A5E729271B", + "type" : 4 + }, + { + "id" : "87B9D765-7BEA-40F1-AB35-E6BD36A1413B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "87B9D765-7BEA-40F1-AB35-E6BD36A1413B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:10:55 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "87B9D765-7BEA-40F1-AB35-E6BD36A1413B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "87B9D765-7BEA-40F1-AB35-E6BD36A1413B", + "type" : 4 + }, + { + "id" : "3B04284C-9BC8-4ADE-954D-EFDD2F888BBA", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?heartbeat=20&tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218495345287&uuid=Serhii&state=%7B%22test-channel-group1%22:%7B%22channel-group-1-state%22:%5B%22channel-group-1-random-value%22%5D%7D%7D", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?heartbeat=20&tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218495345287&uuid=Serhii&state=%7B%22test-channel-group1%22:%7B%22channel-group-1-state%22:%5B%22channel-group-1-random-value%22%5D%7D%7D" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "0B70C577-7346-48C7-BE53-A2C9FAFAE2B3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "0B70C577-7346-48C7-BE53-A2C9FAFAE2B3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:10:56 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "0B70C577-7346-48C7-BE53-A2C9FAFAE2B3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "0B70C577-7346-48C7-BE53-A2C9FAFAE2B3", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelGroupAndTriggerOnlineEvent.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelGroupAndTriggerOnlineEvent.json new file mode 100644 index 000000000..eaeb1fe68 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelGroupAndTriggerOnlineEvent.json @@ -0,0 +1,492 @@ +[ + { + "id" : "1E23928F-47BD-406C-A432-CD66FFD5427E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1" + }, + "type" : 0 + }, + { + "id" : "1E23928F-47BD-406C-A432-CD66FFD5427E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:10:57 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "1E23928F-47BD-406C-A432-CD66FFD5427E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "1E23928F-47BD-406C-A432-CD66FFD5427E", + "type" : 4 + }, + { + "id" : "B3CE319F-9370-4BA0-9ACD-97F063B4810C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=david&channel-group=test-channel-group1,test-channel-group1-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "B3CE319F-9370-4BA0-9ACD-97F063B4810C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=david&channel-group=test-channel-group1,test-channel-group1-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:10:58 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B3CE319F-9370-4BA0-9ACD-97F063B4810C", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxODU4MTkzMzIxMyIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "B3CE319F-9370-4BA0-9ACD-97F063B4810C", + "type" : 4 + }, + { + "id" : "7F071394-3210-40BA-BD63-B57864E79D87", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218581933213&uuid=david&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "0852DB32-BBD4-440C-8727-B329BA171399", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=serhii&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "0852DB32-BBD4-440C-8727-B329BA171399", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=serhii&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:11:01 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "0852DB32-BBD4-440C-8727-B329BA171399", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxODYxNTI0MjkzNSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "0852DB32-BBD4-440C-8727-B329BA171399", + "type" : 4 + }, + { + "id" : "2950CC2B-6C0A-4048-ABAD-EED51FDBA8B9", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218615242935&uuid=serhii&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "7F071394-3210-40BA-BD63-B57864E79D87", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218581933213&uuid=david&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:11:02 GMT", + "Content-Length" : "483", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "7F071394-3210-40BA-BD63-B57864E79D87", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxODYyNzMzNDcyNiIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODIxODYyNzMxMzg5NyIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMS1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoiZGF2aWQiLCJwbl90aW1lc3RhbXAiOjE1ODA4MjE4NjIsInBuX29jY3VwYW5jeSI6MSwicG5faXNwcmVzZW5jZSI6MSwicG5fY2hhbm5lbCI6InRlc3QtY2hhbm5lbDEifSwiZCI6eyJhY3Rpb24iOiJqb2luIiwidXVpZCI6ImRhdmlkIiwidGltZXN0YW1wIjoxNTgwODIxODYyLCJvY2N1cGFuY3kiOjF9LCJiIjoidGVzdC1jaGFubmVsLWdyb3VwMS1wbnByZXMifV19" + }, + "type" : 2 + }, + { + "id" : "7F071394-3210-40BA-BD63-B57864E79D87", + "type" : 4 + }, + { + "id" : "DE27E45E-B5A2-4C78-93E8-31229A399221", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218627334726&uuid=david&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "DE27E45E-B5A2-4C78-93E8-31229A399221", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218627334726&uuid=david&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:11:02 GMT", + "Content-Length" : "485", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "DE27E45E-B5A2-4C78-93E8-31229A399221", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxODYyNzUxNjc0NCIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODIxODYyNzUxMzM3MiIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMS1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoic2VyaGlpIiwicG5fdGltZXN0YW1wIjoxNTgwODIxODYyLCJwbl9vY2N1cGFuY3kiOjIsInBuX2lzcHJlc2VuY2UiOjEsInBuX2NoYW5uZWwiOiJ0ZXN0LWNoYW5uZWwxIn0sImQiOnsiYWN0aW9uIjoiam9pbiIsInV1aWQiOiJzZXJoaWkiLCJ0aW1lc3RhbXAiOjE1ODA4MjE4NjIsIm9jY3VwYW5jeSI6Mn0sImIiOiJ0ZXN0LWNoYW5uZWwtZ3JvdXAxLXBucHJlcyJ9XX0=" + }, + "type" : 2 + }, + { + "id" : "DE27E45E-B5A2-4C78-93E8-31229A399221", + "type" : 4 + }, + { + "id" : "385C2886-9807-41BD-9783-323A438BA4D5", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218627516744&uuid=david&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "719E5F3A-B33F-481E-86BC-B97DDA4FEDCC", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1\/remove?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "719E5F3A-B33F-481E-86BC-B97DDA4FEDCC", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1\/remove?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:11:03 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "719E5F3A-B33F-481E-86BC-B97DDA4FEDCC", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "719E5F3A-B33F-481E-86BC-B97DDA4FEDCC", + "type" : 4 + }, + { + "id" : "2950CC2B-6C0A-4048-ABAD-EED51FDBA8B9", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218615242935&uuid=serhii&heartbeat=20", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218615242935&uuid=serhii&heartbeat=20" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "11221D14-41E5-47A6-8C32-B6EE9AE9D2DA", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "11221D14-41E5-47A6-8C32-B6EE9AE9D2DA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:11:04 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "11221D14-41E5-47A6-8C32-B6EE9AE9D2DA", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "11221D14-41E5-47A6-8C32-B6EE9AE9D2DA", + "type" : 4 + }, + { + "id" : "385C2886-9807-41BD-9783-323A438BA4D5", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218627516744&uuid=david&heartbeat=20", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218627516744&uuid=david&heartbeat=20" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "7942D681-7E6C-4C54-8AF1-7A704A70196C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "7942D681-7E6C-4C54-8AF1-7A704A70196C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:11:04 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "7942D681-7E6C-4C54-8AF1-7A704A70196C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "7942D681-7E6C-4C54-8AF1-7A704A70196C", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelGroupWithCatchUpOnSecondChannelGroupWhenSetToKeepTimetokenChannelGroupsListChange.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelGroupWithCatchUpOnSecondChannelGroupWhenSetToKeepTimetokenChannelGroupsListChange.json new file mode 100644 index 000000000..8582eee24 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelGroupWithCatchUpOnSecondChannelGroupWhenSetToKeepTimetokenChannelGroupsListChange.json @@ -0,0 +1,597 @@ +[ + { + "id" : "9C760BCE-A1E3-4588-B701-FAD5A9AF9B5D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1" + }, + "type" : 0 + }, + { + "id" : "9C760BCE-A1E3-4588-B701-FAD5A9AF9B5D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:11:05 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9C760BCE-A1E3-4588-B701-FAD5A9AF9B5D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "9C760BCE-A1E3-4588-B701-FAD5A9AF9B5D", + "type" : 4 + }, + { + "id" : "87E7FCE4-2B95-427F-9571-697F13D9CDB5", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group2?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel2" + }, + "type" : 0 + }, + { + "id" : "87E7FCE4-2B95-427F-9571-697F13D9CDB5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group2?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:11:06 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "87E7FCE4-2B95-427F-9571-697F13D9CDB5", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "87E7FCE4-2B95-427F-9571-697F13D9CDB5", + "type" : 4 + }, + { + "id" : "E6188846-8DF7-4407-9C5E-1AF7F746A9EC", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=Serhii&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "E6188846-8DF7-4407-9C5E-1AF7F746A9EC", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=Serhii&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:11:10 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E6188846-8DF7-4407-9C5E-1AF7F746A9EC", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxODcwNjU4NzQ5MyIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "E6188846-8DF7-4407-9C5E-1AF7F746A9EC", + "type" : 4 + }, + { + "id" : "637AE73A-3932-4358-81F8-835B0DFEB1AE", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218706587493&uuid=Serhii&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "81F61147-2258-440C-8018-B6375701FCB1", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22test-message%22:%5B%22message%22%5D%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "81F61147-2258-440C-8018-B6375701FCB1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22test-message%22:%5B%22message%22%5D%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:11:10 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "81F61147-2258-440C-8018-B6375701FCB1", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTgwODIxODcwODI0MDQxMyJd" + }, + "type" : 2 + }, + { + "id" : "81F61147-2258-440C-8018-B6375701FCB1", + "type" : 4 + }, + { + "id" : "637AE73A-3932-4358-81F8-835B0DFEB1AE", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218706587493&uuid=Serhii&heartbeat=20", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218706587493&uuid=Serhii&heartbeat=20" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "EAAE4DE6-1B42-4651-A7C1-DCFF6CA2A7FC", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=Serhii&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "EAAE4DE6-1B42-4651-A7C1-DCFF6CA2A7FC", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=Serhii&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:11:16 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "EAAE4DE6-1B42-4651-A7C1-DCFF6CA2A7FC", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxODc2MDA4NTc3MSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "EAAE4DE6-1B42-4651-A7C1-DCFF6CA2A7FC", + "type" : 4 + }, + { + "id" : "5D2E85A2-A484-421E-8353-6CBD5145ADA7", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218706587493&uuid=Serhii&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "5D2E85A2-A484-421E-8353-6CBD5145ADA7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218706587493&uuid=Serhii&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:11:16 GMT", + "Content-Length" : "301", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "5D2E85A2-A484-421E-8353-6CBD5145ADA7", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxODcwODI2OTUzMSIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJpIjoiU2VyaGlpIiwicyI6MTMsInAiOnsidCI6IjE1ODA4MjE4NzA4MjQwNDEzIiwiciI6MTJ9LCJrIjoiZGVtbyIsImMiOiJ0ZXN0LWNoYW5uZWwyIiwiZCI6eyJ0ZXN0LW1lc3NhZ2UiOlsibWVzc2FnZSJdfSwiYiI6InRlc3QtY2hhbm5lbC1ncm91cDIifV19" + }, + "type" : 2 + }, + { + "id" : "5D2E85A2-A484-421E-8353-6CBD5145ADA7", + "type" : 4 + }, + { + "id" : "0B8D087B-CF03-4DE3-AB7F-0AF049A43306", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218708269531&uuid=Serhii&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "80EF0BE6-C786-498F-8ED5-03B6279F8632", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "80EF0BE6-C786-498F-8ED5-03B6279F8632", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:11:17 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "80EF0BE6-C786-498F-8ED5-03B6279F8632", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "80EF0BE6-C786-498F-8ED5-03B6279F8632", + "type" : 4 + }, + { + "id" : "0B8D087B-CF03-4DE3-AB7F-0AF049A43306", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218708269531&uuid=Serhii&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:11:17 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "0B8D087B-CF03-4DE3-AB7F-0AF049A43306", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxODcwODI2OTUzMSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "0B8D087B-CF03-4DE3-AB7F-0AF049A43306", + "type" : 4 + }, + { + "id" : "09C4B090-04A1-4221-8AA2-59B2AE51CDC1", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218708269531&uuid=Serhii&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "972BB7AA-6E53-419F-8559-6D7ACE5AC6B8", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group2\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "972BB7AA-6E53-419F-8559-6D7ACE5AC6B8", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group2\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:11:18 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "972BB7AA-6E53-419F-8559-6D7ACE5AC6B8", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "972BB7AA-6E53-419F-8559-6D7ACE5AC6B8", + "type" : 4 + }, + { + "id" : "09C4B090-04A1-4221-8AA2-59B2AE51CDC1", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218708269531&uuid=Serhii&heartbeat=20", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218708269531&uuid=Serhii&heartbeat=20" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "EC3EF236-7179-494B-96F3-12554A75E6B2", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1,test-channel-group2&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "EC3EF236-7179-494B-96F3-12554A75E6B2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1,test-channel-group2&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:11:18 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "EC3EF236-7179-494B-96F3-12554A75E6B2", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "EC3EF236-7179-494B-96F3-12554A75E6B2", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelGroupWithOutCatchUpOnSecondChannelGrpoupWhenSetToNotKeepTimetokenOnChannelGroupsListChange.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelGroupWithOutCatchUpOnSecondChannelGrpoupWhenSetToNotKeepTimetokenOnChannelGroupsListChange.json new file mode 100644 index 000000000..5c9f7675d --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelGroupWithOutCatchUpOnSecondChannelGrpoupWhenSetToNotKeepTimetokenOnChannelGroupsListChange.json @@ -0,0 +1,546 @@ +[ + { + "id" : "4B2E8F44-118E-46E9-8D28-87FBAB9A2E6F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1" + }, + "type" : 0 + }, + { + "id" : "4B2E8F44-118E-46E9-8D28-87FBAB9A2E6F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:11:19 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "4B2E8F44-118E-46E9-8D28-87FBAB9A2E6F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "4B2E8F44-118E-46E9-8D28-87FBAB9A2E6F", + "type" : 4 + }, + { + "id" : "774F9D27-CA2C-4926-894A-EA9919C09C05", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group2?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel2" + }, + "type" : 0 + }, + { + "id" : "774F9D27-CA2C-4926-894A-EA9919C09C05", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group2?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:11:20 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "774F9D27-CA2C-4926-894A-EA9919C09C05", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "774F9D27-CA2C-4926-894A-EA9919C09C05", + "type" : 4 + }, + { + "id" : "32B76A16-1CF6-4DDF-83CC-13F4E4722703", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=Serhii&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "32B76A16-1CF6-4DDF-83CC-13F4E4722703", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=Serhii&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:11:24 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "32B76A16-1CF6-4DDF-83CC-13F4E4722703", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxODg0NzMxMTQ0MCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "32B76A16-1CF6-4DDF-83CC-13F4E4722703", + "type" : 4 + }, + { + "id" : "83470CAB-510D-4BB6-A7D6-9EEF1A18C18E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218847311440&uuid=Serhii&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "AE80077E-3CC3-48EF-9DA6-94BD08395255", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22test-message%22:%5B%22message%22%5D%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "AE80077E-3CC3-48EF-9DA6-94BD08395255", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22test-message%22:%5B%22message%22%5D%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:11:24 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "AE80077E-3CC3-48EF-9DA6-94BD08395255", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTgwODIxODg0OTEyNTY1OCJd" + }, + "type" : 2 + }, + { + "id" : "AE80077E-3CC3-48EF-9DA6-94BD08395255", + "type" : 4 + }, + { + "id" : "83470CAB-510D-4BB6-A7D6-9EEF1A18C18E", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218847311440&uuid=Serhii&heartbeat=20", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218847311440&uuid=Serhii&heartbeat=20" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "BCF4F061-B3D8-4963-ACAD-1376F992A215", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=Serhii&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "BCF4F061-B3D8-4963-ACAD-1376F992A215", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=Serhii&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:11:30 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "BCF4F061-B3D8-4963-ACAD-1376F992A215", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxODg5OTk3NjQyMiIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "BCF4F061-B3D8-4963-ACAD-1376F992A215", + "type" : 4 + }, + { + "id" : "9FB3288B-505F-423B-83B4-867D96B04F27", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218899976422&uuid=Serhii&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "38A10876-7580-4203-94B5-9BDC4AAC56B9", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "38A10876-7580-4203-94B5-9BDC4AAC56B9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:11:46 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "38A10876-7580-4203-94B5-9BDC4AAC56B9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "38A10876-7580-4203-94B5-9BDC4AAC56B9", + "type" : 4 + }, + { + "id" : "9FB3288B-505F-423B-83B4-867D96B04F27", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218899976422&uuid=Serhii&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:11:46 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9FB3288B-505F-423B-83B4-867D96B04F27", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxODg5OTk3NjQyMiIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "9FB3288B-505F-423B-83B4-867D96B04F27", + "type" : 4 + }, + { + "id" : "4C392C85-0AA6-4C05-AFBC-CEB809C30C90", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218899976422&uuid=Serhii&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "D015AF06-EAED-405A-BB3D-EF3E7E8BDAAF", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group2\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D015AF06-EAED-405A-BB3D-EF3E7E8BDAAF", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group2\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:11:47 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D015AF06-EAED-405A-BB3D-EF3E7E8BDAAF", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "D015AF06-EAED-405A-BB3D-EF3E7E8BDAAF", + "type" : 4 + }, + { + "id" : "4C392C85-0AA6-4C05-AFBC-CEB809C30C90", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218899976422&uuid=Serhii&heartbeat=20", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808218899976422&uuid=Serhii&heartbeat=20" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "52E49334-F56E-4E8C-AEEC-F62BBA47CB0A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1,test-channel-group2&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "52E49334-F56E-4E8C-AEEC-F62BBA47CB0A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1,test-channel-group2&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:11:47 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "52E49334-F56E-4E8C-AEEC-F62BBA47CB0A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "52E49334-F56E-4E8C-AEEC-F62BBA47CB0A", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelGroupWithPresenceAndReceiveOwnOnlineEvent.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelGroupWithPresenceAndReceiveOwnOnlineEvent.json new file mode 100644 index 000000000..cb4bfd11e --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelGroupWithPresenceAndReceiveOwnOnlineEvent.json @@ -0,0 +1,301 @@ +[ + { + "id" : "3762F6BB-0853-4D25-8930-27E69F677243", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1" + }, + "type" : 0 + }, + { + "id" : "3762F6BB-0853-4D25-8930-27E69F677243", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:11:48 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "3762F6BB-0853-4D25-8930-27E69F677243", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "3762F6BB-0853-4D25-8930-27E69F677243", + "type" : 4 + }, + { + "id" : "7A63A96C-F4CC-403C-8AC9-2B02B7D37DDB", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=Serhii&channel-group=test-channel-group1,test-channel-group1-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "7A63A96C-F4CC-403C-8AC9-2B02B7D37DDB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=Serhii&channel-group=test-channel-group1,test-channel-group1-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:11:52 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "7A63A96C-F4CC-403C-8AC9-2B02B7D37DDB", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxOTEyNzg2ODgwNiIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "7A63A96C-F4CC-403C-8AC9-2B02B7D37DDB", + "type" : 4 + }, + { + "id" : "AC99AACE-3947-4EED-B1D5-218B33F0FEC7", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219127868806&uuid=Serhii&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "AC99AACE-3947-4EED-B1D5-218B33F0FEC7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219127868806&uuid=Serhii&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:11:54 GMT", + "Content-Length" : "485", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "AC99AACE-3947-4EED-B1D5-218B33F0FEC7", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxOTE0MDAxNjgxNCIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODIxOTE0MDAxNjUzMiIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMS1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoiU2VyaGlpIiwicG5fdGltZXN0YW1wIjoxNTgwODIxOTEzLCJwbl9vY2N1cGFuY3kiOjEsInBuX2lzcHJlc2VuY2UiOjEsInBuX2NoYW5uZWwiOiJ0ZXN0LWNoYW5uZWwxIn0sImQiOnsiYWN0aW9uIjoiam9pbiIsInV1aWQiOiJTZXJoaWkiLCJ0aW1lc3RhbXAiOjE1ODA4MjE5MTMsIm9jY3VwYW5jeSI6MX0sImIiOiJ0ZXN0LWNoYW5uZWwtZ3JvdXAxLXBucHJlcyJ9XX0=" + }, + "type" : 2 + }, + { + "id" : "AC99AACE-3947-4EED-B1D5-218B33F0FEC7", + "type" : 4 + }, + { + "id" : "F98061D0-94A0-424D-8970-CDBAF3CFE198", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219140016814&uuid=Serhii&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "35BFB8CE-68CA-4529-98E8-DDBE541DF9AC", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "35BFB8CE-68CA-4529-98E8-DDBE541DF9AC", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:11:55 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "35BFB8CE-68CA-4529-98E8-DDBE541DF9AC", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "35BFB8CE-68CA-4529-98E8-DDBE541DF9AC", + "type" : 4 + }, + { + "id" : "F98061D0-94A0-424D-8970-CDBAF3CFE198", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219140016814&uuid=Serhii&heartbeat=20", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219140016814&uuid=Serhii&heartbeat=20" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "9FE835F3-58D8-4E05-BCF5-3178F70FC012", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9FE835F3-58D8-4E05-BCF5-3178F70FC012", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:11:55 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9FE835F3-58D8-4E05-BCF5-3178F70FC012", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "9FE835F3-58D8-4E05-BCF5-3178F70FC012", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelWithCatchUpOnSecondChannelWhenSetToKeepTimetokenOnChannelsListChange.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelWithCatchUpOnSecondChannelWhenSetToKeepTimetokenOnChannelsListChange.json new file mode 100644 index 000000000..e440cac41 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelWithCatchUpOnSecondChannelWhenSetToKeepTimetokenOnChannelsListChange.json @@ -0,0 +1,330 @@ +[ + { + "id" : "9ED6660D-C269-4FDD-B626-627CD4DB623C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "9ED6660D-C269-4FDD-B626-627CD4DB623C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:11:56 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9ED6660D-C269-4FDD-B626-627CD4DB623C", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxOTE2MDk3MDY1OSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "9ED6660D-C269-4FDD-B626-627CD4DB623C", + "type" : 4 + }, + { + "id" : "ADDED8CA-8D4E-4E69-A916-FFF69E6BC071", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219160970659&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "9A7B992E-54DC-45F8-BFE3-88BFCF9C471E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22test-message%22:%5B%22message%22%5D%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "9A7B992E-54DC-45F8-BFE3-88BFCF9C471E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22test-message%22:%5B%22message%22%5D%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:11:56 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9A7B992E-54DC-45F8-BFE3-88BFCF9C471E", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTgwODIxOTE2NDU3NTY5MyJd" + }, + "type" : 2 + }, + { + "id" : "9A7B992E-54DC-45F8-BFE3-88BFCF9C471E", + "type" : 4 + }, + { + "id" : "ADDED8CA-8D4E-4E69-A916-FFF69E6BC071", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219160970659&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219160970659&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "A8750453-EBA9-412D-8820-B94C690D7700", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "A8750453-EBA9-412D-8820-B94C690D7700", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:12:01 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "A8750453-EBA9-412D-8820-B94C690D7700", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxOTIxNjIwNjY5MyIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "A8750453-EBA9-412D-8820-B94C690D7700", + "type" : 4 + }, + { + "id" : "0A2F6A79-FCA5-4454-B81E-B7FDDF60ED15", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219160970659&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "0A2F6A79-FCA5-4454-B81E-B7FDDF60ED15", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219160970659&heartbeat=20&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:12:01 GMT", + "Content-Length" : "295", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "0A2F6A79-FCA5-4454-B81E-B7FDDF60ED15", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxOTE2NDU3ODQ0OCIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJpIjoiU2VyaGlpIiwicyI6MTUsInAiOnsidCI6IjE1ODA4MjE5MTY0NTc1NjkzIiwiciI6MTJ9LCJrIjoiZGVtbyIsImMiOiJ0ZXN0LWNoYW5uZWwyIiwiZCI6eyJ0ZXN0LW1lc3NhZ2UiOlsibWVzc2FnZSJdfSwiYiI6InRlc3QtY2hhbm5lbDIifV19" + }, + "type" : 2 + }, + { + "id" : "0A2F6A79-FCA5-4454-B81E-B7FDDF60ED15", + "type" : 4 + }, + { + "id" : "BD6B1CB0-66B8-4F7F-A820-187BF1E1AD43", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219164578448&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "BD6B1CB0-66B8-4F7F-A820-187BF1E1AD43", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219164578448&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219164578448&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "407415C5-60EE-488B-B667-B1F464E2F410", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "407415C5-60EE-488B-B667-B1F464E2F410", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:12:02 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "407415C5-60EE-488B-B667-B1F464E2F410", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "407415C5-60EE-488B-B667-B1F464E2F410", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelWithCatchUpOnSecondChannelWhenSubscribedWithTimetoken.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelWithCatchUpOnSecondChannelWhenSubscribedWithTimetoken.json new file mode 100644 index 000000000..be7f4100c --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelWithCatchUpOnSecondChannelWhenSubscribedWithTimetoken.json @@ -0,0 +1,330 @@ +[ + { + "id" : "74FE9CF3-4807-4518-9DB6-F00566199959", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "74FE9CF3-4807-4518-9DB6-F00566199959", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 14:51:33 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "74FE9CF3-4807-4518-9DB6-F00566199959", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODI3ODkzNDk2ODM0NiIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "74FE9CF3-4807-4518-9DB6-F00566199959", + "type" : 4 + }, + { + "id" : "F560B883-E8F9-48AB-BA5B-609093C59A7B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808278934968346&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "267AA100-78A7-41B9-9374-1AFCFACE4DB1", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22test-message%22:%5B%22message%22%5D%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "267AA100-78A7-41B9-9374-1AFCFACE4DB1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22test-message%22:%5B%22message%22%5D%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 14:51:33 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "267AA100-78A7-41B9-9374-1AFCFACE4DB1", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTgwODI3ODkzOTA2NTQxNiJd" + }, + "type" : 2 + }, + { + "id" : "267AA100-78A7-41B9-9374-1AFCFACE4DB1", + "type" : 4 + }, + { + "id" : "F560B883-E8F9-48AB-BA5B-609093C59A7B", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808278934968346&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808278934968346&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "DCBF8366-CC82-4391-8C46-17C00E94443A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "DCBF8366-CC82-4391-8C46-17C00E94443A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 14:51:39 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "DCBF8366-CC82-4391-8C46-17C00E94443A", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODI3ODk5MDgxNzQ2OSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "DCBF8366-CC82-4391-8C46-17C00E94443A", + "type" : 4 + }, + { + "id" : "D59E823F-049E-40E2-A1B8-8E5B38A5AF34", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808278934968345&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "D59E823F-049E-40E2-A1B8-8E5B38A5AF34", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808278934968345&heartbeat=20&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 14:51:39 GMT", + "Content-Length" : "294", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D59E823F-049E-40E2-A1B8-8E5B38A5AF34", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODI3ODkzOTA2ODA0OCIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJpIjoiU2VyaGlpIiwicyI6MSwicCI6eyJ0IjoiMTU4MDgyNzg5MzkwNjU0MTYiLCJyIjoxMn0sImsiOiJkZW1vIiwiYyI6InRlc3QtY2hhbm5lbDIiLCJkIjp7InRlc3QtbWVzc2FnZSI6WyJtZXNzYWdlIl19LCJiIjoidGVzdC1jaGFubmVsMiJ9XX0=" + }, + "type" : 2 + }, + { + "id" : "D59E823F-049E-40E2-A1B8-8E5B38A5AF34", + "type" : 4 + }, + { + "id" : "EF0C5E06-BB63-46C2-8E93-E9CE2C0D2E4A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808278939068048&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "EF0C5E06-BB63-46C2-8E93-E9CE2C0D2E4A", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808278939068048&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808278939068048&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "DA44F7E8-7AD7-45AF-988E-BEAE92B5471E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "DA44F7E8-7AD7-45AF-988E-BEAE92B5471E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 14:51:39 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "DA44F7E8-7AD7-45AF-988E-BEAE92B5471E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "DA44F7E8-7AD7-45AF-988E-BEAE92B5471E", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelWithOutCatchUpOnSecondChannelWhenSetToNotKeepTimetokenOnChannelsListChange.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelWithOutCatchUpOnSecondChannelWhenSetToNotKeepTimetokenOnChannelsListChange.json new file mode 100644 index 000000000..227d65d72 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelWithOutCatchUpOnSecondChannelWhenSetToNotKeepTimetokenOnChannelsListChange.json @@ -0,0 +1,279 @@ +[ + { + "id" : "80C25C5A-7055-485C-A4C2-3EB0E08EB876", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "80C25C5A-7055-485C-A4C2-3EB0E08EB876", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:12:02 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "80C25C5A-7055-485C-A4C2-3EB0E08EB876", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxOTIyNzQ5OTY0NiIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "80C25C5A-7055-485C-A4C2-3EB0E08EB876", + "type" : 4 + }, + { + "id" : "C7A9A002-2A8B-459D-9861-034BB4B1AF10", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219227499646&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "6C6F9E92-7F42-40B0-9F05-45C23CD07266", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22test-message%22:%5B%22message%22%5D%7D?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1" + }, + "type" : 0 + }, + { + "id" : "6C6F9E92-7F42-40B0-9F05-45C23CD07266", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/publish\/demo\/demo\/0\/test-channel2\/0\/%7B%22test-message%22:%5B%22message%22%5D%7D?pnsdk=PubNub-ObjC-iOS\/4.x.x&seqn=1&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:12:03 GMT", + "Content-Length" : "30", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "6C6F9E92-7F42-40B0-9F05-45C23CD07266", + "data" : { + "cls" : "NSData", + "base64" : "WzEsIlNlbnQiLCIxNTgwODIxOTIzMTAwMzc0MSJd" + }, + "type" : 2 + }, + { + "id" : "6C6F9E92-7F42-40B0-9F05-45C23CD07266", + "type" : 4 + }, + { + "id" : "C7A9A002-2A8B-459D-9861-034BB4B1AF10", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219227499646&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219227499646&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "E2D24C73-35E0-4B8E-85B2-761A8F6C1918", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "E2D24C73-35E0-4B8E-85B2-761A8F6C1918", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:12:08 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E2D24C73-35E0-4B8E-85B2-761A8F6C1918", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxOTI4Mjc1NjM4OSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "E2D24C73-35E0-4B8E-85B2-761A8F6C1918", + "type" : 4 + }, + { + "id" : "2FEE978B-814E-42DE-9C24-2C2B6F41C094", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219282756389&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "2FEE978B-814E-42DE-9C24-2C2B6F41C094", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219282756389&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219282756389&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "1C8A7A7D-7070-4E93-9DF2-EB1EE33DA89C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1C8A7A7D-7070-4E93-9DF2-EB1EE33DA89C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:12:23 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "1C8A7A7D-7070-4E93-9DF2-EB1EE33DA89C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "1C8A7A7D-7070-4E93-9DF2-EB1EE33DA89C", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelWithPresenceAndReceiveOwnOnlineEvent.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelWithPresenceAndReceiveOwnOnlineEvent.json new file mode 100644 index 000000000..776c8ed67 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldSubscribeToSingleChannelWithPresenceAndReceiveOwnOnlineEvent.json @@ -0,0 +1,193 @@ +[ + { + "id" : "6C62870F-9B92-4990-A0A8-1608BAAFA522", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "6C62870F-9B92-4990-A0A8-1608BAAFA522", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:12:24 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "6C62870F-9B92-4990-A0A8-1608BAAFA522", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxOTQ0MDk2NTUzOSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "6C62870F-9B92-4990-A0A8-1608BAAFA522", + "type" : 4 + }, + { + "id" : "51718A7D-AF07-459A-B287-FA3061C1A4C8", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219440965539&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "51718A7D-AF07-459A-B287-FA3061C1A4C8", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219440965539&heartbeat=20&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:12:25 GMT", + "Content-Length" : "479", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "51718A7D-AF07-459A-B287-FA3061C1A4C8", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxOTQ1MTU4MjM5NSIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODIxOTQ1MTU3OTI4MyIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMS1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoiU2VyaGlpIiwicG5fdGltZXN0YW1wIjoxNTgwODIxOTQ1LCJwbl9vY2N1cGFuY3kiOjEsInBuX2lzcHJlc2VuY2UiOjEsInBuX2NoYW5uZWwiOiJ0ZXN0LWNoYW5uZWwxIn0sImQiOnsiYWN0aW9uIjoiam9pbiIsInV1aWQiOiJTZXJoaWkiLCJ0aW1lc3RhbXAiOjE1ODA4MjE5NDUsIm9jY3VwYW5jeSI6MX0sImIiOiJ0ZXN0LWNoYW5uZWwxLXBucHJlcyJ9XX0=" + }, + "type" : 2 + }, + { + "id" : "51718A7D-AF07-459A-B287-FA3061C1A4C8", + "type" : 4 + }, + { + "id" : "0380E91D-054E-43E7-A094-433A823CD62A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219451582395&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "0380E91D-054E-43E7-A094-433A823CD62A", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219451582395&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219451582395&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "7CA4B823-D81F-4BAF-8CF7-3B35D71FDF14", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "7CA4B823-D81F-4BAF-8CF7-3B35D71FDF14", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:12:25 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "7CA4B823-D81F-4BAF-8CF7-3B35D71FDF14", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "7CA4B823-D81F-4BAF-8CF7-3B35D71FDF14", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldUnsubscribeFromAllChannelsAndGroupsAndReceiveDisconnectedEvent.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldUnsubscribeFromAllChannelsAndGroupsAndReceiveDisconnectedEvent.json new file mode 100644 index 000000000..2b7fe9858 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldUnsubscribeFromAllChannelsAndGroupsAndReceiveDisconnectedEvent.json @@ -0,0 +1,336 @@ +[ + { + "id" : "F2387C9B-BD44-40CA-86A0-7FD31A4DDEDB", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "F2387C9B-BD44-40CA-86A0-7FD31A4DDEDB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 14:36:52 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F2387C9B-BD44-40CA-86A0-7FD31A4DDEDB", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "F2387C9B-BD44-40CA-86A0-7FD31A4DDEDB", + "type" : 4 + }, + { + "id" : "F43AC233-7763-4189-8F30-79C7A51ACE0F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=Serhii&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "F43AC233-7763-4189-8F30-79C7A51ACE0F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=Serhii&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 14:36:54 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F43AC233-7763-4189-8F30-79C7A51ACE0F", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODI3MDE0MTM4OTA2NiIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "F43AC233-7763-4189-8F30-79C7A51ACE0F", + "type" : 4 + }, + { + "id" : "106692C1-1BDB-4CA1-82A8-39B78BFFBFF6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808270141389066&uuid=Serhii&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "106692C1-1BDB-4CA1-82A8-39B78BFFBFF6", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808270141389066&uuid=Serhii&heartbeat=20", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808270141389066&uuid=Serhii&heartbeat=20" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "97136C55-6EB7-439C-832E-3A3C49F2C600", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?uuid=Serhii&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "97136C55-6EB7-439C-832E-3A3C49F2C600", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?uuid=Serhii&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 14:36:54 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "97136C55-6EB7-439C-832E-3A3C49F2C600", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODI3MDE0NDExMzcxOCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "97136C55-6EB7-439C-832E-3A3C49F2C600", + "type" : 4 + }, + { + "id" : "31CD8486-1AA8-4A79-B278-578A3857D07B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808270141389066&uuid=Serhii&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "31CD8486-1AA8-4A79-B278-578A3857D07B", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808270141389066&uuid=Serhii&heartbeat=20", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808270141389066&uuid=Serhii&heartbeat=20" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "D236EBBD-8E6A-4D71-993F-11CE6B4D6195", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel3\/leave?channel-group=test-channel-group1&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D236EBBD-8E6A-4D71-993F-11CE6B4D6195", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel3\/leave?channel-group=test-channel-group1&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 14:36:57 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D236EBBD-8E6A-4D71-993F-11CE6B4D6195", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "D236EBBD-8E6A-4D71-993F-11CE6B4D6195", + "type" : 4 + }, + { + "id" : "B2A35AA2-8EA8-4EE7-BF99-AFBC5F9688D4", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B2A35AA2-8EA8-4EE7-BF99-AFBC5F9688D4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 14:36:58 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B2A35AA2-8EA8-4EE7-BF99-AFBC5F9688D4", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "B2A35AA2-8EA8-4EE7-BF99-AFBC5F9688D4", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldUnsubscribeFromAllChannelsAndGroupsUsingBuilderPatternInterface.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldUnsubscribeFromAllChannelsAndGroupsUsingBuilderPatternInterface.json new file mode 100644 index 000000000..feadce6c7 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldUnsubscribeFromAllChannelsAndGroupsUsingBuilderPatternInterface.json @@ -0,0 +1,336 @@ +[ + { + "id" : "98656357-1940-45BE-914D-92E7B161B746", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "98656357-1940-45BE-914D-92E7B161B746", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 14:43:33 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "98656357-1940-45BE-914D-92E7B161B746", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "98656357-1940-45BE-914D-92E7B161B746", + "type" : 4 + }, + { + "id" : "CE6B003E-62F7-4544-A666-94BE421DE50E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=Serhii&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "CE6B003E-62F7-4544-A666-94BE421DE50E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=Serhii&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 14:43:34 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "CE6B003E-62F7-4544-A666-94BE421DE50E", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODI3NDE0NzYzMjQxMCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "CE6B003E-62F7-4544-A666-94BE421DE50E", + "type" : 4 + }, + { + "id" : "E65A7BD6-B55F-4C04-8329-BB3D38DBD1E6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808274147632410&uuid=Serhii&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "E65A7BD6-B55F-4C04-8329-BB3D38DBD1E6", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808274147632410&uuid=Serhii&heartbeat=20", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808274147632410&uuid=Serhii&heartbeat=20" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "EC28B6A0-4F9E-4A5C-8E3F-A276C0D8FFD3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?uuid=Serhii&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "EC28B6A0-4F9E-4A5C-8E3F-A276C0D8FFD3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?uuid=Serhii&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 14:43:35 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "EC28B6A0-4F9E-4A5C-8E3F-A276C0D8FFD3", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODI3NDE1MDI1NDE0MyIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "EC28B6A0-4F9E-4A5C-8E3F-A276C0D8FFD3", + "type" : 4 + }, + { + "id" : "18A4E2F2-35E1-4FBC-BEA1-D5DE6E24C433", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808274147632410&uuid=Serhii&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "18A4E2F2-35E1-4FBC-BEA1-D5DE6E24C433", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808274147632410&uuid=Serhii&heartbeat=20", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808274147632410&uuid=Serhii&heartbeat=20" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "170A1F2C-E87D-4E88-8726-66738813F71E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel3\/leave?channel-group=test-channel-group1&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "170A1F2C-E87D-4E88-8726-66738813F71E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel3\/leave?channel-group=test-channel-group1&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 14:43:38 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "170A1F2C-E87D-4E88-8726-66738813F71E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "170A1F2C-E87D-4E88-8726-66738813F71E", + "type" : 4 + }, + { + "id" : "C2600FE8-5E10-426F-A599-3299031391F8", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C2600FE8-5E10-426F-A599-3299031391F8", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 14:43:39 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C2600FE8-5E10-426F-A599-3299031391F8", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "C2600FE8-5E10-426F-A599-3299031391F8", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldUnsubscribeFromChannelAndGroupUsingBuilderPatternInterface.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldUnsubscribeFromChannelAndGroupUsingBuilderPatternInterface.json new file mode 100644 index 000000000..60819fefc --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldUnsubscribeFromChannelAndGroupUsingBuilderPatternInterface.json @@ -0,0 +1,336 @@ +[ + { + "id" : "1547D8E3-7BBF-46AB-AB16-4C02B20E7080", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2" + }, + "type" : 0 + }, + { + "id" : "1547D8E3-7BBF-46AB-AB16-4C02B20E7080", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1,test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 14:43:13 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "1547D8E3-7BBF-46AB-AB16-4C02B20E7080", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "1547D8E3-7BBF-46AB-AB16-4C02B20E7080", + "type" : 4 + }, + { + "id" : "F7F0FD52-E19F-46E7-BD2E-2C667D49CCEF", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=Serhii&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "F7F0FD52-E19F-46E7-BD2E-2C667D49CCEF", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=Serhii&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 14:43:14 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F7F0FD52-E19F-46E7-BD2E-2C667D49CCEF", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODI3Mzk0NDE4MjU0MSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "F7F0FD52-E19F-46E7-BD2E-2C667D49CCEF", + "type" : 4 + }, + { + "id" : "ACE165D0-E2F3-49A8-A49A-79CDA0E3EB26", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808273944182541&uuid=Serhii&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "ACE165D0-E2F3-49A8-A49A-79CDA0E3EB26", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808273944182541&uuid=Serhii&heartbeat=20", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808273944182541&uuid=Serhii&heartbeat=20" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "6B9D353E-8D3E-4D6C-9360-F3EC2786758C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?uuid=Serhii&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "6B9D353E-8D3E-4D6C-9360-F3EC2786758C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?uuid=Serhii&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 14:43:14 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "6B9D353E-8D3E-4D6C-9360-F3EC2786758C", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODI3Mzk0NjY3Njg3OCIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "6B9D353E-8D3E-4D6C-9360-F3EC2786758C", + "type" : 4 + }, + { + "id" : "00E9A8AF-25D6-4718-B860-68613A6DF004", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808273944182541&uuid=Serhii&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "00E9A8AF-25D6-4718-B860-68613A6DF004", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808273944182541&uuid=Serhii&heartbeat=20", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel3\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808273944182541&uuid=Serhii&heartbeat=20" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "4B5B6E75-9559-40C0-8FDD-48E85F7A9295", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel3\/leave?channel-group=test-channel-group1&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "4B5B6E75-9559-40C0-8FDD-48E85F7A9295", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel3\/leave?channel-group=test-channel-group1&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 14:43:18 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "4B5B6E75-9559-40C0-8FDD-48E85F7A9295", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "4B5B6E75-9559-40C0-8FDD-48E85F7A9295", + "type" : 4 + }, + { + "id" : "54DC51AC-847B-45AE-8424-43DCDBACCD37", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "54DC51AC-847B-45AE-8424-43DCDBACCD37", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 14:43:19 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "54DC51AC-847B-45AE-8424-43DCDBACCD37", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "54DC51AC-847B-45AE-8424-43DCDBACCD37", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldUnsubscribeFromMultipleChannelGroupsAndReceiveDisconnectedEvent.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldUnsubscribeFromMultipleChannelGroupsAndReceiveDisconnectedEvent.json new file mode 100644 index 000000000..f47920d3f --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldUnsubscribeFromMultipleChannelGroupsAndReceiveDisconnectedEvent.json @@ -0,0 +1,358 @@ +[ + { + "id" : "99992B0E-4DA5-475E-A262-EDF135203239", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1" + }, + "type" : 0 + }, + { + "id" : "99992B0E-4DA5-475E-A262-EDF135203239", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:24:48 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "99992B0E-4DA5-475E-A262-EDF135203239", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "99992B0E-4DA5-475E-A262-EDF135203239", + "type" : 4 + }, + { + "id" : "838E540C-CAE9-442B-B1EC-0B963B68B086", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group2?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel2" + }, + "type" : 0 + }, + { + "id" : "838E540C-CAE9-442B-B1EC-0B963B68B086", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group2?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:24:49 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "838E540C-CAE9-442B-B1EC-0B963B68B086", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "838E540C-CAE9-442B-B1EC-0B963B68B086", + "type" : 4 + }, + { + "id" : "68BB6AF6-1CBF-452D-A137-0163F1D3CA9C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=Serhii&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "68BB6AF6-1CBF-452D-A137-0163F1D3CA9C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=Serhii&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:24:50 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "68BB6AF6-1CBF-452D-A137-0163F1D3CA9C", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIyNjkwMzg3ODM3MyIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "68BB6AF6-1CBF-452D-A137-0163F1D3CA9C", + "type" : 4 + }, + { + "id" : "C71B7E23-FC71-4208-9F80-14638C4E3995", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808226903878373&uuid=Serhii&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "C71B7E23-FC71-4208-9F80-14638C4E3995", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808226903878373&uuid=Serhii&heartbeat=20", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808226903878373&uuid=Serhii&heartbeat=20" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "0C6C51DA-1DB8-4634-B205-EE85A9B9A962", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1,test-channel-group2&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "0C6C51DA-1DB8-4634-B205-EE85A9B9A962", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1,test-channel-group2&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:24:53 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "0C6C51DA-1DB8-4634-B205-EE85A9B9A962", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "0C6C51DA-1DB8-4634-B205-EE85A9B9A962", + "type" : 4 + }, + { + "id" : "E9B8B1CC-EFBB-4AFA-BF68-7CC53BF1C680", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel1\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E9B8B1CC-EFBB-4AFA-BF68-7CC53BF1C680", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel1\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:24:54 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E9B8B1CC-EFBB-4AFA-BF68-7CC53BF1C680", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "E9B8B1CC-EFBB-4AFA-BF68-7CC53BF1C680", + "type" : 4 + }, + { + "id" : "FEF4B0E5-AD42-45EB-9083-4758DA7061F5", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel2\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "FEF4B0E5-AD42-45EB-9083-4758DA7061F5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel2\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:24:56 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "FEF4B0E5-AD42-45EB-9083-4758DA7061F5", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "FEF4B0E5-AD42-45EB-9083-4758DA7061F5", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldUnsubscribeFromMultipleChannelGroupsAndTriggerOfflineEvent.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldUnsubscribeFromMultipleChannelGroupsAndTriggerOfflineEvent.json new file mode 100644 index 000000000..fae4c5d24 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldUnsubscribeFromMultipleChannelGroupsAndTriggerOfflineEvent.json @@ -0,0 +1,753 @@ +[ + { + "id" : "862441FC-82C3-4167-8B2A-4F935BBB98EF", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1" + }, + "type" : 0 + }, + { + "id" : "862441FC-82C3-4167-8B2A-4F935BBB98EF", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:24:31 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "862441FC-82C3-4167-8B2A-4F935BBB98EF", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "862441FC-82C3-4167-8B2A-4F935BBB98EF", + "type" : 4 + }, + { + "id" : "148A1A15-4AD2-4A22-9F2F-FF7BC143668B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group2?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel2" + }, + "type" : 0 + }, + { + "id" : "148A1A15-4AD2-4A22-9F2F-FF7BC143668B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group2?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel2", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:24:32 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "148A1A15-4AD2-4A22-9F2F-FF7BC143668B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "148A1A15-4AD2-4A22-9F2F-FF7BC143668B", + "type" : 4 + }, + { + "id" : "DC027B82-04F4-4E98-9E8D-C9621881487A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=serhii&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "DC027B82-04F4-4E98-9E8D-C9621881487A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=serhii&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:24:33 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "DC027B82-04F4-4E98-9E8D-C9621881487A", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIyNjczMzUzMDkwOSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "DC027B82-04F4-4E98-9E8D-C9621881487A", + "type" : 4 + }, + { + "id" : "6E09673C-E318-4EBA-8995-3FBD69B43F82", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808226733530909&uuid=serhii&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "F04BA34C-8D66-4FF3-A3DE-81E19A915D17", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=david&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "F04BA34C-8D66-4FF3-A3DE-81E19A915D17", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=david&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:24:33 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F04BA34C-8D66-4FF3-A3DE-81E19A915D17", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIyNjczNjE3MDI4OSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "F04BA34C-8D66-4FF3-A3DE-81E19A915D17", + "type" : 4 + }, + { + "id" : "0234F375-DE25-4F14-BED8-769C806B5B29", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808226736170289&uuid=david&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "0234F375-DE25-4F14-BED8-769C806B5B29", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808226736170289&uuid=david&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:24:34 GMT", + "Content-Length" : "483", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "0234F375-DE25-4F14-BED8-769C806B5B29", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIyNjc0OTcyNTcyMiIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODIyNjc0OTcxNTE3NyIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMi1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoiZGF2aWQiLCJwbl90aW1lc3RhbXAiOjE1ODA4MjI2NzQsInBuX29jY3VwYW5jeSI6MSwicG5faXNwcmVzZW5jZSI6MSwicG5fY2hhbm5lbCI6InRlc3QtY2hhbm5lbDIifSwiZCI6eyJhY3Rpb24iOiJqb2luIiwidXVpZCI6ImRhdmlkIiwidGltZXN0YW1wIjoxNTgwODIyNjc0LCJvY2N1cGFuY3kiOjF9LCJiIjoidGVzdC1jaGFubmVsLWdyb3VwMi1wbnByZXMifV19" + }, + "type" : 2 + }, + { + "id" : "0234F375-DE25-4F14-BED8-769C806B5B29", + "type" : 4 + }, + { + "id" : "AB8D921A-A0DE-444B-BCF5-20F46861DC1C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808226749725722&uuid=david&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "AB8D921A-A0DE-444B-BCF5-20F46861DC1C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808226749725722&uuid=david&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:24:35 GMT", + "Content-Length" : "483", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "AB8D921A-A0DE-444B-BCF5-20F46861DC1C", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIyNjc0OTc0MzQwMyIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODIyNjc0OTc0MTI2NiIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMS1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoiZGF2aWQiLCJwbl90aW1lc3RhbXAiOjE1ODA4MjI2NzQsInBuX29jY3VwYW5jeSI6MSwicG5faXNwcmVzZW5jZSI6MSwicG5fY2hhbm5lbCI6InRlc3QtY2hhbm5lbDEifSwiZCI6eyJhY3Rpb24iOiJqb2luIiwidXVpZCI6ImRhdmlkIiwidGltZXN0YW1wIjoxNTgwODIyNjc0LCJvY2N1cGFuY3kiOjF9LCJiIjoidGVzdC1jaGFubmVsLWdyb3VwMS1wbnByZXMifV19" + }, + "type" : 2 + }, + { + "id" : "AB8D921A-A0DE-444B-BCF5-20F46861DC1C", + "type" : 4 + }, + { + "id" : "22A807B6-E261-4B7C-AEB2-0CAE49EAFED7", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808226749743403&uuid=david&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "22A807B6-E261-4B7C-AEB2-0CAE49EAFED7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808226749743403&uuid=david&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:24:35 GMT", + "Content-Length" : "926", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "22A807B6-E261-4B7C-AEB2-0CAE49EAFED7", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIyNjc1MDUyNTc0OCIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODIyNjc1MDQ4NTQ5MCIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMi1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoic2VyaGlpIiwicG5fdGltZXN0YW1wIjoxNTgwODIyNjc1LCJwbl9vY2N1cGFuY3kiOjIsInBuX2lzcHJlc2VuY2UiOjEsInBuX2NoYW5uZWwiOiJ0ZXN0LWNoYW5uZWwyIn0sImQiOnsiYWN0aW9uIjoiam9pbiIsInV1aWQiOiJzZXJoaWkiLCJ0aW1lc3RhbXAiOjE1ODA4MjI2NzUsIm9jY3VwYW5jeSI6Mn0sImIiOiJ0ZXN0LWNoYW5uZWwtZ3JvdXAyLXBucHJlcyJ9LHsiYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODIyNjc1MDUwMzM5MCIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMS1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoic2VyaGlpIiwicG5fdGltZXN0YW1wIjoxNTgwODIyNjc1LCJwbl9vY2N1cGFuY3kiOjIsInBuX2lzcHJlc2VuY2UiOjEsInBuX2NoYW5uZWwiOiJ0ZXN0LWNoYW5uZWwxIn0sImQiOnsiYWN0aW9uIjoiam9pbiIsInV1aWQiOiJzZXJoaWkiLCJ0aW1lc3RhbXAiOjE1ODA4MjI2NzUsIm9jY3VwYW5jeSI6Mn0sImIiOiJ0ZXN0LWNoYW5uZWwtZ3JvdXAxLXBucHJlcyJ9XX0=" + }, + "type" : 2 + }, + { + "id" : "22A807B6-E261-4B7C-AEB2-0CAE49EAFED7", + "type" : 4 + }, + { + "id" : "EFD0C4C7-C187-4214-8EC1-A6E3EA70509F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808226750525748&uuid=david&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "6E09673C-E318-4EBA-8995-3FBD69B43F82", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808226733530909&uuid=serhii&heartbeat=20", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group2&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808226733530909&uuid=serhii&heartbeat=20" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "30F8BF26-D4C7-47E3-AF3F-B8D239E04692", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1,test-channel-group2&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "30F8BF26-D4C7-47E3-AF3F-B8D239E04692", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1,test-channel-group2&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:24:37 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "30F8BF26-D4C7-47E3-AF3F-B8D239E04692", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "30F8BF26-D4C7-47E3-AF3F-B8D239E04692", + "type" : 4 + }, + { + "id" : "EFD0C4C7-C187-4214-8EC1-A6E3EA70509F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808226750525748&uuid=david&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:24:37 GMT", + "Content-Length" : "487", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "EFD0C4C7-C187-4214-8EC1-A6E3EA70509F", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIyNjc3MzE0OTM3NCIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODIyNjc3MzE0ODgwNCIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMi1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImxlYXZlIiwicG5fdXVpZCI6InNlcmhpaSIsInBuX3RpbWVzdGFtcCI6MTU4MDgyMjY3NywicG5fb2NjdXBhbmN5IjoxLCJwbl9pc3ByZXNlbmNlIjoxLCJwbl9jaGFubmVsIjoidGVzdC1jaGFubmVsMiJ9LCJkIjp7ImFjdGlvbiI6ImxlYXZlIiwidXVpZCI6InNlcmhpaSIsInRpbWVzdGFtcCI6MTU4MDgyMjY3Nywib2NjdXBhbmN5IjoxfSwiYiI6InRlc3QtY2hhbm5lbC1ncm91cDItcG5wcmVzIn1dfQ==" + }, + "type" : 2 + }, + { + "id" : "EFD0C4C7-C187-4214-8EC1-A6E3EA70509F", + "type" : 4 + }, + { + "id" : "B651FB48-EC28-4983-AD8B-2EA1E0AE9FB4", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808226773149374&uuid=david&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "B651FB48-EC28-4983-AD8B-2EA1E0AE9FB4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808226773149374&uuid=david&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:24:37 GMT", + "Content-Length" : "487", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B651FB48-EC28-4983-AD8B-2EA1E0AE9FB4", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIyNjc3MzE2NzUxNCIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODIyNjc3MzE2NzAyMyIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMS1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImxlYXZlIiwicG5fdXVpZCI6InNlcmhpaSIsInBuX3RpbWVzdGFtcCI6MTU4MDgyMjY3NywicG5fb2NjdXBhbmN5IjoxLCJwbl9pc3ByZXNlbmNlIjoxLCJwbl9jaGFubmVsIjoidGVzdC1jaGFubmVsMSJ9LCJkIjp7ImFjdGlvbiI6ImxlYXZlIiwidXVpZCI6InNlcmhpaSIsInRpbWVzdGFtcCI6MTU4MDgyMjY3Nywib2NjdXBhbmN5IjoxfSwiYiI6InRlc3QtY2hhbm5lbC1ncm91cDEtcG5wcmVzIn1dfQ==" + }, + "type" : 2 + }, + { + "id" : "B651FB48-EC28-4983-AD8B-2EA1E0AE9FB4", + "type" : 4 + }, + { + "id" : "4CD1AAF7-4747-4B48-A18E-128381A02935", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808226773167514&uuid=david&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "9E160522-AB14-42B1-BAA0-3D1E7BC3FDB5", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel1\/remove?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9E160522-AB14-42B1-BAA0-3D1E7BC3FDB5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel1\/remove?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:24:38 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9E160522-AB14-42B1-BAA0-3D1E7BC3FDB5", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "9E160522-AB14-42B1-BAA0-3D1E7BC3FDB5", + "type" : 4 + }, + { + "id" : "E9814D15-7E2B-4FAF-9D3E-30D435C3D69A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel2\/remove?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E9814D15-7E2B-4FAF-9D3E-30D435C3D69A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel2\/remove?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:24:39 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E9814D15-7E2B-4FAF-9D3E-30D435C3D69A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "E9814D15-7E2B-4FAF-9D3E-30D435C3D69A", + "type" : 4 + }, + { + "id" : "4CD1AAF7-4747-4B48-A18E-128381A02935", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808226773167514&uuid=david&heartbeat=20", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres,test-channel-group2,test-channel-group2-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808226773167514&uuid=david&heartbeat=20" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "B5E47A48-A32F-4F17-90CD-4984947EBBB4", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1,test-channel-group2&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B5E47A48-A32F-4F17-90CD-4984947EBBB4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1,test-channel-group2&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:24:39 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B5E47A48-A32F-4F17-90CD-4984947EBBB4", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "B5E47A48-A32F-4F17-90CD-4984947EBBB4", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldUnsubscribeFromMultipleChannelsAndReceiveDisconnectedEvent.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldUnsubscribeFromMultipleChannelsAndReceiveDisconnectedEvent.json new file mode 100644 index 000000000..6c930b52b --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldUnsubscribeFromMultipleChannelsAndReceiveDisconnectedEvent.json @@ -0,0 +1,142 @@ +[ + { + "id" : "00B1C360-CCA0-4135-8D6E-40FD9A9ECCCD", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "00B1C360-CCA0-4135-8D6E-40FD9A9ECCCD", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:12:26 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "00B1C360-CCA0-4135-8D6E-40FD9A9ECCCD", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxOTQ2MTIwODA0NiIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "00B1C360-CCA0-4135-8D6E-40FD9A9ECCCD", + "type" : 4 + }, + { + "id" : "58030F17-3C92-4117-9FE1-72CDB07D7BAD", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219461208046&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "58030F17-3C92-4117-9FE1-72CDB07D7BAD", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219461208046&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219461208046&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "F44F3872-5A51-4AED-8728-40857D9A52A6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F44F3872-5A51-4AED-8728-40857D9A52A6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:12:26 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F44F3872-5A51-4AED-8728-40857D9A52A6", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "F44F3872-5A51-4AED-8728-40857D9A52A6", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldUnsubscribeFromMultipleChannelsAndTriggerOfflineEvent.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldUnsubscribeFromMultipleChannelsAndTriggerOfflineEvent.json new file mode 100644 index 000000000..d2a9ebbb8 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldUnsubscribeFromMultipleChannelsAndTriggerOfflineEvent.json @@ -0,0 +1,588 @@ +[ + { + "id" : "E37AB532-A983-454C-8368-908919B30DEE", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=serhii&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "E37AB532-A983-454C-8368-908919B30DEE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=serhii&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:12:27 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E37AB532-A983-454C-8368-908919B30DEE", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxOTQ3MTg0ODQ0NSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "E37AB532-A983-454C-8368-908919B30DEE", + "type" : 4 + }, + { + "id" : "3B9BE03D-8B27-4082-8341-92D0FFFCB4AE", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219471848445&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "10031A06-643B-492C-B4A9-7D26EB641225", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=david&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "10031A06-643B-492C-B4A9-7D26EB641225", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=david&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:12:27 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "10031A06-643B-492C-B4A9-7D26EB641225", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxOTQ3NDU2NzU1MiIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "10031A06-643B-492C-B4A9-7D26EB641225", + "type" : 4 + }, + { + "id" : "1E1D4617-7FA8-436B-9A68-20DA1D67E524", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219474567552&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "1E1D4617-7FA8-436B-9A68-20DA1D67E524", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219474567552&heartbeat=20&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:12:28 GMT", + "Content-Length" : "477", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "1E1D4617-7FA8-436B-9A68-20DA1D67E524", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxOTQ4MDI5ODYzMCIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODIxOTQ4MDI4Nzg1NCIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMi1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoiZGF2aWQiLCJwbl90aW1lc3RhbXAiOjE1ODA4MjE5NDgsInBuX29jY3VwYW5jeSI6MSwicG5faXNwcmVzZW5jZSI6MSwicG5fY2hhbm5lbCI6InRlc3QtY2hhbm5lbDIifSwiZCI6eyJhY3Rpb24iOiJqb2luIiwidXVpZCI6ImRhdmlkIiwidGltZXN0YW1wIjoxNTgwODIxOTQ4LCJvY2N1cGFuY3kiOjF9LCJiIjoidGVzdC1jaGFubmVsMi1wbnByZXMifV19" + }, + "type" : 2 + }, + { + "id" : "1E1D4617-7FA8-436B-9A68-20DA1D67E524", + "type" : 4 + }, + { + "id" : "F3CFC34C-CBB8-4AA2-B599-C99810DA4553", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219480298630&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "F3CFC34C-CBB8-4AA2-B599-C99810DA4553", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219480298630&heartbeat=20&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:12:28 GMT", + "Content-Length" : "477", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "F3CFC34C-CBB8-4AA2-B599-C99810DA4553", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxOTQ4MDM1NDQ2OSIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODIxOTQ4MDM0MzQ0OCIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMS1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoiZGF2aWQiLCJwbl90aW1lc3RhbXAiOjE1ODA4MjE5NDgsInBuX29jY3VwYW5jeSI6MSwicG5faXNwcmVzZW5jZSI6MSwicG5fY2hhbm5lbCI6InRlc3QtY2hhbm5lbDEifSwiZCI6eyJhY3Rpb24iOiJqb2luIiwidXVpZCI6ImRhdmlkIiwidGltZXN0YW1wIjoxNTgwODIxOTQ4LCJvY2N1cGFuY3kiOjF9LCJiIjoidGVzdC1jaGFubmVsMS1wbnByZXMifV19" + }, + "type" : 2 + }, + { + "id" : "F3CFC34C-CBB8-4AA2-B599-C99810DA4553", + "type" : 4 + }, + { + "id" : "C4F18F78-E184-40A4-BC8E-CBA9D9FFC340", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219480354469&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "C4F18F78-E184-40A4-BC8E-CBA9D9FFC340", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219480354469&heartbeat=20&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:12:29 GMT", + "Content-Length" : "479", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C4F18F78-E184-40A4-BC8E-CBA9D9FFC340", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxOTQ5MzMzMjk0MyIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODIxOTQ5MzM0MjY2NCIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMS1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoic2VyaGlpIiwicG5fdGltZXN0YW1wIjoxNTgwODIxOTQ5LCJwbl9vY2N1cGFuY3kiOjIsInBuX2lzcHJlc2VuY2UiOjEsInBuX2NoYW5uZWwiOiJ0ZXN0LWNoYW5uZWwxIn0sImQiOnsiYWN0aW9uIjoiam9pbiIsInV1aWQiOiJzZXJoaWkiLCJ0aW1lc3RhbXAiOjE1ODA4MjE5NDksIm9jY3VwYW5jeSI6Mn0sImIiOiJ0ZXN0LWNoYW5uZWwxLXBucHJlcyJ9XX0=" + }, + "type" : 2 + }, + { + "id" : "C4F18F78-E184-40A4-BC8E-CBA9D9FFC340", + "type" : 4 + }, + { + "id" : "6402D17A-CF87-43A3-8D34-6047023014A2", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219493332943&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "6402D17A-CF87-43A3-8D34-6047023014A2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219493332943&heartbeat=20&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:12:29 GMT", + "Content-Length" : "479", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "6402D17A-CF87-43A3-8D34-6047023014A2", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxOTQ5MzQ0NTg5MCIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODIxOTQ5MzQyMjcxNyIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMi1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoic2VyaGlpIiwicG5fdGltZXN0YW1wIjoxNTgwODIxOTQ5LCJwbl9vY2N1cGFuY3kiOjIsInBuX2lzcHJlc2VuY2UiOjEsInBuX2NoYW5uZWwiOiJ0ZXN0LWNoYW5uZWwyIn0sImQiOnsiYWN0aW9uIjoiam9pbiIsInV1aWQiOiJzZXJoaWkiLCJ0aW1lc3RhbXAiOjE1ODA4MjE5NDksIm9jY3VwYW5jeSI6Mn0sImIiOiJ0ZXN0LWNoYW5uZWwyLXBucHJlcyJ9XX0=" + }, + "type" : 2 + }, + { + "id" : "6402D17A-CF87-43A3-8D34-6047023014A2", + "type" : 4 + }, + { + "id" : "A6974614-0C1D-4BD3-A685-921F395EBC86", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219493445890&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "3B9BE03D-8B27-4082-8341-92D0FFFCB4AE", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219471848445&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219471848445&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "9D4A422C-65E5-4766-B8C5-90DD6A013204", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2\/leave?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9D4A422C-65E5-4766-B8C5-90DD6A013204", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2\/leave?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:12:30 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "9D4A422C-65E5-4766-B8C5-90DD6A013204", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "9D4A422C-65E5-4766-B8C5-90DD6A013204", + "type" : 4 + }, + { + "id" : "A6974614-0C1D-4BD3-A685-921F395EBC86", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219493445890&heartbeat=20&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:12:31 GMT", + "Content-Length" : "481", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "A6974614-0C1D-4BD3-A685-921F395EBC86", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxOTUxMTM4Nzk1MSIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODIxOTUxMTM4NTU2NSIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMi1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImxlYXZlIiwicG5fdXVpZCI6InNlcmhpaSIsInBuX3RpbWVzdGFtcCI6MTU4MDgyMTk1MSwicG5fb2NjdXBhbmN5IjoxLCJwbl9pc3ByZXNlbmNlIjoxLCJwbl9jaGFubmVsIjoidGVzdC1jaGFubmVsMiJ9LCJkIjp7ImFjdGlvbiI6ImxlYXZlIiwidXVpZCI6InNlcmhpaSIsInRpbWVzdGFtcCI6MTU4MDgyMTk1MSwib2NjdXBhbmN5IjoxfSwiYiI6InRlc3QtY2hhbm5lbDItcG5wcmVzIn1dfQ==" + }, + "type" : 2 + }, + { + "id" : "A6974614-0C1D-4BD3-A685-921F395EBC86", + "type" : 4 + }, + { + "id" : "574D1213-C3B8-4425-9F3A-68E7EC1B4B3D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219511387951&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "574D1213-C3B8-4425-9F3A-68E7EC1B4B3D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219511387951&heartbeat=20&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:12:31 GMT", + "Content-Length" : "481", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "574D1213-C3B8-4425-9F3A-68E7EC1B4B3D", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxOTUxMTM5MzU3OSIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODIxOTUxMTM3ODE1NCIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMS1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImxlYXZlIiwicG5fdXVpZCI6InNlcmhpaSIsInBuX3RpbWVzdGFtcCI6MTU4MDgyMTk1MSwicG5fb2NjdXBhbmN5IjoxLCJwbl9pc3ByZXNlbmNlIjoxLCJwbl9jaGFubmVsIjoidGVzdC1jaGFubmVsMSJ9LCJkIjp7ImFjdGlvbiI6ImxlYXZlIiwidXVpZCI6InNlcmhpaSIsInRpbWVzdGFtcCI6MTU4MDgyMTk1MSwib2NjdXBhbmN5IjoxfSwiYiI6InRlc3QtY2hhbm5lbDEtcG5wcmVzIn1dfQ==" + }, + "type" : 2 + }, + { + "id" : "574D1213-C3B8-4425-9F3A-68E7EC1B4B3D", + "type" : 4 + }, + { + "id" : "612028DC-9DA5-493E-B7F7-1C3281AE85E3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219511393579&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "612028DC-9DA5-493E-B7F7-1C3281AE85E3", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219511393579&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219511393579&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "3F16D92D-1F69-4A16-BA46-7BC7C18D012A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3F16D92D-1F69-4A16-BA46-7BC7C18D012A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:12:31 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "3F16D92D-1F69-4A16-BA46-7BC7C18D012A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "3F16D92D-1F69-4A16-BA46-7BC7C18D012A", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldUnsubscribeFromPresenceChannelUsingBuilderPatternInterface.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldUnsubscribeFromPresenceChannelUsingBuilderPatternInterface.json new file mode 100644 index 000000000..e1c393206 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldUnsubscribeFromPresenceChannelUsingBuilderPatternInterface.json @@ -0,0 +1,661 @@ +[ + { + "id" : "04691569-5745-4F4C-B5CF-0CEB7413FFD1", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=serhii&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "04691569-5745-4F4C-B5CF-0CEB7413FFD1", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=serhii&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 14:38:57 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "04691569-5745-4F4C-B5CF-0CEB7413FFD1", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODI3MTM3NzUzMDI3MyIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "04691569-5745-4F4C-B5CF-0CEB7413FFD1", + "type" : 4 + }, + { + "id" : "A312EE32-ED92-4B45-A8BD-70D39BC5F641", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808271377530273&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "FB9F72E9-C9B2-4270-A49F-AF0079B54AC9", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=david&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "FB9F72E9-C9B2-4270-A49F-AF0079B54AC9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=david&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 14:38:58 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "FB9F72E9-C9B2-4270-A49F-AF0079B54AC9", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODI3MTM4MDA0Mzc2MiIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "FB9F72E9-C9B2-4270-A49F-AF0079B54AC9", + "type" : 4 + }, + { + "id" : "D58B509A-BF87-447A-8417-3BFA1787C67A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808271380043762&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "D58B509A-BF87-447A-8417-3BFA1787C67A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808271380043762&heartbeat=20&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 14:38:58 GMT", + "Content-Length" : "479", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "D58B509A-BF87-447A-8417-3BFA1787C67A", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODI3MTM4OTMzMTA3MSIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODI3MTM4OTMzNjE3NCIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMS1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoic2VyaGlpIiwicG5fdGltZXN0YW1wIjoxNTgwODI3MTM4LCJwbl9vY2N1cGFuY3kiOjEsInBuX2lzcHJlc2VuY2UiOjEsInBuX2NoYW5uZWwiOiJ0ZXN0LWNoYW5uZWwxIn0sImQiOnsiYWN0aW9uIjoiam9pbiIsInV1aWQiOiJzZXJoaWkiLCJ0aW1lc3RhbXAiOjE1ODA4MjcxMzgsIm9jY3VwYW5jeSI6MX0sImIiOiJ0ZXN0LWNoYW5uZWwxLXBucHJlcyJ9XX0=" + }, + "type" : 2 + }, + { + "id" : "D58B509A-BF87-447A-8417-3BFA1787C67A", + "type" : 4 + }, + { + "id" : "E63C6AC8-0078-4922-BF99-334341670682", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808271389331071&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "E63C6AC8-0078-4922-BF99-334341670682", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808271389331071&heartbeat=20&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 14:38:59 GMT", + "Content-Length" : "479", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "E63C6AC8-0078-4922-BF99-334341670682", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODI3MTM4OTM0NDkyNSIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODI3MTM4OTMzOTMxMSIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMi1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoic2VyaGlpIiwicG5fdGltZXN0YW1wIjoxNTgwODI3MTM4LCJwbl9vY2N1cGFuY3kiOjEsInBuX2lzcHJlc2VuY2UiOjEsInBuX2NoYW5uZWwiOiJ0ZXN0LWNoYW5uZWwyIn0sImQiOnsiYWN0aW9uIjoiam9pbiIsInV1aWQiOiJzZXJoaWkiLCJ0aW1lc3RhbXAiOjE1ODA4MjcxMzgsIm9jY3VwYW5jeSI6MX0sImIiOiJ0ZXN0LWNoYW5uZWwyLXBucHJlcyJ9XX0=" + }, + "type" : 2 + }, + { + "id" : "E63C6AC8-0078-4922-BF99-334341670682", + "type" : 4 + }, + { + "id" : "37BA8753-D247-4518-9D27-C4F74922F49B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808271389344925&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "37BA8753-D247-4518-9D27-C4F74922F49B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808271389344925&heartbeat=20&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 14:38:59 GMT", + "Content-Length" : "477", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "37BA8753-D247-4518-9D27-C4F74922F49B", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODI3MTM5MjYzODE4NSIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODI3MTM5MjYyNDIxMyIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMS1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoiZGF2aWQiLCJwbl90aW1lc3RhbXAiOjE1ODA4MjcxMzksInBuX29jY3VwYW5jeSI6MiwicG5faXNwcmVzZW5jZSI6MSwicG5fY2hhbm5lbCI6InRlc3QtY2hhbm5lbDEifSwiZCI6eyJhY3Rpb24iOiJqb2luIiwidXVpZCI6ImRhdmlkIiwidGltZXN0YW1wIjoxNTgwODI3MTM5LCJvY2N1cGFuY3kiOjJ9LCJiIjoidGVzdC1jaGFubmVsMS1wbnByZXMifV19" + }, + "type" : 2 + }, + { + "id" : "37BA8753-D247-4518-9D27-C4F74922F49B", + "type" : 4 + }, + { + "id" : "370BCE80-43CE-4DA1-993A-9646DAAE2A3C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808271392638185&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "A312EE32-ED92-4B45-A8BD-70D39BC5F641", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808271377530273&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808271377530273&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "8CBB1B3D-6D71-47D0-B81F-A5A0D2E72D2D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "8CBB1B3D-6D71-47D0-B81F-A5A0D2E72D2D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 14:39:01 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "8CBB1B3D-6D71-47D0-B81F-A5A0D2E72D2D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "8CBB1B3D-6D71-47D0-B81F-A5A0D2E72D2D", + "type" : 4 + }, + { + "id" : "CD579F84-2816-4E9A-8A01-26727602EC94", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808271377530273&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "370BCE80-43CE-4DA1-993A-9646DAAE2A3C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808271392638185&heartbeat=20&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 14:39:01 GMT", + "Content-Length" : "481", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "370BCE80-43CE-4DA1-993A-9646DAAE2A3C", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODI3MTQxNjY1MzUxMyIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODI3MTQxNjY0NTc4MSIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMS1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImxlYXZlIiwicG5fdXVpZCI6InNlcmhpaSIsInBuX3RpbWVzdGFtcCI6MTU4MDgyNzE0MSwicG5fb2NjdXBhbmN5IjoxLCJwbl9pc3ByZXNlbmNlIjoxLCJwbl9jaGFubmVsIjoidGVzdC1jaGFubmVsMSJ9LCJkIjp7ImFjdGlvbiI6ImxlYXZlIiwidXVpZCI6InNlcmhpaSIsInRpbWVzdGFtcCI6MTU4MDgyNzE0MSwib2NjdXBhbmN5IjoxfSwiYiI6InRlc3QtY2hhbm5lbDEtcG5wcmVzIn1dfQ==" + }, + "type" : 2 + }, + { + "id" : "370BCE80-43CE-4DA1-993A-9646DAAE2A3C", + "type" : 4 + }, + { + "id" : "1F5CA813-A1BA-43B5-928A-EDBB3CCEAEF2", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808271416653513&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "1F5CA813-A1BA-43B5-928A-EDBB3CCEAEF2", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808271416653513&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808271416653513&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "86B6663D-7C26-4E63-B179-AED220FDDEDA", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=david&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "86B6663D-7C26-4E63-B179-AED220FDDEDA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=david&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 14:39:01 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "86B6663D-7C26-4E63-B179-AED220FDDEDA", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODI3MTQxODMzNDM5NyIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "86B6663D-7C26-4E63-B179-AED220FDDEDA", + "type" : 4 + }, + { + "id" : "B431521E-3D60-4899-8F52-17B9646D8EF8", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808271416653513&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "CD579F84-2816-4E9A-8A01-26727602EC94", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808271377530273&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808271377530273&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "70D5357A-7E47-4BF7-8CFB-214D726ADF18", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel2\/leave?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "70D5357A-7E47-4BF7-8CFB-214D726ADF18", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel2\/leave?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 14:39:05 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "70D5357A-7E47-4BF7-8CFB-214D726ADF18", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "70D5357A-7E47-4BF7-8CFB-214D726ADF18", + "type" : 4 + }, + { + "id" : "B431521E-3D60-4899-8F52-17B9646D8EF8", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808271416653513&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808271416653513&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "B2F9473F-15CB-4AB9-B07B-95F1434D7A51", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B2F9473F-15CB-4AB9-B07B-95F1434D7A51", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 14:39:20 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B2F9473F-15CB-4AB9-B07B-95F1434D7A51", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "B2F9473F-15CB-4AB9-B07B-95F1434D7A51", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldUnsubscribeFromSingleChannelAndReceiveDisconnectedEvent.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldUnsubscribeFromSingleChannelAndReceiveDisconnectedEvent.json new file mode 100644 index 000000000..1e78399b8 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldUnsubscribeFromSingleChannelAndReceiveDisconnectedEvent.json @@ -0,0 +1,142 @@ +[ + { + "id" : "AC3E2E4B-B1B7-46D3-B02C-76B1B9401916", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "AC3E2E4B-B1B7-46D3-B02C-76B1B9401916", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:12:32 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "AC3E2E4B-B1B7-46D3-B02C-76B1B9401916", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxOTUyMTc5Njg5MSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "AC3E2E4B-B1B7-46D3-B02C-76B1B9401916", + "type" : 4 + }, + { + "id" : "C989DA98-A55A-4F04-AEA0-CFDFF4609B89", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219521796891&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "C989DA98-A55A-4F04-AEA0-CFDFF4609B89", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219521796891&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219521796891&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "DC459F8D-9390-459C-9296-BC9B0E6CDE9C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "DC459F8D-9390-459C-9296-BC9B0E6CDE9C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:12:32 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "DC459F8D-9390-459C-9296-BC9B0E6CDE9C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "DC459F8D-9390-459C-9296-BC9B0E6CDE9C", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldUnsubscribeFromSingleChannelAndTriggerOfflineEvent.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldUnsubscribeFromSingleChannelAndTriggerOfflineEvent.json new file mode 100644 index 000000000..35a4108f5 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldUnsubscribeFromSingleChannelAndTriggerOfflineEvent.json @@ -0,0 +1,435 @@ +[ + { + "id" : "A7A7F2BA-206D-4A8F-A3E4-9315D16EEA4B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=serhii&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "A7A7F2BA-206D-4A8F-A3E4-9315D16EEA4B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=serhii&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:12:33 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "A7A7F2BA-206D-4A8F-A3E4-9315D16EEA4B", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxOTUzMzA5NzEwMSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "A7A7F2BA-206D-4A8F-A3E4-9315D16EEA4B", + "type" : 4 + }, + { + "id" : "B4B931FE-8D74-47B6-9C15-4A64A263C335", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219533097101&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "69E757AC-15C5-4F77-B208-04F57A365453", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=david&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "69E757AC-15C5-4F77-B208-04F57A365453", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=david&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:12:33 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "69E757AC-15C5-4F77-B208-04F57A365453", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxOTUzNTQ5MjM4NyIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "69E757AC-15C5-4F77-B208-04F57A365453", + "type" : 4 + }, + { + "id" : "3ECC8E43-1A90-45D0-813B-9CF16DAE286C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219535492387&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "3ECC8E43-1A90-45D0-813B-9CF16DAE286C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219535492387&heartbeat=20&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:12:34 GMT", + "Content-Length" : "479", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "3ECC8E43-1A90-45D0-813B-9CF16DAE286C", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxOTU0NDg5MTkzMSIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODIxOTU0NDg4NzgzOCIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMS1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoic2VyaGlpIiwicG5fdGltZXN0YW1wIjoxNTgwODIxOTU0LCJwbl9vY2N1cGFuY3kiOjEsInBuX2lzcHJlc2VuY2UiOjEsInBuX2NoYW5uZWwiOiJ0ZXN0LWNoYW5uZWwxIn0sImQiOnsiYWN0aW9uIjoiam9pbiIsInV1aWQiOiJzZXJoaWkiLCJ0aW1lc3RhbXAiOjE1ODA4MjE5NTQsIm9jY3VwYW5jeSI6MX0sImIiOiJ0ZXN0LWNoYW5uZWwxLXBucHJlcyJ9XX0=" + }, + "type" : 2 + }, + { + "id" : "3ECC8E43-1A90-45D0-813B-9CF16DAE286C", + "type" : 4 + }, + { + "id" : "936D88C3-7146-444A-A5B1-CF76ABF4070C", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219544891931&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "936D88C3-7146-444A-A5B1-CF76ABF4070C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219544891931&heartbeat=20&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:12:34 GMT", + "Content-Length" : "477", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "936D88C3-7146-444A-A5B1-CF76ABF4070C", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxOTU0OTY0NTE5OSIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODIxOTU0OTY0MTg1MiIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMS1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoiZGF2aWQiLCJwbl90aW1lc3RhbXAiOjE1ODA4MjE5NTQsInBuX29jY3VwYW5jeSI6MiwicG5faXNwcmVzZW5jZSI6MSwicG5fY2hhbm5lbCI6InRlc3QtY2hhbm5lbDEifSwiZCI6eyJhY3Rpb24iOiJqb2luIiwidXVpZCI6ImRhdmlkIiwidGltZXN0YW1wIjoxNTgwODIxOTU0LCJvY2N1cGFuY3kiOjJ9LCJiIjoidGVzdC1jaGFubmVsMS1wbnByZXMifV19" + }, + "type" : 2 + }, + { + "id" : "936D88C3-7146-444A-A5B1-CF76ABF4070C", + "type" : 4 + }, + { + "id" : "C56DE012-1EC0-44FE-997B-4461B30F4F92", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219549645199&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "B4B931FE-8D74-47B6-9C15-4A64A263C335", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219533097101&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219533097101&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "EECC465A-DC36-4C40-AFF8-18F18AD351D2", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "EECC465A-DC36-4C40-AFF8-18F18AD351D2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:12:36 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "EECC465A-DC36-4C40-AFF8-18F18AD351D2", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "EECC465A-DC36-4C40-AFF8-18F18AD351D2", + "type" : 4 + }, + { + "id" : "C56DE012-1EC0-44FE-997B-4461B30F4F92", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219549645199&heartbeat=20&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:12:37 GMT", + "Content-Length" : "481", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C56DE012-1EC0-44FE-997B-4461B30F4F92", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIxOTU3MjM4NDkxMiIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODIxOTU3MjM2MDY0OSIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMS1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImxlYXZlIiwicG5fdXVpZCI6InNlcmhpaSIsInBuX3RpbWVzdGFtcCI6MTU4MDgyMTk1NywicG5fb2NjdXBhbmN5IjoxLCJwbl9pc3ByZXNlbmNlIjoxLCJwbl9jaGFubmVsIjoidGVzdC1jaGFubmVsMSJ9LCJkIjp7ImFjdGlvbiI6ImxlYXZlIiwidXVpZCI6InNlcmhpaSIsInRpbWVzdGFtcCI6MTU4MDgyMTk1Nywib2NjdXBhbmN5IjoxfSwiYiI6InRlc3QtY2hhbm5lbDEtcG5wcmVzIn1dfQ==" + }, + "type" : 2 + }, + { + "id" : "C56DE012-1EC0-44FE-997B-4461B30F4F92", + "type" : 4 + }, + { + "id" : "7122CED3-49D4-4250-BBD8-9C0C34344EB2", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219572384912&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "7122CED3-49D4-4250-BBD8-9C0C34344EB2", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219572384912&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808219572384912&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "123E7D2F-5438-4E80-97CE-EC0E321F5D13", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "123E7D2F-5438-4E80-97CE-EC0E321F5D13", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:12:37 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "123E7D2F-5438-4E80-97CE-EC0E321F5D13", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "123E7D2F-5438-4E80-97CE-EC0E321F5D13", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldUnsubscribeFromSingleChannelGroupAndReceiveDisconnectedEvent.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldUnsubscribeFromSingleChannelGroupAndReceiveDisconnectedEvent.json new file mode 100644 index 000000000..109f7f056 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldUnsubscribeFromSingleChannelGroupAndReceiveDisconnectedEvent.json @@ -0,0 +1,250 @@ +[ + { + "id" : "EB4E32EB-4E2C-4B83-BFB9-3B6D3EEB8511", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1" + }, + "type" : 0 + }, + { + "id" : "EB4E32EB-4E2C-4B83-BFB9-3B6D3EEB8511", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:25:15 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "EB4E32EB-4E2C-4B83-BFB9-3B6D3EEB8511", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "EB4E32EB-4E2C-4B83-BFB9-3B6D3EEB8511", + "type" : 4 + }, + { + "id" : "90FFCA9A-C95F-4131-8DFF-52B054ADA5BB", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=Serhii&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "90FFCA9A-C95F-4131-8DFF-52B054ADA5BB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=Serhii&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:25:16 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "90FFCA9A-C95F-4131-8DFF-52B054ADA5BB", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIyNzE2NDUzNzczNiIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "90FFCA9A-C95F-4131-8DFF-52B054ADA5BB", + "type" : 4 + }, + { + "id" : "9FC8A269-A9B4-423F-BDCF-1D905F7EFEAF", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808227164537736&uuid=Serhii&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "9FC8A269-A9B4-423F-BDCF-1D905F7EFEAF", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808227164537736&uuid=Serhii&heartbeat=20", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808227164537736&uuid=Serhii&heartbeat=20" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "3BBDFC31-3585-415F-B67A-0CD7B228F7D8", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3BBDFC31-3585-415F-B67A-0CD7B228F7D8", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:25:16 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "3BBDFC31-3585-415F-B67A-0CD7B228F7D8", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "3BBDFC31-3585-415F-B67A-0CD7B228F7D8", + "type" : 4 + }, + { + "id" : "CBD52E8A-A8EE-4EDB-8A9B-320C0116F496", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "CBD52E8A-A8EE-4EDB-8A9B-320C0116F496", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1\/remove?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:25:17 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "CBD52E8A-A8EE-4EDB-8A9B-320C0116F496", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "CBD52E8A-A8EE-4EDB-8A9B-320C0116F496", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldUnsubscribeFromSingleChannelGroupAndTriggerOfflineEvent.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldUnsubscribeFromSingleChannelGroupAndTriggerOfflineEvent.json new file mode 100644 index 000000000..d995e4013 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldUnsubscribeFromSingleChannelGroupAndTriggerOfflineEvent.json @@ -0,0 +1,543 @@ +[ + { + "id" : "944D6A45-613B-4BFE-B1E1-D9C1AD76E38D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1" + }, + "type" : 0 + }, + { + "id" : "944D6A45-613B-4BFE-B1E1-D9C1AD76E38D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&add=test-channel1", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:25:02 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "944D6A45-613B-4BFE-B1E1-D9C1AD76E38D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "944D6A45-613B-4BFE-B1E1-D9C1AD76E38D", + "type" : 4 + }, + { + "id" : "DA9DC63A-2875-4743-A6E6-250F8DB10663", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=serhii&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "DA9DC63A-2875-4743-A6E6-250F8DB10663", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=serhii&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:25:03 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "DA9DC63A-2875-4743-A6E6-250F8DB10663", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIyNzAzNzA0NjQ4OSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "DA9DC63A-2875-4743-A6E6-250F8DB10663", + "type" : 4 + }, + { + "id" : "2C6AB8BC-59DE-4AA1-9BAE-7D2387F483C7", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808227037046489&uuid=serhii&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "AF626642-564A-4DFE-A908-02AE546A5320", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=david&channel-group=test-channel-group1,test-channel-group1-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "AF626642-564A-4DFE-A908-02AE546A5320", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?uuid=david&channel-group=test-channel-group1,test-channel-group1-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:25:04 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "AF626642-564A-4DFE-A908-02AE546A5320", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIyNzAzOTcxNjYyOSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "AF626642-564A-4DFE-A908-02AE546A5320", + "type" : 4 + }, + { + "id" : "68BCDDB2-1A7F-4E0F-BE74-837CE8862AF4", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808227039716629&uuid=david&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "68BCDDB2-1A7F-4E0F-BE74-837CE8862AF4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808227039716629&uuid=david&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:25:04 GMT", + "Content-Length" : "485", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "68BCDDB2-1A7F-4E0F-BE74-837CE8862AF4", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIyNzA0NTUyNzQ3NyIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODIyNzA0NTUzNTc1NSIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMS1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoic2VyaGlpIiwicG5fdGltZXN0YW1wIjoxNTgwODIyNzA0LCJwbl9vY2N1cGFuY3kiOjEsInBuX2lzcHJlc2VuY2UiOjEsInBuX2NoYW5uZWwiOiJ0ZXN0LWNoYW5uZWwxIn0sImQiOnsiYWN0aW9uIjoiam9pbiIsInV1aWQiOiJzZXJoaWkiLCJ0aW1lc3RhbXAiOjE1ODA4MjI3MDQsIm9jY3VwYW5jeSI6MX0sImIiOiJ0ZXN0LWNoYW5uZWwtZ3JvdXAxLXBucHJlcyJ9XX0=" + }, + "type" : 2 + }, + { + "id" : "68BCDDB2-1A7F-4E0F-BE74-837CE8862AF4", + "type" : 4 + }, + { + "id" : "346AC7A1-DB14-42A1-BBA3-6E35D5EB2E60", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808227045527477&uuid=david&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "346AC7A1-DB14-42A1-BBA3-6E35D5EB2E60", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808227045527477&uuid=david&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:25:05 GMT", + "Content-Length" : "483", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "346AC7A1-DB14-42A1-BBA3-6E35D5EB2E60", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIyNzA1MTYyODY1MiIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODIyNzA1MTYxMjA5MyIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMS1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoiZGF2aWQiLCJwbl90aW1lc3RhbXAiOjE1ODA4MjI3MDUsInBuX29jY3VwYW5jeSI6MiwicG5faXNwcmVzZW5jZSI6MSwicG5fY2hhbm5lbCI6InRlc3QtY2hhbm5lbDEifSwiZCI6eyJhY3Rpb24iOiJqb2luIiwidXVpZCI6ImRhdmlkIiwidGltZXN0YW1wIjoxNTgwODIyNzA1LCJvY2N1cGFuY3kiOjJ9LCJiIjoidGVzdC1jaGFubmVsLWdyb3VwMS1wbnByZXMifV19" + }, + "type" : 2 + }, + { + "id" : "346AC7A1-DB14-42A1-BBA3-6E35D5EB2E60", + "type" : 4 + }, + { + "id" : "FE95990E-D294-4690-A8CB-B42D94A48F20", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808227051628652&uuid=david&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "2C6AB8BC-59DE-4AA1-9BAE-7D2387F483C7", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808227037046489&uuid=serhii&heartbeat=20", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808227037046489&uuid=serhii&heartbeat=20" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "3BAB3821-D9E5-4FB8-8D95-6B6F263DD29D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3BAB3821-D9E5-4FB8-8D95-6B6F263DD29D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:25:07 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "3BAB3821-D9E5-4FB8-8D95-6B6F263DD29D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "3BAB3821-D9E5-4FB8-8D95-6B6F263DD29D", + "type" : 4 + }, + { + "id" : "FE95990E-D294-4690-A8CB-B42D94A48F20", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808227051628652&uuid=david&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 13:25:07 GMT", + "Content-Length" : "487", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "FE95990E-D294-4690-A8CB-B42D94A48F20", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODIyNzA3Njc2NzY5OSIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODIyNzA3Njc0NTU0NyIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMS1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImxlYXZlIiwicG5fdXVpZCI6InNlcmhpaSIsInBuX3RpbWVzdGFtcCI6MTU4MDgyMjcwNywicG5fb2NjdXBhbmN5IjoxLCJwbl9pc3ByZXNlbmNlIjoxLCJwbl9jaGFubmVsIjoidGVzdC1jaGFubmVsMSJ9LCJkIjp7ImFjdGlvbiI6ImxlYXZlIiwidXVpZCI6InNlcmhpaSIsInRpbWVzdGFtcCI6MTU4MDgyMjcwNywib2NjdXBhbmN5IjoxfSwiYiI6InRlc3QtY2hhbm5lbC1ncm91cDEtcG5wcmVzIn1dfQ==" + }, + "type" : 2 + }, + { + "id" : "FE95990E-D294-4690-A8CB-B42D94A48F20", + "type" : 4 + }, + { + "id" : "D30AA136-37DA-4867-B21D-3502AA62930A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808227076767699&uuid=david&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "7316EB42-EB51-4EB4-A638-30A74C517FEE", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1\/remove?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "7316EB42-EB51-4EB4-A638-30A74C517FEE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/channel-registration\/sub-key\/demo\/channel-group\/test-channel-group1\/remove?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET, POST, DELETE, OPTIONS", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:25:08 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "79", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "7316EB42-EB51-4EB4-A638-30A74C517FEE", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ==" + }, + "type" : 2 + }, + { + "id" : "7316EB42-EB51-4EB4-A638-30A74C517FEE", + "type" : 4 + }, + { + "id" : "D30AA136-37DA-4867-B21D-3502AA62930A", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808227076767699&uuid=david&heartbeat=20", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/,\/0?tr=12&channel-group=test-channel-group1,test-channel-group1-pnpres&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808227076767699&uuid=david&heartbeat=20" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "C68CBD73-C7E6-4286-B276-3213EA5CE79F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C68CBD73-C7E6-4286-B276-3213EA5CE79F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/,\/leave?channel-group=test-channel-group1&uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 13:25:09 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "C68CBD73-C7E6-4286-B276-3213EA5CE79F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "C68CBD73-C7E6-4286-B276-3213EA5CE79F", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldUnsubscribeFromoMultipleChannelAndNotTriggerOfflineEventWhenUnsubscribedFromPresenceChannelSeparatelly.json b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldUnsubscribeFromoMultipleChannelAndNotTriggerOfflineEventWhenUnsubscribedFromPresenceChannelSeparatelly.json new file mode 100644 index 000000000..b017438ba --- /dev/null +++ b/Tests/Support Files/Fixtures/PNSubscribeIntegrationTest.bundle/ItShouldUnsubscribeFromoMultipleChannelAndNotTriggerOfflineEventWhenUnsubscribedFromPresenceChannelSeparatelly.json @@ -0,0 +1,712 @@ +[ + { + "id" : "98BD2AB2-FB79-412F-A7CC-ECFCA3D391BA", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=serhii&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "98BD2AB2-FB79-412F-A7CC-ECFCA3D391BA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=serhii&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 14:28:21 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "98BD2AB2-FB79-412F-A7CC-ECFCA3D391BA", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODI2NTAxNjEwMTI0MSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "98BD2AB2-FB79-412F-A7CC-ECFCA3D391BA", + "type" : 4 + }, + { + "id" : "750C6C1A-DE13-4B4B-88FD-EFF4F24BB2EE", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808265016101241&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "8810DB51-79FD-4A2E-8E07-91CF044E87C6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=david&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "8810DB51-79FD-4A2E-8E07-91CF044E87C6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=david&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 14:28:21 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "8810DB51-79FD-4A2E-8E07-91CF044E87C6", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODI2NTAxODY1MjIzOSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "8810DB51-79FD-4A2E-8E07-91CF044E87C6", + "type" : 4 + }, + { + "id" : "4F5D9804-EDF3-434D-BFA9-84A335D8752F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808265018652239&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "4F5D9804-EDF3-434D-BFA9-84A335D8752F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808265018652239&heartbeat=20&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 14:28:22 GMT", + "Content-Length" : "479", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "4F5D9804-EDF3-434D-BFA9-84A335D8752F", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODI2NTAyMzk5MjM3OCIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODI2NTAyMzk4MTYwNiIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMi1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoic2VyaGlpIiwicG5fdGltZXN0YW1wIjoxNTgwODI2NTAyLCJwbl9vY2N1cGFuY3kiOjEsInBuX2lzcHJlc2VuY2UiOjEsInBuX2NoYW5uZWwiOiJ0ZXN0LWNoYW5uZWwyIn0sImQiOnsiYWN0aW9uIjoiam9pbiIsInV1aWQiOiJzZXJoaWkiLCJ0aW1lc3RhbXAiOjE1ODA4MjY1MDIsIm9jY3VwYW5jeSI6MX0sImIiOiJ0ZXN0LWNoYW5uZWwyLXBucHJlcyJ9XX0=" + }, + "type" : 2 + }, + { + "id" : "4F5D9804-EDF3-434D-BFA9-84A335D8752F", + "type" : 4 + }, + { + "id" : "155C4E86-7D8D-4003-AA08-95C84FF3A8ED", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808265023992378&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "155C4E86-7D8D-4003-AA08-95C84FF3A8ED", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808265023992378&heartbeat=20&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 14:28:22 GMT", + "Content-Length" : "479", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "155C4E86-7D8D-4003-AA08-95C84FF3A8ED", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODI2NTAyNDA1NTYwOCIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODI2NTAyNDA0NTU5OCIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMS1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoic2VyaGlpIiwicG5fdGltZXN0YW1wIjoxNTgwODI2NTAyLCJwbl9vY2N1cGFuY3kiOjEsInBuX2lzcHJlc2VuY2UiOjEsInBuX2NoYW5uZWwiOiJ0ZXN0LWNoYW5uZWwxIn0sImQiOnsiYWN0aW9uIjoiam9pbiIsInV1aWQiOiJzZXJoaWkiLCJ0aW1lc3RhbXAiOjE1ODA4MjY1MDIsIm9jY3VwYW5jeSI6MX0sImIiOiJ0ZXN0LWNoYW5uZWwxLXBucHJlcyJ9XX0=" + }, + "type" : 2 + }, + { + "id" : "155C4E86-7D8D-4003-AA08-95C84FF3A8ED", + "type" : 4 + }, + { + "id" : "57D504E3-BD5D-4F5E-8564-462155FADE7D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808265024055608&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "57D504E3-BD5D-4F5E-8564-462155FADE7D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808265024055608&heartbeat=20&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 14:28:24 GMT", + "Content-Length" : "477", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "57D504E3-BD5D-4F5E-8564-462155FADE7D", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODI2NTA0NzE0MDE1MiIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODI2NTA0NzE3NTI4OCIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMS1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoiZGF2aWQiLCJwbl90aW1lc3RhbXAiOjE1ODA4MjY1MDQsInBuX29jY3VwYW5jeSI6MiwicG5faXNwcmVzZW5jZSI6MSwicG5fY2hhbm5lbCI6InRlc3QtY2hhbm5lbDEifSwiZCI6eyJhY3Rpb24iOiJqb2luIiwidXVpZCI6ImRhdmlkIiwidGltZXN0YW1wIjoxNTgwODI2NTA0LCJvY2N1cGFuY3kiOjJ9LCJiIjoidGVzdC1jaGFubmVsMS1wbnByZXMifV19" + }, + "type" : 2 + }, + { + "id" : "57D504E3-BD5D-4F5E-8564-462155FADE7D", + "type" : 4 + }, + { + "id" : "33DC8137-732C-48F7-95C8-C4E6897E8283", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808265047140152&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "33DC8137-732C-48F7-95C8-C4E6897E8283", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808265047140152&heartbeat=20&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 14:28:24 GMT", + "Content-Length" : "477", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "33DC8137-732C-48F7-95C8-C4E6897E8283", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODI2NTA0NzIzMTM2NiIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODI2NTA0NzIzMzIwNCIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMi1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImpvaW4iLCJwbl91dWlkIjoiZGF2aWQiLCJwbl90aW1lc3RhbXAiOjE1ODA4MjY1MDQsInBuX29jY3VwYW5jeSI6MiwicG5faXNwcmVzZW5jZSI6MSwicG5fY2hhbm5lbCI6InRlc3QtY2hhbm5lbDIifSwiZCI6eyJhY3Rpb24iOiJqb2luIiwidXVpZCI6ImRhdmlkIiwidGltZXN0YW1wIjoxNTgwODI2NTA0LCJvY2N1cGFuY3kiOjJ9LCJiIjoidGVzdC1jaGFubmVsMi1wbnByZXMifV19" + }, + "type" : 2 + }, + { + "id" : "33DC8137-732C-48F7-95C8-C4E6897E8283", + "type" : 4 + }, + { + "id" : "484764EF-6EA0-487C-97EC-C8B587F353E4", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808265047231366&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "750C6C1A-DE13-4B4B-88FD-EFF4F24BB2EE", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808265016101241&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel2\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808265016101241&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "A60DAF6B-A4D5-4C27-B47E-0651491243B3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A60DAF6B-A4D5-4C27-B47E-0651491243B3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1\/leave?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 14:28:25 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "A60DAF6B-A4D5-4C27-B47E-0651491243B3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "A60DAF6B-A4D5-4C27-B47E-0651491243B3", + "type" : 4 + }, + { + "id" : "4FF596EC-3716-4EAD-AC2B-7177062C5CC4", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808265016101241&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "484764EF-6EA0-487C-97EC-C8B587F353E4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808265047231366&heartbeat=20&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 14:28:25 GMT", + "Content-Length" : "481", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "484764EF-6EA0-487C-97EC-C8B587F353E4", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODI2NTA1NTY3MDgzMyIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJwIjp7InQiOiIxNTgwODI2NTA1NTY3Mjg5MiIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoidGVzdC1jaGFubmVsMS1wbnByZXMiLCJ1Ijp7InBuX2FjdGlvbiI6ImxlYXZlIiwicG5fdXVpZCI6InNlcmhpaSIsInBuX3RpbWVzdGFtcCI6MTU4MDgyNjUwNSwicG5fb2NjdXBhbmN5IjoxLCJwbl9pc3ByZXNlbmNlIjoxLCJwbl9jaGFubmVsIjoidGVzdC1jaGFubmVsMSJ9LCJkIjp7ImFjdGlvbiI6ImxlYXZlIiwidXVpZCI6InNlcmhpaSIsInRpbWVzdGFtcCI6MTU4MDgyNjUwNSwib2NjdXBhbmN5IjoxfSwiYiI6InRlc3QtY2hhbm5lbDEtcG5wcmVzIn1dfQ==" + }, + "type" : 2 + }, + { + "id" : "484764EF-6EA0-487C-97EC-C8B587F353E4", + "type" : 4 + }, + { + "id" : "EEE0EF6B-F2F3-4A32-AE87-051B05278130", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808265055670833&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "EEE0EF6B-F2F3-4A32-AE87-051B05278130", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808265055670833&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2,test-channel2-pnpres\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808265055670833&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "B5816068-0B30-48C4-8879-628C4C1D9952", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=david&tt=0&heartbeat=20" + }, + "type" : 0 + }, + { + "id" : "B5816068-0B30-48C4-8879-628C4C1D9952", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2\/0?pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=david&tt=0&heartbeat=20", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Tue, 04 Feb 2020 14:28:25 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "B5816068-0B30-48C4-8879-628C4C1D9952", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgwODI2NTA1NzEyMTgyMSIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "B5816068-0B30-48C4-8879-628C4C1D9952", + "type" : 4 + }, + { + "id" : "8EB00441-8A9E-4201-8029-244F82F09866", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808265055670833&heartbeat=20&tr=12" + }, + "type" : 0 + }, + { + "id" : "4FF596EC-3716-4EAD-AC2B-7177062C5CC4", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808265016101241&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel2\/0?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808265016101241&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "087FDF17-EF52-4B01-AF14-02638F7A47D4", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel2\/leave?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "087FDF17-EF52-4B01-AF14-02638F7A47D4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel2\/leave?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 14:28:28 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "087FDF17-EF52-4B01-AF14-02638F7A47D4", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "087FDF17-EF52-4B01-AF14-02638F7A47D4", + "type" : 4 + }, + { + "id" : "8EB00441-8A9E-4201-8029-244F82F09866", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808265055670833&heartbeat=20&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/test-channel1,test-channel1-pnpres,test-channel2\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15808265055670833&heartbeat=20&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "01629A3F-C3AC-499C-B411-D98C218B3DAB", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "01629A3F-C3AC-499C-B411-D98C218B3DAB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/test-channel1,test-channel2\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Tue, 04 Feb 2020 14:28:43 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "01629A3F-C3AC-499C-B411-D98C218B3DAB", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "01629A3F-C3AC-499C-B411-D98C218B3DAB", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNTimeIntegrationTest.bundle/ItShouldFetchPubNubTimeAfterRetry.json b/Tests/Support Files/Fixtures/PNTimeIntegrationTest.bundle/ItShouldFetchPubNubTimeAfterRetry.json new file mode 100644 index 000000000..2fe1939aa --- /dev/null +++ b/Tests/Support Files/Fixtures/PNTimeIntegrationTest.bundle/ItShouldFetchPubNubTimeAfterRetry.json @@ -0,0 +1,100 @@ +[ + { + "id" : "583E20C1-589F-4FEB-9E83-37EEF32FD2B7", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/time\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "583E20C1-589F-4FEB-9E83-37EEF32FD2B7", + "data" : { + "status" : 404, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/time\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Date" : "Sun, 26 Jan 2020 21:10:20 GMT", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Connection" : "keep-alive", + "Cache-Control" : "no-cache", + "Content-Length" : "19" + } + }, + "type" : 1 + }, + { + "id" : "583E20C1-589F-4FEB-9E83-37EEF32FD2B7", + "data" : { + "cls" : "NSData", + "base64" : "WzE1ODAwNzMwMjAxODkwNzM0XQ==" + }, + "type" : 2 + }, + { + "id" : "583E20C1-589F-4FEB-9E83-37EEF32FD2B7", + "type" : 4 + }, + { + "id" : "583E20C1-589F-4FEB-9E83-37EEF32FD2B8", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/time\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "583E20C1-589F-4FEB-9E83-37EEF32FD2B8", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/time\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Date" : "Sun, 26 Jan 2020 21:10:20 GMT", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Connection" : "keep-alive", + "Cache-Control" : "no-cache", + "Content-Length" : "19" + } + }, + "type" : 1 + }, + { + "id" : "583E20C1-589F-4FEB-9E83-37EEF32FD2B8", + "data" : { + "cls" : "NSData", + "base64" : "WzE1ODAwNzMwMjAxODkwNzM0XQ==" + }, + "type" : 2 + }, + { + "id" : "583E20C1-589F-4FEB-9E83-37EEF32FD2B8", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNTimeIntegrationTest.bundle/ItShouldFetchPubNubTimeAndReceiveResultWithExpectedOperation.json b/Tests/Support Files/Fixtures/PNTimeIntegrationTest.bundle/ItShouldFetchPubNubTimeAndReceiveResultWithExpectedOperation.json new file mode 100644 index 000000000..7e3911ad6 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNTimeIntegrationTest.bundle/ItShouldFetchPubNubTimeAndReceiveResultWithExpectedOperation.json @@ -0,0 +1,51 @@ +[ + { + "id" : "25D5C539-21D3-4EC2-9D04-B672FBE39B1F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/time\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "25D5C539-21D3-4EC2-9D04-B672FBE39B1F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/time\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Date" : "Sun, 26 Jan 2020 21:05:35 GMT", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Connection" : "keep-alive", + "Cache-Control" : "no-cache", + "Content-Length" : "19" + } + }, + "type" : 1 + }, + { + "id" : "25D5C539-21D3-4EC2-9D04-B672FBE39B1F", + "data" : { + "cls" : "NSData", + "base64" : "WzE1ODAwNzI3MzU5NTc5Mjg5XQ==" + }, + "type" : 2 + }, + { + "id" : "25D5C539-21D3-4EC2-9D04-B672FBE39B1F", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNTimeIntegrationTest.bundle/ItShouldFetchPubNubTimeUsingBuilderPatternInterface.json b/Tests/Support Files/Fixtures/PNTimeIntegrationTest.bundle/ItShouldFetchPubNubTimeUsingBuilderPatternInterface.json new file mode 100644 index 000000000..b98f7ed29 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNTimeIntegrationTest.bundle/ItShouldFetchPubNubTimeUsingBuilderPatternInterface.json @@ -0,0 +1,51 @@ +[ + { + "id" : "4C62835F-29E9-4D51-B084-4A8A2BDCA231", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/time\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "4C62835F-29E9-4D51-B084-4A8A2BDCA231", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/time\/0?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Date" : "Sun, 26 Jan 2020 21:14:32 GMT", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Connection" : "keep-alive", + "Cache-Control" : "no-cache", + "Content-Length" : "19" + } + }, + "type" : 1 + }, + { + "id" : "4C62835F-29E9-4D51-B084-4A8A2BDCA231", + "data" : { + "cls" : "NSData", + "base64" : "WzE1ODAwNzMyNzI3ODExNDU3XQ==" + }, + "type" : 2 + }, + { + "id" : "4C62835F-29E9-4D51-B084-4A8A2BDCA231", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldCreateUserAndReceiveStatusWithExpectedOperationAndCategoryWhenOnlySpaceAndIdentifierIsSet.json b/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldCreateUserAndReceiveStatusWithExpectedOperationAndCategoryWhenOnlySpaceAndIdentifierIsSet.json new file mode 100644 index 000000000..fb997b18f --- /dev/null +++ b/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldCreateUserAndReceiveStatusWithExpectedOperationAndCategoryWhenOnlySpaceAndIdentifierIsSet.json @@ -0,0 +1,210 @@ +[ + { + "id" : "AAD89FE4-C3AA-4949-9F4F-45BF0A19772F", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "AAD89FE4-C3AA-4949-9F4F-45BF0A19772F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:48:27 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "AAD89FE4-C3AA-4949-9F4F-45BF0A19772F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "AAD89FE4-C3AA-4949-9F4F-45BF0A19772F", + "type" : 4 + }, + { + "id" : "1D341569-24FA-444A-8AC4-376C8D19E2BF", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1D341569-24FA-444A-8AC4-376C8D19E2BF", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:48:27 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "1D341569-24FA-444A-8AC4-376C8D19E2BF", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "1D341569-24FA-444A-8AC4-376C8D19E2BF", + "type" : 4 + }, + { + "id" : "D1A738B4-B617-4AEB-BB59-85A3981FA50D", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "70", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6InRlc3QtdXNlciIsIm5hbWUiOiJ0ZXN0LXVzZXItbmFtZSJ9" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D1A738B4-B617-4AEB-BB59-85A3981FA50D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 11:48:28 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "D1A738B4-B617-4AEB-BB59-85A3981FA50D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6InRlc3QtdXNlciIsIm5hbWUiOiJ0ZXN0LXVzZXItbmFtZSIsImV4dGVybmFsSWQiOm51bGwsInByb2ZpbGVVcmwiOm51bGwsImVtYWlsIjpudWxsLCJjdXN0b20iOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDExOjQ4OjI3LjY4NjMwMVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMTo0ODoyNy42ODYzMDFaIiwiZVRhZyI6IkFZNnFtOG5ncDRMV3N3RSJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "D1A738B4-B617-4AEB-BB59-85A3981FA50D", + "type" : 4 + }, + { + "id" : "E342F2D4-6590-4DC6-BCEE-57C1E7C722AB", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/test-user?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E342F2D4-6590-4DC6-BCEE-57C1E7C722AB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/test-user?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:48:29 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "E342F2D4-6590-4DC6-BCEE-57C1E7C722AB", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "E342F2D4-6590-4DC6-BCEE-57C1E7C722AB", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldCreateUserWhenAdditionalInformationIsSet.json b/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldCreateUserWhenAdditionalInformationIsSet.json new file mode 100644 index 000000000..5bc4829c4 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldCreateUserWhenAdditionalInformationIsSet.json @@ -0,0 +1,210 @@ +[ + { + "id" : "7D6D448D-C3DF-42B6-B0CA-B85D7F1A8C9A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "7D6D448D-C3DF-42B6-B0CA-B85D7F1A8C9A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:48:31 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "7D6D448D-C3DF-42B6-B0CA-B85D7F1A8C9A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "7D6D448D-C3DF-42B6-B0CA-B85D7F1A8C9A", + "type" : 4 + }, + { + "id" : "75486BC9-6606-40E4-8802-61CB5F83501A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "75486BC9-6606-40E4-8802-61CB5F83501A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:48:31 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "75486BC9-6606-40E4-8802-61CB5F83501A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "75486BC9-6606-40E4-8802-61CB5F83501A", + "type" : 4 + }, + { + "id" : "A922C533-2F93-4D44-9432-A4349CE5F9B5", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "331", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJlbWFpbCI6InRlc3QtdXNlci1lbWFpbCIsImlkIjoidGVzdC11c2VyIiwicHJvZmlsZVVybCI6Imh0dHBzOlwvXC9wdWJudWIuY29tIiwibmFtZSI6InRlc3QtdXNlci1uYW1lIiwiZXh0ZXJuYWxJZCI6InRlc3QtZXh0ZXJuYWwtaWRlbnRpZmllciIsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTIiOiJ0ZXN0LXVzZXItbmFtZS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoidGVzdC11c2VyLW5hbWUtY3VzdG9tLWRhdGEtMSJ9fQ==" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A922C533-2F93-4D44-9432-A4349CE5F9B5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 11:48:32 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "A922C533-2F93-4D44-9432-A4349CE5F9B5", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6InRlc3QtdXNlciIsIm5hbWUiOiJ0ZXN0LXVzZXItbmFtZSIsImV4dGVybmFsSWQiOiJ0ZXN0LWV4dGVybmFsLWlkZW50aWZpZXIiLCJwcm9maWxlVXJsIjoiaHR0cHM6Ly9wdWJudWIuY29tIiwiZW1haWwiOiJ0ZXN0LXVzZXItZW1haWwiLCJjdXN0b20iOnsidXNlci1jdXN0b20xIjoidGVzdC11c2VyLW5hbWUtY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6InRlc3QtdXNlci1uYW1lLWN1c3RvbS1kYXRhLTIifSwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMTE6NDg6MzEuNTE5MzQ2WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDExOjQ4OjMxLjUxOTM0NloiLCJlVGFnIjoiQWJYbHU0NmZ2Y0QzV3cifX0=" + }, + "type" : 2 + }, + { + "id" : "A922C533-2F93-4D44-9432-A4349CE5F9B5", + "type" : 4 + }, + { + "id" : "FEBA7AA8-2DE6-4A1D-898B-9DBF4DC17214", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/test-user?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "FEBA7AA8-2DE6-4A1D-898B-9DBF4DC17214", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/test-user?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:48:32 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "FEBA7AA8-2DE6-4A1D-898B-9DBF4DC17214", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "FEBA7AA8-2DE6-4A1D-898B-9DBF4DC17214", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldDeleteUserAndReceiveStatusWithExpectedOperationAndCategory.json b/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldDeleteUserAndReceiveStatusWithExpectedOperationAndCategory.json new file mode 100644 index 000000000..77124bd14 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldDeleteUserAndReceiveStatusWithExpectedOperationAndCategory.json @@ -0,0 +1,418 @@ +[ + { + "id" : "847EC983-3D8D-4AC2-A179-3410B1F16F5E", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "847EC983-3D8D-4AC2-A179-3410B1F16F5E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:39:02 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "847EC983-3D8D-4AC2-A179-3410B1F16F5E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "847EC983-3D8D-4AC2-A179-3410B1F16F5E", + "type" : 4 + }, + { + "id" : "9D648048-3780-4725-B7AA-3B25B2E01349", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9D648048-3780-4725-B7AA-3B25B2E01349", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:39:03 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "9D648048-3780-4725-B7AA-3B25B2E01349", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "9D648048-3780-4725-B7AA-3B25B2E01349", + "type" : 4 + }, + { + "id" : "0549AEC8-99A3-455C-B2E1-B10AD3B9AE82", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "0549AEC8-99A3-455C-B2E1-B10AD3B9AE82", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 13:39:03 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "0549AEC8-99A3-455C-B2E1-B10AD3B9AE82", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDEzOjM5OjAzLjI4MzI0M1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMzozOTowMy4yODMyNDNaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "0549AEC8-99A3-455C-B2E1-B10AD3B9AE82", + "type" : 4 + }, + { + "id" : "ED0A3890-D6B0-4E0B-9A25-B86C224AD033", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "136", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiS2ltLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "ED0A3890-D6B0-4E0B-9A25-B86C224AD033", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 13:39:04 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "ED0A3890-D6B0-4E0B-9A25-B86C224AD033", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDEzOjM5OjAzLjg2NTVaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMTM6Mzk6MDMuODY1NVoiLCJlVGFnIjoiQWJqTHkvTE52N0hWTncifX0=" + }, + "type" : 2 + }, + { + "id" : "ED0A3890-D6B0-4E0B-9A25-B86C224AD033", + "type" : 4 + }, + { + "id" : "D020738B-0088-4FBB-A5A0-A423EBA660F6", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D020738B-0088-4FBB-A5A0-A423EBA660F6", + "data" : { + "status" : 404, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:39:06 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "D020738B-0088-4FBB-A5A0-A423EBA660F6", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "D020738B-0088-4FBB-A5A0-A423EBA660F6", + "type" : 4 + }, + { + "id" : "D020738B-0088-4FBB-A5A0-A423EBA660F7", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D020738B-0088-4FBB-A5A0-A423EBA660F7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:39:06 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "D020738B-0088-4FBB-A5A0-A423EBA660F7", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "D020738B-0088-4FBB-A5A0-A423EBA660F7", + "type" : 4 + }, + { + "id" : "65329799-4415-497B-B2D7-660163A65415", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?count=1&pnsdk=PubNub-ObjC-iOS\/4.x.x&limit=100&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "65329799-4415-497B-B2D7-660163A65415", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?count=1&pnsdk=PubNub-ObjC-iOS\/4.x.x&limit=100&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:39:07 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "255", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "65329799-4415-497B-B2D7-660163A65415", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IktpbSIsImV4dGVybmFsSWQiOm51bGwsInByb2ZpbGVVcmwiOm51bGwsImVtYWlsIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMzozOTowMy44NjU1WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDEzOjM5OjAzLjg2NTVaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In1dLCJ0b3RhbENvdW50IjoxLCJuZXh0IjoiTVEifQ==" + }, + "type" : 2 + }, + { + "id" : "65329799-4415-497B-B2D7-660163A65415", + "type" : 4 + }, + { + "id" : "3707120B-1859-430D-B2BA-D8C660D32FBA", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3707120B-1859-430D-B2BA-D8C660D32FBA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:39:08 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "3707120B-1859-430D-B2BA-D8C660D32FBA", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "3707120B-1859-430D-B2BA-D8C660D32FBA", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldDeleteUserAndTriggerDeleteEventToSUserChannel.json b/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldDeleteUserAndTriggerDeleteEventToSUserChannel.json new file mode 100644 index 000000000..0bbc8f145 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldDeleteUserAndTriggerDeleteEventToSUserChannel.json @@ -0,0 +1,561 @@ +[ + { + "id" : "D97B30C3-C8BD-4BDF-9675-ECA51207239B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D97B30C3-C8BD-4BDF-9675-ECA51207239B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:48:57 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "D97B30C3-C8BD-4BDF-9675-ECA51207239B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "D97B30C3-C8BD-4BDF-9675-ECA51207239B", + "type" : 4 + }, + { + "id" : "ED6204CA-D479-414F-81B9-A1A6827C89F5", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "ED6204CA-D479-414F-81B9-A1A6827C89F5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:48:57 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "ED6204CA-D479-414F-81B9-A1A6827C89F5", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "ED6204CA-D479-414F-81B9-A1A6827C89F5", + "type" : 4 + }, + { + "id" : "631AC39C-6851-4875-99C9-C44E3E7ED66A", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "631AC39C-6851-4875-99C9-C44E3E7ED66A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 11:48:58 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "631AC39C-6851-4875-99C9-C44E3E7ED66A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDExOjQ4OjU3Ljc3MjQ3NFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMTo0ODo1Ny43NzI0NzRaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "631AC39C-6851-4875-99C9-C44E3E7ED66A", + "type" : 4 + }, + { + "id" : "AC9AFF83-67A8-486C-90F6-04479E5E698A", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "136", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiS2ltLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "AC9AFF83-67A8-486C-90F6-04479E5E698A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 11:48:58 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "AC9AFF83-67A8-486C-90F6-04479E5E698A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDExOjQ4OjU4LjM1MjcxM1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMTo0ODo1OC4zNTI3MTNaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In19" + }, + "type" : 2 + }, + { + "id" : "AC9AFF83-67A8-486C-90F6-04479E5E698A", + "type" : 4 + }, + { + "id" : "0C995280-2BA0-4983-B5E6-EDB4F76F9FBB", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&tt=0&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "0C995280-2BA0-4983-B5E6-EDB4F76F9FBB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&tt=0&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 11:49:00 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "0C995280-2BA0-4983-B5E6-EDB4F76F9FBB", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDc2MTM5OTk1ODk0MyIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "0C995280-2BA0-4983-B5E6-EDB4F76F9FBB", + "type" : 4 + }, + { + "id" : "75FFB141-1202-455D-88B0-A622A5680FC3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810761399958943&tr=12" + }, + "type" : 0 + }, + { + "id" : "EC782D06-B913-4D91-AEE1-8FD81DAE0421", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "EC782D06-B913-4D91-AEE1-8FD81DAE0421", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:49:01 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "75FFB141-1202-455D-88B0-A622A5680FC3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810761399958943&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 11:49:01 GMT", + "Content-Length" : "320", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "EC782D06-B913-4D91-AEE1-8FD81DAE0421", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "75FFB141-1202-455D-88B0-A622A5680FC3", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDc2MTQxMDM3NzE1MiIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJlIjoyLCJwIjp7InQiOiIxNTgxMDc2MTQxMDM3MTk4MyIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciIsImQiOnsic291cmNlIjoib2JqZWN0cyIsInZlcnNpb24iOiIxLjAiLCJldmVudCI6ImRlbGV0ZSIsInR5cGUiOiJ1c2VyIiwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIifX19XX0=" + }, + "type" : 2 + }, + { + "id" : "EC782D06-B913-4D91-AEE1-8FD81DAE0421", + "type" : 4 + }, + { + "id" : "75FFB141-1202-455D-88B0-A622A5680FC3", + "type" : 4 + }, + { + "id" : "D0DA37DB-7AF9-46B0-9DDB-63AEA6482089", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810761410377152&tr=12" + }, + "type" : 0 + }, + { + "id" : "D0DA37DB-7AF9-46B0-9DDB-63AEA6482089", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810761410377152&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810761410377152&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "8F5ED8C6-4D7E-45D1-BE3E-3CE6AEFB3046", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/Serhii-user-identifier\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "8F5ED8C6-4D7E-45D1-BE3E-3CE6AEFB3046", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/Serhii-user-identifier\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Fri, 07 Feb 2020 11:49:01 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "8F5ED8C6-4D7E-45D1-BE3E-3CE6AEFB3046", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "8F5ED8C6-4D7E-45D1-BE3E-3CE6AEFB3046", + "type" : 4 + }, + { + "id" : "4A1CAFD9-92AA-4936-AD7C-D93746BEF691", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?count=1&pnsdk=PubNub-ObjC-iOS\/4.x.x&limit=100&uuid=serhii" + }, + "type" : 0 + }, + { + "id" : "4A1CAFD9-92AA-4936-AD7C-D93746BEF691", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?count=1&pnsdk=PubNub-ObjC-iOS\/4.x.x&limit=100&uuid=serhii", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 11:49:02 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "4A1CAFD9-92AA-4936-AD7C-D93746BEF691", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IktpbSIsImV4dGVybmFsSWQiOm51bGwsInByb2ZpbGVVcmwiOm51bGwsImVtYWlsIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMTo0ODo1OC4zNTI3MTNaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMTE6NDg6NTguMzUyNzEzWiIsImVUYWciOiJBYmpMeS9MTnY3SFZOdyJ9XSwidG90YWxDb3VudCI6MSwibmV4dCI6Ik1RIn0=" + }, + "type" : 2 + }, + { + "id" : "4A1CAFD9-92AA-4936-AD7C-D93746BEF691", + "type" : 4 + }, + { + "id" : "6C773ED2-5AE0-4324-9634-21525B87E0A5", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "6C773ED2-5AE0-4324-9634-21525B87E0A5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:49:03 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "6C773ED2-5AE0-4324-9634-21525B87E0A5", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "6C773ED2-5AE0-4324-9634-21525B87E0A5", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldFetchAllUsersAndReceiveResultWithExpectedOperation.json b/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldFetchAllUsersAndReceiveResultWithExpectedOperation.json new file mode 100644 index 000000000..adaf0cd00 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldFetchAllUsersAndReceiveResultWithExpectedOperation.json @@ -0,0 +1,854 @@ +[ + { + "id" : "60197354-D8E6-445C-AB50-1319D96A7E35", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "60197354-D8E6-445C-AB50-1319D96A7E35", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:40:22 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "60197354-D8E6-445C-AB50-1319D96A7E35", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "60197354-D8E6-445C-AB50-1319D96A7E35", + "type" : 4 + }, + { + "id" : "5D3D13DB-D92C-4B34-B5AE-5EB740E40BEB", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "5D3D13DB-D92C-4B34-B5AE-5EB740E40BEB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:40:23 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "5D3D13DB-D92C-4B34-B5AE-5EB740E40BEB", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "5D3D13DB-D92C-4B34-B5AE-5EB740E40BEB", + "type" : 4 + }, + { + "id" : "1786C801-7E14-46CF-83EA-427B13977D3A", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1786C801-7E14-46CF-83EA-427B13977D3A", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 13:40:23 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "1786C801-7E14-46CF-83EA-427B13977D3A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDEzOjQwOjIzLjIxMDQxNloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMzo0MDoyMy4yMTA0MTZaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "1786C801-7E14-46CF-83EA-427B13977D3A", + "type" : 4 + }, + { + "id" : "B05B28AE-697C-4920-AEA3-896D65620E6C", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "136", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiS2ltLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B05B28AE-697C-4920-AEA3-896D65620E6C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 13:40:24 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "B05B28AE-697C-4920-AEA3-896D65620E6C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDEzOjQwOjIzLjgzOTg2MloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMzo0MDoyMy44Mzk4NjJaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In19" + }, + "type" : 2 + }, + { + "id" : "B05B28AE-697C-4920-AEA3-896D65620E6C", + "type" : 4 + }, + { + "id" : "9F9E514D-8BDE-4506-9A8C-CD3A6FE3BB24", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "152", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkVhcmxpbmUiLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiRWFybGluZS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiRWFybGluZS1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9F9E514D-8BDE-4506-9A8C-CD3A6FE3BB24", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 13:40:24 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "9F9E514D-8BDE-4506-9A8C-CD3A6FE3BB24", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkVhcmxpbmUiLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IkVhcmxpbmUtY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IkVhcmxpbmUtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMzo0MDoyNC40MTUzODdaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMTM6NDA6MjQuNDE1Mzg3WiIsImVUYWciOiJBZDZienJuY3JLVzNyUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "9F9E514D-8BDE-4506-9A8C-CD3A6FE3BB24", + "type" : 4 + }, + { + "id" : "4EFA382B-D6F5-4470-AF0F-110434D30700", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "140", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkdsZW4iLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiR2xlbi1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiR2xlbi1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "4EFA382B-D6F5-4470-AF0F-110434D30700", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 13:40:25 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "4EFA382B-D6F5-4470-AF0F-110434D30700", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkdsZW4iLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IkdsZW4tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IkdsZW4tY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMzo0MDoyNS4wNjc1MzJaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMTM6NDA6MjUuMDY3NTMyWiIsImVUYWciOiJBZi81d01TaDNyZUlkQSJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "4EFA382B-D6F5-4470-AF0F-110434D30700", + "type" : 4 + }, + { + "id" : "D82A7D5B-AF2D-479B-93EF-88C414737C37", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "152", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6Ik5pY29sYXMiLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiTmljb2xhcy1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiTmljb2xhcy1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D82A7D5B-AF2D-479B-93EF-88C414737C37", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 13:40:26 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "D82A7D5B-AF2D-479B-93EF-88C414737C37", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6Ik5pY29sYXMiLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6Ik5pY29sYXMtY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6Ik5pY29sYXMtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMzo0MDoyNS42NjUxMjNaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMTM6NDA6MjUuNjY1MTIzWiIsImVUYWciOiJBZGlKbC96NHNPYU4rZ0UifX0=" + }, + "type" : 2 + }, + { + "id" : "D82A7D5B-AF2D-479B-93EF-88C414737C37", + "type" : 4 + }, + { + "id" : "6EDF98FE-CF99-47C4-9D79-417233D6FC69", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "152", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNoYW5ub24tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IlNoYW5ub24iLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiU2hhbm5vbi1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2hhbm5vbi1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "6EDF98FE-CF99-47C4-9D79-417233D6FC69", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 13:40:26 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "6EDF98FE-CF99-47C4-9D79-417233D6FC69", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNoYW5ub24tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IlNoYW5ub24iLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IlNoYW5ub24tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNoYW5ub24tY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMzo0MDoyNi4yOTU4OThaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMTM6NDA6MjYuMjk1ODk4WiIsImVUYWciOiJBZEd4aHNPLzB2aVdUQSJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "6EDF98FE-CF99-47C4-9D79-417233D6FC69", + "type" : 4 + }, + { + "id" : "C7F66257-F10A-4522-BAD2-145139F8E2B8", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C7F66257-F10A-4522-BAD2-145139F8E2B8", + "data" : { + "status" : 404, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 13:40:28 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "C7F66257-F10A-4522-BAD2-145139F8E2B8", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IlNlcmhpaSIsImV4dGVybmFsSWQiOm51bGwsInByb2ZpbGVVcmwiOm51bGwsImVtYWlsIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMzo0MDoyMy4yMTA0MTZaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMTM6NDA6MjMuMjEwNDE2WiIsImVUYWciOiJBZVAyNjdmYXV2YkJQQSJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IktpbSIsImV4dGVybmFsSWQiOm51bGwsInByb2ZpbGVVcmwiOm51bGwsImVtYWlsIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMzo0MDoyMy44Mzk4NjJaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMTM6NDA6MjMuODM5ODYyWiIsImVUYWciOiJBYmpMeS9MTnY3SFZOdyJ9LHsiaWQiOiJFYXJsaW5lLXVzZXItaWRlbnRpZmllciIsIm5hbWUiOiJFYXJsaW5lIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDEzOjQwOjI0LjQxNTM4N1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMzo0MDoyNC40MTUzODdaIiwiZVRhZyI6IkFkNmJ6cm5jcktXM3JRRSJ9LHsiaWQiOiJHbGVuLXVzZXItaWRlbnRpZmllciIsIm5hbWUiOiJHbGVuIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDEzOjQwOjI1LjA2NzUzMloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMzo0MDoyNS4wNjc1MzJaIiwiZVRhZyI6IkFmLzV3TVNoM3JlSWRBIn0seyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6Ik5pY29sYXMiLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMTM6NDA6MjUuNjY1MTIzWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDEzOjQwOjI1LjY2NTEyM1oiLCJlVGFnIjoiQWRpSmwvejRzT2FOK2dFIn0seyJpZCI6IlNoYW5ub24tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IlNoYW5ub24iLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMTM6NDA6MjYuMjk1ODk4WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDEzOjQwOjI2LjI5NTg5OFoiLCJlVGFnIjoiQWRHeGhzTy8wdmlXVEEifV0sIm5leHQiOiJOZyJ9" + }, + "type" : 2 + }, + { + "id" : "C7F66257-F10A-4522-BAD2-145139F8E2B8", + "type" : 4 + }, + { + "id" : "C7F66257-F10A-4522-BAD2-145139F8E2B7", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C7F66257-F10A-4522-BAD2-145139F8E2B7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 13:40:28 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "C7F66257-F10A-4522-BAD2-145139F8E2B7", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IlNlcmhpaSIsImV4dGVybmFsSWQiOm51bGwsInByb2ZpbGVVcmwiOm51bGwsImVtYWlsIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMzo0MDoyMy4yMTA0MTZaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMTM6NDA6MjMuMjEwNDE2WiIsImVUYWciOiJBZVAyNjdmYXV2YkJQQSJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IktpbSIsImV4dGVybmFsSWQiOm51bGwsInByb2ZpbGVVcmwiOm51bGwsImVtYWlsIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMzo0MDoyMy44Mzk4NjJaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMTM6NDA6MjMuODM5ODYyWiIsImVUYWciOiJBYmpMeS9MTnY3SFZOdyJ9LHsiaWQiOiJFYXJsaW5lLXVzZXItaWRlbnRpZmllciIsIm5hbWUiOiJFYXJsaW5lIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDEzOjQwOjI0LjQxNTM4N1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMzo0MDoyNC40MTUzODdaIiwiZVRhZyI6IkFkNmJ6cm5jcktXM3JRRSJ9LHsiaWQiOiJHbGVuLXVzZXItaWRlbnRpZmllciIsIm5hbWUiOiJHbGVuIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDEzOjQwOjI1LjA2NzUzMloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMzo0MDoyNS4wNjc1MzJaIiwiZVRhZyI6IkFmLzV3TVNoM3JlSWRBIn0seyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6Ik5pY29sYXMiLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMTM6NDA6MjUuNjY1MTIzWiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDEzOjQwOjI1LjY2NTEyM1oiLCJlVGFnIjoiQWRpSmwvejRzT2FOK2dFIn0seyJpZCI6IlNoYW5ub24tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IlNoYW5ub24iLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMTM6NDA6MjYuMjk1ODk4WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDEzOjQwOjI2LjI5NTg5OFoiLCJlVGFnIjoiQWRHeGhzTy8wdmlXVEEifV0sIm5leHQiOiJOZyJ9" + }, + "type" : 2 + }, + { + "id" : "C7F66257-F10A-4522-BAD2-145139F8E2B7", + "type" : 4 + }, + { + "id" : "918E76D9-0518-482D-850C-C5C0A8EB237C", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "918E76D9-0518-482D-850C-C5C0A8EB237C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:40:29 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "918E76D9-0518-482D-850C-C5C0A8EB237C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "918E76D9-0518-482D-850C-C5C0A8EB237C", + "type" : 4 + }, + { + "id" : "67F454CF-12BE-4AD2-B1F6-BCA0E2E4B288", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "67F454CF-12BE-4AD2-B1F6-BCA0E2E4B288", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:40:29 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "67F454CF-12BE-4AD2-B1F6-BCA0E2E4B288", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "67F454CF-12BE-4AD2-B1F6-BCA0E2E4B288", + "type" : 4 + }, + { + "id" : "E8A8166E-9E6D-4629-89EF-B64B9CA8C377", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Earline-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E8A8166E-9E6D-4629-89EF-B64B9CA8C377", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Earline-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:40:30 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "E8A8166E-9E6D-4629-89EF-B64B9CA8C377", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "E8A8166E-9E6D-4629-89EF-B64B9CA8C377", + "type" : 4 + }, + { + "id" : "00B61E07-E9B1-4979-9CF1-2B9AE3F08C27", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Glen-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "00B61E07-E9B1-4979-9CF1-2B9AE3F08C27", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Glen-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:40:31 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "00B61E07-E9B1-4979-9CF1-2B9AE3F08C27", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "00B61E07-E9B1-4979-9CF1-2B9AE3F08C27", + "type" : 4 + }, + { + "id" : "E6B7FA19-2CA6-454F-9524-8C919E4CA897", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Nicolas-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E6B7FA19-2CA6-454F-9524-8C919E4CA897", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Nicolas-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:40:32 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "E6B7FA19-2CA6-454F-9524-8C919E4CA897", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "E6B7FA19-2CA6-454F-9524-8C919E4CA897", + "type" : 4 + }, + { + "id" : "A502D57D-1815-4135-9943-14182AF5E17E", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Shannon-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A502D57D-1815-4135-9943-14182AF5E17E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Shannon-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 13:40:33 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "A502D57D-1815-4135-9943-14182AF5E17E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "A502D57D-1815-4135-9943-14182AF5E17E", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldFetchAllUsersWhenLimitItSet.json b/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldFetchAllUsersWhenLimitItSet.json new file mode 100644 index 000000000..64c295edc --- /dev/null +++ b/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldFetchAllUsersWhenLimitItSet.json @@ -0,0 +1,802 @@ +[ + { + "id" : "A8E4D16B-EA77-48F8-A84B-A369B2791287", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A8E4D16B-EA77-48F8-A84B-A369B2791287", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:49:33 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "A8E4D16B-EA77-48F8-A84B-A369B2791287", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "A8E4D16B-EA77-48F8-A84B-A369B2791287", + "type" : 4 + }, + { + "id" : "596142B4-1F47-4A53-BC8E-A9021C964DFE", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "596142B4-1F47-4A53-BC8E-A9021C964DFE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:49:33 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "596142B4-1F47-4A53-BC8E-A9021C964DFE", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "596142B4-1F47-4A53-BC8E-A9021C964DFE", + "type" : 4 + }, + { + "id" : "E74A293A-4057-42D7-8F6C-07717234BD00", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E74A293A-4057-42D7-8F6C-07717234BD00", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 11:49:34 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "E74A293A-4057-42D7-8F6C-07717234BD00", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDExOjQ5OjMzLjgxODcxMVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMTo0OTozMy44MTg3MTFaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "E74A293A-4057-42D7-8F6C-07717234BD00", + "type" : 4 + }, + { + "id" : "D59F9477-BC7F-43C7-8F37-6528678A2034", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "136", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiS2ltLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D59F9477-BC7F-43C7-8F37-6528678A2034", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 11:49:34 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "D59F9477-BC7F-43C7-8F37-6528678A2034", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDExOjQ5OjM0LjQwMDg1M1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMTo0OTozNC40MDA4NTNaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In19" + }, + "type" : 2 + }, + { + "id" : "D59F9477-BC7F-43C7-8F37-6528678A2034", + "type" : 4 + }, + { + "id" : "0D530536-BDBA-424F-B663-4F14D9D0C58E", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "152", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkVhcmxpbmUiLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiRWFybGluZS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiRWFybGluZS1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "0D530536-BDBA-424F-B663-4F14D9D0C58E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 11:49:35 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "0D530536-BDBA-424F-B663-4F14D9D0C58E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkVhcmxpbmUiLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IkVhcmxpbmUtY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IkVhcmxpbmUtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMTo0OTozNC45ODI0NzFaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMTE6NDk6MzQuOTgyNDcxWiIsImVUYWciOiJBZDZienJuY3JLVzNyUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "0D530536-BDBA-424F-B663-4F14D9D0C58E", + "type" : 4 + }, + { + "id" : "1A2FB42A-5507-4CBB-A0BF-9A8A583257A4", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "140", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkdsZW4iLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiR2xlbi1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiR2xlbi1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1A2FB42A-5507-4CBB-A0BF-9A8A583257A4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 11:49:36 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "1A2FB42A-5507-4CBB-A0BF-9A8A583257A4", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkdsZW4iLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IkdsZW4tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IkdsZW4tY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMTo0OTozNS42MDgyNzJaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMTE6NDk6MzUuNjA4MjcyWiIsImVUYWciOiJBZi81d01TaDNyZUlkQSJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "1A2FB42A-5507-4CBB-A0BF-9A8A583257A4", + "type" : 4 + }, + { + "id" : "BB81239A-F00D-4D13-8675-1658A15B9E3E", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "152", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6Ik5pY29sYXMiLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiTmljb2xhcy1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiTmljb2xhcy1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "BB81239A-F00D-4D13-8675-1658A15B9E3E", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 11:49:36 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "BB81239A-F00D-4D13-8675-1658A15B9E3E", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6Ik5pY29sYXMiLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6Ik5pY29sYXMtY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6Ik5pY29sYXMtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMTo0OTozNi4yMDk3NjZaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMTE6NDk6MzYuMjA5NzY2WiIsImVUYWciOiJBZGlKbC96NHNPYU4rZ0UifX0=" + }, + "type" : 2 + }, + { + "id" : "BB81239A-F00D-4D13-8675-1658A15B9E3E", + "type" : 4 + }, + { + "id" : "DEA7F1EB-495A-4A7F-81D9-C5378B6065ED", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "152", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNoYW5ub24tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IlNoYW5ub24iLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiU2hhbm5vbi1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2hhbm5vbi1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "DEA7F1EB-495A-4A7F-81D9-C5378B6065ED", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 11:49:37 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "DEA7F1EB-495A-4A7F-81D9-C5378B6065ED", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNoYW5ub24tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IlNoYW5ub24iLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IlNoYW5ub24tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNoYW5ub24tY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMTo0OTozNi44Mzk3MjNaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMTE6NDk6MzYuODM5NzIzWiIsImVUYWciOiJBZEd4aHNPLzB2aVdUQSJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "DEA7F1EB-495A-4A7F-81D9-C5378B6065ED", + "type" : 4 + }, + { + "id" : "02CF2625-A7AC-4883-8828-F86BBE85FA24", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?count=1&limit=2&pnsdk=PubNub-ObjC-iOS\/4.x.x&include=custom&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "02CF2625-A7AC-4883-8828-F86BBE85FA24", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?count=1&limit=2&pnsdk=PubNub-ObjC-iOS\/4.x.x&include=custom&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 11:49:38 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "02CF2625-A7AC-4883-8828-F86BBE85FA24", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IlNlcmhpaSIsImV4dGVybmFsSWQiOm51bGwsInByb2ZpbGVVcmwiOm51bGwsImVtYWlsIjpudWxsLCJjdXN0b20iOnsidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEiLCJ1c2VyLWN1c3RvbTIiOiJTZXJoaWktY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMTo0OTozMy44MTg3MTFaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMTE6NDk6MzMuODE4NzExWiIsImVUYWciOiJBZVAyNjdmYXV2YkJQQSJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IktpbSIsImV4dGVybmFsSWQiOm51bGwsInByb2ZpbGVVcmwiOm51bGwsImVtYWlsIjpudWxsLCJjdXN0b20iOnsidXNlci1jdXN0b20xIjoiS2ltLWN1c3RvbS1kYXRhLTEiLCJ1c2VyLWN1c3RvbTIiOiJLaW0tY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMTo0OTozNC40MDA4NTNaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMTE6NDk6MzQuNDAwODUzWiIsImVUYWciOiJBYmpMeS9MTnY3SFZOdyJ9XSwidG90YWxDb3VudCI6NiwibmV4dCI6Ik1nIn0=" + }, + "type" : 2 + }, + { + "id" : "02CF2625-A7AC-4883-8828-F86BBE85FA24", + "type" : 4 + }, + { + "id" : "20D08129-5148-436D-B3C7-1D9DC37082F3", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "20D08129-5148-436D-B3C7-1D9DC37082F3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:49:39 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "20D08129-5148-436D-B3C7-1D9DC37082F3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "20D08129-5148-436D-B3C7-1D9DC37082F3", + "type" : 4 + }, + { + "id" : "A1B40806-319C-4DC1-89D5-7B76C2DA61DC", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "A1B40806-319C-4DC1-89D5-7B76C2DA61DC", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:49:40 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "A1B40806-319C-4DC1-89D5-7B76C2DA61DC", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "A1B40806-319C-4DC1-89D5-7B76C2DA61DC", + "type" : 4 + }, + { + "id" : "15E6FF64-1545-46DE-9EE9-AF3BE497DCB5", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Earline-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "15E6FF64-1545-46DE-9EE9-AF3BE497DCB5", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Earline-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:49:41 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "15E6FF64-1545-46DE-9EE9-AF3BE497DCB5", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "15E6FF64-1545-46DE-9EE9-AF3BE497DCB5", + "type" : 4 + }, + { + "id" : "7D1084F1-C157-4D50-957F-55F1F4E90234", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Glen-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "7D1084F1-C157-4D50-957F-55F1F4E90234", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Glen-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:49:42 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "7D1084F1-C157-4D50-957F-55F1F4E90234", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "7D1084F1-C157-4D50-957F-55F1F4E90234", + "type" : 4 + }, + { + "id" : "3506A9F8-AFC2-4F21-A0F3-C885458C7B34", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Nicolas-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3506A9F8-AFC2-4F21-A0F3-C885458C7B34", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Nicolas-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:49:43 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "3506A9F8-AFC2-4F21-A0F3-C885458C7B34", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "3506A9F8-AFC2-4F21-A0F3-C885458C7B34", + "type" : 4 + }, + { + "id" : "052CF43B-C92B-4EDA-88BD-310313D3CF7F", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Shannon-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "052CF43B-C92B-4EDA-88BD-310313D3CF7F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Shannon-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:49:44 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "052CF43B-C92B-4EDA-88BD-310313D3CF7F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "052CF43B-C92B-4EDA-88BD-310313D3CF7F", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldFetchFilteredUsersWhenFilterIsSet.json b/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldFetchFilteredUsersWhenFilterIsSet.json new file mode 100644 index 000000000..461a2d868 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldFetchFilteredUsersWhenFilterIsSet.json @@ -0,0 +1,802 @@ +[ + { + "id" : "4ACEE333-C1A1-42B8-927C-BD10902199AA", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "4ACEE333-C1A1-42B8-927C-BD10902199AA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:49:46 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "4ACEE333-C1A1-42B8-927C-BD10902199AA", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "4ACEE333-C1A1-42B8-927C-BD10902199AA", + "type" : 4 + }, + { + "id" : "5A8D89B6-5105-416D-B72A-912CE6328BFF", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "5A8D89B6-5105-416D-B72A-912CE6328BFF", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:49:46 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "5A8D89B6-5105-416D-B72A-912CE6328BFF", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "5A8D89B6-5105-416D-B72A-912CE6328BFF", + "type" : 4 + }, + { + "id" : "D57141D8-5790-4710-9ECE-3D7E8CFC3C3D", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D57141D8-5790-4710-9ECE-3D7E8CFC3C3D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 11:49:47 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "D57141D8-5790-4710-9ECE-3D7E8CFC3C3D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDExOjQ5OjQ2LjkyNDgzNloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMTo0OTo0Ni45MjQ4MzZaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "D57141D8-5790-4710-9ECE-3D7E8CFC3C3D", + "type" : 4 + }, + { + "id" : "D5AC5406-214E-443D-9C81-7E30699A9D00", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "136", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiS2ltLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D5AC5406-214E-443D-9C81-7E30699A9D00", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 11:49:47 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "D5AC5406-214E-443D-9C81-7E30699A9D00", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDExOjQ5OjQ3LjQ5NTc5OVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMTo0OTo0Ny40OTU3OTlaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In19" + }, + "type" : 2 + }, + { + "id" : "D5AC5406-214E-443D-9C81-7E30699A9D00", + "type" : 4 + }, + { + "id" : "EC719E8A-C75C-45FE-95E9-CA17BBE05987", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "152", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkVhcmxpbmUiLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiRWFybGluZS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiRWFybGluZS1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "EC719E8A-C75C-45FE-95E9-CA17BBE05987", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 11:49:48 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "EC719E8A-C75C-45FE-95E9-CA17BBE05987", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkVhcmxpbmUiLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IkVhcmxpbmUtY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IkVhcmxpbmUtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMTo0OTo0OC4wNjcyNzJaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMTE6NDk6NDguMDY3MjcyWiIsImVUYWciOiJBZDZienJuY3JLVzNyUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "EC719E8A-C75C-45FE-95E9-CA17BBE05987", + "type" : 4 + }, + { + "id" : "42387EB4-CA5C-49CB-B72D-28DE681847FB", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "140", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkdsZW4iLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiR2xlbi1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiR2xlbi1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "42387EB4-CA5C-49CB-B72D-28DE681847FB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 11:49:49 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "42387EB4-CA5C-49CB-B72D-28DE681847FB", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkdsZW4iLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IkdsZW4tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IkdsZW4tY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMTo0OTo0OC42NDI5MTJaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMTE6NDk6NDguNjQyOTEyWiIsImVUYWciOiJBZi81d01TaDNyZUlkQSJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "42387EB4-CA5C-49CB-B72D-28DE681847FB", + "type" : 4 + }, + { + "id" : "622530F0-917D-4301-8888-B1F2A834BBCB", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "152", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6Ik5pY29sYXMiLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiTmljb2xhcy1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiTmljb2xhcy1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "622530F0-917D-4301-8888-B1F2A834BBCB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 11:49:49 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "622530F0-917D-4301-8888-B1F2A834BBCB", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6Ik5pY29sYXMiLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6Ik5pY29sYXMtY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6Ik5pY29sYXMtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMTo0OTo0OS4yMjA1MjhaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMTE6NDk6NDkuMjIwNTI4WiIsImVUYWciOiJBZGlKbC96NHNPYU4rZ0UifX0=" + }, + "type" : 2 + }, + { + "id" : "622530F0-917D-4301-8888-B1F2A834BBCB", + "type" : 4 + }, + { + "id" : "B5FD0EBF-835B-4CC5-9070-C8B2A94819C6", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "152", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNoYW5ub24tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IlNoYW5ub24iLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiU2hhbm5vbi1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2hhbm5vbi1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "B5FD0EBF-835B-4CC5-9070-C8B2A94819C6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 11:49:50 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "B5FD0EBF-835B-4CC5-9070-C8B2A94819C6", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNoYW5ub24tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IlNoYW5ub24iLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IlNoYW5ub24tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNoYW5ub24tY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMTo0OTo0OS44MDAzNDhaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMTE6NDk6NDkuODAwMzQ4WiIsImVUYWciOiJBZEd4aHNPLzB2aVdUQSJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "B5FD0EBF-835B-4CC5-9070-C8B2A94819C6", + "type" : 4 + }, + { + "id" : "EF627E2E-D94D-4C61-99FE-FA1CE52AB051", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?filter=updated%20%3E=%20'2020-02-07T11:49:48.642Z'&count=1&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "EF627E2E-D94D-4C61-99FE-FA1CE52AB051", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?filter=updated%20%3E=%20'2020-02-07T11:49:48.642Z'&count=1&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 11:49:51 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "EF627E2E-D94D-4C61-99FE-FA1CE52AB051", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJHbGVuLXVzZXItaWRlbnRpZmllciIsIm5hbWUiOiJHbGVuIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDExOjQ5OjQ4LjY0MjkxMloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMTo0OTo0OC42NDI5MTJaIiwiZVRhZyI6IkFmLzV3TVNoM3JlSWRBIn0seyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6Ik5pY29sYXMiLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMTE6NDk6NDkuMjIwNTI4WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDExOjQ5OjQ5LjIyMDUyOFoiLCJlVGFnIjoiQWRpSmwvejRzT2FOK2dFIn0seyJpZCI6IlNoYW5ub24tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IlNoYW5ub24iLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMDdUMTE6NDk6NDkuODAwMzQ4WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDExOjQ5OjQ5LjgwMDM0OFoiLCJlVGFnIjoiQWRHeGhzTy8wdmlXVEEifV0sInRvdGFsQ291bnQiOjMsIm5leHQiOiJNdyJ9" + }, + "type" : 2 + }, + { + "id" : "EF627E2E-D94D-4C61-99FE-FA1CE52AB051", + "type" : 4 + }, + { + "id" : "CD35B14E-633A-42DB-BD59-391FAE138E4F", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "CD35B14E-633A-42DB-BD59-391FAE138E4F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:49:52 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "CD35B14E-633A-42DB-BD59-391FAE138E4F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "CD35B14E-633A-42DB-BD59-391FAE138E4F", + "type" : 4 + }, + { + "id" : "00CA7A79-C8A8-4A4E-955B-93DB699FE1CE", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "00CA7A79-C8A8-4A4E-955B-93DB699FE1CE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:49:53 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "00CA7A79-C8A8-4A4E-955B-93DB699FE1CE", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "00CA7A79-C8A8-4A4E-955B-93DB699FE1CE", + "type" : 4 + }, + { + "id" : "54D4EFBF-CB02-46E0-8BA8-A276839CA6F0", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Earline-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "54D4EFBF-CB02-46E0-8BA8-A276839CA6F0", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Earline-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:49:54 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "54D4EFBF-CB02-46E0-8BA8-A276839CA6F0", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "54D4EFBF-CB02-46E0-8BA8-A276839CA6F0", + "type" : 4 + }, + { + "id" : "1C81AE4B-460B-4469-AB58-4B6936ACDED4", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Glen-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1C81AE4B-460B-4469-AB58-4B6936ACDED4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Glen-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:49:55 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "1C81AE4B-460B-4469-AB58-4B6936ACDED4", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "1C81AE4B-460B-4469-AB58-4B6936ACDED4", + "type" : 4 + }, + { + "id" : "AEA7C33E-3769-4AC5-A8DC-6B5C9736D9DB", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Nicolas-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "AEA7C33E-3769-4AC5-A8DC-6B5C9736D9DB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Nicolas-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:49:56 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "AEA7C33E-3769-4AC5-A8DC-6B5C9736D9DB", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "AEA7C33E-3769-4AC5-A8DC-6B5C9736D9DB", + "type" : 4 + }, + { + "id" : "3BBC1EC0-46E1-4DF0-A86D-10210D8813A2", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Shannon-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3BBC1EC0-46E1-4DF0-A86D-10210D8813A2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Shannon-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:49:57 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "3BBC1EC0-46E1-4DF0-A86D-10210D8813A2", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "3BBC1EC0-46E1-4DF0-A86D-10210D8813A2", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldFetchNextUsersPageWhenStartAndLimitIsSet.json b/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldFetchNextUsersPageWhenStartAndLimitIsSet.json new file mode 100644 index 000000000..0c291c707 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldFetchNextUsersPageWhenStartAndLimitIsSet.json @@ -0,0 +1,854 @@ +[ + { + "id" : "E5D93142-D290-4EFD-A37E-57166313E686", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E5D93142-D290-4EFD-A37E-57166313E686", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:49:59 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "E5D93142-D290-4EFD-A37E-57166313E686", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "E5D93142-D290-4EFD-A37E-57166313E686", + "type" : 4 + }, + { + "id" : "28355619-E48A-4FB9-8CC8-091DF1D5DE83", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "28355619-E48A-4FB9-8CC8-091DF1D5DE83", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:49:59 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "28355619-E48A-4FB9-8CC8-091DF1D5DE83", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "28355619-E48A-4FB9-8CC8-091DF1D5DE83", + "type" : 4 + }, + { + "id" : "3291C4A1-CBB1-45E6-BB5C-2BB4350D940C", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3291C4A1-CBB1-45E6-BB5C-2BB4350D940C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 11:50:00 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "3291C4A1-CBB1-45E6-BB5C-2BB4350D940C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDExOjQ5OjU5LjYxMDc4NloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMTo0OTo1OS42MTA3ODZaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "3291C4A1-CBB1-45E6-BB5C-2BB4350D940C", + "type" : 4 + }, + { + "id" : "5CB838FB-90F0-4BB9-8977-98D282686009", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "136", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiS2ltLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "5CB838FB-90F0-4BB9-8977-98D282686009", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 11:50:00 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "5CB838FB-90F0-4BB9-8977-98D282686009", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDExOjUwOjAwLjE4MzA5M1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMTo1MDowMC4xODMwOTNaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In19" + }, + "type" : 2 + }, + { + "id" : "5CB838FB-90F0-4BB9-8977-98D282686009", + "type" : 4 + }, + { + "id" : "505643F1-7364-441F-BC0D-9D84A7AF69AA", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "152", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkVhcmxpbmUiLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiRWFybGluZS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiRWFybGluZS1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "505643F1-7364-441F-BC0D-9D84A7AF69AA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 11:50:01 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "505643F1-7364-441F-BC0D-9D84A7AF69AA", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkVhcmxpbmUiLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IkVhcmxpbmUtY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IkVhcmxpbmUtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMTo1MDowMC43OTY1MjNaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMTE6NTA6MDAuNzk2NTIzWiIsImVUYWciOiJBZDZienJuY3JLVzNyUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "505643F1-7364-441F-BC0D-9D84A7AF69AA", + "type" : 4 + }, + { + "id" : "01B070B8-9C90-419C-9BDB-007FBEE31D69", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "140", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkdsZW4iLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiR2xlbi1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiR2xlbi1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "01B070B8-9C90-419C-9BDB-007FBEE31D69", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 11:50:01 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "01B070B8-9C90-419C-9BDB-007FBEE31D69", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkdsZW4iLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IkdsZW4tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IkdsZW4tY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMTo1MDowMS40MDk2NDNaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMTE6NTA6MDEuNDA5NjQzWiIsImVUYWciOiJBZi81d01TaDNyZUlkQSJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "01B070B8-9C90-419C-9BDB-007FBEE31D69", + "type" : 4 + }, + { + "id" : "F1BC31BA-BD61-40E1-BC41-F7959908D00F", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "152", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6Ik5pY29sYXMiLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiTmljb2xhcy1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiTmljb2xhcy1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F1BC31BA-BD61-40E1-BC41-F7959908D00F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 11:50:02 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "F1BC31BA-BD61-40E1-BC41-F7959908D00F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6Ik5pY29sYXMiLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6Ik5pY29sYXMtY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6Ik5pY29sYXMtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMTo1MDowMi4wMjY2MzlaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMTE6NTA6MDIuMDI2NjM5WiIsImVUYWciOiJBZGlKbC96NHNPYU4rZ0UifX0=" + }, + "type" : 2 + }, + { + "id" : "F1BC31BA-BD61-40E1-BC41-F7959908D00F", + "type" : 4 + }, + { + "id" : "BBDC92BD-7746-4B20-AC89-9E1F8C989AFD", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "152", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNoYW5ub24tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IlNoYW5ub24iLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiU2hhbm5vbi1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2hhbm5vbi1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "BBDC92BD-7746-4B20-AC89-9E1F8C989AFD", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 11:50:03 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "BBDC92BD-7746-4B20-AC89-9E1F8C989AFD", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNoYW5ub24tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IlNoYW5ub24iLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IlNoYW5ub24tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNoYW5ub24tY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMTo1MDowMi42NTAyNjRaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMTE6NTA6MDIuNjUwMjY0WiIsImVUYWciOiJBZEd4aHNPLzB2aVdUQSJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "BBDC92BD-7746-4B20-AC89-9E1F8C989AFD", + "type" : 4 + }, + { + "id" : "719D3AA4-B034-4C06-93CB-5D550FC004BD", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?count=1&pnsdk=PubNub-ObjC-iOS\/4.x.x&limit=4&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "719D3AA4-B034-4C06-93CB-5D550FC004BD", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?count=1&pnsdk=PubNub-ObjC-iOS\/4.x.x&limit=4&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 11:50:04 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "719D3AA4-B034-4C06-93CB-5D550FC004BD", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTZXJoaWktdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IlNlcmhpaSIsImV4dGVybmFsSWQiOm51bGwsInByb2ZpbGVVcmwiOm51bGwsImVtYWlsIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMTo0OTo1OS42MTA3ODZaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMTE6NDk6NTkuNjEwNzg2WiIsImVUYWciOiJBZVAyNjdmYXV2YkJQQSJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IktpbSIsImV4dGVybmFsSWQiOm51bGwsInByb2ZpbGVVcmwiOm51bGwsImVtYWlsIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0wN1QxMTo1MDowMC4xODMwOTNaIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMTE6NTA6MDAuMTgzMDkzWiIsImVUYWciOiJBYmpMeS9MTnY3SFZOdyJ9LHsiaWQiOiJFYXJsaW5lLXVzZXItaWRlbnRpZmllciIsIm5hbWUiOiJFYXJsaW5lIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDExOjUwOjAwLjc5NjUyM1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMTo1MDowMC43OTY1MjNaIiwiZVRhZyI6IkFkNmJ6cm5jcktXM3JRRSJ9LHsiaWQiOiJHbGVuLXVzZXItaWRlbnRpZmllciIsIm5hbWUiOiJHbGVuIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDExOjUwOjAxLjQwOTY0M1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMTo1MDowMS40MDk2NDNaIiwiZVRhZyI6IkFmLzV3TVNoM3JlSWRBIn1dLCJ0b3RhbENvdW50Ijo2LCJuZXh0IjoiTkEifQ==" + }, + "type" : 2 + }, + { + "id" : "719D3AA4-B034-4C06-93CB-5D550FC004BD", + "type" : 4 + }, + { + "id" : "ED749668-D3E4-4EF3-82D1-2CDFC84C3904", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?start=NA&count=1&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&limit=100" + }, + "type" : 0 + }, + { + "id" : "ED749668-D3E4-4EF3-82D1-2CDFC84C3904", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?start=NA&count=1&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x&limit=100", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 11:50:04 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "ED749668-D3E4-4EF3-82D1-2CDFC84C3904", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJOaWNvbGFzLXVzZXItaWRlbnRpZmllciIsIm5hbWUiOiJOaWNvbGFzIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDExOjUwOjAyLjAyNjYzOVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMTo1MDowMi4wMjY2MzlaIiwiZVRhZyI6IkFkaUpsL3o0c09hTitnRSJ9LHsiaWQiOiJTaGFubm9uLXVzZXItaWRlbnRpZmllciIsIm5hbWUiOiJTaGFubm9uIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDExOjUwOjAyLjY1MDI2NFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMTo1MDowMi42NTAyNjRaIiwiZVRhZyI6IkFkR3hoc08vMHZpV1RBIn1dLCJ0b3RhbENvdW50Ijo2LCJuZXh0IjoiTmciLCJwcmV2IjoiTkEifQ==" + }, + "type" : 2 + }, + { + "id" : "ED749668-D3E4-4EF3-82D1-2CDFC84C3904", + "type" : 4 + }, + { + "id" : "51DD3B09-8897-4654-952B-4AB37C322102", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "51DD3B09-8897-4654-952B-4AB37C322102", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:50:05 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "51DD3B09-8897-4654-952B-4AB37C322102", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "51DD3B09-8897-4654-952B-4AB37C322102", + "type" : 4 + }, + { + "id" : "5D3A9F2D-CCE2-4F6A-876A-3769941E8605", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "5D3A9F2D-CCE2-4F6A-876A-3769941E8605", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:50:06 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "5D3A9F2D-CCE2-4F6A-876A-3769941E8605", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "5D3A9F2D-CCE2-4F6A-876A-3769941E8605", + "type" : 4 + }, + { + "id" : "73DDCB30-0AA8-4752-9497-5AECBD7E2A30", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Earline-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "73DDCB30-0AA8-4752-9497-5AECBD7E2A30", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Earline-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:50:07 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "73DDCB30-0AA8-4752-9497-5AECBD7E2A30", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "73DDCB30-0AA8-4752-9497-5AECBD7E2A30", + "type" : 4 + }, + { + "id" : "5956B6E3-78C6-40EB-91EB-23F1578A65CF", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Glen-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "5956B6E3-78C6-40EB-91EB-23F1578A65CF", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Glen-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:50:08 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "5956B6E3-78C6-40EB-91EB-23F1578A65CF", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "5956B6E3-78C6-40EB-91EB-23F1578A65CF", + "type" : 4 + }, + { + "id" : "638AFB03-CD4D-4CF2-B9FA-A0453C386E4F", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Nicolas-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "638AFB03-CD4D-4CF2-B9FA-A0453C386E4F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Nicolas-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:50:09 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "638AFB03-CD4D-4CF2-B9FA-A0453C386E4F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "638AFB03-CD4D-4CF2-B9FA-A0453C386E4F", + "type" : 4 + }, + { + "id" : "7F8F2171-E31F-4D60-92B1-A0785052188B", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Shannon-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "7F8F2171-E31F-4D60-92B1-A0785052188B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Shannon-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:50:10 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "7F8F2171-E31F-4D60-92B1-A0785052188B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "7F8F2171-E31F-4D60-92B1-A0785052188B", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldFetchSortedUsersWhenSortIsSet.json b/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldFetchSortedUsersWhenSortIsSet.json new file mode 100644 index 000000000..f0e0f30ef --- /dev/null +++ b/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldFetchSortedUsersWhenSortIsSet.json @@ -0,0 +1,802 @@ +[ + { + "id" : "66E28122-93E2-4FF8-8E33-D02F8EF50F31", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "66E28122-93E2-4FF8-8E33-D02F8EF50F31", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Mon, 24 Feb 2020 22:20:31 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "66E28122-93E2-4FF8-8E33-D02F8EF50F31", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "66E28122-93E2-4FF8-8E33-D02F8EF50F31", + "type" : 4 + }, + { + "id" : "D9859378-335E-45ED-8DBA-127DF2094609", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D9859378-335E-45ED-8DBA-127DF2094609", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Mon, 24 Feb 2020 22:20:31 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "D9859378-335E-45ED-8DBA-127DF2094609", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "D9859378-335E-45ED-8DBA-127DF2094609", + "type" : 4 + }, + { + "id" : "F0472A1B-7AD1-4DD3-B3DA-93C31439EDFB", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F0472A1B-7AD1-4DD3-B3DA-93C31439EDFB", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Mon, 24 Feb 2020 22:20:32 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "F0472A1B-7AD1-4DD3-B3DA-93C31439EDFB", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI0VDIyOjIwOjMxLjk4OTA1NVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNFQyMjoyMDozMS45ODkwNTVaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "F0472A1B-7AD1-4DD3-B3DA-93C31439EDFB", + "type" : 4 + }, + { + "id" : "3E3B2DCB-14EB-422E-AF2C-04D4870C2A35", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "136", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiS2ltLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3E3B2DCB-14EB-422E-AF2C-04D4870C2A35", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Mon, 24 Feb 2020 22:20:33 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "3E3B2DCB-14EB-422E-AF2C-04D4870C2A35", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IktpbS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiS2ltIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJLaW0tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IktpbS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTI0VDIyOjIwOjMyLjU2NTU4OFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNFQyMjoyMDozMi41NjU1ODhaIiwiZVRhZyI6IkFiakx5L0xOdjdIVk53In19" + }, + "type" : 2 + }, + { + "id" : "3E3B2DCB-14EB-422E-AF2C-04D4870C2A35", + "type" : 4 + }, + { + "id" : "90957632-BC54-4440-83E7-5C2F8E774E7C", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "152", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkVhcmxpbmUiLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiRWFybGluZS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiRWFybGluZS1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "90957632-BC54-4440-83E7-5C2F8E774E7C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Mon, 24 Feb 2020 22:20:33 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "90957632-BC54-4440-83E7-5C2F8E774E7C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkVhcmxpbmUiLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IkVhcmxpbmUtY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IkVhcmxpbmUtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNFQyMjoyMDozMy4xNDExNDVaIiwidXBkYXRlZCI6IjIwMjAtMDItMjRUMjI6MjA6MzMuMTQxMTQ1WiIsImVUYWciOiJBZDZienJuY3JLVzNyUUUifX0=" + }, + "type" : 2 + }, + { + "id" : "90957632-BC54-4440-83E7-5C2F8E774E7C", + "type" : 4 + }, + { + "id" : "15AFD763-BAF9-422B-9055-FB5FEC979D6F", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "140", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkdsZW4iLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiR2xlbi1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiR2xlbi1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "15AFD763-BAF9-422B-9055-FB5FEC979D6F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Mon, 24 Feb 2020 22:20:34 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "15AFD763-BAF9-422B-9055-FB5FEC979D6F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IkdsZW4tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkdsZW4iLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IkdsZW4tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IkdsZW4tY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNFQyMjoyMDozMy43MTMyMTJaIiwidXBkYXRlZCI6IjIwMjAtMDItMjRUMjI6MjA6MzMuNzEzMjEyWiIsImVUYWciOiJBZi81d01TaDNyZUlkQSJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "15AFD763-BAF9-422B-9055-FB5FEC979D6F", + "type" : 4 + }, + { + "id" : "71E23D39-D344-4B73-A071-639F67F207D0", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "152", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6Ik5pY29sYXMiLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiTmljb2xhcy1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiTmljb2xhcy1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "71E23D39-D344-4B73-A071-639F67F207D0", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Mon, 24 Feb 2020 22:20:34 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "71E23D39-D344-4B73-A071-639F67F207D0", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6Ik5pY29sYXMiLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6Ik5pY29sYXMtY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6Ik5pY29sYXMtY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNFQyMjoyMDozNC4yODg3OFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNFQyMjoyMDozNC4yODg3OFoiLCJlVGFnIjoiQWRpSmwvejRzT2FOK2dFIn19" + }, + "type" : 2 + }, + { + "id" : "71E23D39-D344-4B73-A071-639F67F207D0", + "type" : 4 + }, + { + "id" : "C6CE22EA-4DE2-42E8-B164-07B6A793DC0D", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Content-Length" : "152", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNoYW5ub24tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IlNoYW5ub24iLCJjdXN0b20iOnsidXNlci1jdXN0b20yIjoiU2hhbm5vbi1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2hhbm5vbi1jdXN0b20tZGF0YS0xIn19" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C6CE22EA-4DE2-42E8-B164-07B6A793DC0D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&include=custom&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Mon, 24 Feb 2020 22:20:35 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "C6CE22EA-4DE2-42E8-B164-07B6A793DC0D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNoYW5ub24tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IlNoYW5ub24iLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3VzdG9tIjp7InVzZXItY3VzdG9tMSI6IlNoYW5ub24tY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNoYW5ub24tY3VzdG9tLWRhdGEtMiJ9LCJjcmVhdGVkIjoiMjAyMC0wMi0yNFQyMjoyMDozNC44NjQ1ODlaIiwidXBkYXRlZCI6IjIwMjAtMDItMjRUMjI6MjA6MzQuODY0NTg5WiIsImVUYWciOiJBZEd4aHNPLzB2aVdUQSJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "C6CE22EA-4DE2-42E8-B164-07B6A793DC0D", + "type" : 4 + }, + { + "id" : "F64FF07F-4FF3-43F7-ADCA-0A7DD0C225B2", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?sort=name:desc,created&count=1&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii" + }, + "type" : 0 + }, + { + "id" : "F64FF07F-4FF3-43F7-ADCA-0A7DD0C225B2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?sort=name:desc,created&count=1&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x&uuid=Serhii", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Mon, 24 Feb 2020 22:20:36 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "F64FF07F-4FF3-43F7-ADCA-0A7DD0C225B2", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W3siaWQiOiJTaGFubm9uLXVzZXItaWRlbnRpZmllciIsIm5hbWUiOiJTaGFubm9uIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTI0VDIyOjIwOjM0Ljg2NDU4OVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNFQyMjoyMDozNC44NjQ1ODlaIiwiZVRhZyI6IkFkR3hoc08vMHZpV1RBIn0seyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTI0VDIyOjIwOjMxLjk4OTA1NVoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNFQyMjoyMDozMS45ODkwNTVaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn0seyJpZCI6Ik5pY29sYXMtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6Ik5pY29sYXMiLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMjRUMjI6MjA6MzQuMjg4NzhaIiwidXBkYXRlZCI6IjIwMjAtMDItMjRUMjI6MjA6MzQuMjg4NzhaIiwiZVRhZyI6IkFkaUpsL3o0c09hTitnRSJ9LHsiaWQiOiJLaW0tdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IktpbSIsImV4dGVybmFsSWQiOm51bGwsInByb2ZpbGVVcmwiOm51bGwsImVtYWlsIjpudWxsLCJjcmVhdGVkIjoiMjAyMC0wMi0yNFQyMjoyMDozMi41NjU1ODhaIiwidXBkYXRlZCI6IjIwMjAtMDItMjRUMjI6MjA6MzIuNTY1NTg4WiIsImVUYWciOiJBYmpMeS9MTnY3SFZOdyJ9LHsiaWQiOiJHbGVuLXVzZXItaWRlbnRpZmllciIsIm5hbWUiOiJHbGVuIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTI0VDIyOjIwOjMzLjcxMzIxMloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0yNFQyMjoyMDozMy43MTMyMTJaIiwiZVRhZyI6IkFmLzV3TVNoM3JlSWRBIn0seyJpZCI6IkVhcmxpbmUtdXNlci1pZGVudGlmaWVyIiwibmFtZSI6IkVhcmxpbmUiLCJleHRlcm5hbElkIjpudWxsLCJwcm9maWxlVXJsIjpudWxsLCJlbWFpbCI6bnVsbCwiY3JlYXRlZCI6IjIwMjAtMDItMjRUMjI6MjA6MzMuMTQxMTQ1WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTI0VDIyOjIwOjMzLjE0MTE0NVoiLCJlVGFnIjoiQWQ2YnpybmNyS1czclFFIn1dLCJ0b3RhbENvdW50Ijo2LCJuZXh0IjoiTmcifQ==" + }, + "type" : 2 + }, + { + "id" : "F64FF07F-4FF3-43F7-ADCA-0A7DD0C225B2", + "type" : 4 + }, + { + "id" : "53C8653E-5AEA-4540-9258-A6E70F1565E8", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "53C8653E-5AEA-4540-9258-A6E70F1565E8", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Mon, 24 Feb 2020 22:20:37 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "53C8653E-5AEA-4540-9258-A6E70F1565E8", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "53C8653E-5AEA-4540-9258-A6E70F1565E8", + "type" : 4 + }, + { + "id" : "6340544E-88DA-4820-A8BF-E52E7F912E82", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "6340544E-88DA-4820-A8BF-E52E7F912E82", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Kim-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Mon, 24 Feb 2020 22:20:38 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "6340544E-88DA-4820-A8BF-E52E7F912E82", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "6340544E-88DA-4820-A8BF-E52E7F912E82", + "type" : 4 + }, + { + "id" : "78CBA009-7CC9-474D-B86F-96807ACC4E57", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Earline-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "78CBA009-7CC9-474D-B86F-96807ACC4E57", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Earline-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Mon, 24 Feb 2020 22:20:39 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "78CBA009-7CC9-474D-B86F-96807ACC4E57", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "78CBA009-7CC9-474D-B86F-96807ACC4E57", + "type" : 4 + }, + { + "id" : "D0E777CA-D5B3-4ED6-834F-4181709B6FBA", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Glen-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D0E777CA-D5B3-4ED6-834F-4181709B6FBA", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Glen-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Mon, 24 Feb 2020 22:20:40 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "D0E777CA-D5B3-4ED6-834F-4181709B6FBA", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "D0E777CA-D5B3-4ED6-834F-4181709B6FBA", + "type" : 4 + }, + { + "id" : "9FB885ED-AC7D-4615-9532-8732159CE63F", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Nicolas-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "9FB885ED-AC7D-4615-9532-8732159CE63F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Nicolas-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Mon, 24 Feb 2020 22:20:41 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "9FB885ED-AC7D-4615-9532-8732159CE63F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "9FB885ED-AC7D-4615-9532-8732159CE63F", + "type" : 4 + }, + { + "id" : "3D8E7C6B-165B-4743-A945-8A4DB53CB19F", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 12.4.0 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Shannon-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3D8E7C6B-165B-4743-A945-8A4DB53CB19F", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Shannon-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Mon, 24 Feb 2020 22:20:42 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "3D8E7C6B-165B-4743-A945-8A4DB53CB19F", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "3D8E7C6B-165B-4743-A945-8A4DB53CB19F", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldFetchUserAndReceiveResultWithExpectedOperation.json b/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldFetchUserAndReceiveResultWithExpectedOperation.json new file mode 100644 index 000000000..25ec2a93a --- /dev/null +++ b/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldFetchUserAndReceiveResultWithExpectedOperation.json @@ -0,0 +1,262 @@ +[ + { + "id" : "EA556426-6273-40A3-883B-92B4DDABC805", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "EA556426-6273-40A3-883B-92B4DDABC805", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:50:12 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "EA556426-6273-40A3-883B-92B4DDABC805", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "EA556426-6273-40A3-883B-92B4DDABC805", + "type" : 4 + }, + { + "id" : "71B6972B-B86D-4BF9-9308-6594C8E44C26", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "71B6972B-B86D-4BF9-9308-6594C8E44C26", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:50:13 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "71B6972B-B86D-4BF9-9308-6594C8E44C26", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "71B6972B-B86D-4BF9-9308-6594C8E44C26", + "type" : 4 + }, + { + "id" : "919FE08C-2B98-4915-AD49-04F9C03F68EF", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "919FE08C-2B98-4915-AD49-04F9C03F68EF", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 11:50:13 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "919FE08C-2B98-4915-AD49-04F9C03F68EF", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDExOjUwOjEzLjEyNjQ0NloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMTo1MDoxMy4xMjY0NDZaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "919FE08C-2B98-4915-AD49-04F9C03F68EF", + "type" : 4 + }, + { + "id" : "1D693717-7A6B-4F10-9EF0-8608BFA3BABF", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1D693717-7A6B-4F10-9EF0-8608BFA3BABF", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 11:50:14 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "1D693717-7A6B-4F10-9EF0-8608BFA3BABF", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDExOjUwOjEzLjEyNjQ0NloiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMTo1MDoxMy4xMjY0NDZaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "1D693717-7A6B-4F10-9EF0-8608BFA3BABF", + "type" : 4 + }, + { + "id" : "1FFF59B8-D52C-4091-938F-68CACDE4D072", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1FFF59B8-D52C-4091-938F-68CACDE4D072", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:50:15 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "1FFF59B8-D52C-4091-938F-68CACDE4D072", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "1FFF59B8-D52C-4091-938F-68CACDE4D072", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldNotCreateUserWhenSameUserAlreadyExists.json b/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldNotCreateUserWhenSameUserAlreadyExists.json new file mode 100644 index 000000000..82eec9e6d --- /dev/null +++ b/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldNotCreateUserWhenSameUserAlreadyExists.json @@ -0,0 +1,322 @@ +[ + { + "id" : "1764DC54-F551-495F-A6FC-93F8A2D2C8AE", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1764DC54-F551-495F-A6FC-93F8A2D2C8AE", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:50:17 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "1764DC54-F551-495F-A6FC-93F8A2D2C8AE", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "1764DC54-F551-495F-A6FC-93F8A2D2C8AE", + "type" : 4 + }, + { + "id" : "F1FEB64C-BC51-4079-BB56-E9A973603A63", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F1FEB64C-BC51-4079-BB56-E9A973603A63", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:50:18 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "F1FEB64C-BC51-4079-BB56-E9A973603A63", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "F1FEB64C-BC51-4079-BB56-E9A973603A63", + "type" : 4 + }, + { + "id" : "E4BD4D8E-9CC6-4FC4-9FA7-33F1C6A50FF2", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E4BD4D8E-9CC6-4FC4-9FA7-33F1C6A50FF2", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 11:50:18 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "E4BD4D8E-9CC6-4FC4-9FA7-33F1C6A50FF2", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDExOjUwOjE4LjE2MzU5N1oiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMTo1MDoxOC4xNjM1OTdaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "E4BD4D8E-9CC6-4FC4-9FA7-33F1C6A50FF2", + "type" : 4 + }, + { + "id" : "1EA566BE-B6A7-4DED-A046-BF024938A805", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "61", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIn0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "1EA566BE-B6A7-4DED-A046-BF024938A805", + "data" : { + "status" : 409, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:50:20 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "108", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "1EA566BE-B6A7-4DED-A046-BF024938A805", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjQwOSwiZXJyb3IiOnsibWVzc2FnZSI6Ik9iamVjdCB3aXRoIHRoZSByZXF1ZXN0ZWQgaWRlbnRpZmllciBhbHJlYWR5IGV4aXN0cy4iLCJzb3VyY2UiOiJvYmplY3RzIn19" + }, + "type" : 2 + }, + { + "id" : "1EA566BE-B6A7-4DED-A046-BF024938A805", + "type" : 4 + }, + { + "id" : "6027C99F-FC7F-4519-B3C0-024C8CDF360A", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "61", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIn0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "6027C99F-FC7F-4519-B3C0-024C8CDF360A", + "data" : { + "status" : 409, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:50:20 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "108", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "6027C99F-FC7F-4519-B3C0-024C8CDF360A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjQwOSwiZXJyb3IiOnsibWVzc2FnZSI6Ik9iamVjdCB3aXRoIHRoZSByZXF1ZXN0ZWQgaWRlbnRpZmllciBhbHJlYWR5IGV4aXN0cy4iLCJzb3VyY2UiOiJvYmplY3RzIn19" + }, + "type" : 2 + }, + { + "id" : "6027C99F-FC7F-4519-B3C0-024C8CDF360A", + "type" : 4 + }, + { + "id" : "89677B5E-692F-4775-A8AE-4595BFC41071", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "89677B5E-692F-4775-A8AE-4595BFC41071", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:50:21 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "89677B5E-692F-4775-A8AE-4595BFC41071", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "89677B5E-692F-4775-A8AE-4595BFC41071", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldNotFetchUserWhenTargetUserNotExists.json b/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldNotFetchUserWhenTargetUserNotExists.json new file mode 100644 index 000000000..69c0de945 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldNotFetchUserWhenTargetUserNotExists.json @@ -0,0 +1,202 @@ +[ + { + "id" : "FEA16048-F421-491D-8BBC-8D22549073E3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "FEA16048-F421-491D-8BBC-8D22549073E3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:50:23 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "FEA16048-F421-491D-8BBC-8D22549073E3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "FEA16048-F421-491D-8BBC-8D22549073E3", + "type" : 4 + }, + { + "id" : "FC2566B4-A408-457A-B42A-E27507F370D9", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "FC2566B4-A408-457A-B42A-E27507F370D9", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:50:23 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "FC2566B4-A408-457A-B42A-E27507F370D9", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "FC2566B4-A408-457A-B42A-E27507F370D9", + "type" : 4 + }, + { + "id" : "3394089A-3956-41DB-AF90-4FB45316CC1A", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/test-user?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "3394089A-3956-41DB-AF90-4FB45316CC1A", + "data" : { + "status" : 404, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/test-user?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:50:23 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "87", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "3394089A-3956-41DB-AF90-4FB45316CC1A", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjQwNCwiZXJyb3IiOnsibWVzc2FnZSI6IlJlcXVlc3RlZCBvYmplY3Qgd2FzIG5vdCBmb3VuZC4iLCJzb3VyY2UiOiJvYmplY3RzIn19" + }, + "type" : 2 + }, + { + "id" : "3394089A-3956-41DB-AF90-4FB45316CC1A", + "type" : 4 + }, + { + "id" : "622F2C84-F2EF-41E8-9866-5560CE7AD0AF", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/test-user?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "622F2C84-F2EF-41E8-9866-5560CE7AD0AF", + "data" : { + "status" : 404, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/test-user?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:50:24 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "87", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "622F2C84-F2EF-41E8-9866-5560CE7AD0AF", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjQwNCwiZXJyb3IiOnsibWVzc2FnZSI6IlJlcXVlc3RlZCBvYmplY3Qgd2FzIG5vdCBmb3VuZC4iLCJzb3VyY2UiOiJvYmplY3RzIn19" + }, + "type" : 2 + }, + { + "id" : "622F2C84-F2EF-41E8-9866-5560CE7AD0AF", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldNotUpdateUserWhenTargetUserNotExists.json b/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldNotUpdateUserWhenTargetUserNotExists.json new file mode 100644 index 000000000..44ec1f014 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldNotUpdateUserWhenTargetUserNotExists.json @@ -0,0 +1,214 @@ +[ + { + "id" : "D3BE8C20-1EF7-4181-9ABE-78E7F52103F4", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "D3BE8C20-1EF7-4181-9ABE-78E7F52103F4", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:50:25 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "D3BE8C20-1EF7-4181-9ABE-78E7F52103F4", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "D3BE8C20-1EF7-4181-9ABE-78E7F52103F4", + "type" : 4 + }, + { + "id" : "F6CC3E97-FB37-4DC5-99A7-A31120F16CB6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F6CC3E97-FB37-4DC5-99A7-A31120F16CB6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:50:25 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "F6CC3E97-FB37-4DC5-99A7-A31120F16CB6", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "F6CC3E97-FB37-4DC5-99A7-A31120F16CB6", + "type" : 4 + }, + { + "id" : "F5FA9768-237F-4DE8-BBC1-5CE616CCAB77", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "70", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6InRlc3QtdXNlciIsIm5hbWUiOiJ0ZXN0LXVzZXItbmFtZSJ9" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/test-user?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "F5FA9768-237F-4DE8-BBC1-5CE616CCAB77", + "data" : { + "status" : 404, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/test-user?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:50:25 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "87", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "F5FA9768-237F-4DE8-BBC1-5CE616CCAB77", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjQwNCwiZXJyb3IiOnsibWVzc2FnZSI6IlJlcXVlc3RlZCBvYmplY3Qgd2FzIG5vdCBmb3VuZC4iLCJzb3VyY2UiOiJvYmplY3RzIn19" + }, + "type" : 2 + }, + { + "id" : "F5FA9768-237F-4DE8-BBC1-5CE616CCAB77", + "type" : 4 + }, + { + "id" : "5D3A345A-A987-4C14-BBC8-B155CD37A257", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "70", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6InRlc3QtdXNlciIsIm5hbWUiOiJ0ZXN0LXVzZXItbmFtZSJ9" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/test-user?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "5D3A345A-A987-4C14-BBC8-B155CD37A257", + "data" : { + "status" : 404, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/test-user?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:50:26 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "87", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "5D3A345A-A987-4C14-BBC8-B155CD37A257", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjQwNCwiZXJyb3IiOnsibWVzc2FnZSI6IlJlcXVlc3RlZCBvYmplY3Qgd2FzIG5vdCBmb3VuZC4iLCJzb3VyY2UiOiJvYmplY3RzIn19" + }, + "type" : 2 + }, + { + "id" : "5D3A345A-A987-4C14-BBC8-B155CD37A257", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldUpdateUserAndReceiveStatusWithExpectedOperationAndCategory.json b/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldUpdateUserAndReceiveStatusWithExpectedOperationAndCategory.json new file mode 100644 index 000000000..b6c70805a --- /dev/null +++ b/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldUpdateUserAndReceiveStatusWithExpectedOperationAndCategory.json @@ -0,0 +1,268 @@ +[ + { + "id" : "761E7B8F-2A22-4E49-BEE8-CACB2AD8E69D", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "761E7B8F-2A22-4E49-BEE8-CACB2AD8E69D", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:50:27 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "761E7B8F-2A22-4E49-BEE8-CACB2AD8E69D", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "761E7B8F-2A22-4E49-BEE8-CACB2AD8E69D", + "type" : 4 + }, + { + "id" : "CFE6893C-0CB2-4B89-B350-58E4363EB8A6", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "CFE6893C-0CB2-4B89-B350-58E4363EB8A6", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:50:27 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "CFE6893C-0CB2-4B89-B350-58E4363EB8A6", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "CFE6893C-0CB2-4B89-B350-58E4363EB8A6", + "type" : 4 + }, + { + "id" : "C1E496E1-FE77-4CBE-AE98-6A2A693CB7CF", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "C1E496E1-FE77-4CBE-AE98-6A2A693CB7CF", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 11:50:27 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "C1E496E1-FE77-4CBE-AE98-6A2A693CB7CF", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDExOjUwOjI3LjQzNTU4WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDExOjUwOjI3LjQzNTU4WiIsImVUYWciOiJBZVAyNjdmYXV2YkJQQSJ9fQ==" + }, + "type" : 2 + }, + { + "id" : "C1E496E1-FE77-4CBE-AE98-6A2A693CB7CF", + "type" : 4 + }, + { + "id" : "6177316A-84BB-4129-9AFA-3AA24F5B7009", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "84", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoidGVzdC1zcGFjZS1uYW1lIn0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "6177316A-84BB-4129-9AFA-3AA24F5B7009", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?include=custom&uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 11:50:29 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "6177316A-84BB-4129-9AFA-3AA24F5B7009", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoidGVzdC1zcGFjZS1uYW1lIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDExOjUwOjI3LjQzNTU4WiIsInVwZGF0ZWQiOiIyMDIwLTAyLTA3VDExOjUwOjI5LjI1OTMwOVoiLCJlVGFnIjoiQWYyMnJ2bVQ4Y2p3L3dFIn19" + }, + "type" : 2 + }, + { + "id" : "6177316A-84BB-4129-9AFA-3AA24F5B7009", + "type" : 4 + }, + { + "id" : "E87C5A82-FDF6-4080-A1AF-7A684993A65C", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "E87C5A82-FDF6-4080-A1AF-7A684993A65C", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=Serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:50:30 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "E87C5A82-FDF6-4080-A1AF-7A684993A65C", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "E87C5A82-FDF6-4080-A1AF-7A684993A65C", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldUpdateUserAndTriggerUpdateEventToUserChannel.json b/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldUpdateUserAndTriggerUpdateEventToUserChannel.json new file mode 100644 index 000000000..5db4b7460 --- /dev/null +++ b/Tests/Support Files/Fixtures/PNUserIntegrationTest.bundle/ItShouldUpdateUserAndTriggerUpdateEventToUserChannel.json @@ -0,0 +1,459 @@ +[ + { + "id" : "0254042F-CB61-45FD-ACDD-C0D34B24470B", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "0254042F-CB61-45FD-ACDD-C0D34B24470B", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:50:32 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "0254042F-CB61-45FD-ACDD-C0D34B24470B", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "0254042F-CB61-45FD-ACDD-C0D34B24470B", + "type" : 4 + }, + { + "id" : "0A67110A-11B5-4C08-8914-F58BA4216AF3", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "0A67110A-11B5-4C08-8914-F58BA4216AF3", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/spaces?uuid=Serhii&limit=100&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:50:32 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "24", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "0A67110A-11B5-4C08-8914-F58BA4216AF3", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6W119" + }, + "type" : 2 + }, + { + "id" : "0A67110A-11B5-4C08-8914-F58BA4216AF3", + "type" : 4 + }, + { + "id" : "DCB8AF4C-BAC0-4F44-B58F-C879E193D500", + "data" : { + "method" : "post", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "148", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoiU2VyaGlpLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "DCB8AF4C-BAC0-4F44-B58F-C879E193D500", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users?include=custom&uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 11:50:33 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "DCB8AF4C-BAC0-4F44-B58F-C879E193D500", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoiU2VyaGlpIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImN1c3RvbSI6eyJ1c2VyLWN1c3RvbTEiOiJTZXJoaWktY3VzdG9tLWRhdGEtMSIsInVzZXItY3VzdG9tMiI6IlNlcmhpaS1jdXN0b20tZGF0YS0yIn0sImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDExOjUwOjMzLjI4NzA3NFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMTo1MDozMy4yODcwNzRaIiwiZVRhZyI6IkFlUDI2N2ZhdXZiQlBBIn19" + }, + "type" : 2 + }, + { + "id" : "DCB8AF4C-BAC0-4F44-B58F-C879E193D500", + "type" : 4 + }, + { + "id" : "886DE951-B089-4B23-B79A-855A4031F103", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&tt=0&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "886DE951-B089-4B23-B79A-855A4031F103", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&tt=0&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 11:50:35 GMT", + "Content-Length" : "45", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "886DE951-B089-4B23-B79A-855A4031F103", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDc2MjM1MDQ1MDE0NiIsInIiOjEyfSwibSI6W119" + }, + "type" : 2 + }, + { + "id" : "886DE951-B089-4B23-B79A-855A4031F103", + "type" : 4 + }, + { + "id" : "32B8428C-5639-44B8-86DA-EAC839C9CC91", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810762350450146&tr=12" + }, + "type" : 0 + }, + { + "id" : "ABF5A69D-8CF4-469F-AF31-15F05C2FA9F7", + "data" : { + "method" : "patch", + "cls" : "NSURLRequest", + "cellular" : true, + "network" : 0, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Content-Length" : "217", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate", + "Content-Type" : "application\/json;charset=UTF-8" + }, + "body" : { + "cls" : "NSData", + "base64" : "eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoidGVzdC1zcGFjZS1uYW1lIiwiY3VzdG9tIjp7InVzZXItY3VzdG9tMiI6InRlc3Qtc3BhY2UtbmFtZS1jdXN0b20tZGF0YS0yIiwidXNlci1jdXN0b20xIjoidGVzdC1zcGFjZS1uYW1lLWN1c3RvbS1kYXRhLTEifX0=" + }, + "pipeline" : false, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "ABF5A69D-8CF4-469F-AF31-15F05C2FA9F7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Content-Type" : "application\/json", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*", + "Transfer-Encoding" : "Identity", + "Date" : "Fri, 07 Feb 2020 11:50:35 GMT", + "Content-Encoding" : "gzip", + "Vary" : "Accept-Encoding" + } + }, + "type" : 1 + }, + { + "id" : "ABF5A69D-8CF4-469F-AF31-15F05C2FA9F7", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6eyJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoidGVzdC1zcGFjZS1uYW1lIiwiZXh0ZXJuYWxJZCI6bnVsbCwicHJvZmlsZVVybCI6bnVsbCwiZW1haWwiOm51bGwsImNyZWF0ZWQiOiIyMDIwLTAyLTA3VDExOjUwOjMzLjI4NzA3NFoiLCJ1cGRhdGVkIjoiMjAyMC0wMi0wN1QxMTo1MDozNS40NjI3NjhaIiwiZVRhZyI6IkFZS2cvSVROb0t2T0VnIn19" + }, + "type" : 2 + }, + { + "id" : "ABF5A69D-8CF4-469F-AF31-15F05C2FA9F7", + "type" : 4 + }, + { + "id" : "32B8428C-5639-44B8-86DA-EAC839C9CC91", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810762350450146&tr=12", + "headers" : { + "Access-Control-Allow-Methods" : "GET", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Access-Control-Allow-Origin" : "*", + "Date" : "Fri, 07 Feb 2020 11:50:35 GMT", + "Content-Length" : "556", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "32B8428C-5639-44B8-86DA-EAC839C9CC91", + "data" : { + "cls" : "NSData", + "base64" : "eyJ0Ijp7InQiOiIxNTgxMDc2MjM1OTAwMDc5MyIsInIiOjEyfSwibSI6W3siYSI6IjUiLCJmIjowLCJlIjoyLCJwIjp7InQiOiIxNTgxMDc2MjM1ODk4OTEzNiIsInIiOjEyfSwiayI6ImRlbW8iLCJjIjoiU2VyaGlpLXVzZXItaWRlbnRpZmllciIsImQiOnsic291cmNlIjoib2JqZWN0cyIsInZlcnNpb24iOiIxLjAiLCJldmVudCI6InVwZGF0ZSIsInR5cGUiOiJ1c2VyIiwiZGF0YSI6eyJjdXN0b20iOnsidXNlci1jdXN0b20xIjoidGVzdC1zcGFjZS1uYW1lLWN1c3RvbS1kYXRhLTEiLCJ1c2VyLWN1c3RvbTIiOiJ0ZXN0LXNwYWNlLW5hbWUtY3VzdG9tLWRhdGEtMiJ9LCJlVGFnIjoiQVlLZy9JVE5vS3ZPRWciLCJpZCI6IlNlcmhpaS11c2VyLWlkZW50aWZpZXIiLCJuYW1lIjoidGVzdC1zcGFjZS1uYW1lIiwidXBkYXRlZCI6IjIwMjAtMDItMDdUMTE6NTA6MzUuNDYyNzY4WiJ9fX1dfQ==" + }, + "type" : 2 + }, + { + "id" : "32B8428C-5639-44B8-86DA-EAC839C9CC91", + "type" : 4 + }, + { + "id" : "8B9D0CA7-8C0B-49FB-A89F-056B4F095EC7", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810762359000793&tr=12" + }, + "type" : 0 + }, + { + "id" : "8B9D0CA7-8C0B-49FB-A89F-056B4F095EC7", + "data" : { + "code" : -999, + "info" : { + "NSErrorFailingURLStringKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810762359000793&tr=12", + "NSLocalizedDescription" : "cancelled", + "NSErrorFailingURLKey" : "https:\/\/ps.pndsn.com\/v2\/subscribe\/demo\/Serhii-user-identifier\/0?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x&tt=15810762359000793&tr=12" + }, + "cls" : "NSError", + "domain" : "NSURLErrorDomain" + }, + "type" : 3 + }, + { + "id" : "8F5B7489-455C-4F87-A443-4BA4A76E5DD7", + "data" : { + "method" : "get", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/Serhii-user-identifier\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "8F5B7489-455C-4F87-A443-4BA4A76E5DD7", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v2\/presence\/sub_key\/demo\/channel\/Serhii-user-identifier\/leave?uuid=david&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Methods" : "OPTIONS, GET, POST", + "Content-Type" : "text\/javascript; charset=\"UTF-8\"", + "Server" : "Pubnub Presence", + "Access-Control-Allow-Origin" : "*", + "Age" : "0", + "Date" : "Fri, 07 Feb 2020 11:50:36 GMT", + "Accept-Ranges" : "bytes", + "Content-Length" : "74", + "Cache-Control" : "no-cache", + "Connection" : "keep-alive" + } + }, + "type" : 1 + }, + { + "id" : "8F5B7489-455C-4F87-A443-4BA4A76E5DD7", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgImFjdGlvbiI6ICJsZWF2ZSIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0=" + }, + "type" : 2 + }, + { + "id" : "8F5B7489-455C-4F87-A443-4BA4A76E5DD7", + "type" : 4 + }, + { + "id" : "AC91376C-BF93-435A-92EE-1085BFE5AB91", + "data" : { + "method" : "delete", + "cls" : "NSURLRequest", + "cellular" : true, + "cache" : 1, + "timeout" : 60, + "cookies" : true, + "headers" : { + "User-Agent" : "iPhone; CPU iPhone OS 10.3.1 Version", + "Accept" : "*\/*", + "Connection" : "keep-alive", + "Accept-Encoding" : "gzip,deflate" + }, + "pipeline" : false, + "network" : 0, + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x" + }, + "type" : 0 + }, + { + "id" : "AC91376C-BF93-435A-92EE-1085BFE5AB91", + "data" : { + "status" : 200, + "cls" : "NSHTTPURLResponse", + "url" : "https:\/\/ps.pndsn.com\/v1\/objects\/demo\/users\/Serhii-user-identifier?uuid=serhii&pnsdk=PubNub-ObjC-iOS\/4.x.x", + "headers" : { + "Access-Control-Allow-Credentials" : "true", + "Date" : "Fri, 07 Feb 2020 11:50:37 GMT", + "Content-Type" : "application\/json", + "Content-Length" : "26", + "Connection" : "keep-alive", + "Access-Control-Allow-Origin" : "*" + } + }, + "type" : 1 + }, + { + "id" : "AC91376C-BF93-435A-92EE-1085BFE5AB91", + "data" : { + "cls" : "NSData", + "base64" : "eyJzdGF0dXMiOjIwMCwiZGF0YSI6bnVsbH0=" + }, + "type" : 2 + }, + { + "id" : "AC91376C-BF93-435A-92EE-1085BFE5AB91", + "type" : 4 + } +] \ No newline at end of file diff --git a/Tests/iOS Tests/Info.plist b/Tests/Support Files/Targets/ios-tests.plist similarity index 95% rename from Tests/iOS Tests/Info.plist rename to Tests/Support Files/Targets/ios-tests.plist index 9e5461dca..07fca123d 100644 --- a/Tests/iOS Tests/Info.plist +++ b/Tests/Support Files/Targets/ios-tests.plist @@ -3,7 +3,7 @@ CFBundleDevelopmentRegion - en + $(DEVELOPMENT_LANGUAGE) CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier diff --git a/Tests/iOS Tests/iOS ObjC Tests-Info.plist b/Tests/Support Files/Targets/macos-tests.plist similarity index 86% rename from Tests/iOS Tests/iOS ObjC Tests-Info.plist rename to Tests/Support Files/Targets/macos-tests.plist index ba72822e8..64d65ca49 100644 --- a/Tests/iOS Tests/iOS ObjC Tests-Info.plist +++ b/Tests/Support Files/Targets/macos-tests.plist @@ -3,7 +3,7 @@ CFBundleDevelopmentRegion - en + $(DEVELOPMENT_LANGUAGE) CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier @@ -13,11 +13,9 @@ CFBundleName $(PRODUCT_NAME) CFBundlePackageType - BNDL + $(PRODUCT_BUNDLE_PACKAGE_TYPE) CFBundleShortVersionString 1.0 - CFBundleSignature - ???? CFBundleVersion 1 diff --git a/Tests/iOS Tests-Swift/Info.plist b/Tests/Support Files/Targets/tvos-tests.plist similarity index 86% rename from Tests/iOS Tests-Swift/Info.plist rename to Tests/Support Files/Targets/tvos-tests.plist index ba72822e8..64d65ca49 100644 --- a/Tests/iOS Tests-Swift/Info.plist +++ b/Tests/Support Files/Targets/tvos-tests.plist @@ -3,7 +3,7 @@ CFBundleDevelopmentRegion - en + $(DEVELOPMENT_LANGUAGE) CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier @@ -13,11 +13,9 @@ CFBundleName $(PRODUCT_NAME) CFBundlePackageType - BNDL + $(PRODUCT_BUNDLE_PACKAGE_TYPE) CFBundleShortVersionString 1.0 - CFBundleSignature - ???? CFBundleVersion 1 diff --git a/Tests/Tests/Helpers/Categories/NSInvocation+PNTest.h b/Tests/Tests/Helpers/Categories/NSInvocation+PNTest.h new file mode 100644 index 000000000..63a81ab48 --- /dev/null +++ b/Tests/Tests/Helpers/Categories/NSInvocation+PNTest.h @@ -0,0 +1,42 @@ +#import + + +NS_ASSUME_NONNULL_BEGIN + +#pragma mark Category interface declaration + +/** + * @brief Interface extension to provide easier way to access values. + * + * @author Serhii Mamontov + * @copyright © 2010-2019 PubNub, Inc. + */ +@interface NSInvocation (PNTest) + + +#pragma mark - Arguments + +/** + * @brief Retrieve boolean value passed as argument at specified index. + * + * @param index Index of argument for which boolean value should be returned. + * + * @return Boolean value passed to argument specified by it's index. + */ +- (BOOL)booleanForArgumentAtIndex:(NSUInteger)index; + +/** + * @brief Retrieve value passed as argument at specified index. + * + * @param index Index of argument for which value should be returned. + * + * @return Value passed to argument specified by it's index. + */ +- (id)objectForArgumentAtIndex:(NSUInteger)index; + +#pragma mark - + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Tests/iOS Tests/Helpers/Categories/NSInvocation+PNTest.m b/Tests/Tests/Helpers/Categories/NSInvocation+PNTest.m similarity index 78% rename from Tests/iOS Tests/Helpers/Categories/NSInvocation+PNTest.m rename to Tests/Tests/Helpers/Categories/NSInvocation+PNTest.m index ded029730..60ccfe7e1 100644 --- a/Tests/iOS Tests/Helpers/Categories/NSInvocation+PNTest.m +++ b/Tests/Tests/Helpers/Categories/NSInvocation+PNTest.m @@ -1,12 +1,18 @@ +/** + * @author Serhii Mamontov + * @copyright © 2010-2019 PubNub, Inc. + */ #import "NSInvocation+PNTest.h" + +#pragma mark Category interface implementation + @implementation NSInvocation (PNTest) #pragma mark - Arguments - (BOOL)booleanForArgumentAtIndex:(NSUInteger)index { - BOOL value = NO; [self getArgument:&value atIndex:index]; @@ -15,7 +21,6 @@ - (BOOL)booleanForArgumentAtIndex:(NSUInteger)index { } - (id)objectForArgumentAtIndex:(NSUInteger)index { - __unsafe_unretained id object = nil; [self getArgument:&object atIndex:index]; diff --git a/Tests/Tests/Helpers/Categories/NSString+PNTest.h b/Tests/Tests/Helpers/Categories/NSString+PNTest.h new file mode 100644 index 000000000..4229dee03 --- /dev/null +++ b/Tests/Tests/Helpers/Categories/NSString+PNTest.h @@ -0,0 +1,62 @@ +#import + + +NS_ASSUME_NONNULL_BEGIN + +#pragma mark Category interface declaration + +/** + * @brief Interface extension to provide easier ways to manage strings in tests. + * + * @author Serhii Mamontov + * @copyright © 2010-2019 PubNub, Inc. + */ +@interface NSString (PNTest) + + +#pragma mark - Initialization & Configuration + +/** + * @brief String by extending receiver length to specified \c length and fill or new space with + * receiver's value. + * + * @param length Resulting string length. + * + * @return String filled with \c string to required \c length. + */ +- (NSString *)pnt_stringWithLength:(NSUInteger)length; + +/** + * @brief Create binary data object from previously HEX encoded data string. + * + * @return Binary data from receiver's HEX string. + */ +- (NSData *)pnt_dataFromHex; + + +#pragma mark - Check helpers + +/** + * @brief Whether receiver include specified \c string as substring or not. + * + * @param string Substring which should be searched in receiver. + * + * @return \c YES in case if substring has been found. + */ +- (BOOL)pnt_includesString:(NSString *)string; + +/** + * @brief Whether receiver include any string from specified \c string as substring or not. + * + * @param strings Substrings which should be searched in receiver. + * + * @return \c YES in case if any entry from \c strings has been found as substring. + */ +- (BOOL)pnt_includesAnyString:(NSArray *)strings; + +#pragma mark - + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Tests/Tests/Helpers/Categories/NSString+PNTest.m b/Tests/Tests/Helpers/Categories/NSString+PNTest.m new file mode 100644 index 000000000..aa643ba55 --- /dev/null +++ b/Tests/Tests/Helpers/Categories/NSString+PNTest.m @@ -0,0 +1,86 @@ +/** + * @author Serhii Mamontov + * @copyright © 2010-2019 PubNub, Inc. + */ +#import "NSString+PNTest.h" + + +#pragma mark Category interface implementation + +@implementation NSString (PNTest) + + +#pragma mark - Initialization & Configuration + +- (NSString *)pnt_stringWithLength:(NSUInteger)length { + NSUInteger iterationsCount = (NSUInteger)ceilf((float)length/(float)self.length); + NSMutableString *targetString = [NSMutableString new]; + NSUInteger receiverLength = self.length; + NSUInteger targetStringLength = 0; + + if (length > self.length) { + for (NSUInteger iteration = 0; iteration < iterationsCount; iteration++) { + if (targetStringLength + receiverLength < length) { + targetStringLength += receiverLength; + [targetString appendString:self]; + } else { + NSUInteger restLength = length - targetStringLength; + [targetString appendString:[self substringWithRange:NSMakeRange(0, restLength)]]; + } + } + } else { + [targetString setString:[self substringWithRange:NSMakeRange(0, length)]]; + } + + return targetString; +} + +- (NSData *)pnt_dataFromHex { + NSString *string = [self lowercaseString]; + NSMutableData *data= [NSMutableData new]; + unsigned char whole_byte; + char byte_chars[3] = {'\0','\0','\0'}; + NSUInteger length = string.length; + NSUInteger i = 0; + + while (i < length-1) { + char c = [string characterAtIndex:i++]; + + if (c < '0' || (c > '9' && c < 'a') || c > 'f') { + continue; + } + + byte_chars[0] = c; + byte_chars[1] = [string characterAtIndex:i++]; + whole_byte = strtol(byte_chars, NULL, 16); + [data appendBytes:&whole_byte length:1]; + } + + return data; +} + + +#pragma mark - Check helpers + +- (BOOL)pnt_includesString:(NSString *)string { + if (!string || !string.length) { + return NO; + } + + return [self rangeOfString:string].location != NSNotFound; +} + +- (BOOL)pnt_includesAnyString:(NSArray *)strings { + for (NSString *string in strings) { + if ([self pnt_includesString:string]) { + return YES; + } + } + + return NO; +} + +#pragma mark - + + +@end diff --git a/Tests/Tests/Helpers/PNRecordableTestCase.h b/Tests/Tests/Helpers/PNRecordableTestCase.h new file mode 100644 index 000000000..89a62d0a5 --- /dev/null +++ b/Tests/Tests/Helpers/PNRecordableTestCase.h @@ -0,0 +1,1054 @@ +#import +#import + + +NS_ASSUME_NONNULL_BEGIN + +#pragma mark Types and structures + +/** + * @brief Type used to describe block for \c message handling. + * + * @param client \b PubNub client which used delegate callback. + * @param message Object with information about received message. + * @param shouldRemove Whether handling block should be removed after call or not. + */ +typedef void (^PNTClientDidReceiveMessageHandler)(PubNub *client, PNMessageResult *message, BOOL *shouldRemove); + +/** + * @brief Type used to describe block for \c signal handling. + * + * @param client \b PubNub client which used delegate callback. + * @param signal Object with information about received signal. + * @param shouldRemove Whether handling block should be removed after call or not. + */ +typedef void (^PNTClientDidReceiveSignalHandler)(PubNub *client, PNSignalResult *signal, BOOL *shouldRemove); + +/** + * @brief Type used to describe block for \c action handling. + * + * @param client \b PubNub client which used delegate callback. + * @param action Object with information about received \c action. + * @param shouldRemove Whether handling block should be removed after call or not. + */ +typedef void (^PNTClientDidReceiveMessageActionHandler)(PubNub *client, PNMessageActionResult *action, BOOL *shouldRemove); + +/** + * @brief Type used to describe block for \c presence event handling. + * + * @param client \b PubNub client which used delegate callback. + * @param event Object with information about received presence event. + * @param shouldRemove Whether handling block should be removed after call or not. + */ +typedef void (^PNTClientDidReceivePresenceEventHandler)(PubNub *client, PNPresenceEventResult *event, BOOL *shouldRemove); + +/** + * @brief Type used to describe block for \c user event handling. + * + * @param client \b PubNub client which used delegate callback. + * @param event Object with information about received \c user event. + * @param shouldRemove Whether handling block should be removed after call or not. + */ +typedef void (^PNTClientDidReceiveUserEventHandler)(PubNub *client, PNUserEventResult *event, BOOL *shouldRemove); + +/** + * @brief Type used to describe block for \c space event handling. + * + * @param client \b PubNub client which used delegate callback. + * @param event Object with information about received \c space event. + * @param shouldRemove Whether handling block should be removed after call or not. + */ +typedef void (^PNTClientDidReceiveSpaceEventHandler)(PubNub *client, PNSpaceEventResult *event, BOOL *shouldRemove); + +/** + * @brief Type used to describe block for \c membership event handling. + * + * @param client \b PubNub client which used delegate callback. + * @param event Object with information about received \c membership event. + * @param shouldRemove Whether handling block should be removed after call or not. + */ +typedef void (^PNTClientDidReceiveMembershipEventHandler)(PubNub *client, PNMembershipEventResult *event, BOOL *shouldRemove); + +/** + * @brief Type used to describe block for status change handling. + * + * @param client \b PubNub client which used delegate callback. + * @param status Object with information about last client status change. + * @param shouldRemove Whether handling block should be removed after call or not. + */ +typedef void (^PNTClientDidReceiveStatusHandler)(PubNub *client, PNSubscribeStatus *status, BOOL *shouldRemove); + + +#pragma mark Public interface declaration + +/** + * @brief Test classes base class with requests recording ability. + * + * @discussion Class also handle switching between mocked and real server responses basing on + * target which is running these tests. + */ +@interface PNRecordableTestCase : YHVTestCase + + +#pragma mark - Information + +/** + * @brief For how long negative test should wait till async operation completion. + */ +@property (nonatomic, readonly, assign) NSTimeInterval falseTestCompletionDelay; + +/** + * @brief For how long positive test should wait till async operation completion. + */ +@property (nonatomic, readonly, assign) NSTimeInterval testCompletionDelay; + +/** + * @brief Currently used \b PubNub client instance. + * + * @discussion Instance created lazily and take into account whether mocking enabled at this moment + * or not. + * As configuration instance will use \c defaultConfiguration and options provided by available + * configuration callbacks. + * + * @note This client should be used only for unit tests, because they don't need to use multi-user + * environment. + */ +@property (nonatomic, readonly, nullable, strong) PubNub *client; + +/** + * @brief Whether current test case uses mocked objects or not. + * + * @discussion Value of this property affects \b PubNub client instance on-demand creation by + * storing original instance or mocked object. + */ +@property (nonatomic, assign) BOOL usesMockedObjects; + + +#pragma mark - Test configuration + +/** + * @brief Whether PAM-enabled account keys should be used to run test case or not. + * + * @param name Name of current test case. + * + * @return Whether PAM-enabled keys should be used or not. + * \b Default: \c NO + */ +- (BOOL)usePAMEnabledKeysForTestCaseWithName:(NSString *)name; + +/** + * @brief Unique user identifier which should be used to configure new \b PubNub instance. + * + * @param name Name of current test case. + * + * @return \c uuid which will be used with \b PNConfiguration. + * \b Default: \c serhii + */ +- (NSString *)pubNubUUIDForTestCaseWithName:(NSString *)name; + +/** + * @brief User authentication token which should be used to configure new \b PubNub instance. + * + * @param name Name of current test case. + * + * @return \c auth which will be used with \b PNConfiguration. + */ +- (nullable NSString *)pubNubAuthForTestCaseWithName:(NSString *)name; + +/** + * @brief Whether running test case has any \b PubNub objects or not. + * + * @return Whether test case stub / mock any data or not. + * \b Default: \c NO + */ +- (BOOL)hasMockedObjectsInTestCaseWithName:(NSString *)name; + +/** + * @brief \b PubNub client instance configuration for specific test case. + * + * @param name Name of current test case. + * + * @return \b PubNub client configuration instance or default configuration if \c nil returned. + */ +- (nullable PNConfiguration *)configurationForTestCaseWithName:(NSString *)name; + + +#pragma mark - Client configuration + +/** + * @brief Default \b PubNub client configuration which applied by helper to all created instances. + */ +- (PNConfiguration *)defaultConfiguration; + +/** + * @brief Configure \b PubNub client instance for specific user using default configuration. + * + * @param user Unique user identifier for which \b PubNub client instance should be created. + * + * @return Configured and ready to use \b PubNub client instance. + */ +- (PubNub *)createPubNubForUser:(NSString *)user; + +/** + * @brief Configure \b PubNub client instance with data required for test case. + * + * @param user Unique user identifier for which \b PubNub client instance should be created. + * @param configuration \b PubNub client configuration object. + * + * @return Configured and ready to use \b PubNub client instance. + */ +- (PubNub *)createPubNubForUser:(NSString *)user withConfiguration:(PNConfiguration *)configuration; + +/** + * @brief Configure set of \b PubNub client instances with default configuration. + * + * @param clientsCount How many \b PubNub client instances should be created with random \c uuids. + * + * @return List of configured and ready to use \b PubNub client instances. + */ +- (NSArray *)createPubNubClients:(NSUInteger)clientsCount; + +/** + * @brief Ensure what \b PubNub client instance is ready for test case run. + * + * @param client \b PubNub client instance for which setup process should be finalyzed. + */ +- (void)completePubNubConfiguration:(PubNub *)client; + +/** + * @brief Retrieve \b PubNub client instance which has been created on \c -setUp step for specified + * \c user. + * + * @param user Unique identifier for which separate \b PubNub client instance has been created + * before. + * + * @return Previously configured \b PubNub client instance. + */ +- (nullable PubNub *)pubNubForUser:(NSString *)user; + +/** + * @brief Retrieve \b PubNub client duplicate which has been created on \c -setUp step for specified + * \c user for which one instance already exists. + * + * @param user Unique identifier for which separate \b PubNub client instance has been created + * before. + * + * @return Clone of previously configured \b PubNub client instance. + */ +- (nullable PubNub *)pubNubCloneForUser:(NSString *)user; + + +#pragma mark - Subscription + +/** + * @brief Subscribe specified \c client to list of \c channels. + * + * @note Method will postpone test execution and wait till \b PubNub client will report connected + * state for all channels. + * + * @param client \b PubNub client which should be used to subscribe to \c channels. + * @param channels List of channel names to which \c client should subscribe. + * @param usePresence Whether \c client should handle presence events or not. + */ +- (void)subscribeClient:(PubNub *)client toChannels:(NSArray *)channels withPresence:(BOOL)usePresence; + +/** + * @brief Subscribe specified \c client to list of \c channel \c groups. + * + * @note Method will postpone test execution and wait till \b PubNub client will report connected + * state for all channel groups. + * + * @param client \b PubNub client which should be used to subscribe to \c channel \c groups. + * @param channelGroups List of channel group names to which \c client should subscribe. + * @param usePresence Whether \c client should handle presence events or not. + */ +- (void)subscribeClient:(PubNub *)client toChannelGroups:(NSArray *)channelGroups withPresence:(BOOL)usePresence; + +/** + * @brief Unsubscribe specified \c client from list of \c channels. + * + * @note Method will postpone test execution and wait till \b PubNub client will report disconnected + * state for all channels. + * + * @param client \b PubNub client which should be used to unsubscribe from \c channels. + * @param channels List of channel names from which \c client should unsubscribe. + * @param usePresence Whether \c client should stop presence events handling or not. + */ +- (void)unsubscribeClient:(PubNub *)client fromChannels:(NSArray *)channels withPresence:(BOOL)usePresence; + +/** + * @brief Unsubscribe specified \c client from list of \c channel \c groups. + * + * @note Method will postpone test execution and wait till \b PubNub client will report disconnected + * state for all channel groups. + * + * @param client \b PubNub client which should be used to unsubscribe from \c channel \c groups. + * @param channelGroups List of channel group names from which \c client should unsubscribe. + * @param usePresence Whether \c client should stop presence events handling or not. + */ +- (void)unsubscribeClient:(PubNub *)client fromChannelGroups:(NSArray *)channelGroups withPresence:(BOOL)usePresence; + + +#pragma mark - Publish + +/** + * @brief Publish test messages to specified \c channel. + * + * @param messagesCount How many messages should be published to specified \c channel. + * @param channel Name of channel which will be used in test with pre-published messages. + * @param client \b PubNub client which should be used to publish messages. Will use \c self.client + * if passed \c nil. + * + * @return List of published messages (each entry includes: message, timetoken and some include + * metadata). + */ +- (NSArray *)publishMessages:(NSUInteger)messagesCount + toChannel:(NSString *)channel + usingClient:(nullable PubNub *)client; + +/** + * @brief Publish test messages to set of specified \c channels. + * + * @param messagesCount How many messages should be published to each of specified \c channels. + * @param channels List of channel names which will be used in test with pre-published messages. + * @param client \b PubNub client which should be used to publish messages. Will use \c self.client + * if passed \c nil. + * + * @return List of published message and timetokens mapped to channel names. + */ +- (NSDictionary *> *)publishMessages:(NSUInteger)messagesCount + toChannels:(NSArray *)channels + usingClient:(nullable PubNub *)client; + +/** + * @brief Add actions to set of messages (using their timetokens). + * + * @param actionsCount How many actions should be added for each message. + * @param messages List of publish timetokens for messages to which \c actions will be added. + * @param channel Name of channel which contains references messages. + * @param client \b PubNub client which should be used to add message actions. Will use + * \c self.client if passed \c nil. + * + * @return List of message actions. + */ +- (NSArray *)addActions:(NSUInteger)actionsCount + toMessages:(NSArray *)messages + inChannel:(NSString *)channel + usingClient:(nullable PubNub *)client; + +/** + * @brief Ensure, that specified \c channel contain specified number of actions added for messages. + * + * @param channel Channel which should be checked. + * @param count Expected number of message actions added to messages in \ channel. + * @param client \b PubNub client which should be used to audit message actions. Will use + * \c self.client if passed \c nil. + */ +- (void)verifyMessageActionsCountInChannel:(NSString *)channel + shouldEqualTo:(NSUInteger)count + usingClient:(nullable PubNub *)client; + + +#pragma mark - History + +/** + * @brief Clean up after test case has been completed. + * + * @param channel Name of channel for which history should be removed. + * @param client \b PubNub client which should be used to clear messages. Will use \c self.client + * if passed \c nil. + */ +- (void)deleteHistoryForChannel:(NSString *)channel usingClient:(nullable PubNub *)client; + +/** + * @brief Clean up after test case has been completed. + * + * @param channels Name of channels for which history should be removed. + * @param client \b PubNub client which should be used to clear messages. Will use \c self.client + * if passed \c nil. + */ +- (void)deleteHistoryForChannels:(NSArray *)channels usingClient:(nullable PubNub *)client; + + +#pragma mark - Channel groups + +/** + * @brief Add list of \c channels to \c channelGroup. + * + * @param channels List of channels which should be added to channel group. + * @param channelGroup Channel group to which new channels should be added. + * @param client \b PubNub client which should be used to manage channel groups. Will use + * \c self.client if passed \c nil. + */ +- (void)addChannels:(NSArray *)channels + toChannelGroup:(NSString *)channelGroup + usingClient:(nullable PubNub *)client; + +/** + * @brief Ensure, that specified \c channels list added to target \c channel \c group. + * + * @param channels List of channels which should be checked. + * @param channelGroup Channel group inside of which specified \c channels should be checked. + * @param shouldEqual Whether fetched channel group channels should equal to passed \c channels + * (not just subset). + * @param client \b PubNub client which should be used to audit channel groups. Will use + * \c self.client if passed \c nil. + */ +- (void)verifyChannels:(NSArray *)channels + inChannelGroup:(NSString *)channelGroup + shouldEqual:(BOOL)shouldEqual + usingClient:(nullable PubNub *)client; + +/** + * @brief Clean up after test case has been completed. + * + * @param channelGroup Channel group from which all channels should be removed. + * @param client \b PubNub client which should be used to manage channel groups. Will use + * \c self.client if passed \c nil. + */ +- (void)removeChannelGroup:(NSString *)channelGroup usingClient:(nullable PubNub *)client; + + +#pragma mark - Presence + +/** + * @brief Update state on specified channel. + * + * @param state Dictionary with state which should be set for \c client's user on \c channel. + * @param channel Name of channel for which \c state should be set. + * @param client \b PubNub client which should be used to manage presence state. Will use + * \c self.client if passed \c nil. + */ +- (void)setState:(NSDictionary *)state onChannel:(NSString *)channel usingClient:(nullable PubNub *)client; + + +#pragma mark - Objects + +/** + * @brief Try to perform complete Objects scope clean up. + */ +- (void)removeAllObjects; + +/** + * @brief Create set of random user objects. + * + * @param objectsCount How many user objects should be created. + * @param client \b PubNub client which should be used to manage user objects. Will use + * \c self.client if passed \c nil. + * + * @return List of created user objects. + */ +- (NSArray *)createObjectForUsers:(NSUInteger)objectsCount + usingClient:(nullable PubNub *)client; + +/** + * @brief Use Objects API to create single user object with name used to create identifier and + * custom data. + * + * @param name Name which should be associated with new user object entry and used to create unique + * identifier. + * @param client \b PubNub client which should be used to manage user objects. Will use + * \c self.client if passed \c nil. + * + * @return Created user object. + */ +- (PNUser *)createObjectForUserWithName:(NSString *)name usingClient:(nullable PubNub *)client; + +/** + * @brief Use Objects API to create set of user objects using provided names to create identifier + * and custom data. + * + * @param names Names which should be associated with new user objects entries and used to create + * unique identifier. + * @param client \b PubNub client which should be used to manage user objects. Will use + * \c self.client if passed \c nil. + * + * @return List of created user objects. + */ +- (NSArray *)createObjectForUsersWithNames:(NSArray *)names + usingClient:(nullable PubNub *)client; + +/** + * @brief Ensure that specified number of user objects created for current publish / subscribe + * keys. + * + * @param count Expected number of user objects. + * @param client \b PubNub client which should be used to audit user objects. Will use + * \c self.client if passed \c nil. + */ +- (void)verifyUsersCountShouldEqualTo:(NSUInteger)count usingClient:(nullable PubNub *)client; + +/** + * @brief Create membership for each \c user entry with every passed \c space. + * + * @param users List of user objects for which membership with target space should be created. + * @param spaces List of spaces to which new members will be added. + * @param customs List of custom data which should be bound to created membership. + * @param client \b PubNub client which should be used to manage user objects. Will use + * \c self.client if passed \c nil. + * + * @return List of created memberships. + */ +- (NSArray *)createUsersMembership:(NSArray *)users + inSpaces:(NSArray *)spaces + withCustoms:(nullable NSArray *)customs + usingClient:(nullable PubNub *)client; + +/** + * @brief Create membership for each \c user entry with every passed \c space. + * + * @param users List of user objects for which membership with target space should be created. + * @param spaces List of spaces to which new members will be added. + * @param customs List of custom data which should be bound to created membership. + * @param shouldIncludeSpaceInformation Whether space information should be added to response. + * @param client \b PubNub client which should be used to manage user objects. Will use + * \c self.client if passed \c nil. + * + * @return List of created memberships. + */ +- (NSArray *)createUsersMembership:(NSArray *)users + inSpaces:(NSArray *)spaces + withCustoms:(nullable NSArray *)customs + spaceInformation:(BOOL)shouldIncludeSpaceInformation + usingClient:(nullable PubNub *)client; + +/** + * @brief Ensure that specified \c user has exact number of memberships. + * + * @param user Unique user identifier which should be used with objects API to audit memberships. + * @param count Expected number of user's memberships. + * @param client \b PubNub client which should be used to audit user objects. Will use + * \c self.client if passed \c nil. + */ +- (void)verifyUserMembershipsCount:(NSString *)user + shouldEqualTo:(NSUInteger)count + usingClient:(nullable PubNub *)client; + +/** + * @brief Remove local cache of user membership Object which has been created during test case run. + * + * @param user Unique identifier of user for which membership objects should be removed from local + * cache. + * @param space Unique identifier of space with which \c user membership should be removed. + */ +- (void)deleteUser:(NSString *)user cachedMembershipForSpace:(NSString *)space; + +/** + * @brief Remove list of user's membership Objects which has been created during test case run. + * + * @param user Unique identifier of user for which membership objects should be removed. + * @param memberships List of membership Objects which should be removed for \c user. + * @param client \b PubNub client which should be used to manage user objects. Will use + * \c self.client if passed \c nil. + */ +- (void)deleteUser:(NSString *)user + membershipObjects:(NSArray *)memberships + usingClient:(nullable PubNub *)client; + +/** + * @brief Remove all users membership Objects which has been created during test case run. + * + * @param users List of unique identifier of users for which membership objects should be removed. + * @param client \b PubNub client which should be used to manage user objects. Will use + * \c self.client if passed \c nil. + */ +- (void)deleteUsers:(NSArray *)users membershipObjectsUsingClient:(nullable PubNub *)client; + +/** + * @brief Remove all user membership Objects which has been created during test case run. + * + * @param user Unique identifier of user for which membership objects should be removed. + * @param client \b PubNub client which should be used to manage user objects. Will use + * \c self.client if passed \c nil. + */ +- (void)deleteUser:(NSString *)user membershipObjectsUsingClient:(nullable PubNub *)client; + +/** + * @brief Remove local cache of user Object which has been created during test case run. + * + * @param user Unique identifier of user which should be removed from local cache. + */ +- (void)deleteCachedUser:(NSString *)user; + +/** + * @brief Delete user objects associated with passed list of identifiers. + * + * @param users List of unique user object identifiers which should be removed. + * @param client \b PubNub client which should be used to manage user objects. Will use + * \c self.client if passed \c nil. + */ +- (void)deleteUsers:(NSArray *)users usingClient:(nullable PubNub *)client; + +/** + * @brief Delete all user Objects which has been created during test case run. + * + * @param client \b PubNub client which should be used to manage user objects. Will use + * \c self.client if passed \c nil. + */ +- (void)deleteUserObjectsUsingClient:(nullable PubNub *)client; + +/** + * @brief Create set of random space objects. + * + * @param objectsCount How many space objects should be created. + * @param client \b PubNub client which should be used to manage space objects. Will use + * \c self.client if passed \c nil. + * + * @return List of created space objects. + */ +- (NSArray *)createObjectForSpaces:(NSUInteger)objectsCount + usingClient:(nullable PubNub *)client; + +/** + * @brief Use Objects API to create single space object with name used to create identifier and + * custom data. + * + * @param name Name which should be associated with new space object entry and used to create unique + * identifier. + * @param client \b PubNub client which should be used to manage space objects. Will use + * \c self.client if passed \c nil. + * + * @return Created space object. + */ +- (PNSpace *)createObjectForSpaceWithName:(NSString *)name usingClient:(nullable PubNub *)client; + +/** + * @brief Use Objects API to create set of space objects using provided names to create identifier + * and custom data. + * + * @param names Names which should be associated with new space objects entries and used to create + * unique identifier. + * @param client \b PubNub client which should be used to manage space objects. Will use + * \c self.client if passed \c nil. + * + * @return List of created space objects. + */ +- (NSArray *)createObjectForSpacesWithNames:(NSArray *)names + usingClient:(nullable PubNub *)client; + +/** + * @brief Ensure that specified number of space objects created for current publish / subscribe + * keys. + * + * @param count Expected number of space objects. + * @param client \b PubNub client which should be used to audit space objects. Will use + * \c self.client if passed \c nil. + */ +- (void)verifySpacesCountShouldEqualTo:(NSUInteger)count usingClient:(nullable PubNub *)client; + +/** + * @brief Add set of user objects as members to each of passed space objects. + * + * @param members List of user objects which should be added to each space entry. + * @param spaces List of spaces to which set of \c members should be added. + * @param customs Custom data which should be associated with created membership. + * @param client \b PubNub client which should be used to manage membership objects. Will use + * \c self.client if passed \c nil. + * + * @return List of created spaces member objects. + */ +- (NSArray *)addMembers:(NSArray *)members + toSpaces:(NSArray *)spaces + withCustoms:(nullable NSArray *)customs + usingClient:(nullable PubNub *)client; + +/** + * @brief Add set of user objects as members to each of passed space objects. + * + * @param members List of user objects which should be added to each space entry. + * @param spaces List of spaces to which set of \c members should be added. + * @param customs Custom data which should be associated with created membership. + * @param shouldIncludeUserInformation Whether user information should be added to response. + * @param client \b PubNub client which should be used to manage membership objects. Will use + * \c self.client if passed \c nil. + * + * @return List of created spaces member objects. + */ +- (NSArray *)addMembers:(NSArray *)members + toSpaces:(NSArray *)spaces + withCustoms:(nullable NSArray *)customs + userInformation:(BOOL)shouldIncludeUserInformation + usingClient:(nullable PubNub *)client; + +/** + * @brief Ensure that specified \c space has exact number of members. + * + * @param space Unique space identifier which should be used with objects API to audit members. + * @param count Expected number of space members. + * @param client \b PubNub client which should be used to audit space objects. Will use + * \c self.client if passed \c nil. + */ +- (void)verifySpaceMembersCount:(NSString *)space + shouldEqualTo:(NSUInteger)count + usingClient:(nullable PubNub *)client; + +/** + * @brief Remove local cache of space member Object which has been created during test case run. + * + * @param space Unique identifier of space for which member objects should be removed from local + * cache. + * @param user Unique identifier of user which should be removed from \c space members list. + */ +- (void)deleteSpace:(NSString *)space cachedMemberForUser:(NSString *)user; + +/** + * @brief Remove all spaces members Objects which has been created during test case run. + * + * @param spaces List of unique identifier of space for which members objects should be removed. + * @param client \b PubNub client which should be used to manage user objects. Will use + * \c self.client if passed \c nil. + */ +- (void)deleteSpaces:(NSArray *)spaces membersObjectsUsingClient:(nullable PubNub *)client; + +/** + * @brief Remove list of space member Objects which has been created during test case run. + * + * @param space Unique identifier of space for which member objects should be removed. + * @param members List of member Objects which should be removed from \c space. + * @param client \b PubNub client which should be used to manage space objects. Will use + * \c self.client if passed \c nil. + */ +- (void)deleteSpace:(NSString *)space + memberObjects:(NSArray *)members + usingClient:(nullable PubNub *)client; + +/** + * @brief Remove all space members Objects which has been created during test case run. + * + * @param space Unique space identifier for which members should be removed. + * @param client \b PubNub client which should be used to manage space objects. Will use + * \c self.client if passed \c nil. + */ +- (void)deleteSpace:(NSString *)space membersObjectsUsingClient:(nullable PubNub *)client; + +/** + * @brief Remove local cache of space Object which has been created during test case run. + * + * @param space Unique identifier of space which should be removed from local cache. + */ +- (void)deleteCachedSpace:(NSString *)space; + +/** + * @brief Delete space objects associated with passed list of identifiers. + * + * @param spaces List of unique space object identifiers which should be removed. + * @param client \b PubNub client which should be used to manage space objects. Will use + * \c self.client if passed \c nil. + */ +- (void)deleteSpaces:(NSArray *)spaces usingClient:(nullable PubNub *)client; + +/** + * @brief Delete all space Objects which has been created during test case run. + * + * @param client \b PubNub client which should be used to manage space objects. Will use + * \c self.client if passed \c nil. + */ +- (void)deleteSpaceObjectsUsingClient:(nullable PubNub *)client; + + +#pragma mark - Mocking + +/** + * @brief Check whether passed \c object has been mocked before or not. + * + * @param object Object which should be checked on whether it has been mocked or not. + * + * @return Whether mocked \c object passed or not. + */ +- (BOOL)isObjectMocked:(id)object; + +/** + * @brief Create mock object for class. + * + * @param object Reference on object for which mock should be created (class or it's instance). + * + * @return Object mock. + */ +- (id)mockForObject:(id)object; + + +#pragma mark - Listeners + +/** + * @brief Add block which will be called for each client status change. + * + * @param client \b PubNub client for which state should be tracked. + * @param handler Block which should be called each client's status change. + */ +- (void)addStatusHandlerForClient:(PubNub *)client withBlock:(PNTClientDidReceiveStatusHandler)handler; + +/** + * @brief Add block which will be called for each received message. + * + * @param client \b PubNub client for which messages should be tracked. + * @param handler Block which should be called each received message. + */ +- (void)addMessageHandlerForClient:(PubNub *)client withBlock:(PNTClientDidReceiveMessageHandler)handler; + +/** + * @brief Add block which will be called for each received signal. + * + * @param client \b PubNub client for which signal should be tracked. + * @param handler Block which should be called each received signal. + */ +- (void)addSignalHandlerForClient:(PubNub *)client withBlock:(PNTClientDidReceiveSignalHandler)handler; + +/** + * @brief Add block which will be called for each received presence change. + * + * @param client \b PubNub client for which presence change should be tracked. + * @param handler Block which should be called each presence change. + */ +- (void)addPresenceHandlerForClient:(PubNub *)client withBlock:(PNTClientDidReceivePresenceEventHandler)handler; + +/** + * @brief Add block which will be called for each received \c user event. + * + * @param client \b PubNub client for which \c user events should be tracked. + * @param handler Block which should be called each \c user event. + */ +- (void)addUserHandlerForClient:(PubNub *)client withBlock:(PNTClientDidReceiveUserEventHandler)handler; + +/** + * @brief Add block which will be called for each received \c space event. + * + * @param client \b PubNub client for which \c space events should be tracked. + * @param handler Block which should be called each \c space event. + */ +- (void)addSpaceHandlerForClient:(PubNub *)client withBlock:(PNTClientDidReceiveSpaceEventHandler)handler; + +/** + * @brief Add block which will be called for each received \c membership event. + * + * @param client \b PubNub client for which \c membership events should be tracked. + * @param handler Block which should be called each \c membership event. + */ +- (void)addMembershipHandlerForClient:(PubNub *)client withBlock:(PNTClientDidReceiveMembershipEventHandler)handler; + +/** + * @brief Add block which will be called for each received \c action event. + * + * @param client \b PubNub client for which \c action events should be tracked. + * @param handler Block which should be called each \c action event. + */ +- (void)addActionHandlerForClient:(PubNub *)client withBlock:(PNTClientDidReceiveMessageActionHandler)handler; + +/** + * @brief Remove all handler for specified \c client. + * + * @param client \b PubNub client for which listeners should be removed. + */ +- (void)removeAllHandlersForClient:(PubNub *)client; + + +#pragma mark - Handlers + +/** + * @brief Wait for recorded (OCMExpect) stub to be called within specified interval. Default + * interval for success test operation will be used. + * + * @param object Mock from object on which invocation call is expected. + * @param invocation Invocation which is expected to be called. + * @param initialBlock GCD block which contain initialization of code required to invoke tested + * code. + */ +- (void)waitForObject:(id)object + recordedInvocationCall:(id)invocation + afterBlock:(nullable void(^)(void))initialBlock; + +/** + * @brief Wait for recorded (OCMExpect) stub to be called within specified interval. + * + * @param object Mock from object on which invocation call is expected. + * @param invocation Invocation which is expected to be called. + * @param interval Number of seconds which test case should wait before it's continuation. + * @param initialBlock GCD block which contain initialization of code required to invoke tested + * code. + */ +- (void)waitForObject:(id)object + recordedInvocationCall:(id)invocation + withinInterval:(NSTimeInterval)interval + afterBlock:(nullable void(^)(void))initialBlock; + +/** + * @brief Wait for code from \c codeBlock to call completion handler in specified amount of time. + * + * @param interval Number of seconds which test case should wait before it's continuation. + * @param codeBlock GCD block which contain tested async code. Block pass completion handler which + * should be called by tested code. + */ +- (void)waitToCompleteIn:(NSTimeInterval)interval + codeBlock:(void(^)(dispatch_block_t handler))codeBlock; + +/** + * @brief Wait for code from \c codeBlock to call completion handler in specified amount of time. + * + * @param interval Number of seconds which test case should wait before it's continuation. + * @param codeBlock GCD block which contain tested async code. Block pass completion handler which + * should be called by tested code. + * @param initialBlock GCD block which contain initialization of code which passed in \c codeBlock. + */ +- (void)waitToCompleteIn:(NSTimeInterval)interval + codeBlock:(void(^)(dispatch_block_t handler))codeBlock + afterBlock:(nullable void(^)(void))initialBlock; + +/** + * @brief Expect recorded (OCMExpect) stub not to be called within specified interval. Default + * interval for failed test operation will be used. + * + * @param object Mock from object on which invocation call is expected. + * @param invocation Invocation which is expected to be called. + * @param initialBlock GCD block which contain initialization of code required to invoke tested + * code. + */ +- (void)waitForObject:(id)object + recordedInvocationNotCall:(id)invocation + afterBlock:(nullable void(^)(void))initialBlock; + +/** + * @brief Expect recorded (OCMExpect) stub not to be called within specified interval. + * + * @param object Mock from object on which invocation call is expected. + * @param invocation Invocation which is expected to be called. + * @param interval Number of seconds which test case should wait before it's continuation. + * @param initialBlock GCD block which contain initialization of code required to invoke tested + * code. + */ +- (void)waitForObject:(id)object + recordedInvocationNotCall:(id)invocation + withinInterval:(NSTimeInterval)interval + afterBlock:(nullable void(^)(void))initialBlock; + +/** + * @brief Wait for code from \c codeBlock to not call completion handler in specified amount of + * time. + * + * @param interval Number of seconds which test case should wait before it's continuation. + * @param codeBlock GCD block which contain tested async code. Block pass completion handler which + * should be called by tested code. + */ +- (void)waitToNotCompleteIn:(NSTimeInterval)interval + codeBlock:(void(^)(dispatch_block_t handler))codeBlock; + +/** + * @brief Wait for code from \c codeBlock to not call completion handler in specified amount of time. + * + * @param interval Number of seconds which test case should wait before it's continuation. + * @param codeBlock GCD block which contain tested async code. Block pass completion handler which + * should be called by tested code. + * @param initialBlock GCD block which contain initialization of code which passed in \c codeBlock. + */ +- (void)waitToNotCompleteIn:(NSTimeInterval)interval + codeBlock:(void(^)(dispatch_block_t handler))codeBlock + afterBlock:(nullable void(^)(void))initialBlock; + +/** + * @brief Pause test execution to wait for asynchronous task to complete. + * + * @discussion Useful in case of asynchronous block execution and timer based events. This method + * allow to pause test and wait for specified number of \c seconds. + * + * @param taskName Name of task for which we are waiting to complete. + * @param seconds Number of seconds for which test execution will be postponed to give tested code + * time to perform asynchronous actions. + * + * @return Reference on expectation object which can be used for fulfilment. + */ +- (XCTestExpectation *)waitTask:(NSString *)taskName completionFor:(NSTimeInterval)seconds; + + +#pragma mark - Helpers + +/** + * @brief If tests has modified cassette it can't be used during cron test tasks which use real + * service response and should pass w/o actual code run. + * + * @return \c YES in case if test should be skipped. + */ +- (BOOL)shouldSkipTestWithManuallyModifiedMockedResponse; + +/** + * @brief Generate randomized versions of provided values which will persist during test case. + * + * @param values List of 'normal' values which should be randomized. + * + * @return List of values with randomized portions. + */ +- (NSArray *)randomizedValuesWithValues:(NSArray *)values; + +/** + * @brief Generate randomized versions of provided channel group names which will persist during + * test case. + * + * @param channelGroups List of 'normal' channel group names which should be randomized. + * + * @return List of channel groups with randomized portions. + */ +- (NSArray *)channelGroupsWithNames:(NSArray *)channelGroups; + +/** + * @brief Generate randomized version of provided channel group name which will persist during test + * case. + * + * @param channelGroup 'Normal' channel group name which should be randomized. + * + * @return Channel group with randomized portion. + */ +- (NSString *)channelGroupWithName:(NSString *)channelGroup; + +/** + * @brief Generate randomized versions of provided channel names which will persist during test + * case. + * + * @param channels List of 'normal' channel names which should be randomized. + * + * @return List of channels with randomized portions. + */ +- (NSArray *)channelsWithNames:(NSArray *)channels; + +/** + * @brief Generate randomized version of provided channel name which will persist during test case. + * + * @param channel 'Normal' channel name which should be randomized. + * + * @return Channel with randomized portion. + */ +- (NSString *)channelWithName:(NSString *)channel; + +/** + * @brief Generate randomized version of provided user identifier which will persist during test + * case. + * + * @param user 'Normal' user identifier which should be randomized. + * + * @return User identifier with randomized portion. + */ +- (NSString *)uuidForUser:(NSString *)user; + +/** + * @brief Generate randomized version of provided user authentication token which will persist + * during test case. + * + * @param auth 'Normal' user authentication which should be randomized. + * + * @return User authentication with randomized portion. + */ +- (NSString *)authForUser:(NSString *)auth; + +/** + * @brief Retrieve object from invocation at specified index and store it till test case completion. + * + * @param invocation Invocation which passed by OCMock from which object should be retrieved. + * @param index Index of parameter in method signature from which value should be retrieved (offset + * for self and selector applied internally). + * + * @return Object instance passed to method under specified index. + */ +- (id)objectForInvocation:(NSInvocation *)invocation argumentAtIndex:(NSUInteger)index; + +#pragma mark - + + +@end + +NS_ASSUME_NONNULL_END diff --git a/Tests/Tests/Helpers/PNRecordableTestCase.m b/Tests/Tests/Helpers/PNRecordableTestCase.m new file mode 100644 index 000000000..95b0e4e8c --- /dev/null +++ b/Tests/Tests/Helpers/PNRecordableTestCase.m @@ -0,0 +1,2262 @@ +/** + * @author Serhii Mamontov + * @copyright © 2010-2019 PubNub, Inc. + */ +#import +#import "PNRecordableTestCase.h" +#import "NSInvocation+PNTest.h" +#import "NSString+PNTest.h" +#import + + +#pragma mark Defines + +#define WRITING_CASSETTES 0 +#define PUBNUB_LOGGER_ENABLED NO + + +#pragma mark - Types and structures + +/** + * @brief Type used to describe block for any PubNub callback. + * + * @param client \b PubNub client which used delegate callback. + * @param data Data which has been passed with callback. + * @param shouldRemove Whether handling block should be removed after call or not. + */ +typedef void (^PNTClientCallbackHandler)(PubNub *client, id data, BOOL *shouldRemove); + + +#pragma mark - Protected interface declaration + +NS_ASSUME_NONNULL_BEGIN + +@interface PNRecordableTestCase () + + +#pragma mark - Information + +/** + * @brief List of user membership objects created during current test case. + */ +@property (nonatomic, strong) NSMutableDictionary *> *userMembershipObjects; + +/** + * @brief List of space members objects created during current test case. + */ +@property (nonatomic, strong) NSMutableDictionary *> *spaceMembersObjects; + +/** + * @brief List of names which can be used as space object identifiers. + */ +@property (class, nonatomic, readonly, strong) NSArray *sharedSpaceNamesList; + +/** + * @brief List of names which can be used as \b PubNub client identifiers or user objects. + */ +@property (class, nonatomic, readonly, strong) NSArray *sharedNamesList; + +/** + * @brief List of generated and used user-provided values. + */ +@property (nonatomic, strong) NSMutableDictionary *randomizedUserProvidedValues; + +/** + * @brief List of objects which has been pulled out from method invocation arguments. + */ +@property (class, nonatomic, readonly, strong) NSMutableArray *invocationObjects; + +/** + * @brief List of generated and used channel groups. + */ +@property (nonatomic, strong) NSMutableDictionary *randomizedChannelGroups; + +/** + * @brief List of generated and used channels. + */ +@property (nonatomic, strong) NSMutableDictionary *randomizedChannels; + +/** + * @brief Dictionary where original user authentication mapped to their randomized versions. + */ +@property (nonatomic, strong) NSMutableDictionary *randomizedAuths; + +/** + * @brief Dictionary where original user identifiers mapped to their randomized versions. + */ +@property (nonatomic, strong) NSMutableDictionary *randomizedUUIDs; + +/** + * @brief List of configured for test case \b PubNub client clone instances. + */ +@property (nonatomic, strong) NSMutableDictionary *clientClones; + +/** + * @brief List of configured for test case \b PubNub client instances. + */ +@property (nonatomic, strong) NSMutableDictionary *clients; + +/** + * @brief Resource access serialization queue. + */ +@property (nonatomic, nullable, strong) dispatch_queue_t resourceAccessQueue; + +/** + * @brief For how long negative test should wait till async operation completion. + */ +@property (nonatomic, assign) NSTimeInterval falseTestCompletionDelay; + +/** + * @brief List of space objects created during current test case. + */ +@property (nonatomic, strong) NSMutableArray *spaceObjects; + +/** + * @brief List of user objects created during current test case. + */ +@property (nonatomic, strong) NSMutableArray *userObjects; + +/** + * @brief PubNub handlers list. + */ +@property (nonatomic, nullable, strong) NSMutableDictionary *> *> *pubNubHandlers; + +/** + * @brief For how long positive test should wait till async operation completion. + */ +@property (nonatomic, assign) NSTimeInterval testCompletionDelay; + +/** + * @brief Previously created mocking objects. + */ +@property (nonatomic, strong) NSMutableArray *instanceMocks; + +/** + * @brief Previously created mocking objects. + */ +@property (nonatomic, strong) NSMutableArray *classMocks; + +/** + * @brief Currently used \b PubNub client instance. + * + * @discussion Instance created lazily and take into account whether mocking enabled at this moment + * or not. + * As configuration instance will use \c defaultConfiguration and options provided by available + * configuration callbacks. + * + * @note This client should be used only for unit tests, because they don't need to use multi-user + * environment. + */ +@property (nonatomic, nullable, strong) PubNub *client; + +/** + * @brief \b PubNub PAM enabled subscribe key which should be used for client configuration. + */ +@property (nonatomic, copy) NSString *pamSubscribeKey; + +/** + * @brief \b PubNub PAM enabled publish key which should be used for client configuration. + */ +@property (nonatomic, copy) NSString *pamPublishKey; + +/** + * @brief \b PubNub subscribe key which should be used for client configuration. + */ +@property (nonatomic, copy) NSString *subscribeKey; + +/** + * @brief \b PubNub publish key which should be used for client configuration. + */ +@property (nonatomic, copy) NSString *publishKey; + + +#pragma mark - Objects + +/** + * @brief Remove list of user's membership Objects which has been created during test case run. + * + * @param user Unique identifier of user for which membership objects should be removed. + * @param spaces List of space identifiers with which \c user's membership should be removed. + * @param client \b PubNub client which should be used to manage user objects. Will use + * \c self.client if passed \c nil. + */ +- (void)deleteUser:(NSString *)user membershipForSpaces:(NSArray *)spaces usingClient:(nullable PubNub *)client; + +/** + * @brief Remove list of space member Objects which has been created during test case run. + * + * @param space Unique identifier of space for which member objects should be removed. + * @param users List of user identifiers which should be removed from \c space's members list. + * @param client \b PubNub client which should be used to manage space objects. Will use + * \c self.client if passed \c nil. + */ +- (void)deleteSpace:(NSString *)space members:(NSArray *)users usingClient:(nullable PubNub *)client; + + +#pragma mark - Listeners + +/** + * @brief Add block which will be called for callbacks from \c client. + * + * @param type One of known event listener callback types: \c status, \c message or \c presence. + * @param client \b PubNub client for which block should be added. + * @param handler Block which should be called for specified callback \c type. + */ +- (void)addHandlerOfType:(NSString *)type forClient:(PubNub *)client withBlock:(PNTClientCallbackHandler)handler; + +/** + * @brief Removed list of blocks for callbacks from \c client. + * + * @param handlers List of handler blocks which should be removed for specified callback \c type. + * @param type One of known event listener callback types: \c status, \c message or \c presence. + * @param client \b PubNub client for which blocks should be removed. + */ +- (void)removeHandlers:(NSArray *)handlers ofType:(NSString *)type forClient:(PubNub *)client; + +/** + * @brief Receive block which will be called for callbacks from \c client. + * + * @param type One of known event listener callback types: \c status, \c message or \c presence. + * @param client \b PubNub client for which block should be retrieved for specified \c type. + * + * @return List of callback handler blocks which can be called. + */ +- (nullable NSArray *)handlersOfType:(NSString *)type forClient:(PubNub *)client; + + +#pragma mark - Handlers + +/** + * @brief Test recorded (OCMExpect) stub call within specified interval. + * + * @param object Mock from object on which invocation call is expected. + * @param invocation Invocation which is expected to be called. + * @param shouldCall Whether tested \c invocation call or reject. + * @param interval Number of seconds which test case should wait before it's continuation. + * @param initialBlock GCD block which contain initialization of code required to invoke tested + * code. + */ +- (void)waitForObject:(id)object + recordedInvocation:(id)invocation + call:(BOOL)shouldCall + withinInterval:(NSTimeInterval)interval + afterBlock:(void(^)(void))initialBlock; + + +#pragma mark - Misc + +/** + * @brief Generate randomized version of provided string which will persist during test case. + * + * @param string 'Normal' string value which should be randomized. + * + * @return String with randomized portion. + */ +- (NSString *)randomizedValueFrom:(NSString *)string; + +/** + * @brief Store randomized value in specified \c dictionary using \c string as key. + * + * @param string 'Normal' string value which should be randomized. + * @param dictionary Dictionary inside of which randomized value should be stored. + */ +- (void)storeRandomizedValueFrom:(NSString *)string inDictionary:(NSMutableDictionary *)dictionary; + +/** + * @brief Load content of bundled 'tests-configuration.json' file and get publish / subscribe keys + * from it. + */ +- (void)loadTestsConfiguration; + +#pragma mark - + + +@end + +NS_ASSUME_NONNULL_END + + +#pragma mark - Interface implementation + +@implementation PNRecordableTestCase + + +#pragma mark - Information + ++ (NSArray *)sharedSpaceNamesList { + static NSArray *_sharedSpaceNamesList; + static dispatch_once_t onceToken; + + dispatch_once(&onceToken, ^{ + _sharedSpaceNamesList = @[ + @"Chanted", @"Chipper", @"Solstice", @"Midnight", @"Wynn", @"Snowflake", + @"Eos", @"Elmas", @"Sapphire", @"Auris", @"Happy", @"Mystic", + @"Moriba", @"Sunny", @"Sigil", @"Euros", @"Zane", @"Majesty", + @"Sparkles", @"Twilight", @"Unity", @"Grace", @"Giddy", @"Iris", + @"Mawu", @"Meara", @"Mystery", @"Kaisa", @"Willow", @"Silvesse", + @"Monterya", @"Robin", @"Jaden", @"Sable", @"Rune", @"Roshan", + @"Jolly", @"Baine", @"Sterling", @"Chant" + ]; + }); + + return _sharedSpaceNamesList; +} + ++ (NSArray *)sharedNamesList { + static NSArray *_sharedNamesList; + static dispatch_once_t onceToken; + + dispatch_once(&onceToken, ^{ + _sharedNamesList = @[ + @"Serhii", @"Kim", @"Earline", @"Glen", @"Nicolas", @"Shannon", + @"Dena", @"Donnell", @"Juanita", @"Brock", @"Abdul", @"Timothy", + @"Rex", @"Wilfredo", @"Warner", @"Maribel", @"Gina", @"Effie", + @"Leroy", @"Horace", @"Mariana", @"Connie", @"Garland", @"Clara", + @"Jeannette", @"Nigel", @"Jeanne", @"Dale", @"Alyce", @"Judson", + @"Elijah", @"Rachelle", @"Howard", @"Leopoldo", @"Adrienne", @"Naomi", + @"Jamie", @"Tracy", @"Austin", @"Alfredo", @"Trevor" + ]; + }); + + return _sharedNamesList; +} + ++ (NSMutableArray *)invocationObjects { + static NSMutableArray *_invocationObjects; + static dispatch_once_t onceToken; + + dispatch_once(&onceToken, ^{ + _invocationObjects = [NSMutableArray new]; + }); + + return _invocationObjects; +} + + +#pragma mark - Configuration + +- (void)setUp { + [super setUp]; + + [self loadTestsConfiguration]; + + self.resourceAccessQueue = dispatch_queue_create("test-case", DISPATCH_QUEUE_SERIAL); + self.usesMockedObjects = [self hasMockedObjectsInTestCaseWithName:self.name]; + self.testCompletionDelay = 15.f; + self.falseTestCompletionDelay = YHVVCR.cassette.isNewCassette ? self.testCompletionDelay : 0.25f; + self.randomizedUserProvidedValues = [NSMutableDictionary new]; + self.randomizedChannelGroups = [NSMutableDictionary new]; + self.userMembershipObjects = [NSMutableDictionary new]; + self.spaceMembersObjects = [NSMutableDictionary new]; + self.randomizedChannels = [NSMutableDictionary new]; + self.randomizedAuths = [NSMutableDictionary new]; + self.randomizedUUIDs = [NSMutableDictionary new]; + self.pubNubHandlers = [NSMutableDictionary new]; + self.instanceMocks = [NSMutableArray new]; + self.clientClones = [NSMutableDictionary new]; + self.spaceObjects = [NSMutableArray new]; + self.userObjects = [NSMutableArray new]; + self.classMocks = [NSMutableArray new]; + self.clients = [NSMutableDictionary new]; +} + +- (void)tearDown { +#if WRITING_CASSETTES + BOOL shouldWaitToRecordResponses = [self shouldSetupVCR] && YHVVCR.cassette.isNewCassette; +#else + BOOL shouldWaitToRecordResponses = NO; +#endif // WRITING_CASSETTES + BOOL shouldPostponeTearDown = self.clients.count || self.clientClones.count; + +#if WRITING_CASSETTES + if (shouldPostponeTearDown && shouldWaitToRecordResponses) { + NSLog(@"\nTest completed. Record final requests from clients.\n"); + } else if (!shouldWaitToRecordResponses) { + NSLog(@"\nTest completed.\n"); + } +#endif // WRITING_CASSETTES + + if ([self shouldSetupVCR] && shouldPostponeTearDown) { + void(^unsubscribePubNubClients)(NSArray *) = ^(NSArray *clients) { + for (PubNub *client in clients) { + if (![client channels].count && ![client presenceChannels].count && ![client channelGroups].count) { + [client removeListener:self]; + + continue; + } + + PNWeakify(self); + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [client unsubscribeFromAllWithCompletion:^(PNStatus *status) { + PNStrongify(self); + [client removeListener:self]; + handler(); + }]; + }]; + } + }; + + unsubscribePubNubClients(self.clientClones.allValues); + unsubscribePubNubClients(self.clients.allValues); + } + + dispatch_sync(self.resourceAccessQueue, ^{ + [self.pubNubHandlers removeAllObjects]; + }); + + [self.spaceObjects removeAllObjects]; + [self.userObjects removeAllObjects]; + + [self.clientClones removeAllObjects]; + [self.clients removeAllObjects]; + [self.client removeListener:self]; + + self.client = nil; + + if (self.instanceMocks.count || self.classMocks.count) { + [self.instanceMocks makeObjectsPerformSelector:@selector(stopMocking)]; + [self.classMocks makeObjectsPerformSelector:@selector(stopMocking)]; + } + + [self.instanceMocks removeAllObjects]; + [self.classMocks removeAllObjects]; + + if (shouldPostponeTearDown) { + NSTimeInterval waitDelay = shouldWaitToRecordResponses ? 0.5f : 0.005f; + + if (![self shouldSetupVCR]) { + waitDelay = 0.1f; + } + + [self waitTask:@"clientsDestroyCompletion" completionFor:waitDelay]; + } + + [super tearDown]; +} + + +#pragma mark - Test configuration + +- (BOOL)usePAMEnabledKeysForTestCaseWithName:(NSString *)name { + return NO; +} + +- (NSString *)pubNubUUIDForTestCaseWithName:(NSString *)name { + NSString *uuid = nil; + + for (uuid in [self class].sharedNamesList) { + if (![self pubNubForUser:uuid]) { + break; + } + } + + return uuid; +} + +- (NSString *)pubNubAuthForTestCaseWithName:(NSString *)name { + return nil; +} + +- (BOOL)hasMockedObjectsInTestCaseWithName:(NSString *)name { + return NO; +} + +- (PNConfiguration *)configurationForTestCaseWithName:(NSString *)name { + return [self defaultConfiguration]; +} + + +#pragma mark - VCR configuration + +- (BOOL)shouldSetupVCR { + NSString *bundleIdentifier = [NSBundle bundleForClass:[self class]].bundleIdentifier; + BOOL shouldSetupVCR = [bundleIdentifier rangeOfString:@"mocked-integration"].location != NSNotFound; + + if ([self.name rangeOfString:@"BadRequestStatus"].location != NSNotFound) { + shouldSetupVCR = NO; + } + + return shouldSetupVCR; +} + +- (void)updateVCRConfigurationFromDefaultConfiguration:(YHVConfiguration *)configuration { +#if WRITING_CASSETTES + NSString *cassettesPath = @"/Tests/Support Files/Fixtures"; + NSString *cassetteName = [NSStringFromClass([self class]) stringByAppendingPathExtension:@"bundle"]; + configuration.cassettesPath = [cassettesPath stringByAppendingPathComponent:cassetteName]; +#endif // WRITING_CASSETTES + + if (![configuration.matchers containsObject:YHVMatcher.body]) { + NSMutableArray *matchers = [configuration.matchers mutableCopy]; + [matchers addObject:YHVMatcher.body]; + + configuration.matchers = matchers; + } + + configuration.pathFilter = ^NSString *(NSURLRequest *request) { + NSMutableArray *pathComponents = [[request.URL.path componentsSeparatedByString:@"/"] mutableCopy]; + + for (NSString *component in [pathComponents copy]) { + NSUInteger componentIdx = [pathComponents indexOfObject:component]; + BOOL isChannelsOrGroupsComponent = NO; + id replacement = component; + + for (NSString *key in @[self.publishKey, self.subscribeKey, self.pamPublishKey, self.pamSubscribeKey]) { + if ([replacement rangeOfString:key].location != NSNotFound) { + NSArray *subComponents = [replacement componentsSeparatedByString:key]; + replacement = [subComponents componentsJoinedByString:@"demo"]; + } + } + + for (NSString *uuid in [self.randomizedUUIDs copy]) { + NSString *randomUUID = self.randomizedUUIDs[uuid]; + + if ([replacement rangeOfString:randomUUID].location != NSNotFound) { + NSArray *subComponents = [replacement componentsSeparatedByString:randomUUID]; + replacement = [subComponents componentsJoinedByString:uuid]; + } + } + + for (NSString *userProvidedValue in [self.randomizedUserProvidedValues copy]) { + NSString *randomUserProvidedValue = self.randomizedUserProvidedValues[userProvidedValue]; + + if ([replacement rangeOfString:randomUserProvidedValue].location != NSNotFound) { + NSArray *subComponents = [replacement componentsSeparatedByString:randomUserProvidedValue]; + replacement = [subComponents componentsJoinedByString:userProvidedValue]; + } + } + + for (NSString *channelGroup in [self.randomizedChannelGroups copy]) { + NSString *randomChannelGroup = self.randomizedChannelGroups[channelGroup]; + + if ([replacement rangeOfString:randomChannelGroup].location != NSNotFound) { + NSArray *subComponents = [replacement componentsSeparatedByString:randomChannelGroup]; + replacement = [subComponents componentsJoinedByString:channelGroup]; + isChannelsOrGroupsComponent=YES; + } + } + + for (NSString *channel in [self.randomizedChannels copy]) { + NSString *randomChannel = self.randomizedChannels[channel]; + + if ([replacement rangeOfString:randomChannel].location != NSNotFound) { + NSArray *subComponents = [replacement componentsSeparatedByString:randomChannel]; + replacement = [subComponents componentsJoinedByString:channel]; + isChannelsOrGroupsComponent=YES; + } + } + + if (isChannelsOrGroupsComponent) { + NSArray *channelsGroupsList = [replacement componentsSeparatedByString:@","]; + SEL sortSelector = @selector(caseInsensitiveCompare:); + channelsGroupsList = [channelsGroupsList sortedArrayUsingSelector:sortSelector]; + replacement=[channelsGroupsList componentsJoinedByString:@","]; + } + + pathComponents[componentIdx] = replacement; + } + + return [pathComponents componentsJoinedByString:@"/"]; + }; + + configuration.queryParametersFilter = ^(NSURLRequest *request, NSMutableDictionary *queryParameters) { + for (NSString *parameter in queryParameters.allKeys) { + __block id value = queryParameters[parameter]; + BOOL isChannelsOrGroupsComponent = NO; + BOOL valueSerializedToString = NO; + + if ([value isKindOfClass:[NSDictionary class]] || [value isKindOfClass:[NSArray class]]) { + NSData *valueData = [NSJSONSerialization dataWithJSONObject:value options:(NSJSONWritingOptions)0 error:nil]; + value = [[NSString alloc] initWithData:valueData encoding:NSUTF8StringEncoding]; + valueSerializedToString = YES; + } + + if ([parameter hasPrefix:@"l_"] || [parameter isEqualToString:@"deviceid"] || + [parameter isEqualToString:@"instanceid"] || [parameter isEqualToString:@"requestid"]) { + + [queryParameters removeObjectForKey:parameter]; + continue; + } + + if ([parameter isEqualToString:@"pnsdk"]) { + value = @"PubNub-ObjC-iOS/4.x.x"; + } + + if ([parameter isEqualToString:@"seqn"]) { + value = @"1"; + } + + for (NSString *key in @[self.publishKey, self.subscribeKey, self.pamPublishKey, self.pamSubscribeKey]) { + if (![value isKindOfClass:[NSString class]]) { + continue; + } + + value = [[value componentsSeparatedByString:key] componentsJoinedByString:@"demo"]; + } + + for (NSString *userProvidedValue in [self.randomizedUserProvidedValues copy]) { + NSString *randomUserProvidedValue = self.randomizedUserProvidedValues[userProvidedValue]; + + if (![value isKindOfClass:[NSString class]]) { + continue; + } + + if ([value rangeOfString:randomUserProvidedValue].location != NSNotFound) { + value = [[value componentsSeparatedByString:randomUserProvidedValue] + componentsJoinedByString:userProvidedValue]; + } + } + + for (NSString *channelGroup in [self.randomizedChannelGroups copy]) { + NSString *randomChannelGroup = self.randomizedChannelGroups[channelGroup]; + + if (![value isKindOfClass:[NSString class]]) { + continue; + } + + if ([value rangeOfString:randomChannelGroup].location != NSNotFound) { + value = [[value componentsSeparatedByString:randomChannelGroup] + componentsJoinedByString:channelGroup]; + + isChannelsOrGroupsComponent = YES; + } + } + + for (NSString *channel in [self.randomizedChannels copy]) { + NSString *randomChannel = self.randomizedChannels[channel]; + + if (![value isKindOfClass:[NSString class]]) { + continue; + } + + if ([value rangeOfString:randomChannel].location != NSNotFound) { + value = [[value componentsSeparatedByString:randomChannel] + componentsJoinedByString:channel]; + + isChannelsOrGroupsComponent = YES; + } + } + + if (isChannelsOrGroupsComponent) { + NSArray *channelsGroupsList = [value componentsSeparatedByString:@","]; + SEL sortSelector = @selector(caseInsensitiveCompare:); + channelsGroupsList = [channelsGroupsList sortedArrayUsingSelector:sortSelector]; + value=[channelsGroupsList componentsJoinedByString:@","]; + } + + + if ([parameter isEqualToString:@"uuid"] || [parameter isEqualToString:@"meta"] || + [parameter isEqualToString:@"filter-expr"]) { + for (NSString *uuid in [self.randomizedUUIDs copy]) { + NSString *randomUUID = self.randomizedUUIDs[uuid]; + + if (![value isKindOfClass:[NSString class]]) { + continue; + } + + if ([value rangeOfString:randomUUID].location != NSNotFound) { + value = [[value componentsSeparatedByString:randomUUID] + componentsJoinedByString:uuid]; + } + } + } + + if ([parameter isEqualToString:@"auth"]) { + for (NSString *auth in [self.randomizedAuths copy]) { + NSString *randomAuth = self.randomizedAuths[auth]; + + if (![value isKindOfClass:[NSString class]]) { + continue; + } + + if ([value rangeOfString:randomAuth].location != NSNotFound) { + value = [[value componentsSeparatedByString:randomAuth] + componentsJoinedByString:auth]; + } + } + } + + if (valueSerializedToString && [value isKindOfClass:[NSString class]]) { + NSData *valueData = [value dataUsingEncoding:NSUTF8StringEncoding]; + value = [NSJSONSerialization JSONObjectWithData:valueData options:(NSJSONReadingOptions)0 error:nil]; + } + + queryParameters[parameter] = value; + } + }; + + + YHVPostBodyFilterBlock postBodyFilter = ^NSData * (NSURLRequest *request, NSData *body) { + NSString *httpBodyString = [[NSString alloc] initWithData:body encoding:NSUTF8StringEncoding]; + + for (NSString *key in @[self.publishKey, self.subscribeKey, self.pamPublishKey, self.pamSubscribeKey]) { + NSArray *bodyComponents = [httpBodyString componentsSeparatedByString:key]; + + httpBodyString = [bodyComponents componentsJoinedByString:@"demo"]; + } + + for (NSString *uuid in [self.randomizedUUIDs copy]) { + NSString *randomUUID = self.randomizedUUIDs[uuid]; + NSArray *bodyComponents = [httpBodyString componentsSeparatedByString:randomUUID]; + + httpBodyString = [bodyComponents componentsJoinedByString:uuid]; + } + + for (NSString *userProvidedValue in [self.randomizedUserProvidedValues copy]) { + NSString *randomUserProvidedValue = self.randomizedUserProvidedValues[userProvidedValue]; + NSArray *bodyComponents = [httpBodyString componentsSeparatedByString:randomUserProvidedValue]; + + httpBodyString = [bodyComponents componentsJoinedByString:userProvidedValue]; + } + + for (NSString *channelGroup in [self.randomizedChannelGroups copy]) { + NSString *randomChannelGroup = self.randomizedChannelGroups[channelGroup]; + NSArray *bodyComponents = [httpBodyString componentsSeparatedByString:randomChannelGroup]; + + httpBodyString = [bodyComponents componentsJoinedByString:channelGroup]; + } + + for (NSString *channel in [self.randomizedChannels copy]) { + NSString *randomChannel = self.randomizedChannels[channel]; + NSArray *bodyComponents = [httpBodyString componentsSeparatedByString:randomChannel]; + + httpBodyString = [bodyComponents componentsJoinedByString:channel]; + } + + return [httpBodyString dataUsingEncoding:NSUTF8StringEncoding]; + }; + + configuration.postBodyFilter = postBodyFilter; + + configuration.responseBodyFilter = ^NSData * (NSURLRequest *request, NSHTTPURLResponse *response, NSData *data) { + if (!data.length) { + return data; + } + + return postBodyFilter(request, data); + }; +} + + +#pragma mark - Client configuration + +- (PNConfiguration *)defaultConfiguration { + NSString *subscribeKey = self.subscribeKey; + NSString *publishKey = self.publishKey; + + if ([self usePAMEnabledKeysForTestCaseWithName:self.name]) { + subscribeKey = self.pamSubscribeKey; + publishKey = self.pamPublishKey; + } + + PNConfiguration *configuration = [PNConfiguration configurationWithPublishKey:publishKey + subscribeKey:subscribeKey]; + configuration.uuid = [self uuidForUser:[self pubNubUUIDForTestCaseWithName:self.name]]; + configuration.authKey = [self pubNubAuthForTestCaseWithName:self.name]; + + return configuration; +} + +- (PubNub *)client { + if (!_client) { + PubNub *client = [self createPubNubForUser:[self pubNubUUIDForTestCaseWithName:self.name]]; + _client = !self.usesMockedObjects ? client : [self mockForObject:client]; + } + + return _client; +} + +- (PubNub *)createPubNubForUser:(NSString *)user { + PNConfiguration *configuration = [self configurationForTestCaseWithName:self.name]; + + return [self createPubNubForUser:user withConfiguration:configuration]; +} + +- (PubNub *)createPubNubForUser:(NSString *)user withConfiguration:(PNConfiguration *)configuration { + dispatch_queue_t callbackQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); + configuration.uuid = [self uuidForUser:user]; + + PubNub *client = [PubNub clientWithConfiguration:configuration callbackQueue:callbackQueue]; + client.logger.enabled = PUBNUB_LOGGER_ENABLED; + client.logger.logLevel = PUBNUB_LOGGER_ENABLED ? PNVerboseLogLevel : PNSilentLogLevel; + client.logger.writeToConsole = PUBNUB_LOGGER_ENABLED; + client.logger.writeToFile = PUBNUB_LOGGER_ENABLED; + [client addListener:self]; + + if (!self.clients[user]) { + self.clients[user] = client; + } else if (!self.clientClones[user]) { + self.clientClones[user] = client; + } else { + NSString *reason = [@"Attempt to create more than 2 instances for: " stringByAppendingString:user]; + + @throw [NSException exceptionWithName:@"PubNubSetup" reason:reason userInfo:nil]; + } + + return client; +} + +- (NSArray *)createPubNubClients:(NSUInteger)clientsCount { + NSMutableArray *clients = [NSMutableArray new]; + + for (NSUInteger userIdx = 0; userIdx < clientsCount; userIdx++) { + NSString *user = [self pubNubUUIDForTestCaseWithName:self.name]; + + [clients addObject:[self createPubNubForUser:user]]; + } + + return clients; +} + +- (void)completePubNubConfiguration:(PubNub *)client { +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wunused-variable" + NSString *uuid = client.currentConfiguration.uuid; +#pragma clang diagnostic pop +} + +- (PubNub *)pubNubForUser:(NSString *)user { + return self.clients[user]; +} + +- (PubNub *)pubNubCloneForUser:(NSString *)user { + return self.clientClones[user]; +} + + +#pragma mark - Subscription + +- (void)subscribeClient:(PubNub *)client toChannels:(NSArray *)channels withPresence:(BOOL)usePresence { + dispatch_semaphore_t semaphore = dispatch_semaphore_create(0); + __block BOOL handlerCalled = NO; + + [self addStatusHandlerForClient:client withBlock:^(PubNub *cClient, PNSubscribeStatus *status, BOOL *shouldRemove) { + if (status.operation == PNSubscribeOperation) { + NSSet *subscribedChannels = [NSSet setWithArray:status.subscribedChannels]; + + if ([[NSSet setWithArray:channels] isSubsetOfSet:subscribedChannels]) { + *shouldRemove = YES; + handlerCalled = YES; + + dispatch_semaphore_signal(semaphore); + } + } + }]; + + [client subscribeToChannels:channels withPresence:usePresence]; + dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER); + + if (!handlerCalled) { + NSString *reason = [NSString stringWithFormat:@"Unable to complete subscription to: %@", + channels]; + + @throw [NSException exceptionWithName:@"PNTestsConfigurationPubNub" reason:reason userInfo:nil]; + } +} + +- (void)subscribeClient:(PubNub *)client toChannelGroups:(NSArray *)channelGroups withPresence:(BOOL)usePresence { + dispatch_semaphore_t semaphore = dispatch_semaphore_create(0); + __block BOOL handlerCalled = NO; + + [self addStatusHandlerForClient:client withBlock:^(PubNub *cClient, PNSubscribeStatus *status, BOOL *shouldRemove) { + if (status.operation == PNSubscribeOperation) { + NSSet *subscribedChannelGroups = [NSSet setWithArray:status.subscribedChannelGroups]; + + if ([[NSSet setWithArray:channelGroups] isSubsetOfSet:subscribedChannelGroups]) { + *shouldRemove = YES; + handlerCalled = YES; + + dispatch_semaphore_signal(semaphore); + } + } + }]; + + [client subscribeToChannelGroups:channelGroups withPresence:usePresence]; + dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER); + + if (!handlerCalled) { + NSString *reason = [NSString stringWithFormat:@"Unable to complete subscription to: %@", + channelGroups]; + + @throw [NSException exceptionWithName:@"PNTestsConfigurationPubNub" reason:reason userInfo:nil]; + } +} + +- (void)unsubscribeClient:(PubNub *)client fromChannels:(NSArray *)channels withPresence:(BOOL)usePresence { + dispatch_semaphore_t semaphore = dispatch_semaphore_create(0); + __block BOOL handlerCalled = NO; + + [self addStatusHandlerForClient:client withBlock:^(PubNub *cClient, PNSubscribeStatus *status, BOOL *shouldRemove) { + if (status.operation == PNUnsubscribeOperation) { + NSMutableSet *clientChannelsAndGroups = [NSMutableSet setWithArray:cClient.channels]; + [clientChannelsAndGroups addObjectsFromArray:cClient.channelGroups]; + + if (![[NSSet setWithArray:channels] isSubsetOfSet:clientChannelsAndGroups]) { + *shouldRemove = YES; + handlerCalled = YES; + + dispatch_semaphore_signal(semaphore); + } + } + }]; + + [client unsubscribeFromChannels:channels withPresence:usePresence]; + dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER); + + if (!handlerCalled) { + NSString *reason = [NSString stringWithFormat:@"Unable to complete unsubscription from: %@", + channels]; + + @throw [NSException exceptionWithName:@"PNTestsConfigurationPubNub" reason:reason userInfo:nil]; + } +} + +- (void)unsubscribeClient:(PubNub *)client fromChannelGroups:(NSArray *)channelGroups withPresence:(BOOL)usePresence { + dispatch_semaphore_t semaphore = dispatch_semaphore_create(0); + __block BOOL handlerCalled = NO; + + [self addStatusHandlerForClient:client withBlock:^(PubNub *cClient, PNSubscribeStatus *status, BOOL *shouldRemove) { + if (status.operation == PNUnsubscribeOperation) { + NSMutableSet *clientChannelsAndGroups = [NSMutableSet setWithArray:cClient.channels]; + [clientChannelsAndGroups addObjectsFromArray:cClient.channelGroups]; + + if (![[NSSet setWithArray:channelGroups] isSubsetOfSet:clientChannelsAndGroups]) { + *shouldRemove = YES; + handlerCalled = YES; + + dispatch_semaphore_signal(semaphore); + } + } + }]; + + [client unsubscribeFromChannelGroups:channelGroups withPresence:usePresence]; + dispatch_semaphore_wait(semaphore, DISPATCH_TIME_FOREVER); + + if (!handlerCalled) { + NSString *reason = [NSString stringWithFormat:@"Unable to complete unsubscription from: %@", + channelGroups]; + + @throw [NSException exceptionWithName:@"PNTestsConfigurationPubNub" reason:reason userInfo:nil]; + } +} + + +#pragma mark - Publish + +- (NSArray *)publishMessages:(NSUInteger)messagesCount toChannel:(NSString *)channel + usingClient:(PubNub *)client { + + NSMutableArray *messages = [NSMutableArray new]; + client = client ?: self.client; + NSUInteger time = 1577918412; + + for (NSUInteger messageIdx = 0; messageIdx < messagesCount; messageIdx++) { + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + NSDictionary *metadata = nil; + NSDictionary *message = @{ + @"messageIdx": [@[@"message", @(messageIdx)] componentsJoinedByString:@": "], + @"time": @(time + messageIdx) + }; + + PNPublishAPICallBuilder *builder = client.publish().message(message).channel(channel); + + if (messageIdx % 2 == 0) { + metadata = @{ @"time": message[@"time"] }; + builder = builder.metadata(metadata); + } + + builder.performWithCompletion(^(PNPublishStatus *status) { + XCTAssertFalse(status.isError); + + if (!status.isError) { + NSMutableDictionary *publishedMessage = [@{ + @"message": message, + @"timetoken": status.data.timetoken + } mutableCopy]; + + if (metadata) { + publishedMessage[@"metadata"] = metadata; + } + + [messages addObject:publishedMessage]; + } + + handler(); + }); + }]; + + [self waitTask:@"throttleProtection" completionFor:(YHVVCR.cassette.isNewCassette ? 0.5f : 0.f)]; + } + + [self waitTask:@"waitForStorage" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + return messages; +} + +- (NSDictionary *> *)publishMessages:(NSUInteger)messagesCount + toChannels:(NSArray *)channels + usingClient:(PubNub *)client { + + NSMutableDictionary *channelMessages = [NSMutableDictionary new]; + + for (NSString *channel in channels) { + channelMessages[channel] = [self publishMessages:messagesCount + toChannel:channel + usingClient:client]; + } + + return channelMessages; +} + +- (NSArray *)addActions:(NSUInteger)actionsCount + toMessages:(NSArray *)messages + inChannel:(NSString *)channel + usingClient:(PubNub *)client { + + NSArray *types = @[@"reaction", @"receipt", @"custom"]; + NSArray *actionValues = [self randomizedValuesWithValues:@[ + @"value1", @"value2", @"value3", @"value4", @"value5", + @"value6", @"value7", @"value8", @"value9", @"value10" + ]]; + NSMutableArray *actions = [NSMutableArray new]; + client = client ?: self.client; + + + for (NSUInteger messageIdx = 0; messageIdx < messages.count; messageIdx++) { + NSNumber *messageTimetoken = messages[messageIdx]; + + for (NSUInteger actionIdx = 0; actionIdx < actionsCount; actionIdx++) { + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + client.addMessageAction() + .channel(channel) + .messageTimetoken(messageTimetoken) + .type(types[(actionIdx + 1)%3]) + .value(actionValues[(actionIdx + 1)%10]) + .performWithCompletion(^(PNAddMessageActionStatus *status) { + XCTAssertFalse(status.isError); + + if (!status.isError) { + [actions addObject:status.data.action]; + } + + handler(); + }); + }]; + + [self waitTask:@"throttleProtection" completionFor:(YHVVCR.cassette.isNewCassette ? 0.5f : 0.f)]; + } + } + + [self waitTask:@"waitForStorage" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + return actions; +} + +- (void)verifyMessageActionsCountInChannel:(NSString *)channel + shouldEqualTo:(NSUInteger)count + usingClient:(PubNub *)client { + + client = client ?: self.client; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + client.fetchMessageActions() + .channel(channel) + .performWithCompletion(^(PNFetchMessageActionsResult *result, PNErrorStatus *status) { + XCTAssertFalse(status.isError); + XCTAssertEqual(result.data.actions.count, count); + + handler(); + }); + }]; +} + + +#pragma mark - History + +- (void)deleteHistoryForChannel:(NSString *)channel usingClient:(PubNub *)client { + [self deleteHistoryForChannels:@[channel] usingClient:client]; +} + +- (void)deleteHistoryForChannels:(NSArray *)channels usingClient:(PubNub *)client { + client = client ?: self.client; + + for (NSString *channel in channels) { + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + client.deleteMessage().channel(channel).performWithCompletion(^(PNAcknowledgmentStatus *status) { + XCTAssertFalse(status.isError); + handler(); + }); + }]; + } + + [self waitTask:@"waitForStorage" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.05f)]; +} + + +#pragma mark - Channel groups + +- (void)addChannels:(NSArray *)channels + toChannelGroup:(NSString *)channelGroup + usingClient:(PubNub *)client { + + client = client ?: self.client; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [client addChannels:channels toGroup:channelGroup withCompletion:^(PNAcknowledgmentStatus *status) { + XCTAssertFalse(status.isError); + handler(); + }]; + }]; + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 1.f : 0.f)]; +} + +- (void)verifyChannels:(NSArray *)channels + inChannelGroup:(NSString *)channelGroup + shouldEqual:(BOOL)shouldEqual + usingClient:(PubNub *)client { + + NSSet *addedChannelsSet = [NSSet setWithArray:channels]; + client = client ?: self.client; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [client channelsForGroup:channelGroup + withCompletion:^(PNChannelGroupChannelsResult *result, PNErrorStatus *status) { + + NSSet *fetchedChannelsSet = [NSSet setWithArray:result.data.channels]; + XCTAssertNil(status); + XCTAssertNotNil(fetchedChannelsSet); + + if (shouldEqual) { + XCTAssertTrue([fetchedChannelsSet isEqualToSet:addedChannelsSet]); + } else { + XCTAssertTrue([addedChannelsSet isSubsetOfSet:fetchedChannelsSet]); + } + + handler(); + }]; + }]; +} + +- (void)removeChannelGroup:(NSString *)channelGroup usingClient:(PubNub *)client { + client = client ?: self.client; + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 1.f : 0.f)]; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [client removeChannelsFromGroup:channelGroup withCompletion:^(PNAcknowledgmentStatus *status) { + XCTAssertFalse(status.isError); + handler(); + }]; + }]; +} + +#pragma mark - Presence + +- (void)setState:(NSDictionary *)state onChannel:(NSString *)channel usingClient:(PubNub *)client { + client = client ?: self.client; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [client setState:state forUUID:client.currentConfiguration.uuid onChannel:channel + withCompletion:^(PNClientStateUpdateStatus *status) { + XCTAssertFalse(status.isError); + handler(); + }]; + }]; + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 1.f : 0.f)]; +} + + +#pragma mark - Objects + +- (void)removeAllObjects { + __block NSArray *spaceIdentifiers = nil; + __block NSArray *userIdentifiers = nil; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.fetchUsers().performWithCompletion(^(PNFetchUsersResult *result, PNErrorStatus *status) { + userIdentifiers = [result.data.users valueForKey:@"identifier"] ?: @[]; + handler(); + }); + }]; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.fetchSpaces().performWithCompletion(^(PNFetchSpacesResult *result, PNErrorStatus *status) { + spaceIdentifiers = [result.data.spaces valueForKey:@"identifier"] ?: @[]; + handler(); + }); + }]; + + for (NSString *user in userIdentifiers) { + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.fetchMemberships().userId(user).performWithCompletion(^(PNFetchMembershipsResult *result, PNErrorStatus *status) { + NSArray *spaceIdentifiers = [result.data.memberships valueForKey:@"spaceId"]; + + if (spaceIdentifiers.count) { + self.client.manageMemberships() + .userId(user) + .remove(spaceIdentifiers) + .performWithCompletion(^(PNManageMembershipsStatus *status) { + NSLog(@"%@ %@'s MEMBERSHIPS HAS BEEN REMOVED", + @(spaceIdentifiers.count), user); + + handler(); + }); + } else { + handler(); + } + }); + }]; + } + + + for (NSString *user in userIdentifiers) { + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.deleteUser().userId(user).performWithCompletion(^(PNAcknowledgmentStatus *status) { + handler(); + }); + }]; + } + + for (NSString *space in spaceIdentifiers) { + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.deleteSpace().spaceId(space).performWithCompletion(^(PNAcknowledgmentStatus *status) { + handler(); + }); + }]; + } + + if (userIdentifiers.count || spaceIdentifiers.count) { + if (userIdentifiers.count) { + NSLog(@"%@ USERS HAS BEEN REMOVED", @(userIdentifiers.count)); + } + + if (spaceIdentifiers.count) { + NSLog(@"%@ SPACES HAS BEEN REMOVED", @(spaceIdentifiers.count)); + } + + [self waitTask:@"waitForDistribution" completionFor:1.f]; + } +} + +- (NSArray *)createObjectForUsers:(NSUInteger)objectsCount usingClient:(PubNub *)client { + objectsCount = MIN(objectsCount, [self class].sharedNamesList.count); + NSMutableArray *userNames = [NSMutableArray new]; + + for (NSUInteger objectIdx = 0; objectIdx < objectsCount; objectIdx++) { + [userNames addObject:[self class].sharedNamesList[objectIdx]]; + } + + return [self createObjectForUsersWithNames:userNames usingClient:client]; +} + +- (PNUser *)createObjectForUserWithName:(NSString *)name usingClient:(PubNub *)client { + return [self createObjectForUsersWithNames:@[name] usingClient:client].firstObject; +} + +- (NSArray *)createObjectForUsersWithNames:(NSArray *)names usingClient:(PubNub *)client { + NSMutableArray *users = [NSMutableArray new]; + client = client ?: self.client; + + for (NSString *name in names) { + NSString *randomizedName = [self randomizedValuesWithValues:@[name]].firstObject; + NSString *identifier = [@[randomizedName, @"user", @"identifier"] componentsJoinedByString:@"-"]; + NSDictionary *custom = @{ + @"user-custom1": [@[name, @"custom", @"data", @"1"] componentsJoinedByString:@"-"], + @"user-custom2": [@[name, @"custom", @"data", @"2"] componentsJoinedByString:@"-"] + }; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + client.createUser() + .userId(identifier) + .name(name) + .custom(custom) + .includeFields(PNUserCustomField) + .performWithCompletion(^(PNCreateUserStatus *status) { + XCTAssertFalse(status.isError); + XCTAssertNotNil(status.data.user); + + [users addObject:status.data.user]; + [self.userObjects addObject:status.data.user]; + + handler(); + }); + }]; + } + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 1.f : 0.f)]; + + return users; +} + +- (void)verifyUsersCountShouldEqualTo:(NSUInteger)count usingClient:(PubNub *)client { + client = client ?: self.client; + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 1.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + client.fetchUsers() + .includeCount(YES) + .performWithCompletion(^(PNFetchUsersResult *result, PNErrorStatus * status) { + XCTAssertNil(status); + XCTAssertEqual(result.data.totalCount, count); + + handler(); + }); + }]; +} + +- (NSArray *)createUsersMembership:(NSArray *)users + inSpaces:(NSArray *)spaces + withCustoms:(NSArray *)customs + usingClient:(PubNub *)client { + + return [self createUsersMembership:users + inSpaces:spaces + withCustoms:customs + spaceInformation:NO + usingClient:client]; + +} + +- (NSArray *)createUsersMembership:(NSArray *)users + inSpaces:(NSArray *)spaces + withCustoms:(NSArray *)customs + spaceInformation:(BOOL)shouldIncludeSpaceInformation + usingClient:(PubNub *)client { + + NSMutableArray *createdUserMemberships = [NSMutableArray new]; + NSMutableArray *spacesForMembership = [NSMutableArray new]; + client = client ?: self.client; + + for (NSUInteger spaceIdx = 0; spaceIdx < spaces.count; spaceIdx++) { + NSMutableDictionary *spaceData = [@{ @"spaceId": spaces[spaceIdx].identifier } mutableCopy]; + + if (customs && spaceIdx < customs.count) { + spaceData[@"custom"] = customs[spaceIdx]; + } + + [spacesForMembership addObject:spaceData]; + } + + PNMembershipFields fileds = PNMembershipCustomField; + + if (shouldIncludeSpaceInformation) { + fileds |= PNMembershipSpaceField; + } + + + for (PNUser *user in users) { + if (!self.userMembershipObjects[user.identifier]) { + self.userMembershipObjects[user.identifier] = [NSMutableArray new]; + } + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + client.manageMemberships() + .userId(user.identifier) + .add(spacesForMembership) + .includeFields(fileds) + .performWithCompletion(^(PNManageMembershipsStatus *status) { + XCTAssertFalse(status.isError); + XCTAssertNotNil(status.data.memberships); + + [createdUserMemberships addObjectsFromArray:status.data.memberships]; + [self.userMembershipObjects[user.identifier] addObjectsFromArray:status.data.memberships]; + + handler(); + }); + }]; + } + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 1.f : 0.f)]; + + return createdUserMemberships; +} + +- (void)verifyUserMembershipsCount:(NSString *)user shouldEqualTo:(NSUInteger)count usingClient:(PubNub *)client { + client = client ?: self.client; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + client.fetchMemberships() + .userId(user) + .performWithCompletion(^(PNFetchMembershipsResult *result, PNErrorStatus *status) { + NSArray *memberships = result.data.memberships; + XCTAssertNil(status); + XCTAssertNotNil(memberships); + XCTAssertEqual(memberships.count, count); + + handler(); + }); + }]; +} + +- (void)deleteUser:(NSString *)user cachedMembershipForSpace:(NSString *)space { + PNMembership *membership = nil; + + for (membership in self.userMembershipObjects[user]) { + if ([membership.spaceId isEqualToString:space]) { + break; + } + } + + [self.userMembershipObjects[user] removeObject:membership]; +} + +- (void)deleteUser:(NSString *)user + membershipObjects:(NSArray *)memberships + usingClient:(PubNub *)client { + + [self deleteUser:user membershipForSpaces:[memberships valueForKey:@"spaceId"] usingClient:client]; +} + +- (void)deleteUsers:(NSArray *)users membershipObjectsUsingClient:(PubNub *)client { + for (NSString *user in users) { + [self deleteUser:user membershipObjectsUsingClient:client]; + } +} + +- (void)deleteUser:(NSString *)user membershipObjectsUsingClient:(PubNub *)client { + if (!self.userMembershipObjects[user].count) { + return; + } + + NSArray *spaceIdentifiers = [self.userMembershipObjects[user] valueForKey:@"spaceId"]; + + [self deleteUser:user membershipForSpaces:spaceIdentifiers usingClient:client]; +} + +- (void)deleteUser:(NSString *)user membershipForSpaces:(NSArray *)spaces usingClient:(PubNub *)client { + client = client ?: self.client; + + if (!spaces.count) { + return; + } + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 1.f : 0.f)]; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + client.manageMemberships() + .userId(user) + .remove(spaces) + .performWithCompletion(^(PNManageMembershipsStatus *status) { + XCTAssertFalse(status.isError); + + if (status.isError) { + NSLog(@"'%@' USER MEMBERSHIP REMOVE ERROR: %@\n%@", + user, status.errorData.information, + [status valueForKey:@"clientRequest"]); + } + + handler(); + }); + }]; +} + +- (void)deleteCachedUser:(NSString *)user { + PNUser *cachedUser = nil; + + for (cachedUser in self.userObjects) { + if ([cachedUser.identifier isEqualToString:user]) { + break; + } + } + + [self.userObjects removeObject:cachedUser]; +} + +- (void)deleteUsers:(NSArray *)users usingClient:(PubNub *)client { + client = client ?: self.client; + + if (!users.count) { + return; + } + + for (NSString *user in users) { + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + client.deleteUser() + .userId(user) + .performWithCompletion(^(PNAcknowledgmentStatus *status) { + XCTAssertFalse(status.isError); + + if (status.isError) { + NSLog(@"'%@' USER REMOVE ERROR: %@\n%@", + user, status.errorData.information, + [status valueForKey:@"clientRequest"]); + } + + handler(); + }); + }]; + } + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 1.f : 0.f)]; +} + +- (void)deleteUserObjectsUsingClient:(PubNub *)client { + if (!self.userObjects.count) { + return; + } + + [self deleteUsers:[self.userObjects valueForKey:@"identifier"] usingClient:client]; +} + +- (NSArray *)createObjectForSpaces:(NSUInteger)objectsCount usingClient:(PubNub *)client { + objectsCount = MIN(objectsCount, [self class].sharedSpaceNamesList.count); + NSMutableArray *spaceNames = [NSMutableArray new]; + + for (NSUInteger objectIdx = 0; objectIdx < objectsCount; objectIdx++) { + [spaceNames addObject:[self class].sharedSpaceNamesList[objectIdx]]; + } + + return [self createObjectForSpacesWithNames:spaceNames usingClient:client]; +} + +- (PNSpace *)createObjectForSpaceWithName:(NSString *)name usingClient:(PubNub *)client { + return [self createObjectForSpacesWithNames:@[name] usingClient:client].firstObject; +} + +- (NSArray *)createObjectForSpacesWithNames:(NSArray *)names + usingClient:(PubNub *)client { + NSMutableArray *spaces = [NSMutableArray new]; + client = client ?: self.client; + + for (NSString *name in names) { + NSString *randomizedName = [self randomizedValuesWithValues:@[name]].firstObject; + NSString *identifier = [@[randomizedName, @"space", @"identifier"] componentsJoinedByString:@"-"]; + NSDictionary *custom = @{ + @"space-custom1": [@[name, @"custom", @"data", @"1"] componentsJoinedByString:@"-"], + @"space-custom2": [@[name, @"custom", @"data", @"2"] componentsJoinedByString:@"-"] + }; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + client.createSpace() + .spaceId(identifier) + .name(name) + .custom(custom) + .includeFields(PNSpaceCustomField) + .performWithCompletion(^(PNCreateSpaceStatus *status) { + XCTAssertFalse(status.isError); + XCTAssertNotNil(status.data.space); + + [spaces addObject:status.data.space]; + [self.spaceObjects addObject:status.data.space]; + + handler(); + }); + }]; + } + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 1.f : 0.f)]; + + return spaces; +} + +- (void)verifySpacesCountShouldEqualTo:(NSUInteger)count usingClient:(PubNub *)client { + client = client ?: self.client; + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 1.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + client.fetchSpaces() + .includeCount(YES) + .performWithCompletion(^(PNFetchSpacesResult *result, PNErrorStatus * status) { + XCTAssertNil(status); + XCTAssertEqual(result.data.totalCount, count); + + handler(); + }); + }]; +} + +- (NSArray *)addMembers:(NSArray *)members + toSpaces:(NSArray *)spaces + withCustoms:(NSArray *)customs + usingClient:(PubNub *)client { + + return [self addMembers:members + toSpaces:spaces + withCustoms:customs + userInformation:NO + usingClient:client]; +} + +- (NSArray *)addMembers:(NSArray *)members + toSpaces:(NSArray *)spaces + withCustoms:(NSArray *)customs + userInformation:(BOOL)shouldIncludeUserInformation + usingClient:(PubNub *)client { + + NSMutableArray *createdSpaceMembers = [NSMutableArray new]; + NSMutableArray *spaceMembers = [NSMutableArray new]; + client = client ?: self.client; + + for (NSUInteger memberIdx = 0; memberIdx < members.count; memberIdx++) { + NSMutableDictionary *memberData = [@{ @"userId": members[memberIdx].identifier } mutableCopy]; + + if (customs && memberIdx < customs.count) { + memberData[@"custom"] = customs[memberIdx]; + } + + [spaceMembers addObject:memberData]; + } + + PNMemberFields fields = PNMemberCustomField; + + if (shouldIncludeUserInformation) { + fields |= PNMemberUserField; + } + + for (PNSpace *space in spaces) { + if (!self.spaceMembersObjects[space.identifier]) { + self.spaceMembersObjects[space.identifier] = [NSMutableArray new]; + } + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + client.manageMembers() + .spaceId(space.identifier) + .add(spaceMembers) + .includeFields(fields) + .performWithCompletion(^(PNManageMembersStatus *status) { + XCTAssertFalse(status.isError); + XCTAssertNotNil(status.data.members); + + [createdSpaceMembers addObjectsFromArray:status.data.members]; + [self.spaceMembersObjects[space.identifier] addObjectsFromArray:status.data.members]; + + handler(); + }); + }]; + } + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 1.f : 0.f)]; + + return createdSpaceMembers; +} + +- (void)verifySpaceMembersCount:(NSString *)space shouldEqualTo:(NSUInteger)count usingClient:(PubNub *)client { + client = client ?: self.client; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + client.fetchMembers() + .spaceId(space) + .performWithCompletion(^(PNFetchMembersResult *result, PNErrorStatus *status) { + NSArray *members = result.data.members; + XCTAssertNil(status); + XCTAssertNotNil(members); + XCTAssertEqual(members.count, count); + + handler(); + }); + }]; +} + +- (void)deleteSpace:(NSString *)space cachedMemberForUser:(NSString *)user { + PNMember *member = nil; + + for (member in self.spaceMembersObjects[space]) { + if ([member.userId isEqualToString:user]) { + break; + } + } + + [self.spaceMembersObjects[space] removeObject:member]; +} + +- (void)deleteSpaces:(NSArray *)spaces membersObjectsUsingClient:(PubNub *)client { + for (NSString *space in spaces) { + [self deleteSpace:space membersObjectsUsingClient:client]; + } +} + +- (void)deleteSpace:(NSString *)space memberObjects:(NSArray *)members usingClient:(PubNub *)client { + [self deleteSpace:space members:[members valueForKey:@"userId"] usingClient:client]; +} + +- (void)deleteSpace:(NSString *)space membersObjectsUsingClient:(nullable PubNub *)client { + if (!self.spaceMembersObjects[space].count) { + return; + } + + [self deleteSpace:space members:[self.spaceMembersObjects[space] valueForKey:@"userId"] usingClient:client]; +} + +- (void)deleteSpace:(NSString *)space members:(NSArray *)users usingClient:(PubNub *)client { + client = client ?: self.client; + + if (!users.count) { + return; + } + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 1.f : 0.f)]; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + client.manageMembers() + .spaceId(space) + .remove(users) + .performWithCompletion(^(PNManageMembersStatus *status) { + XCTAssertFalse(status.isError); + + if (status.isError) { + NSLog(@"'%@' SPACE MEMBERS REMOVE ERROR: %@\n%@", + space, status.errorData.information, + [status valueForKey:@"clientRequest"]); + } + + handler(); + }); + }]; +} + +- (void)deleteCachedSpace:(NSString *)space { + PNSpace *cachedSpace = nil; + + for (cachedSpace in self.spaceObjects) { + if ([cachedSpace.identifier isEqualToString:space]) { + break; + } + } + + [self.spaceObjects removeObject:cachedSpace]; +} + +- (void)deleteSpaces:(NSArray *)spaces usingClient:(PubNub *)client { + client = client ?: self.client; + + if (!spaces.count) { + return; + } + + for (NSString *space in spaces) { + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + client.deleteSpace().spaceId(space) + .performWithCompletion(^(PNAcknowledgmentStatus *status) { + XCTAssertFalse(status.isError); + + if (status.isError) { + NSLog(@"'%@' SPACE REMOVE ERROR: %@\n%@", + space, status.errorData.information, + [status valueForKey:@"clientRequest"]); + } + + handler(); + }); + }]; + } + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 1.f : 0.f)]; +} + +- (void)deleteSpaceObjectsUsingClient:(PubNub *)client { + if (!self.spaceObjects.count) { + return; + } + + [self deleteSpaces:[self.spaceObjects valueForKey:@"identifier"] usingClient:client]; +} + + +#pragma mark - Mocking + +- (BOOL)isObjectMocked:(id)object { + return [self.classMocks containsObject:object] || [self.instanceMocks containsObject:object]; +} + +- (id)mockForObject:(id)object { + BOOL isClass = object_isClass(object); + __unsafe_unretained id mock = isClass ? OCMClassMock(object) : OCMPartialMock(object); + + if (isClass) { + [self.classMocks addObject:mock]; + } else { + [self.instanceMocks addObject:mock]; + } + + return mock; +} + + +#pragma mark - Listeners + +- (void)addHandlerOfType:(NSString *)type forClient:(PubNub *)client withBlock:(PNTClientCallbackHandler)handler { + NSString *instanceID = client.instanceID; + + dispatch_async(self.resourceAccessQueue, ^{ + NSMutableDictionary *handlersByType = self.pubNubHandlers[instanceID]; + + if (!handlersByType) { + handlersByType = [NSMutableDictionary new]; + self.pubNubHandlers[instanceID] = handlersByType; + } + + NSMutableArray *handlers = handlersByType[type]; + + if (!handlers) { + handlers = [NSMutableArray new]; + handlersByType[type] = handlers; + } + + [handlers addObject:handler]; + }); +} + +- (void)removeHandlers:(NSArray *)handlers ofType:(NSString *)type forClient:(PubNub *)client { + NSString *instanceID = client.instanceID; + + dispatch_async(self.resourceAccessQueue, ^{ + NSMutableDictionary *handlersByType = self.pubNubHandlers[instanceID]; + [handlersByType[type] removeObjectsInArray:handlers]; + }); +} + +- (NSArray *)handlersOfType:(NSString *)type forClient:(PubNub *)client { + __block NSArray *handlers = nil; + NSString *instanceID = client.instanceID; + + dispatch_sync(self.resourceAccessQueue, ^{ + handlers = [self.pubNubHandlers[instanceID][type] copy]; + }); + + return handlers; +} + +- (void)addStatusHandlerForClient:(PubNub *)client withBlock:(PNTClientDidReceiveStatusHandler)handler { + [self addHandlerOfType:@"status" forClient:client withBlock:handler]; +} + +- (void)addMessageHandlerForClient:(PubNub *)client withBlock:(PNTClientDidReceiveMessageHandler)handler { + [self addHandlerOfType:@"message" forClient:client withBlock:handler]; +} + +- (void)addSignalHandlerForClient:(PubNub *)client withBlock:(PNTClientDidReceiveSignalHandler)handler { + [self addHandlerOfType:@"signal" forClient:client withBlock:handler]; +} + +- (void)addPresenceHandlerForClient:(PubNub *)client withBlock:(PNTClientDidReceivePresenceEventHandler)handler { + [self addHandlerOfType:@"presence" forClient:client withBlock:handler]; +} + +- (void)addUserHandlerForClient:(PubNub *)client withBlock:(PNTClientDidReceiveUserEventHandler)handler { + [self addHandlerOfType:@"user" forClient:client withBlock:handler]; +} + +- (void)addSpaceHandlerForClient:(PubNub *)client withBlock:(PNTClientDidReceiveSpaceEventHandler)handler { + [self addHandlerOfType:@"space" forClient:client withBlock:handler]; +} + +- (void)addMembershipHandlerForClient:(PubNub *)client withBlock:(PNTClientDidReceiveMembershipEventHandler)handler { + [self addHandlerOfType:@"membership" forClient:client withBlock:handler]; +} + +- (void)addActionHandlerForClient:(PubNub *)client withBlock:(PNTClientDidReceiveMessageActionHandler)handler { + [self addHandlerOfType:@"actions" forClient:client withBlock:handler]; +} + +- (void)removeAllHandlersForClient:(PubNub *)client { + NSString *instanceID = client.instanceID; + + dispatch_sync(self.resourceAccessQueue, ^{ + [self.pubNubHandlers removeObjectForKey:instanceID]; + }); +} + + +#pragma mark - Handlers + +- (void)handleClient:(PubNub *)client eventWithData:(id)data type:(NSString *)eventType { + NSMutableArray *handlersForRemoval = [NSMutableArray new]; + NSArray *handlers = [self handlersOfType:eventType forClient:client]; + + for (PNTClientCallbackHandler handler in handlers) { + BOOL shouldRemoved = NO; + + handler(client, data, &shouldRemoved); + + if (shouldRemoved) { + [handlersForRemoval addObject:handler]; + } + } + + [self removeHandlers:handlersForRemoval ofType:eventType forClient:client]; +} + +- (void)client:(PubNub *)client didReceiveStatus:(PNStatus *)status { + [self handleClient:client eventWithData:status type:@"status"]; +} + +- (void)client:(PubNub *)client didReceivePresenceEvent:(PNPresenceEventResult *)event { + [self handleClient:client eventWithData:event type:@"presence"]; +} + +- (void)client:(PubNub *)client didReceiveMessage:(PNMessageResult *)message { + [self handleClient:client eventWithData:message type:@"message"]; +} + +- (void)client:(PubNub *)client didReceiveSignal:(PNSignalResult *)signal { + [self handleClient:client eventWithData:signal type:@"signal"]; +} + +- (void)client:(PubNub *)client didReceiveMessageAction:(PNMessageActionResult *)action { + [self handleClient:client eventWithData:action type:@"actions"]; +} + +- (void)client:(PubNub *)client didReceiveUserEvent:(PNUserEventResult *)event { + [self handleClient:client eventWithData:event type:@"user"]; +} + +- (void)client:(PubNub *)client didReceiveSpaceEvent:(PNSpaceEventResult *)event { + [self handleClient:client eventWithData:event type:@"space"]; +} + +- (void)client:(PubNub *)client didReceiveMembershipEvent:(PNMembershipEventResult *)event { + [self handleClient:client eventWithData:event type:@"membership"]; +} + +- (void)waitForObject:(id)object + recordedInvocation:(id)invocation + call:(BOOL)shouldCall + withinInterval:(NSTimeInterval)interval + afterBlock:(void(^)(void))initialBlock { + + dispatch_semaphore_t semaphore = dispatch_semaphore_create(0); + __block BOOL handlerCalled = NO; + + ((OCMStubRecorder *)invocation).andDo(^(NSInvocation *expectedInvocation) { + handlerCalled = YES; + dispatch_semaphore_signal(semaphore); + }); + + if (initialBlock) { + initialBlock(); + } + + dispatch_time_t timeout = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(interval * NSEC_PER_SEC)); + dispatch_semaphore_wait(semaphore, timeout); + + if (shouldCall) { + XCTAssertTrue(handlerCalled); + } else { + XCTAssertFalse(handlerCalled); + } + + OCMVerifyAll(object); +} + +- (void)waitForObject:(id)object + recordedInvocationCall:(id)invocation + afterBlock:(void(^)(void))initialBlock { + + [self waitForObject:object + recordedInvocationCall:invocation + withinInterval:self.testCompletionDelay + afterBlock:initialBlock]; +} + +- (void)waitForObject:(id)object + recordedInvocationCall:(id)invocation + withinInterval:(NSTimeInterval)interval + afterBlock:(void(^)(void))initialBlock { + + [self waitForObject:object + recordedInvocation:invocation + call:YES + withinInterval:interval + afterBlock:initialBlock]; +} + +- (void)waitToCompleteIn:(NSTimeInterval)delay + codeBlock:(void(^)(dispatch_block_t handler))codeBlock { + + [self waitToCompleteIn:delay codeBlock:codeBlock afterBlock:nil]; +} + +- (void)waitToCompleteIn:(NSTimeInterval)delay + codeBlock:(void(^)(dispatch_block_t handler))codeBlock + afterBlock:(void(^)(void))initialBlock { + + dispatch_semaphore_t semaphore = dispatch_semaphore_create(0); + __block BOOL handlerCalled = NO; + + codeBlock(^{ + if (!handlerCalled) { + handlerCalled = YES; + dispatch_semaphore_signal(semaphore); + } + }); + + if (initialBlock) { + initialBlock(); + } + + + dispatch_time_t timeout = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delay * NSEC_PER_SEC)); + dispatch_semaphore_wait(semaphore, timeout); + + XCTAssertTrue(handlerCalled); +} + +- (void)waitForObject:(id)object + recordedInvocationNotCall:(id)invocation + afterBlock:(void(^)(void))initialBlock { + + [self waitForObject:object + recordedInvocationNotCall:invocation + withinInterval:self.falseTestCompletionDelay + afterBlock:initialBlock]; +} + +- (void)waitForObject:(id)object + recordedInvocationNotCall:(id)invocation + withinInterval:(NSTimeInterval)interval + afterBlock:(nullable void(^)(void))initialBlock { + + [self waitForObject:object recordedInvocation:invocation call:NO withinInterval:interval + afterBlock:initialBlock]; +} + +- (void)waitToNotCompleteIn:(NSTimeInterval)delay + codeBlock:(void(^)(dispatch_block_t handler))codeBlock { + + [self waitToNotCompleteIn:delay codeBlock:codeBlock afterBlock:nil]; +} + +- (void)waitToNotCompleteIn:(NSTimeInterval)delay + codeBlock:(void(^)(dispatch_block_t handler))codeBlock + afterBlock:(void(^)(void))initialBlock { + + dispatch_semaphore_t semaphore = dispatch_semaphore_create(0); + __block BOOL handlerCalled = NO; + + codeBlock(^{ + handlerCalled = YES; + dispatch_semaphore_signal(semaphore); + }); + + if (initialBlock) { + initialBlock(); + } + + dispatch_time_t timeout = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delay * NSEC_PER_SEC)); + dispatch_semaphore_wait(semaphore, timeout); + + XCTAssertFalse(handlerCalled); +} + +- (XCTestExpectation *)waitTask:(NSString *)taskName completionFor:(NSTimeInterval)seconds { + if (seconds <= 0.f) { + return nil; + } + + XCTestExpectation *waitExpectation = [self expectationWithDescription:taskName]; + dispatch_time_t date = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(seconds * NSEC_PER_SEC)); + + dispatch_after(date, dispatch_get_main_queue(), ^{ + [waitExpectation fulfill]; + }); + + [self waitForExpectations:@[waitExpectation] timeout:(seconds + 0.3f)]; + + return waitExpectation; +} + + +#pragma mark - Helpers + +- (BOOL)shouldSkipTestWithManuallyModifiedMockedResponse { + static BOOL _isMockedIntegration; + static dispatch_once_t onceToken; + BOOL shouldSkip = NO; + + dispatch_once(&onceToken, ^{ + NSString *bundleIdentifier = [NSBundle bundleForClass:[self class]].bundleIdentifier; + _isMockedIntegration = [bundleIdentifier pnt_includesString:@"mocked-integration"]; + }); + + if (_isMockedIntegration) { + if (YHVVCR.cassette.isNewCassette) { + NSString *logSeparator1 = @"\n------------\n\n\n"; + NSString *logSeparator2 = @"\n\n\n------------"; + NSLog(@"%@%@ REQUIRE CASSETTE MODIFICATION. CHECK TEST DOCUMENTATION%@", + logSeparator1, self.name, logSeparator2); + } + } else { + shouldSkip = YES; + } + + return shouldSkip; +} + +- (NSArray *)randomizedValuesWithValues:(NSArray *)values { + NSMutableArray *randomizedValues = [NSMutableArray new]; + + for (NSString *value in values) { + if (!self.randomizedUserProvidedValues[value]) { + [self storeRandomizedValueFrom:value inDictionary:self.randomizedUserProvidedValues]; + } + + [randomizedValues addObject:self.randomizedUserProvidedValues[value]]; + } + + return randomizedValues; +} + +- (NSArray *)channelGroupsWithNames:(NSArray *)channelGroups { + NSMutableArray *randomizedChannelGroups = [NSMutableArray new]; + + for (NSString *channelGroup in channelGroups) { + [randomizedChannelGroups addObject:[self channelGroupWithName:channelGroup]]; + } + + return randomizedChannelGroups; +} + +- (NSString *)channelGroupWithName:(NSString *)channelGroup { + if (self.randomizedChannelGroups[channelGroup]) { + return self.randomizedChannelGroups[channelGroup]; + } + + [self storeRandomizedValueFrom:channelGroup inDictionary:self.randomizedChannelGroups]; + + return self.randomizedChannelGroups[channelGroup]; +} + +- (NSArray *)channelsWithNames:(NSArray *)channels { + NSMutableArray *randomizedChannels = [NSMutableArray new]; + + for (NSString *channel in channels) { + [randomizedChannels addObject:[self channelWithName:channel]]; + } + + return randomizedChannels; +} + +- (NSString *)channelWithName:(NSString *)channel { + if (self.randomizedChannels[channel]) { + return self.randomizedChannels[channel]; + } + + [self storeRandomizedValueFrom:channel inDictionary:self.randomizedChannels]; + + return self.randomizedChannels[channel]; +} + +- (NSString *)uuidForUser:(NSString *)user { + if (self.randomizedUUIDs[user]) { + return self.randomizedUUIDs[user]; + } + + [self storeRandomizedValueFrom:user inDictionary:self.randomizedUUIDs]; + + return self.randomizedUUIDs[user]; +} + +- (NSString *)authForUser:(NSString *)auth { + if (self.randomizedAuths[auth]) { + return self.randomizedAuths[auth]; + } + + [self storeRandomizedValueFrom:auth inDictionary:self.randomizedAuths]; + + return self.randomizedAuths[auth]; +} + +- (id)objectForInvocation:(NSInvocation *)invocation argumentAtIndex:(NSUInteger)index { + __strong id object = [invocation objectForArgumentAtIndex:(index + 1)]; + + [[PNRecordableTestCase invocationObjects] addObject:object]; + + return object; +} + + +#pragma mark - Misc + +- (NSString *)randomizedValueFrom:(NSString *)string { + NSString *uuid = [NSUUID UUID].UUIDString; + NSArray *components = @[ + [uuid substringToIndex:8], + string, + [uuid substringWithRange:NSMakeRange(19, 4)] + ]; + + return [components componentsJoinedByString:@"-"]; +} + +- (void)storeRandomizedValueFrom:(NSString *)string inDictionary:(NSMutableDictionary *)dictionary { + NSString *randomizedString = [self randomizedValueFrom:string]; + + if (YHVVCR.cassette) { + dictionary[string] = YHVVCR.cassette.isNewCassette ? randomizedString : string; + } else { + dictionary[string] = randomizedString; + } +} + +- (void)loadTestsConfiguration { + static NSDictionary *_sharedTestsConfiguration; + __block NSException *exception = nil; + static dispatch_once_t onceToken; + + dispatch_once(&onceToken, ^{ + NSBundle *testBundle = [NSBundle bundleForClass:[self class]]; + NSString *configurationPath = [testBundle pathForResource:@"tests-configuration" + ofType:@"json"]; + NSData *configurationData = [NSData dataWithContentsOfFile:configurationPath]; + NSError *error; + + if (!configurationData) { + NSString *errorReason = @"'test-configuration.json' file not found in bundle."; + + exception = [NSException exceptionWithName:@"PNTestsConfiguration" + reason:errorReason + userInfo:nil]; + } else { + NSJSONReadingOptions options = NSJSONReadingFragmentsAllowed; + _sharedTestsConfiguration = [NSJSONSerialization JSONObjectWithData:configurationData + options:options + error:&error]; + } + + + if (!_sharedTestsConfiguration || error) { + NSString *errorReason = @"'test-configuration.json' file parsing error."; + NSDictionary *userInfo = error ? @{ NSUnderlyingErrorKey: error } : nil; + + exception = [NSException exceptionWithName:@"PNTestsConfiguration" + reason:errorReason + userInfo:userInfo]; + } + }); + + self.pamSubscribeKey = [_sharedTestsConfiguration valueForKeyPath:@"keys.subscribe-pam"]; + self.pamPublishKey = [_sharedTestsConfiguration valueForKeyPath:@"keys.publish-pam"]; + self.subscribeKey = [_sharedTestsConfiguration valueForKeyPath:@"keys.subscribe"]; + self.publishKey = [_sharedTestsConfiguration valueForKeyPath:@"keys.publish"]; + + if (self.subscribeKey.length == 0 || self.publishKey.length == 0) { + NSString *errorReason = @"'keys.subscribe' or 'keys.publish' keys is missing"; + + exception = [NSException exceptionWithName:@"PNTestsConfiguration" + reason:errorReason + userInfo:nil]; + } + + if (self.pamSubscribeKey.length == 0 || self.pamPublishKey.length == 0) { + NSString *errorReason = @"'keys.subscribe-pam' or 'keys.publish-pam' keys is missing"; + + exception = [NSException exceptionWithName:@"PNTestsConfiguration" + reason:errorReason + userInfo:nil]; + } + + if (exception) { + @throw exception; + } +} + +#pragma mark - + + +@end diff --git a/Tests/Tests/Integration/Actions/PNMessageActionsIntegrationTest.m b/Tests/Tests/Integration/Actions/PNMessageActionsIntegrationTest.m new file mode 100644 index 000000000..2e51a6108 --- /dev/null +++ b/Tests/Tests/Integration/Actions/PNMessageActionsIntegrationTest.m @@ -0,0 +1,604 @@ +/** + * @author Serhii Mamontov + * @copyright © 2010-2020 PubNub, Inc. + */ +#import "PNRecordableTestCase.h" +#import "NSString+PNTest.h" + + +#pragma mark Interface declaration + +@interface PNMessageActionsIntegrationTest : PNRecordableTestCase + + +#pragma mark - Information + +#pragma mark - + + +@end + + +#pragma mark - Tests + +@implementation PNMessageActionsIntegrationTest + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Warc-retain-cycles" + + +#pragma mark - Setup / Tear down + +- (void)setUp { + [super setUp]; + + + [self completePubNubConfiguration:self.client]; +} + + +#pragma mark - Tests :: Builder pattern-based add action + +- (void)testItShouldAddActionAndReceiveStatusWithExpectedOperationAndCategory { + NSString *expectedValue = [self randomizedValuesWithValues:@[@"test-value"]].firstObject; + NSString *channel = [self channelWithName:@"test-channel"]; + NSUInteger expectedMessagesCount = 1; + NSString *expectedType = @"custom"; + + NSArray *publishedMessages = [self publishMessages:expectedMessagesCount + toChannel:channel + usingClient:nil]; + NSArray *timetokens = [publishedMessages valueForKey:@"timetoken"]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.addMessageAction() + .channel(channel) + .messageTimetoken(timetokens.firstObject) + .type(expectedType) + .value(expectedValue) + .performWithCompletion(^(PNAddMessageActionStatus *status) { + PNMessageAction *action = status.data.action; + XCTAssertFalse(status.isError); + XCTAssertNotNil(action); + XCTAssertEqualObjects(action.type, expectedType); + XCTAssertEqualObjects(action.value, expectedValue); + XCTAssertEqualObjects(action.uuid, self.client.uuid); + XCTAssertEqualObjects(action.messageTimetoken, timetokens[0]); + XCTAssertNotNil(action.actionTimetoken); + XCTAssertEqual(status.operation, PNAddMessageActionOperation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + + handler(); + }); + }]; + + [self deleteHistoryForChannel:channel usingClient:nil]; +} + +- (void)testItShouldAddActionAndTriggerAddedEvent { + NSString *expectedValue = [self randomizedValuesWithValues:@[@"test-value"]].firstObject; + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + NSUInteger expectedMessagesCount = 1; + NSString *expectedType = @"custom"; + + NSArray *publishedMessages = [self publishMessages:expectedMessagesCount + toChannel:channel + usingClient:client1]; + NSArray *timetokens = [publishedMessages valueForKey:@"timetoken"]; + + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addActionHandlerForClient:client2 + withBlock:^(PubNub *client, PNMessageActionResult *event, BOOL *remove) { + + *remove = YES; + PNMessageAction *action = event.data.action; + XCTAssertNotNil(action); + XCTAssertEqualObjects(action.type, expectedType); + XCTAssertEqualObjects(action.value, expectedValue); + XCTAssertEqualObjects(action.uuid, client1.uuid); + XCTAssertEqualObjects(action.messageTimetoken, timetokens.firstObject); + XCTAssertNotNil(action.actionTimetoken); + XCTAssertEqualObjects(event.data.event, @"added"); + + handler(); + }]; + + client1.addMessageAction() + .channel(channel) + .messageTimetoken(timetokens.firstObject) + .type(expectedType) + .value(expectedValue) + .performWithCompletion(^(PNAddMessageActionStatus *status) { + XCTAssertFalse(status.isError); + }); + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; + + [self deleteHistoryForChannel:channel usingClient:client1]; +} + +- (void)testItShouldNotAddActionAndReceiveBadRequestStatusWhenChannelIsNil { + NSString *expectedValue = [self randomizedValuesWithValues:@[@"test-value"]].firstObject; + NSString *expectedType = @"custom"; + NSNumber *timetoken = @1577918412; + __block BOOL retried = NO; + NSString *channel = nil; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.addMessageAction() + .channel(channel) + .messageTimetoken(timetoken) + .type(expectedType) + .value(expectedValue) + .performWithCompletion(^(PNAddMessageActionStatus *status) { + NSString *errorInformation = status.errorData.information; + XCTAssertTrue(status.isError); + XCTAssertNotNil(errorInformation); + XCTAssertTrue([errorInformation pnt_includesString:@"'channel'"]); + XCTAssertEqual(status.operation, PNAddMessageActionOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }); + }]; +} + +- (void)testItShouldNotAddActionAndReceiveBadRequestStatusWhenTimetokenIsNil { + NSString *expectedValue = [self randomizedValuesWithValues:@[@"test-value"]].firstObject; + NSString *channel = [self channelWithName:@"test-channel"]; + NSString *expectedType = @"custom"; + NSNumber *timetoken = nil; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.addMessageAction() + .channel(channel) + .messageTimetoken(timetoken) + .type(expectedType) + .value(expectedValue) + .performWithCompletion(^(PNAddMessageActionStatus *status) { + NSString *errorInformation = status.errorData.information; + XCTAssertTrue(status.isError); + XCTAssertNotNil(errorInformation); + XCTAssertTrue([errorInformation pnt_includesString:@"'messageTimetoken'"]); + XCTAssertEqual(status.operation, PNAddMessageActionOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + + handler(); + }); + }]; +} + +- (void)testItShouldNotAddActionAndReceiveBadRequestStatusWhenTypeIsNil { + NSString *expectedValue = [self randomizedValuesWithValues:@[@"test-value"]].firstObject; + NSString *channel = [self channelWithName:@"test-channel"]; + NSNumber *timetoken = @1577918412; + NSString *expectedType = nil; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.addMessageAction() + .channel(channel) + .messageTimetoken(timetoken) + .type(expectedType) + .value(expectedValue) + .performWithCompletion(^(PNAddMessageActionStatus *status) { + NSString *errorInformation = status.errorData.information; + XCTAssertTrue(status.isError); + XCTAssertNotNil(errorInformation); + XCTAssertTrue([errorInformation pnt_includesString:@"'type'"]); + XCTAssertEqual(status.operation, PNAddMessageActionOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + + handler(); + }); + }]; +} + +- (void)testItShouldNotAddActionAndReceiveBadRequestStatusWhenTypeIsTooLong { + NSString *expectedValue = [self randomizedValuesWithValues:@[@"test-value"]].firstObject; + NSString *channel = [self channelWithName:@"test-channel"]; + NSString *expectedType = [NSUUID UUID].UUIDString; + NSNumber *timetoken = @1577918412; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.addMessageAction() + .channel(channel) + .messageTimetoken(timetoken) + .type(expectedType) + .value(expectedValue) + .performWithCompletion(^(PNAddMessageActionStatus *status) { + NSString *errorInformation = status.errorData.information; + XCTAssertTrue(status.isError); + XCTAssertNotNil(errorInformation); + XCTAssertTrue([errorInformation pnt_includesString:@"too long"]); + XCTAssertEqual(status.operation, PNAddMessageActionOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + + handler(); + }); + }]; +} + +- (void)testItShouldNotAddActionAndReceiveBadRequestStatusWhenValueIsNil { + NSString *channel = [self channelWithName:@"test-channel"]; + NSString *expectedType = @"custom"; + NSNumber *timetoken = @1577918412; + NSString *expectedValue = nil; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.addMessageAction() + .channel(channel) + .messageTimetoken(timetoken) + .type(expectedType) + .value(expectedValue) + .performWithCompletion(^(PNAddMessageActionStatus *status) { + NSString *errorInformation = status.errorData.information; + XCTAssertTrue(status.isError); + XCTAssertNotNil(errorInformation); + XCTAssertTrue([errorInformation pnt_includesString:@"'value'"]); + XCTAssertEqual(status.operation, PNAddMessageActionOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + + handler(); + }); + }]; +} + +- (void)testItShouldNotAddActionAndReceiveBadRequestStatusWhenValueIsNotJSONSerializable { + NSString *channel = [self channelWithName:@"test-channel"]; + NSString *expectedValue = (id)[NSDate date]; + NSString *expectedType = @"custom"; + NSNumber *timetoken = @1577918412; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.addMessageAction() + .channel(channel) + .messageTimetoken(timetoken) + .type(expectedType) + .value(expectedValue) + .performWithCompletion(^(PNAddMessageActionStatus *status) { + NSString *errorInformation = status.errorData.information; + XCTAssertTrue(status.isError); + XCTAssertNotNil(errorInformation); + XCTAssertTrue([errorInformation pnt_includesString:@"'value'"]); + XCTAssertEqual(status.operation, PNAddMessageActionOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + + handler(); + }); + }]; +} + + +#pragma mark - Tests :: Builder pattern-based add action + +- (void)testItShouldRemoveActionAndReceiveStatusWithExpectedOperationAndCategory { + NSString *channel = [self channelWithName:@"test-channel"]; + NSUInteger expectedMessagesCount = 1; + NSUInteger expectedActionsCount = 1; + + NSArray *publishedMessages = [self publishMessages:expectedMessagesCount + toChannel:channel + usingClient:nil]; + NSArray *timetokens = [publishedMessages valueForKey:@"timetoken"]; + NSArray *actions = [self addActions:expectedActionsCount + toMessages:timetokens + inChannel:channel + usingClient:nil]; + + [self verifyMessageActionsCountInChannel:channel shouldEqualTo:actions.count usingClient:nil]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.removeMessageAction() + .channel(channel) + .messageTimetoken(timetokens.firstObject) + .actionTimetoken(actions.firstObject.actionTimetoken) + .performWithCompletion(^(PNAcknowledgmentStatus *status) { + XCTAssertFalse(status.isError); + XCTAssertEqual(status.operation, PNRemoveMessageActionOperation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + + handler(); + }); + }]; + + + [self verifyMessageActionsCountInChannel:channel shouldEqualTo:0 usingClient:nil]; + + [self deleteHistoryForChannel:channel usingClient:nil]; +} + +- (void)testItShouldRemoveActionAndTriggerRemovingEvent { + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + NSUInteger expectedMessagesCount = 1; + NSUInteger expectedActionsCount = 1; + + NSArray *publishedMessages = [self publishMessages:expectedMessagesCount + toChannel:channel + usingClient:client1]; + NSArray *timetokens = [publishedMessages valueForKey:@"timetoken"]; + NSArray *actions = [self addActions:expectedActionsCount + toMessages:timetokens + inChannel:channel + usingClient:client1]; + + [self verifyMessageActionsCountInChannel:channel shouldEqualTo:actions.count usingClient:client1]; + + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addActionHandlerForClient:client2 + withBlock:^(PubNub *client, PNMessageActionResult *event, BOOL *remove) { + + *remove = YES; + PNMessageAction *action = event.data.action; + XCTAssertNotNil(action); + XCTAssertEqualObjects(action.uuid, client1.uuid); + XCTAssertEqualObjects(action.messageTimetoken, timetokens.firstObject); + XCTAssertNotNil(action.actionTimetoken); + XCTAssertEqualObjects(event.data.event, @"removed"); + + handler(); + }]; + + client1.removeMessageAction() + .channel(channel) + .messageTimetoken(timetokens.firstObject) + .actionTimetoken(actions.firstObject.actionTimetoken) + .performWithCompletion(^(PNAcknowledgmentStatus *status) { + XCTAssertFalse(status.isError); + }); + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; + + + [self verifyMessageActionsCountInChannel:channel shouldEqualTo:0 usingClient:client1]; + + [self deleteHistoryForChannel:channel usingClient:client1]; +} + +- (void)testItShouldNotRemoveActionAndReceiveBadRequestStatusWhenChannelIsNil { + NSNumber *messageTimetoken = @1577918412; + NSNumber *actionTimetoken = @1577918414; + __block BOOL retried = NO; + NSString *channel = nil; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.removeMessageAction() + .channel(channel) + .messageTimetoken(messageTimetoken) + .actionTimetoken(actionTimetoken) + .performWithCompletion(^(PNAcknowledgmentStatus *status) { + NSString *errorInformation = status.errorData.information; + XCTAssertTrue(status.isError); + XCTAssertNotNil(errorInformation); + XCTAssertTrue([errorInformation pnt_includesString:@"'channel'"]); + XCTAssertEqual(status.operation, PNRemoveMessageActionOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }); + }]; +} + +- (void)testItShouldNotRemoveActionAndReceiveBadRequestStatusWhenMessageTimetokenIsNil { + NSString *channel = [self channelWithName:@"test-channel"]; + NSNumber *actionTimetoken = @1577918414; + NSNumber *messageTimetoken = nil; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.removeMessageAction() + .channel(channel) + .messageTimetoken(messageTimetoken) + .actionTimetoken(actionTimetoken) + .performWithCompletion(^(PNAcknowledgmentStatus *status) { + NSString *errorInformation = status.errorData.information; + XCTAssertTrue(status.isError); + XCTAssertNotNil(errorInformation); + XCTAssertTrue([errorInformation pnt_includesString:@"'messageTimetoken'"]); + XCTAssertEqual(status.operation, PNRemoveMessageActionOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + + handler(); + }); + }]; +} + +- (void)testItShouldNotRemoveActionAndReceiveBadRequestStatusWhenActionTimetokenIsNil { + NSString *channel = [self channelWithName:@"test-channel"]; + NSNumber *messageTimetoken = @1577918412; + NSNumber *actionTimetoken = nil; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.removeMessageAction() + .channel(channel) + .messageTimetoken(messageTimetoken) + .actionTimetoken(actionTimetoken) + .performWithCompletion(^(PNAcknowledgmentStatus *status) { + NSString *errorInformation = status.errorData.information; + XCTAssertTrue(status.isError); + XCTAssertNotNil(errorInformation); + XCTAssertTrue([errorInformation pnt_includesString:@"'actionTimetoken'"]); + XCTAssertEqual(status.operation, PNRemoveMessageActionOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + + handler(); + }); + }]; +} + + +#pragma mark - Tests :: Builder pattern-based fetch action + +- (void)testItShouldFetchActionAndReceiveResultWithExpectedOperation { + NSString *channel = [self channelWithName:@"test-channel"]; + NSUInteger expectedMessagesCount = 2; + NSUInteger expectedActionsCount = 3; + + NSArray *publishedMessages = [self publishMessages:expectedMessagesCount + toChannel:channel + usingClient:nil]; + NSArray *timetokens = [publishedMessages valueForKey:@"timetoken"]; + NSArray *publishedActions = [self addActions:expectedActionsCount + toMessages:timetokens + inChannel:channel + usingClient:nil]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.fetchMessageActions() + .channel(channel) + .performWithCompletion(^(PNFetchMessageActionsResult *result, PNErrorStatus *status) { + NSArray *fetchedActions = result.data.actions; + XCTAssertNil(status); + XCTAssertNotNil(fetchedActions); + XCTAssertEqual([fetchedActions.firstObject.actionTimetoken + compare:publishedActions.firstObject.actionTimetoken], + NSOrderedSame); + XCTAssertEqual([fetchedActions.lastObject.actionTimetoken + compare:publishedActions.lastObject.actionTimetoken], + NSOrderedSame); + XCTAssertEqual(fetchedActions.count, publishedActions.count); + XCTAssertEqual([result.data.start compare:publishedActions.firstObject.actionTimetoken], + NSOrderedSame); + XCTAssertEqual([result.data.end compare:publishedActions.lastObject.actionTimetoken], + NSOrderedSame); + XCTAssertEqual(result.operation, PNFetchMessagesActionsOperation); + + handler(); + }); + }]; + + [self deleteHistoryForChannel:channel usingClient:nil]; +} + +- (void)testItShouldFetchNextActionsPageWhenCalledWithLimitAndStart { + NSString *channel = [self channelWithName:@"test-channel"]; + NSUInteger expectedMessagesCount = 2; + NSUInteger expectedActionsCount = 5; + + NSArray *publishedMessages = [self publishMessages:expectedMessagesCount + toChannel:channel + usingClient:nil]; + NSArray *timetokens = [publishedMessages valueForKey:@"timetoken"]; + NSArray *actions = [self addActions:expectedActionsCount + toMessages:timetokens + inChannel:channel + usingClient:nil]; + NSUInteger halfSize = (NSUInteger)(actions.count * 0.5f); + NSNumber *middleMinusOneTimetoken = actions[halfSize - 1].actionTimetoken; + NSNumber *middleTimetoken = actions[halfSize].actionTimetoken; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.fetchMessageActions() + .channel(channel) + .limit(halfSize) + .performWithCompletion(^(PNFetchMessageActionsResult *result, PNErrorStatus *status) { + NSArray *fetchedActions = result.data.actions; + XCTAssertNil(status); + XCTAssertNotNil(fetchedActions); + + XCTAssertEqual([fetchedActions.firstObject.actionTimetoken compare:middleTimetoken], + NSOrderedSame); + XCTAssertEqual([fetchedActions.lastObject.actionTimetoken + compare:actions.lastObject.actionTimetoken], + NSOrderedSame); + XCTAssertEqual(fetchedActions.count, halfSize); + XCTAssertEqual([result.data.start compare:middleTimetoken], NSOrderedSame); + XCTAssertEqual([result.data.end compare:actions.lastObject.actionTimetoken], + NSOrderedSame); + + handler(); + }); + }]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.fetchMessageActions() + .channel(channel) + .start(middleTimetoken) + .limit(halfSize) + .performWithCompletion(^(PNFetchMessageActionsResult *result, PNErrorStatus *status) { + NSArray *fetchedActions = result.data.actions; + XCTAssertNil(status); + XCTAssertNotNil(fetchedActions); + + XCTAssertEqual([fetchedActions.firstObject.actionTimetoken + compare:actions.firstObject.actionTimetoken], + NSOrderedSame); + XCTAssertEqual([fetchedActions.lastObject.actionTimetoken compare:middleMinusOneTimetoken], + NSOrderedSame); + XCTAssertEqual(fetchedActions.count, halfSize); + XCTAssertEqual([result.data.start compare:actions.firstObject.actionTimetoken], + NSOrderedSame); + XCTAssertEqual([result.data.end compare:middleMinusOneTimetoken], NSOrderedSame); + + handler(); + }); + }]; + + [self deleteHistoryForChannel:channel usingClient:nil]; +} + +- (void)testItShouldNotFetchActionAndReceiveBadRequestStatusWhenChannelIsNil { + __block BOOL retried = NO; + NSString *channel = nil; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.fetchMessageActions() + .channel(channel) + .performWithCompletion(^(PNFetchMessageActionsResult *result, PNErrorStatus *status) { + NSString *errorInformation = status.errorData.information; + XCTAssertTrue(status.isError); + XCTAssertNotNil(errorInformation); + XCTAssertTrue([errorInformation pnt_includesString:@"'channel'"]); + XCTAssertEqual(status.operation, PNFetchMessagesActionsOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }); + }]; +} + +#pragma mark - + +#pragma clang diagnostic pop + +@end diff --git a/Tests/Tests/Integration/Objects/PNMemberIntegrationTest.m b/Tests/Tests/Integration/Objects/PNMemberIntegrationTest.m new file mode 100644 index 000000000..88d0d3ca0 --- /dev/null +++ b/Tests/Tests/Integration/Objects/PNMemberIntegrationTest.m @@ -0,0 +1,1349 @@ +/** + * @author Serhii Mamontov + * @copyright © 2010-2020 PubNub, Inc. + */ +#import "PNRecordableTestCase.h" +#import + + +NS_ASSUME_NONNULL_BEGIN + +#pragma mark Interface declaration + +@interface PNMemberIntegrationTest : PNRecordableTestCase + + +#pragma mark - Misc + +/** + * @brief Flatten members objects by extracting from it name of user and creation date. + * + * @param members List of members which should be flattened. + * + * @return List of dictionaries which contain name of user and member addition date. + */ +- (NSArray *)flattenedMembers:(NSArray *)members; + +/** + * @brief Sort provided list of members. + * + * @param members List of members which should be stored. + * @param sortDescriptors Descriptors which should be used during filter. + * + * @return Sorted list of members. + */ +- (NSArray *)members:(NSArray *)members + sortedWith:(NSArray *)sortDescriptors; + + +#pragma mark - + + +@end + +NS_ASSUME_NONNULL_END + + +#pragma mark - Tests + +@implementation PNMemberIntegrationTest + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Warc-retain-cycles" + + +#pragma mark - Setup / Tear down + +- (void)setUp { + [super setUp]; + + + [self completePubNubConfiguration:self.client]; + [self removeAllObjects]; +} + + +#pragma mark - Tests :: Builder pattern-based add members + +- (void)testItShouldAddMembersAndReceiveStatusWithExpectedOperationAndCategory { + NSArray *spaces = [self createObjectForSpaces:1 usingClient:nil]; + NSArray *users = [self createObjectForUsers:2 usingClient:nil]; + NSArray *memberUsers = @[ + @{ + @"userId": users[0].identifier, + @"custom": @{ @"user-member-custom": [@[users[0].identifier, @"custom", @"data", @"1"] componentsJoinedByString:@"-"] } + }, + @{ + @"userId": users[1].identifier, + @"custom": @{ @"user-member-custom": [@[users[1].identifier, @"custom", @"data", @"2"] componentsJoinedByString:@"-"] } + } + ]; + __block NSArray *members = nil; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.manageMembers() + .spaceId(spaces.firstObject.identifier) + .includeFields(PNMemberCustomField) + .add(memberUsers) + .performWithCompletion(^(PNManageMembersStatus *status) { + members = status.data.members; + XCTAssertFalse(status.isError); + XCTAssertNotNil(members); + XCTAssertEqual(status.operation, PNManageMembersOperation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + + for (PNMember *member in members) { + for (NSUInteger memberIdx = 0; memberIdx < users.count; memberIdx++) { + PNUser *user = users[memberIdx]; + + if ([member.userId isEqualToString:user.identifier]) { + XCTAssertEqualObjects(member.custom, memberUsers[memberIdx][@"custom"]); + break; + } + } + } + + handler(); + }); + }]; + + [self deleteSpace:spaces.firstObject.identifier memberObjects:members usingClient:nil]; + [self deleteUserObjectsUsingClient:nil]; + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldAddMembersAndReturnFilteredUserInformationWhenFilterIsSet { + NSArray *spaces = [self createObjectForSpaces:1 usingClient:nil]; + NSArray *users = [self createObjectForUsers:2 usingClient:nil]; + NSUInteger halfNameLength = (NSUInteger)(users.lastObject.name.length * 0.5f); + NSString *filterExpression = [NSString stringWithFormat:@"user.name like '%@*'", + [users.lastObject.name substringToIndex:halfNameLength]]; + NSString *expectedFilterExpression = [PNString percentEscapedString:filterExpression]; + NSArray *memberUsers = @[ + @{ @"userId": users[0].identifier }, + @{ @"userId": users[1].identifier } + ]; + __block NSArray *members = nil; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.manageMembers() + .spaceId(spaces.firstObject.identifier) + .includeFields(PNMemberUserField|PNMemberUserCustomField) + .includeCount(YES) + .filter(filterExpression) + .add(memberUsers) + .performWithCompletion(^(PNManageMembersStatus *status) { + NSURLRequest *request = [status valueForKey:@"clientRequest"]; + members = status.data.members; + XCTAssertEqual(status.data.totalCount, 1); + XCTAssertNil(status.data.prev); + XCTAssertNotNil(status.data.next); + XCTAssertFalse(status.isError); + XCTAssertNotNil(members); + XCTAssertNotEqual([request.URL.absoluteString rangeOfString:expectedFilterExpression].location, + NSNotFound); + XCTAssertNotNil(members.lastObject.user); + XCTAssertEqualObjects(members.lastObject.user.custom, users.lastObject.custom); + + handler(); + }); + }]; + + [self deleteSpace:spaces.firstObject.identifier memberObjects:members usingClient:nil]; + [self deleteUserObjectsUsingClient:nil]; + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldAddMembersAndReturnSortedUserInformationWhenSortIsSet { + NSArray *spaces = [self createObjectForSpaces:1 usingClient:nil]; + NSArray *users = [self createObjectForUsers:4 usingClient:nil]; + NSString *expectedSort = @"user.name%3Adesc"; + NSArray *memberUsers = @[ + @{ @"userId": users[0].identifier }, + @{ @"userId": users[1].identifier }, + @{ @"userId": users[2].identifier }, + @{ @"userId": users[3].identifier } + ]; + __block NSArray *members = nil; + + NSArray *expectedMembersUserOrder = [users sortedArrayUsingDescriptors:@[ + [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:NO] + ]]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.manageMembers() + .spaceId(spaces.firstObject.identifier) + .includeFields(PNMemberUserField|PNMemberUserCustomField) + .includeCount(YES) + .sort(@[@"user.name:desc"]) + .add(memberUsers) + .performWithCompletion(^(PNManageMembersStatus *status) { + NSURLRequest *request = [status valueForKey:@"clientRequest"]; + members = status.data.members; + XCTAssertNil(status.data.prev); + XCTAssertNotNil(status.data.next); + XCTAssertNotNil(members); + XCTAssertNotEqual([request.URL.absoluteString rangeOfString:expectedSort].location, + NSNotFound); + + for (NSUInteger fetchedMemberIdx = 0; fetchedMemberIdx < members.count; fetchedMemberIdx++) { + XCTAssertEqualObjects(members[fetchedMemberIdx].userId, + expectedMembersUserOrder[fetchedMemberIdx].identifier); + } + + XCTAssertNotEqualObjects([members valueForKeyPath:@"user.name"], + [users valueForKeyPath:@"name"]); + + handler(); + }); + }]; + + [self deleteSpace:spaces.firstObject.identifier memberObjects:members usingClient:nil]; + [self deleteUserObjectsUsingClient:nil]; + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldAddMembersAndReturnUserInformationWhenUserIncludeFlagIsSet { + NSArray *spaces = [self createObjectForSpaces:1 usingClient:nil]; + NSArray *users = [self createObjectForUsers:2 usingClient:nil]; + NSArray *memberUsers = @[ + @{ @"userId": users[0].identifier }, + @{ @"userId": users[1].identifier } + ]; + __block NSArray *members = nil; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.manageMembers() + .spaceId(spaces.firstObject.identifier) + .includeFields(PNMemberUserField|PNMemberUserCustomField) + .add(memberUsers) + .performWithCompletion(^(PNManageMembersStatus *status) { + members = status.data.members; + XCTAssertFalse(status.isError); + XCTAssertNotNil(members); + + for (PNMember *member in members) { + XCTAssertNotNil(member.user); + + for (NSUInteger userIdx = 0; userIdx < users.count; userIdx++) { + PNUser *user = users[userIdx]; + + if ([member.user.identifier isEqualToString:user.identifier]) { + XCTAssertEqualObjects(member.user.custom, user.custom); + break; + } + } + } + + handler(); + }); + }]; + + [self deleteSpace:spaces.firstObject.identifier memberObjects:members usingClient:nil]; + [self deleteUserObjectsUsingClient:nil]; + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldAddMembersAndTriggerCreateEventOnSpaceChannel { + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + NSArray *spaces = [self createObjectForSpaces:1 usingClient:client1]; + NSArray *users = [self createObjectForUsers:2 usingClient:client1]; + NSMutableArray *createdMembers = [NSMutableArray new]; + NSString *channel = spaces.firstObject.identifier; + NSArray *memberUsers = @[ + @{ @"userId": users[0].identifier }, + @{ @"userId": users[1].identifier } + ]; + __block NSArray *members = nil; + + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMembershipHandlerForClient:client2 + withBlock:^(PubNub *client, PNMembershipEventResult *event, BOOL *remove) { + + XCTAssertEqualObjects(event.data.event, @"create"); + XCTAssertNotNil(event.data.created); + XCTAssertNotNil(event.data.timestamp); + + if ([createdMembers indexOfObject:event.data.userId] == NSNotFound) { + [createdMembers addObject:event.data.userId]; + } + + if (createdMembers.count == users.count) { + XCTAssertNotEqual([createdMembers indexOfObject:users[0].identifier], NSNotFound); + XCTAssertNotEqual([createdMembers indexOfObject:users[1].identifier], NSNotFound); + *remove = YES; + + handler(); + } + }]; + + client1.manageMembers() + .spaceId(spaces.firstObject.identifier) + .includeFields(PNMemberUserField|PNMemberUserCustomField) + .add(memberUsers) + .performWithCompletion(^(PNManageMembersStatus *status) { + members = status.data.members; + XCTAssertFalse(status.isError); + }); + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; + + + [self verifySpaceMembersCount:spaces.firstObject.identifier shouldEqualTo:users.count usingClient:client1]; + + [self deleteSpace:spaces.firstObject.identifier memberObjects:members usingClient:client1]; + [self deleteUserObjectsUsingClient:client1]; + [self deleteSpaceObjectsUsingClient:client1]; +} + +- (void)testItShouldAddMembersAndTriggerCreateEventOnUserChannel { + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + NSArray *spaces = [self createObjectForSpaces:1 usingClient:client1]; + NSArray *users = [self createObjectForUsers:2 usingClient:client1]; + NSString *channel = users.firstObject.identifier; + NSArray *memberUsers = @[ + @{ @"userId": users[0].identifier }, + @{ @"userId": users[1].identifier } + ]; + __block NSArray *members = nil; + + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMembershipHandlerForClient:client2 + withBlock:^(PubNub *client, PNMembershipEventResult *event, BOOL *remove) { + + XCTAssertEqualObjects(event.data.event, @"create"); + XCTAssertNotNil(event.data.created); + XCTAssertNotNil(event.data.timestamp); + *remove = YES; + + handler(); + }]; + + client1.manageMembers() + .spaceId(spaces.firstObject.identifier) + .includeFields(PNMemberUserField|PNMemberUserCustomField) + .add(memberUsers) + .performWithCompletion(^(PNManageMembersStatus *status) { + members = status.data.members; + XCTAssertFalse(status.isError); + }); + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; + + [self deleteSpace:spaces.firstObject.identifier memberObjects:members usingClient:client1]; + [self deleteUserObjectsUsingClient:client1]; + [self deleteSpaceObjectsUsingClient:client1]; +} + +- (void)testItShouldNotAddMembersWhenSpaceAlreadyHasTargetUsersAsMembers { + NSArray *spaces = [self createObjectForSpaces:1 usingClient:nil]; + NSArray *users = [self createObjectForUsers:2 usingClient:nil]; + NSArray *memberUsers = @[ + @{ @"userId": users[0].identifier }, + @{ @"userId": users[1].identifier } + ]; + __block NSArray *members = nil; + __block BOOL retried = NO; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.manageMembers() + .spaceId(spaces.firstObject.identifier) + .includeFields(PNMemberUserField|PNMemberUserCustomField) + .add(memberUsers) + .performWithCompletion(^(PNManageMembersStatus *status) { + members = status.data.members; + XCTAssertFalse(status.isError); + handler(); + }); + }]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.manageMembers() + .spaceId(spaces.firstObject.identifier) + .includeFields(PNMemberUserField|PNMemberUserCustomField) + .add(@[memberUsers.firstObject]) + .performWithCompletion(^(PNManageMembersStatus *status) { + XCTAssertTrue(status.isError); + XCTAssertEqual(status.statusCode, 400); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }); + }]; + + [self verifySpaceMembersCount:spaces.firstObject.identifier shouldEqualTo:users.count usingClient:nil]; + + [self deleteSpace:spaces.firstObject.identifier memberObjects:members usingClient:nil]; + [self deleteUserObjectsUsingClient:nil]; + [self deleteSpaceObjectsUsingClient:nil]; +} + + +#pragma mark - Tests :: Builder pattern-based update members + +- (void)testItShouldUpdateMembersAndReceiveStatusWithExpectedOperationAndCategory { + NSArray *spaces = [self createObjectForSpaces:1 usingClient:nil]; + NSArray *users = [self createObjectForUsers:2 usingClient:nil]; + NSArray *membersCustom = @[ + @{ @"user-member-custom": [@[users[0].identifier, @"custom", @"data", @"1"] componentsJoinedByString:@"-"] }, + @{ @"user-member-custom": [@[users[1].identifier, @"custom", @"data", @"2"] componentsJoinedByString:@"-"] } + ]; + NSArray *expectedMembersCustom = @[ + @{ @"user-member-custom": [@[users[0].identifier, @"custom", @"data", @"3"] componentsJoinedByString:@"-"] }, + @{ @"user-member-custom": [@[users[1].identifier, @"custom", @"data", @"4"] componentsJoinedByString:@"-"] } + ]; + + [self addMembers:users toSpaces:spaces withCustoms:membersCustom usingClient:nil]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.manageMembers() + .spaceId(spaces.firstObject.identifier) + .includeFields(PNMemberCustomField) + .update(@[ + @{ @"userId": users[0].identifier, @"custom": expectedMembersCustom[0] }, + @{ @"userId": users[1].identifier, @"custom": expectedMembersCustom[1] }, + ]) + .performWithCompletion(^(PNManageMembersStatus *status) { + NSArray *members = status.data.members; + XCTAssertFalse(status.isError); + XCTAssertNotNil(members); + XCTAssertEqual(status.operation, PNManageMembersOperation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + + for (PNMember *member in members) { + for (NSUInteger userIdx = 0; userIdx < users.count; userIdx++) { + PNUser *user = users[userIdx]; + + if ([member.userId isEqualToString:user.identifier]) { + XCTAssertEqualObjects(member.custom, expectedMembersCustom[userIdx]); + break; + } + } + } + + handler(); + }); + }]; + + [self deleteSpace:spaces.firstObject.identifier membersObjectsUsingClient:nil]; + [self deleteUserObjectsUsingClient:nil]; + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldUpdateMembersAndReturnFilteredUserInformationWhenFilterIsSet { + NSArray *spaces = [self createObjectForSpaces:1 usingClient:nil]; + NSArray *users = [self createObjectForUsers:2 usingClient:nil]; + NSUInteger halfNameLength = (NSUInteger)(users.lastObject.name.length * 0.5f); + NSString *filterExpression = [NSString stringWithFormat:@"user.name like '%@*'", + [users.lastObject.name substringToIndex:halfNameLength]]; + NSString *expectedFilterExpression = [PNString percentEscapedString:filterExpression]; + NSArray *membershipCustom = @[ + @{ @"user-member-custom": [@[users[0].identifier, @"custom", @"data", @"1"] componentsJoinedByString:@"-"] }, + @{ @"user-member-custom": [@[users[1].identifier, @"custom", @"data", @"2"] componentsJoinedByString:@"-"] } + ]; + + [self addMembers:users toSpaces:spaces withCustoms:nil usingClient:nil]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.manageMembers() + .spaceId(spaces.firstObject.identifier) + .includeFields(PNMemberUserField|PNMemberUserCustomField) + .includeCount(YES) + .filter(filterExpression) + .update(@[ + @{ @"userId": users[0].identifier, @"custom": membershipCustom[0] }, + @{ @"userId": users[1].identifier, @"custom": membershipCustom[1] }, + ]) + .performWithCompletion(^(PNManageMembersStatus *status) { + NSURLRequest *request = [status valueForKey:@"clientRequest"]; + NSArray *members = status.data.members; + XCTAssertFalse(status.isError); + XCTAssertNotNil(members); + XCTAssertNotEqual([request.URL.absoluteString rangeOfString:expectedFilterExpression].location, + NSNotFound); + XCTAssertNotNil(members.lastObject.user); + XCTAssertEqualObjects(members.lastObject.user.custom, users.lastObject.custom); + + handler(); + }); + }]; + + [self deleteSpace:spaces.firstObject.identifier membersObjectsUsingClient:nil]; + [self deleteUserObjectsUsingClient:nil]; + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldUpdateMembersAndReturnSortedUserInformationWhenSortIsSet { + NSArray *spaces = [self createObjectForSpaces:1 usingClient:nil]; + NSArray *users = [self createObjectForUsers:4 usingClient:nil]; + NSString *expectedSort = @"user.name%3Adesc,created"; + NSArray *membershipCustom = @[ + @{ @"user-member-custom": [@[users[0].identifier, @"custom", @"data", @"1"] componentsJoinedByString:@"-"] }, + @{ @"user-member-custom": [@[users[1].identifier, @"custom", @"data", @"2"] componentsJoinedByString:@"-"] } + ]; + + NSArray *members = [self addMembers:users toSpaces:spaces withCustoms:nil + userInformation:YES usingClient:nil]; + NSArray *expectedMembersOrder = [self members:members sortedWith:@[ + [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:NO], + [NSSortDescriptor sortDescriptorWithKey:@"created" ascending:YES] + ]]; + NSLog(@"INITIAL ORDER: %@", [members valueForKeyPath:@"user.name"]); + NSLog(@"EXPECTED ORDER: %@", [expectedMembersOrder valueForKeyPath:@"user.name"]); + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.manageMembers() + .spaceId(spaces.firstObject.identifier) + .includeFields(PNMemberUserField|PNMemberUserCustomField) + .includeCount(YES) + .sort(@[@"user.name:desc", @"created"]) + .update(@[ + @{ @"userId": users[0].identifier, @"custom": membershipCustom[0] }, + @{ @"userId": users[1].identifier, @"custom": membershipCustom[1] }, + ]) + .performWithCompletion(^(PNManageMembersStatus *status) { + NSURLRequest *request = [status valueForKey:@"clientRequest"]; + NSArray *fetchedMembers = status.data.members; + XCTAssertFalse(status.isError); + XCTAssertNotNil(fetchedMembers); + XCTAssertNotEqual([request.URL.absoluteString rangeOfString:expectedSort].location, + NSNotFound); + + for (NSUInteger fetchedMemberIdx = 0; fetchedMemberIdx < fetchedMembers.count; fetchedMemberIdx++) { + XCTAssertEqualObjects(fetchedMembers[fetchedMemberIdx].user.name, + expectedMembersOrder[fetchedMemberIdx].user.name); + } + + XCTAssertNotEqualObjects([fetchedMembers valueForKeyPath:@"user.name"], + [members valueForKeyPath:@"user.name"]); + + handler(); + }); + }]; + + [self deleteSpace:spaces.firstObject.identifier membersObjectsUsingClient:nil]; + [self deleteUserObjectsUsingClient:nil]; + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldUpdateMembersAndReturnUserInformationWhenUserIncludeFlagIsSet { + NSArray *spaces = [self createObjectForSpaces:1 usingClient:nil]; + NSArray *users = [self createObjectForUsers:2 usingClient:nil]; + NSArray *membershipCustom = @[ + @{ @"user-member-custom": [@[users[0].identifier, @"custom", @"data", @"1"] componentsJoinedByString:@"-"] }, + @{ @"user-member-custom": [@[users[1].identifier, @"custom", @"data", @"2"] componentsJoinedByString:@"-"] } + ]; + + [self addMembers:users toSpaces:spaces withCustoms:nil usingClient:nil]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.manageMembers() + .spaceId(spaces.firstObject.identifier) + .includeFields(PNMemberUserField|PNMemberUserCustomField) + .update(@[ + @{ @"userId": users[0].identifier, @"custom": membershipCustom[0] }, + @{ @"userId": users[1].identifier, @"custom": membershipCustom[1] }, + ]) + .performWithCompletion(^(PNManageMembersStatus *status) { + NSArray *members = status.data.members; + XCTAssertFalse(status.isError); + XCTAssertNotNil(members); + + for (PNMember *member in members) { + XCTAssertNotNil(member.user); + + for (PNUser *user in users) { + if ([member.user.identifier isEqualToString:user.identifier]) { + XCTAssertEqualObjects(member.user.custom, user.custom); + break; + } + } + } + + handler(); + }); + }]; + + [self deleteSpace:spaces.firstObject.identifier membersObjectsUsingClient:nil]; + [self deleteUserObjectsUsingClient:nil]; + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldUpdateMembersAndTriggerUpdateEventOnSpaceChannel { + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + NSArray *spaces = [self createObjectForSpaces:1 usingClient:client1]; + NSArray *users = [self createObjectForUsers:2 usingClient:client1]; + NSMutableArray *updatedMembers = [NSMutableArray new]; + NSString *channel = spaces.firstObject.identifier; + NSArray *membersCustom = @[ + @{ @"user-member-custom": [@[users[0].identifier, @"custom", @"data", @"1"] componentsJoinedByString:@"-"] }, + @{ @"user-member-custom": [@[users[1].identifier, @"custom", @"data", @"2"] componentsJoinedByString:@"-"] } + ]; + + [self addMembers:users toSpaces:spaces withCustoms:nil usingClient:client1]; + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMembershipHandlerForClient:client2 + withBlock:^(PubNub *client, PNMembershipEventResult *event, BOOL *remove) { + + XCTAssertEqualObjects(event.data.event, @"update"); + XCTAssertNotNil(event.data.updated); + XCTAssertNotNil(event.data.timestamp); + + if ([updatedMembers indexOfObject:event.data.userId] == NSNotFound) { + [updatedMembers addObject:event.data.userId]; + } + + if (updatedMembers.count == users.count) { + XCTAssertNotEqual([updatedMembers indexOfObject:users[0].identifier], NSNotFound); + XCTAssertNotEqual([updatedMembers indexOfObject:users[1].identifier], NSNotFound); + *remove = YES; + + handler(); + } + }]; + + client1.manageMembers() + .spaceId(spaces.firstObject.identifier) + .includeFields(PNMemberUserField|PNMemberUserCustomField) + .update(@[ + @{ @"userId": users[0].identifier, @"custom": membersCustom[0] }, + @{ @"userId": users[1].identifier, @"custom": membersCustom[1] }, + ]) + .performWithCompletion(^(PNManageMembersStatus *status) { + XCTAssertFalse(status.isError); + }); + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; + + [self deleteSpace:spaces.firstObject.identifier membersObjectsUsingClient:client1]; + [self deleteUserObjectsUsingClient:client1]; + [self deleteSpaceObjectsUsingClient:client1]; +} + +- (void)testItShouldUpdateMembersAndTriggerUpdateEventOnUserChannel { + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + NSArray *spaces = [self createObjectForSpaces:1 usingClient:client1]; + NSArray *users = [self createObjectForUsers:2 usingClient:client1]; + NSString *channel = users.firstObject.identifier; + NSArray *membersCustom = @[ + @{ @"user-member-custom": [@[users[0].identifier, @"custom", @"data", @"1"] componentsJoinedByString:@"-"] }, + @{ @"user-member-custom": [@[users[1].identifier, @"custom", @"data", @"2"] componentsJoinedByString:@"-"] } + ]; + + [self addMembers:users toSpaces:spaces withCustoms:nil usingClient:client1]; + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMembershipHandlerForClient:client2 + withBlock:^(PubNub *client, PNMembershipEventResult *event, BOOL *remove) { + + XCTAssertEqualObjects(event.data.event, @"update"); + XCTAssertEqualObjects(event.data.spaceId, spaces.firstObject.identifier); + XCTAssertNotNil(event.data.updated); + XCTAssertNotNil(event.data.timestamp); + *remove = YES; + + handler(); + }]; + + client1.manageMembers() + .spaceId(spaces.firstObject.identifier) + .includeFields(PNMemberUserField|PNMemberUserCustomField) + .update(@[ + @{ @"userId": users[0].identifier, @"custom": membersCustom[0] }, + @{ @"userId": users[1].identifier, @"custom": membersCustom[1] }, + ]) + .performWithCompletion(^(PNManageMembersStatus *status) { + XCTAssertFalse(status.isError); + }); + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; + + [self deleteSpace:spaces.firstObject.identifier membersObjectsUsingClient:client1]; + [self deleteUserObjectsUsingClient:client1]; + [self deleteSpaceObjectsUsingClient:client1]; +} + +- (void)testItShouldNotUpdateMembersWhenSpaceNotHaveSpecifiedUsersAsMembers { + NSArray *spaces = [self createObjectForSpaces:1 usingClient:nil]; + NSArray *users = [self createObjectForUsers:2 usingClient:nil]; + NSArray *membersCustom = @[ + @{ @"user-member-custom": [@[users[0].identifier, @"custom", @"data", @"1"] componentsJoinedByString:@"-"] }, + @{ @"user-member-custom": [@[users[1].identifier, @"custom", @"data", @"2"] componentsJoinedByString:@"-"] } + ]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.manageMembers() + .spaceId(spaces.firstObject.identifier) + .includeFields(PNMemberCustomField) + .update(@[ + @{ @"userId": users[0].identifier, @"custom": membersCustom[0] }, + @{ @"userId": users[1].identifier, @"custom": membersCustom[1] } + ]) + .performWithCompletion(^(PNManageMembersStatus *status) { + XCTAssertTrue(status.isError); + XCTAssertEqual(status.statusCode, 400); + handler(); + }); + }]; + + [self deleteUserObjectsUsingClient:nil]; + [self deleteSpaceObjectsUsingClient:nil]; +} + + +#pragma mark - Tests :: Builder pattern-based delete members + +/** + * @brief To test 'retry' functionality + * 'ItShouldDeleteMembersAndReceiveStatusWithExpectedOperationAndCategory.json' should + * be modified after cassette recording. Find first mention of member remove and copy paste + * 4 entries which belong to it. For new entries change 'id' field to be different from source. For + * original response entry change status code to 404. + */ +- (void)testItShouldDeleteMembersAndReceiveStatusWithExpectedOperationAndCategory { + if ([self shouldSkipTestWithManuallyModifiedMockedResponse]) { + NSLog(@"'%@' requires special conditions (modified mocked response). Skip", self.name); + return; + } + + NSArray *spaces = [self createObjectForSpaces:1 usingClient:nil]; + NSArray *users = [self createObjectForUsers:2 usingClient:nil]; + __block BOOL retried = NO; + + [self addMembers:users toSpaces:spaces withCustoms:nil usingClient:nil]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.manageMembers() + .spaceId(spaces.firstObject.identifier) + .includeFields(PNMemberCustomField) + .remove(@[users[0].identifier]) + .performWithCompletion(^(PNManageMembersStatus *status) { + if (!retried && !YHVVCR.cassette.isNewCassette) { + XCTAssertTrue(status.error); + XCTAssertEqual(status.operation, PNManageMembersOperation); + XCTAssertEqual(status.category, PNMalformedResponseCategory); + + retried = YES; + [status retry]; + } else { + NSArray *members = status.data.members; + XCTAssertFalse(status.isError); + XCTAssertNotNil(members); + XCTAssertEqual(members.count, 1); + XCTAssertEqualObjects(members.firstObject.userId, users[1].identifier); + XCTAssertEqual(status.operation, PNManageMembersOperation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + + [self deleteSpace:spaces.firstObject.identifier cachedMemberForUser:users[0].identifier]; + + handler(); + } + }); + }]; + + [self deleteSpace:spaces.firstObject.identifier membersObjectsUsingClient:nil]; + [self deleteUserObjectsUsingClient:nil]; + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldDeleteMembersAndReturnFilteredUserInformationWhenFilterIsSet { + NSArray *spaces = [self createObjectForSpaces:1 usingClient:nil]; + NSArray *users = [self createObjectForUsers:2 usingClient:nil]; + NSUInteger halfNameLength = (NSUInteger)(users.lastObject.name.length * 0.5f); + NSString *filterExpression = [NSString stringWithFormat:@"user.name like '%@*'", + [users.lastObject.name substringToIndex:halfNameLength]]; + NSString *expectedFilterExpression = [PNString percentEscapedString:filterExpression]; + + [self addMembers:users toSpaces:spaces withCustoms:nil usingClient:nil]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.manageMembers() + .spaceId(spaces.firstObject.identifier) + .includeFields(PNMemberUserField|PNMemberUserCustomField) + .includeCount(YES) + .filter(filterExpression) + .remove(@[users[0].identifier]) + .performWithCompletion(^(PNManageMembersStatus *status) { + NSURLRequest *request = [status valueForKey:@"clientRequest"]; + NSArray *members = status.data.members; + XCTAssertFalse(status.isError); + XCTAssertNotNil(members); + XCTAssertEqual(status.data.totalCount, 1); + XCTAssertEqual(members.count, status.data.totalCount); + XCTAssertNotNil(members.firstObject.user); + XCTAssertEqualObjects(members.firstObject.user.identifier, users[1].identifier); + XCTAssertEqualObjects(members.firstObject.user.custom, users[1].custom); + XCTAssertNotEqual([request.URL.absoluteString rangeOfString:expectedFilterExpression].location, + NSNotFound); + + [self deleteSpace:spaces.firstObject.identifier cachedMemberForUser:users[0].identifier]; + + handler(); + }); + }]; + + [self deleteSpace:spaces.firstObject.identifier membersObjectsUsingClient:nil]; + [self deleteUserObjectsUsingClient:nil]; + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldDeleteMembersAndReturnSortedUserInformationWhenSortIsSet { + NSArray *spaces = [self createObjectForSpaces:1 usingClient:nil]; + NSArray *users = [self createObjectForUsers:5 usingClient:nil]; + NSString *expectedSort = @"user.name%3Adesc,created"; + + NSMutableArray *members = [[self addMembers:users toSpaces:spaces withCustoms:nil + userInformation:YES usingClient:nil] mutableCopy]; + [members removeObjectAtIndex:0]; + NSArray *expectedMembersOrder = [self members:members sortedWith:@[ + [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:NO], + [NSSortDescriptor sortDescriptorWithKey:@"created" ascending:YES] + ]]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.manageMembers() + .spaceId(spaces.firstObject.identifier) + .includeFields(PNMemberUserField|PNMemberUserCustomField) + .includeCount(YES) + .sort(@[@"user.name:desc", @"created"]) + .remove(@[users[0].identifier]) + .performWithCompletion(^(PNManageMembersStatus *status) { + NSURLRequest *request = [status valueForKey:@"clientRequest"]; + NSArray *fetchedMembers = status.data.members; + XCTAssertFalse(status.isError); + XCTAssertNotNil(fetchedMembers); + XCTAssertNotEqual([request.URL.absoluteString rangeOfString:expectedSort].location, + NSNotFound); + + for (NSUInteger fetchedMemberIdx = 0; fetchedMemberIdx < fetchedMembers.count; fetchedMemberIdx++) { + XCTAssertEqualObjects(fetchedMembers[fetchedMemberIdx].user.name, + expectedMembersOrder[fetchedMemberIdx].user.name); + } + + XCTAssertNotEqualObjects([fetchedMembers valueForKeyPath:@"user.name"], + [members valueForKeyPath:@"user.name"]); + + [self deleteSpace:spaces.firstObject.identifier cachedMemberForUser:users[0].identifier]; + + handler(); + }); + }]; + + [self deleteSpace:spaces.firstObject.identifier membersObjectsUsingClient:nil]; + [self deleteUserObjectsUsingClient:nil]; + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldDeleteMembersAndReturnUserInformationWhenUserIncludeFlagIsSet { + NSArray *spaces = [self createObjectForSpaces:1 usingClient:nil]; + NSArray *users = [self createObjectForUsers:2 usingClient:nil]; + + [self addMembers:users toSpaces:spaces withCustoms:nil usingClient:nil]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.manageMembers() + .spaceId(spaces.firstObject.identifier) + .includeFields(PNMemberUserField|PNMemberUserCustomField) + .remove(@[users[0].identifier]) + .performWithCompletion(^(PNManageMembersStatus *status) { + NSArray *members = status.data.members; + XCTAssertFalse(status.isError); + XCTAssertNotNil(members); + XCTAssertEqual(members.count, 1); + XCTAssertNotNil(members.firstObject.user); + XCTAssertEqualObjects(members.firstObject.user.identifier, users[1].identifier); + XCTAssertEqualObjects(members.firstObject.user.custom, users[1].custom); + + [self deleteSpace:spaces.firstObject.identifier cachedMemberForUser:users[0].identifier]; + + handler(); + }); + }]; + + [self deleteSpace:spaces.firstObject.identifier membersObjectsUsingClient:nil]; + [self deleteUserObjectsUsingClient:nil]; + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldDeleteMembersAndTriggerDeleteEventOnSpaceChannel { + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + NSArray *spaces = [self createObjectForSpaces:1 usingClient:client1]; + NSArray *users = [self createObjectForUsers:2 usingClient:client1]; + NSMutableArray *deletedMembers = [NSMutableArray new]; + NSString *channel = spaces.firstObject.identifier; + + [self addMembers:users toSpaces:spaces withCustoms:nil usingClient:client1]; + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMembershipHandlerForClient:client2 + withBlock:^(PubNub *client, PNMembershipEventResult *event, BOOL *remove) { + + XCTAssertEqualObjects(event.data.event, @"delete"); + XCTAssertNotNil(event.data.timestamp); + + if ([deletedMembers indexOfObject:event.data.userId] == NSNotFound) { + [deletedMembers addObject:event.data.userId]; + } + + if (deletedMembers.count == users.count) { + XCTAssertNotEqual([deletedMembers indexOfObject:users[0].identifier], NSNotFound); + XCTAssertNotEqual([deletedMembers indexOfObject:users[1].identifier], NSNotFound); + *remove = YES; + + handler(); + } + }]; + + client1.manageMembers() + .spaceId(spaces.firstObject.identifier) + .includeFields(PNMemberUserField|PNMemberUserCustomField) + .remove(@[users[0].identifier, users[1].identifier]) + .performWithCompletion(^(PNManageMembersStatus *status) { + XCTAssertFalse(status.isError); + }); + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; + + [self deleteUserObjectsUsingClient:client1]; + [self deleteSpaceObjectsUsingClient:client1]; +} + +- (void)testItShouldDeleteMembersAndTriggerDeleteEventOnUserChannel { + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + NSArray *spaces = [self createObjectForSpaces:1 usingClient:client1]; + NSArray *users = [self createObjectForUsers:2 usingClient:client1]; + NSString *channel = users.firstObject.identifier; + + [self addMembers:users toSpaces:spaces withCustoms:nil usingClient:client1]; + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMembershipHandlerForClient:client2 + withBlock:^(PubNub *client, PNMembershipEventResult *event, BOOL *remove) { + + XCTAssertEqualObjects(event.data.event, @"delete"); + XCTAssertEqualObjects(event.data.userId, users.firstObject.identifier); + XCTAssertNotNil(event.data.timestamp); + *remove = YES; + + handler(); + }]; + + client1.manageMembers() + .spaceId(spaces.firstObject.identifier) + .includeFields(PNMemberUserField|PNMemberUserCustomField) + .remove(@[users[0].identifier, users[1].identifier]) + .performWithCompletion(^(PNManageMembersStatus *status) { + XCTAssertFalse(status.isError); + }); + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; + + [self deleteUserObjectsUsingClient:client1]; + [self deleteSpaceObjectsUsingClient:client1]; +} + + +#pragma mark - Tests :: Builder pattern-based fetch members + +/** + * @brief To test 'retry' functionality + * 'ItShouldFetchMembersAndReceiveResultWithExpectedOperation.json' should + * be modified after cassette recording. Find first mention of members fetch and copy paste + * 4 entries which belong to it. For new entries change 'id' field to be different from source. For + * original response entry change status code to 404. + */ +- (void)testItShouldFetchMembersAndReceiveResultWithExpectedOperation { + if ([self shouldSkipTestWithManuallyModifiedMockedResponse]) { + NSLog(@"'%@' requires special conditions (modified mocked response). Skip", self.name); + return; + } + + NSArray *spaces = [self createObjectForSpaces:1 usingClient:nil]; + NSArray *users = [self createObjectForUsers:6 usingClient:nil]; + __block BOOL retried = NO; + + [self addMembers:users toSpaces:spaces withCustoms:nil usingClient:nil]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.fetchMembers() + .spaceId(spaces.firstObject.identifier) + .performWithCompletion(^(PNFetchMembersResult *result, PNErrorStatus *status) { + if (!retried) { + XCTAssertTrue(status.error); + XCTAssertEqual(status.operation, PNFetchMembersOperation); + XCTAssertEqual(status.category, PNMalformedResponseCategory); + + retried = YES; + [status retry]; + } else { + NSArray *members = result.data.members; + XCTAssertNil(status); + XCTAssertNotNil(members); + XCTAssertEqual(members.count, users.count); + XCTAssertEqual(result.data.totalCount, 0); + XCTAssertEqual(result.operation, PNFetchMembersOperation); + + handler(); + } + }); + }]; + + [self deleteSpace:spaces.firstObject.identifier membersObjectsUsingClient:nil]; + [self deleteUserObjectsUsingClient:nil]; + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldFetchFilteredMembersWhenFilterIsSet { + NSArray *spaces = [self createObjectForSpaces:1 usingClient:nil]; + NSArray *users = [self createObjectForUsers:6 usingClient:nil]; + NSUInteger halfNameLength = (NSUInteger)(users[3].name.length * 0.5f); + NSString *filterExpression = [NSString stringWithFormat:@"user.name like '%@*'", + [users[3].name substringToIndex:halfNameLength]]; + NSString *expectedFilterExpression = [PNString percentEscapedString:filterExpression]; + + [self addMembers:users toSpaces:spaces withCustoms:nil usingClient:nil]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.fetchMembers() + .spaceId(spaces.firstObject.identifier) + .includeCount(YES) + .filter(filterExpression) + .performWithCompletion(^(PNFetchMembersResult *result, PNErrorStatus *status) { + NSURLRequest *request = [result valueForKey:@"clientRequest"]; + NSArray *members = result.data.members; + XCTAssertNil(status); + XCTAssertNotNil(members); + XCTAssertEqual(result.data.totalCount, 1); + XCTAssertEqual(members.count, result.data.totalCount); + XCTAssertNil(result.data.prev); + XCTAssertNotNil(result.data.next); + XCTAssertNotEqual([request.URL.absoluteString rangeOfString:expectedFilterExpression].location, + NSNotFound); + + handler(); + }); + }]; + + [self deleteSpace:spaces.firstObject.identifier membersObjectsUsingClient:nil]; + [self deleteUserObjectsUsingClient:nil]; + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldFetchOrderedMembersWhenOrderIsSet { + NSArray *spaces = [self createObjectForSpaces:1 usingClient:nil]; + NSArray *users = [self createObjectForUsers:6 usingClient:nil]; + NSString *expectedSort = @"user.name%3Adesc,created"; + + NSArray *members =[self addMembers:users toSpaces:spaces withCustoms:nil + userInformation:YES usingClient:nil]; + NSArray *expectedMembersOrder = [self members:members sortedWith:@[ + [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:NO], + [NSSortDescriptor sortDescriptorWithKey:@"created" ascending:YES] + ]]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.fetchMembers() + .spaceId(spaces.firstObject.identifier) + .includeFields(PNMemberUserField|PNMemberCustomField) + .includeCount(YES) + .sort(@[@"user.name:desc", @"created"]) + .performWithCompletion(^(PNFetchMembersResult *result, PNErrorStatus *status) { + NSURLRequest *request = [result valueForKey:@"clientRequest"]; + NSArray *fetchedMembers = result.data.members; + XCTAssertNil(status); + XCTAssertNotNil(fetchedMembers); + XCTAssertNil(result.data.prev); + XCTAssertNotNil(result.data.next); + XCTAssertNotEqual([request.URL.absoluteString rangeOfString:expectedSort].location, + NSNotFound); + + for (NSUInteger fetchedMemberIdx = 0; fetchedMemberIdx < fetchedMembers.count; fetchedMemberIdx++) { + XCTAssertEqualObjects(fetchedMembers[fetchedMemberIdx].user.name, + expectedMembersOrder[fetchedMemberIdx].user.name); + } + + XCTAssertNotEqualObjects([fetchedMembers valueForKeyPath:@"user.name"], + [members valueForKeyPath:@"user.name"]); + + handler(); + }); + }]; + + [self deleteSpace:spaces.firstObject.identifier membersObjectsUsingClient:nil]; + [self deleteUserObjectsUsingClient:nil]; + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldFetchMembersWhenLimitIsSet { + NSArray *spaces = [self createObjectForSpaces:1 usingClient:nil]; + NSArray *users = [self createObjectForUsers:6 usingClient:nil]; + NSArray *membersCustom = @[ + @{ @"user-member-custom": [@[users[0].identifier, @"custom", @"data", @"1"] componentsJoinedByString:@"-"] }, + @{ @"user-member-custom": [@[users[1].identifier, @"custom", @"data", @"2"] componentsJoinedByString:@"-"] } + ]; + NSUInteger expectedCount = 2; + + [self addMembers:users toSpaces:spaces withCustoms:membersCustom usingClient:nil]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.fetchMembers() + .spaceId(spaces.firstObject.identifier) + .limit(expectedCount) + .includeFields(PNMemberCustomField) + .includeCount(YES) + .performWithCompletion(^(PNFetchMembersResult *result, PNErrorStatus *status) { + NSArray *members = result.data.members; + XCTAssertNil(status); + XCTAssertNotNil(members); + XCTAssertEqual(members.count, expectedCount); + XCTAssertEqual(result.data.totalCount, users.count); + XCTAssertNotNil(members.firstObject.custom); + + handler(); + }); + }]; + + [self deleteSpace:spaces.firstObject.identifier membersObjectsUsingClient:nil]; + [self deleteUserObjectsUsingClient:nil]; + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldFetchNextMembershipPageWhenStartAndLimitIsSet { + NSArray *spaces = [self createObjectForSpaces:1 usingClient:nil]; + NSArray *users = [self createObjectForUsers:6 usingClient:nil]; + __block NSString *next = nil; + + [self addMembers:users toSpaces:spaces withCustoms:nil usingClient:nil]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.fetchMembers() + .spaceId(spaces.firstObject.identifier) + .limit(users.count - 2) + .includeCount(YES) + .performWithCompletion(^(PNFetchMembersResult *result, PNErrorStatus *status) { + NSArray *members = result.data.members; + XCTAssertNil(status); + XCTAssertNotNil(members); + XCTAssertEqual(members.count, users.count - 2); + next = result.data.next; + + handler(); + }); + }]; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.fetchMembers() + .spaceId(spaces.firstObject.identifier) + .start(next) + .includeCount(YES) + .performWithCompletion(^(PNFetchMembersResult *result, PNErrorStatus *status) { + NSArray *members = result.data.members; + XCTAssertNil(status); + XCTAssertNotNil(members); + XCTAssertEqual(members.count, 2); + + handler(); + }); + }]; + + [self deleteSpace:spaces.firstObject.identifier membersObjectsUsingClient:nil]; + [self deleteUserObjectsUsingClient:nil]; + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldNotFetchMembersWhenSpaceObjectNotExists { + NSString *spaceIdentifier = [self uuidForUser:@"not-existing-space"]; + __block BOOL retried = NO; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.fetchMembers() + .spaceId(spaceIdentifier) + .performWithCompletion(^(PNFetchMembersResult *result, PNErrorStatus *status) { + XCTAssertTrue(status.isError); + XCTAssertEqual(status.statusCode, 404); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }); + }]; +} + + +#pragma mark - Tests :: Member events + +- (void)testItShouldTriggerUpdateMemberEventOnSpaceChannelWhenUserDataChanged { + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + NSArray *spaces = [self createObjectForSpaces:1 usingClient:client1]; + NSArray *users = [self createObjectForUsers:2 usingClient:client1]; + NSString *channel = spaces.firstObject.identifier; + NSArray *membersCustom = @[ + @{ @"user-custom": [@[users[0].identifier, @"custom", @"data", @"1"] componentsJoinedByString:@"-"] }, + @{ @"user-custom": [@[users[1].identifier, @"custom", @"data", @"2"] componentsJoinedByString:@"-"] } + ]; + + [self addMembers:users toSpaces:spaces withCustoms:nil usingClient:client1]; + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addUserHandlerForClient:client2 + withBlock:^(PubNub *client, PNUserEventResult *event, BOOL *remove) { + + XCTAssertEqualObjects(event.data.event, @"update"); + XCTAssertEqualObjects(event.data.identifier, users.firstObject.identifier); + XCTAssertNotNil(event.data.updated); + XCTAssertNotNil(event.data.timestamp); + *remove = YES; + + handler(); + }]; + + client1.updateUser() + .userId(users.firstObject.identifier) + .includeFields(PNMemberUserField|PNMemberUserCustomField) + .custom(membersCustom[0]) + .performWithCompletion(^(PNUpdateUserStatus *status) { + XCTAssertFalse(status.isError); + }); + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; + + [self deleteSpace:spaces.firstObject.identifier membersObjectsUsingClient:nil]; + [self deleteUserObjectsUsingClient:nil]; + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldTriggerDeleteMemberEventOnSpaceChannelWhenUserRemoved { + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + NSArray *spaces = [self createObjectForSpaces:1 usingClient:client1]; + NSArray *users = [self createObjectForUsers:2 usingClient:client1]; + NSString *channel = spaces.firstObject.identifier; + + [self addMembers:users toSpaces:spaces withCustoms:nil usingClient:client1]; + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addUserHandlerForClient:client2 + withBlock:^(PubNub *client, PNUserEventResult *event, BOOL *remove) { + + XCTAssertEqualObjects(event.data.event, @"delete"); + XCTAssertEqualObjects(event.data.identifier, users.firstObject.identifier); + XCTAssertNotNil(event.data.timestamp); + *remove = YES; + + handler(); + }]; + + client1.deleteUser() + .userId(users.firstObject.identifier) + .performWithCompletion(^(PNAcknowledgmentStatus *status) { + XCTAssertFalse(status.isError); + }); + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; + + [self deleteSpace:spaces.firstObject.identifier membersObjectsUsingClient:nil]; + [self deleteUserObjectsUsingClient:nil]; + [self deleteSpaceObjectsUsingClient:nil]; +} + + +#pragma mark - Misc + +- (NSArray *)flattenedMembers:(NSArray *)members { + NSMutableArray *flattenedMembers = [NSMutableArray new]; + + for (PNMember *member in members) { + [flattenedMembers addObject:@{ + @"name": member.user.name, + @"created": member.created + }]; + } + + return flattenedMembers; +} + +- (NSArray *)members:(NSArray *)members + sortedWith:(NSArray *)sortDescriptors { + + NSMutableArray *sortedMembers = [NSMutableArray new]; + NSArray *flattenedMembers = [self flattenedMembers:members]; + NSArray *sortedFlattenedMembers = [flattenedMembers sortedArrayUsingDescriptors:sortDescriptors]; + + for (NSDictionary *flattenedMember in sortedFlattenedMembers) { + for (PNMember *member in members) { + if ([member.user.name isEqualToString:flattenedMember[@"name"]]) { + [sortedMembers addObject:member]; + break; + } + } + } + + return sortedMembers; +} + +#pragma mark - + +#pragma clang diagnostic pop + +@end diff --git a/Tests/Tests/Integration/Objects/PNMembershipIntegrationTest.m b/Tests/Tests/Integration/Objects/PNMembershipIntegrationTest.m new file mode 100644 index 000000000..706247ed2 --- /dev/null +++ b/Tests/Tests/Integration/Objects/PNMembershipIntegrationTest.m @@ -0,0 +1,1280 @@ +/** + * @author Serhii Mamontov + * @copyright © 2010-2020 PubNub, Inc. + */ +#import "PNRecordableTestCase.h" +#import + + +NS_ASSUME_NONNULL_BEGIN + +#pragma mark Interface declaration + +@interface PNMembershipIntegrationTest : PNRecordableTestCase + + +#pragma mark - Misc + +/** + * @brief Flatten membership objects by extracting from it name of space and creation date. + * + * @param memberships List of memberships which should be flattened. + * + * @return List of dictionaries which contain name of space and membership creation date. + */ +- (NSArray *)flattenedMemberships:(NSArray *)memberships; + +/** + * @brief Sort provided list of memberships. + * + * @param memberships List of memberships which should be stored. + * @param sortDescriptors Descriptors which should be used during filter. + * + * @return Sorted list of memberships. + */ +- (NSArray *)memberships:(NSArray *)memberships + sortedWith:(NSArray *)sortDescriptors; + +#pragma mark - + + +@end + +NS_ASSUME_NONNULL_END + + +#pragma mark - Tests + +@implementation PNMembershipIntegrationTest + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Warc-retain-cycles" + + +#pragma mark - Setup / Tear down + +- (void)setUp { + [super setUp]; + + + [self completePubNubConfiguration:self.client]; + [self removeAllObjects]; +} + + +#pragma mark - Tests :: Builder pattern-based create membership + +- (void)testItShouldCreateMembershipAndReceiveStatusWithExpectedOperationAndCategory { + NSArray *spaces = [self createObjectForSpaces:2 usingClient:nil]; + NSArray *users = [self createObjectForUsers:1 usingClient:nil]; + NSArray *membershipSpaces = @[ + @{ + @"spaceId": spaces[0].identifier, + @"custom": @{ @"user-membership-custom": [@[spaces[0].identifier, @"custom", @"data", @"1"] componentsJoinedByString:@"-"] } + }, + @{ + @"spaceId": spaces[1].identifier, + @"custom": @{ @"user-membership-custom": [@[spaces[1].identifier, @"custom", @"data", @"2"] componentsJoinedByString:@"-"] } + } + ]; + __block NSArray *memberships = nil; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.manageMemberships() + .userId(users.firstObject.identifier) + .includeFields(PNMembershipCustomField) + .add(membershipSpaces).performWithCompletion(^(PNManageMembershipsStatus *status) { + memberships = status.data.memberships; + XCTAssertFalse(status.isError); + XCTAssertNotNil(memberships); + XCTAssertEqual(status.operation, PNManageMembershipsOperation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + + for (PNMembership *membership in memberships) { + for (NSUInteger spaceIdx = 0; spaceIdx < spaces.count; spaceIdx++) { + PNSpace *space = spaces[spaceIdx]; + + if ([membership.spaceId isEqualToString:space.identifier]) { + XCTAssertEqualObjects(membership.custom, membershipSpaces[spaceIdx][@"custom"]); + break; + } + } + } + + handler(); + }); + }]; + + [self deleteUser:users.firstObject.identifier membershipObjects:memberships usingClient:nil]; + [self deleteUserObjectsUsingClient:nil]; + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldCreateMembershipAndReturnFilteredSpacesInformationWhenFilterIsSet { + NSArray *spaces = [self createObjectForSpaces:2 usingClient:nil]; + NSArray *users = [self createObjectForUsers:1 usingClient:nil]; + NSUInteger halfNameLength = (NSUInteger)(spaces.lastObject.name.length * 0.5f); + NSString *filterExpression = [NSString stringWithFormat:@"space.name like '%@*'", + [spaces.lastObject.name substringToIndex:halfNameLength]]; + NSString *expectedFilterExpression = [PNString percentEscapedString:filterExpression]; + NSArray *membershipSpaces = @[ + @{ @"spaceId": spaces[0].identifier }, + @{ @"spaceId": spaces[1].identifier } + ]; + __block NSArray *memberships = nil; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.manageMemberships() + .userId(users.firstObject.identifier) + .includeFields(PNMembershipSpaceField|PNMembershipSpaceCustomField) + .includeCount(YES) + .filter(filterExpression) + .add(membershipSpaces) + .performWithCompletion(^(PNManageMembershipsStatus *status) { + NSURLRequest *request = [status valueForKey:@"clientRequest"]; + memberships = status.data.memberships; + XCTAssertEqual(status.data.totalCount, 1); + XCTAssertEqual(memberships.count, status.data.totalCount); + XCTAssertNil(status.data.prev); + XCTAssertNotNil(status.data.next); + XCTAssertFalse(status.isError); + XCTAssertNotNil(memberships); + XCTAssertNotEqual([request.URL.absoluteString rangeOfString:expectedFilterExpression].location, + NSNotFound); + XCTAssertNotNil(memberships.firstObject.space); + XCTAssertEqualObjects(memberships.firstObject.space.custom, spaces.lastObject.custom); + + handler(); + }); + }]; + + [self deleteUser:users.firstObject.identifier membershipObjects:memberships usingClient:nil]; + [self deleteUserObjectsUsingClient:nil]; + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldCreateMembershipAndReturnSortedSpacesInformationWhenSortIsSet { + NSArray *spaces = [self createObjectForSpaces:2 usingClient:nil]; + NSArray *users = [self createObjectForUsers:1 usingClient:nil]; + NSString *expectedSort = @"space.name%3Adesc"; + NSArray *membershipSpaces = @[ + @{ @"spaceId": spaces[0].identifier }, + @{ @"spaceId": spaces[1].identifier } + ]; + __block NSArray *memberships = nil; + + NSArray *expectedMembershipSpacesOrder = [spaces sortedArrayUsingDescriptors:@[ + [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:NO] + ]]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.manageMemberships() + .userId(users.firstObject.identifier) + .includeFields(PNMembershipSpaceField|PNMembershipSpaceCustomField) + .includeCount(YES) + .sort(@[@"space.name:desc"]) + .add(membershipSpaces) + .performWithCompletion(^(PNManageMembershipsStatus *status) { + NSURLRequest *request = [status valueForKey:@"clientRequest"]; + memberships = status.data.memberships; + XCTAssertNil(status.data.prev); + XCTAssertNotNil(status.data.next); + XCTAssertNotNil(memberships); + XCTAssertNotEqual([request.URL.absoluteString rangeOfString:expectedSort].location, + NSNotFound); + + for (NSUInteger fetchedMembershipIdx = 0; fetchedMembershipIdx < memberships.count; fetchedMembershipIdx++) { + XCTAssertEqualObjects(memberships[fetchedMembershipIdx].spaceId, + expectedMembershipSpacesOrder[fetchedMembershipIdx].identifier); + } + + XCTAssertNotEqualObjects([memberships valueForKeyPath:@"space.name"], + [spaces valueForKeyPath:@"name"]); + + handler(); + }); + }]; + + [self deleteUser:users.firstObject.identifier membershipObjects:memberships usingClient:nil]; + [self deleteUserObjectsUsingClient:nil]; + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldCreateMembershipAndReturnSpaceInformationWhenSpaceIncludeFlagIsSet { + NSArray *spaces = [self createObjectForSpaces:2 usingClient:nil]; + NSArray *users = [self createObjectForUsers:1 usingClient:nil]; + NSArray *membershipSpaces = @[ + @{ @"spaceId": spaces[0].identifier }, + @{ @"spaceId": spaces[1].identifier } + ]; + __block NSArray *memberships = nil; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.manageMemberships() + .userId(users.firstObject.identifier) + .includeFields(PNMembershipSpaceField|PNMembershipSpaceCustomField) + .add(membershipSpaces) + .performWithCompletion(^(PNManageMembershipsStatus *status) { + memberships = status.data.memberships; + XCTAssertFalse(status.isError); + XCTAssertNotNil(memberships); + + for (PNMembership *membership in memberships) { + XCTAssertNotNil(membership.space); + + for (NSUInteger spaceIdx = 0; spaceIdx < spaces.count; spaceIdx++) { + PNSpace *space = spaces[spaceIdx]; + + if ([membership.space.identifier isEqualToString:space.identifier]) { + XCTAssertEqualObjects(membership.space.custom, space.custom); + break; + } + } + } + + handler(); + }); + }]; + + [self deleteUser:users.firstObject.identifier membershipObjects:memberships usingClient:nil]; + [self deleteUserObjectsUsingClient:nil]; + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldCreateMembershipAndTriggerCreateEventOnUserChannel { + NSMutableArray *createdMemberships = [NSMutableArray new]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + NSArray *spaces = [self createObjectForSpaces:2 usingClient:client1]; + NSArray *users = [self createObjectForUsers:1 usingClient:client1]; + NSString *channel = users.firstObject.identifier; + NSArray *membershipSpaces = @[ + @{ @"spaceId": spaces[0].identifier }, + @{ @"spaceId": spaces[1].identifier } + ]; + __block NSArray *memberships = nil; + + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMembershipHandlerForClient:client2 + withBlock:^(PubNub *client, PNMembershipEventResult *event, BOOL *remove) { + + XCTAssertEqualObjects(event.data.event, @"create"); + XCTAssertNotNil(event.data.created); + XCTAssertNotNil(event.data.timestamp); + + if ([createdMemberships indexOfObject:event.data.spaceId] == NSNotFound) { + [createdMemberships addObject:event.data.spaceId]; + } + + if (createdMemberships.count == spaces.count) { + XCTAssertNotEqual([createdMemberships indexOfObject:spaces[0].identifier], NSNotFound); + XCTAssertNotEqual([createdMemberships indexOfObject:spaces[1].identifier], NSNotFound); + *remove = YES; + + handler(); + } + }]; + + client1.manageMemberships() + .userId(users.firstObject.identifier) + .includeFields(PNMembershipSpaceField|PNMembershipSpaceCustomField) + .add(membershipSpaces) + .performWithCompletion(^(PNManageMembershipsStatus *status) { + memberships = status.data.memberships; + XCTAssertFalse(status.isError); + }); + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; + + + [self verifyUserMembershipsCount:users.firstObject.identifier shouldEqualTo:membershipSpaces.count + usingClient:client1]; + + [self deleteUser:users.firstObject.identifier membershipObjects:memberships usingClient:client1]; + [self deleteUserObjectsUsingClient:client1]; + [self deleteSpaceObjectsUsingClient:client1]; +} + +- (void)testItShouldCreateMembershipAndTriggerCreateEventOnSpaceChannel { + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + NSArray *spaces = [self createObjectForSpaces:2 usingClient:client1]; + NSArray *users = [self createObjectForUsers:1 usingClient:client1]; + NSString *channel = spaces.firstObject.identifier; + NSArray *membershipSpaces = @[ + @{ @"spaceId": spaces[0].identifier }, + @{ @"spaceId": spaces[1].identifier } + ]; + __block NSArray *memberships = nil; + + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMembershipHandlerForClient:client2 + withBlock:^(PubNub *client, PNMembershipEventResult *event, BOOL *remove) { + + XCTAssertEqualObjects(event.data.event, @"create"); + XCTAssertNotNil(event.data.created); + XCTAssertNotNil(event.data.timestamp); + *remove = YES; + + handler(); + }]; + + client1.manageMemberships() + .userId(users.firstObject.identifier) + .includeFields(PNMembershipSpaceField|PNMembershipSpaceCustomField) + .add(membershipSpaces) + .performWithCompletion(^(PNManageMembershipsStatus *status) { + memberships = status.data.memberships; + XCTAssertFalse(status.isError); + }); + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; + + [self deleteUser:users.firstObject.identifier membershipObjects:memberships usingClient:client1]; + [self deleteUserObjectsUsingClient:client1]; + [self deleteSpaceObjectsUsingClient:client1]; +} + +- (void)testItShouldNotCreateMembershipWhenUserAlreadyHasMembershipWithTargetSpace { + NSArray *spaces = [self createObjectForSpaces:2 usingClient:nil]; + NSArray *users = [self createObjectForUsers:1 usingClient:nil]; + NSArray *membershipSpaces = @[ + @{ @"spaceId": spaces[0].identifier }, + @{ @"spaceId": spaces[1].identifier } + ]; + __block NSArray *memberships = nil; + __block BOOL retried = NO; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.manageMemberships() + .userId(users.firstObject.identifier) + .includeFields(PNMembershipSpaceField|PNMembershipSpaceCustomField) + .add(membershipSpaces) + .performWithCompletion(^(PNManageMembershipsStatus *status) { + memberships = status.data.memberships; + XCTAssertFalse(status.isError); + handler(); + }); + }]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.manageMemberships() + .userId(users.firstObject.identifier) + .includeFields(PNMembershipSpaceField|PNMembershipSpaceCustomField) + .add(@[membershipSpaces.firstObject]) + .performWithCompletion(^(PNManageMembershipsStatus *status) { + XCTAssertTrue(status.isError); + XCTAssertEqual(status.statusCode, 400); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }); + }]; + + + [self verifyUserMembershipsCount:users.firstObject.identifier shouldEqualTo:membershipSpaces.count + usingClient:nil]; + + [self deleteUser:users.firstObject.identifier membershipObjects:memberships usingClient:nil]; + [self deleteUserObjectsUsingClient:nil]; + [self deleteSpaceObjectsUsingClient:nil]; +} + + +#pragma mark - Tests :: Builder pattern-based update membership + +- (void)testItShouldUpdateMembershipAndReceiveStatusWithExpectedOperationAndCategory { + NSArray *spaces = [self createObjectForSpaces:2 usingClient:nil]; + NSArray *users = [self createObjectForUsers:1 usingClient:nil]; + NSArray *membershipCustom = @[ + @{ @"user-membership-custom": [@[spaces[0].identifier, @"custom", @"data", @"1"] componentsJoinedByString:@"-"] }, + @{ @"user-membership-custom": [@[spaces[1].identifier, @"custom", @"data", @"2"] componentsJoinedByString:@"-"] } + ]; + NSArray *expectedMembershipCustom = @[ + @{ @"user-membership-custom": [@[spaces[0].identifier, @"custom", @"data", @"3"] componentsJoinedByString:@"-"] }, + @{ @"user-membership-custom": [@[spaces[1].identifier, @"custom", @"data", @"4"] componentsJoinedByString:@"-"] } + ]; + + [self createUsersMembership:users inSpaces:spaces withCustoms:membershipCustom usingClient:nil]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.manageMemberships() + .userId(users.firstObject.identifier) + .includeFields(PNMembershipCustomField) + .update(@[ + @{ @"spaceId": spaces[0].identifier, @"custom": expectedMembershipCustom[0] }, + @{ @"spaceId": spaces[1].identifier, @"custom": expectedMembershipCustom[1] }, + ]) + .performWithCompletion(^(PNManageMembershipsStatus *status) { + NSArray *memberships = status.data.memberships; + XCTAssertFalse(status.isError); + XCTAssertNotNil(memberships); + XCTAssertEqual(status.operation, PNManageMembershipsOperation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + + for (PNMembership *membership in memberships) { + for (NSUInteger spaceIdx = 0; spaceIdx < spaces.count; spaceIdx++) { + PNSpace *space = spaces[spaceIdx]; + + if ([membership.spaceId isEqualToString:space.identifier]) { + XCTAssertEqualObjects(membership.custom, expectedMembershipCustom[spaceIdx]); + break; + } + } + } + + handler(); + }); + }]; + + [self deleteUser:users.firstObject.identifier membershipObjectsUsingClient:nil]; + [self deleteUserObjectsUsingClient:nil]; + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldUpdateMembershipAndReturnFilteredSpaceInformationWhenFilterIsSet { + NSArray *spaces = [self createObjectForSpaces:2 usingClient:nil]; + NSArray *users = [self createObjectForUsers:1 usingClient:nil]; + NSUInteger halfNameLength = (NSUInteger)(spaces.lastObject.name.length * 0.5f); + NSString *filterExpression = [NSString stringWithFormat:@"space.name like '%@*'", + [spaces.lastObject.name substringToIndex:halfNameLength]]; + NSString *expectedFilterExpression = [PNString percentEscapedString:filterExpression]; + NSArray *membershipCustom = @[ + @{ @"user-membership-custom": [@[spaces[0].identifier, @"custom", @"data", @"1"] componentsJoinedByString:@"-"] }, + @{ @"user-membership-custom": [@[spaces[1].identifier, @"custom", @"data", @"2"] componentsJoinedByString:@"-"] } + ]; + + [self createUsersMembership:users inSpaces:spaces withCustoms:nil usingClient:nil]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.manageMemberships() + .userId(users.firstObject.identifier) + .includeFields(PNMembershipSpaceField|PNMembershipSpaceCustomField) + .includeCount(YES) + .filter(filterExpression) + .update(@[ + @{ @"spaceId": spaces[0].identifier, @"custom": membershipCustom[0] }, + @{ @"spaceId": spaces[1].identifier, @"custom": membershipCustom[1] }, + ]) + .performWithCompletion(^(PNManageMembershipsStatus *status) { + NSArray *memberships = status.data.memberships; + NSURLRequest *request = [status valueForKey:@"clientRequest"]; + XCTAssertFalse(status.isError); + XCTAssertNotNil(memberships); + XCTAssertNotEqual([request.URL.absoluteString rangeOfString:expectedFilterExpression].location, + NSNotFound); + XCTAssertNotNil(memberships.lastObject.space); + XCTAssertEqualObjects(memberships.lastObject.space.custom, spaces.lastObject.custom); + + handler(); + }); + }]; + + [self deleteUser:users.firstObject.identifier membershipObjectsUsingClient:nil]; + [self deleteUserObjectsUsingClient:nil]; + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldUpdateMembershipAndReturnSortedSpaceInformationWhenSortIsSet { + NSArray *spaces = [self createObjectForSpaces:4 usingClient:nil]; + NSArray *users = [self createObjectForUsers:1 usingClient:nil]; + NSString *expectedSort = @"space.name%3Adesc,created"; + NSArray *membershipCustom = @[ + @{ @"user-membership-custom": [@[spaces[0].identifier, @"custom", @"data", @"1"] componentsJoinedByString:@"-"] }, + @{ @"user-membership-custom": [@[spaces[1].identifier, @"custom", @"data", @"2"] componentsJoinedByString:@"-"] } + ]; + + NSArray *memberships = [self createUsersMembership:users inSpaces:spaces withCustoms:nil + spaceInformation:YES usingClient:nil]; + NSArray *expectedMembershipsOrder = [self memberships:memberships sortedWith:@[ + [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:NO], + [NSSortDescriptor sortDescriptorWithKey:@"created" ascending:YES] + ]]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.manageMemberships() + .userId(users.firstObject.identifier) + .includeFields(PNMembershipSpaceField|PNMembershipSpaceCustomField) + .includeCount(YES) + .sort(@[@"space.name:desc", @"created"]) + .update(@[ + @{ @"spaceId": spaces[0].identifier, @"custom": membershipCustom[0] }, + @{ @"spaceId": spaces[1].identifier, @"custom": membershipCustom[1] }, + ]) + .performWithCompletion(^(PNManageMembershipsStatus *status) { + NSArray *fetchedMemberships = status.data.memberships; + NSURLRequest *request = [status valueForKey:@"clientRequest"]; + XCTAssertFalse(status.isError); + XCTAssertNotNil(fetchedMemberships); + XCTAssertNotEqual([request.URL.absoluteString rangeOfString:expectedSort].location, + NSNotFound); + + for (NSUInteger fetchedMembershipIdx = 0; fetchedMembershipIdx < fetchedMemberships.count; fetchedMembershipIdx++) { + XCTAssertEqualObjects(fetchedMemberships[fetchedMembershipIdx].space.name, + expectedMembershipsOrder[fetchedMembershipIdx].space.name); + } + + XCTAssertNotEqualObjects([fetchedMemberships valueForKeyPath:@"space.name"], + [memberships valueForKeyPath:@"space.name"]); + + handler(); + }); + }]; + + [self deleteUser:users.firstObject.identifier membershipObjectsUsingClient:nil]; + [self deleteUserObjectsUsingClient:nil]; + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldUpdateMembershipAndReturnSpaceInformationWhenSpaceIncludeFlagIsSet { + NSArray *spaces = [self createObjectForSpaces:2 usingClient:nil]; + NSArray *users = [self createObjectForUsers:1 usingClient:nil]; + NSArray *membershipCustom = @[ + @{ @"user-membership-custom": [@[spaces[0].identifier, @"custom", @"data", @"1"] componentsJoinedByString:@"-"] }, + @{ @"user-membership-custom": [@[spaces[1].identifier, @"custom", @"data", @"2"] componentsJoinedByString:@"-"] } + ]; + + [self createUsersMembership:users inSpaces:spaces withCustoms:nil usingClient:nil]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.manageMemberships() + .userId(users.firstObject.identifier) + .includeFields(PNMembershipSpaceField|PNMembershipSpaceCustomField) + .update(@[ + @{ @"spaceId": spaces[0].identifier, @"custom": membershipCustom[0] }, + @{ @"spaceId": spaces[1].identifier, @"custom": membershipCustom[1] }, + ]) + .performWithCompletion(^(PNManageMembershipsStatus *status) { + NSArray *memberships = status.data.memberships; + XCTAssertFalse(status.isError); + XCTAssertNotNil(memberships); + + for (PNMembership *membership in memberships) { + XCTAssertNotNil(membership.space); + + for (PNSpace *space in spaces) { + if ([membership.space.identifier isEqualToString:space.identifier]) { + XCTAssertEqualObjects(membership.space.custom, space.custom); + break; + } + } + } + + handler(); + }); + }]; + + [self deleteUser:users.firstObject.identifier membershipObjectsUsingClient:nil]; + [self deleteUserObjectsUsingClient:nil]; + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldUpdateMembershipAndTriggerUpdateEventOnUserChannel { + NSMutableArray *updatedMemberships = [NSMutableArray new]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + NSArray *spaces = [self createObjectForSpaces:2 usingClient:client1]; + NSArray *users = [self createObjectForUsers:1 usingClient:client1]; + NSString *channel = users.firstObject.identifier; + NSArray *membershipCustom = @[ + @{ @"user-membership-custom": [@[spaces[0].identifier, @"custom", @"data", @"1"] componentsJoinedByString:@"-"] }, + @{ @"user-membership-custom": [@[spaces[1].identifier, @"custom", @"data", @"2"] componentsJoinedByString:@"-"] } + ]; + + [self createUsersMembership:users inSpaces:spaces withCustoms:nil usingClient:client1]; + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMembershipHandlerForClient:client2 + withBlock:^(PubNub *client, PNMembershipEventResult *event, BOOL *remove) { + + XCTAssertEqualObjects(event.data.event, @"update"); + XCTAssertNotNil(event.data.updated); + XCTAssertNotNil(event.data.timestamp); + + if ([updatedMemberships indexOfObject:event.data.spaceId] == NSNotFound) { + [updatedMemberships addObject:event.data.spaceId]; + } + + if (updatedMemberships.count == spaces.count) { + XCTAssertNotEqual([updatedMemberships indexOfObject:spaces[0].identifier], NSNotFound); + XCTAssertNotEqual([updatedMemberships indexOfObject:spaces[1].identifier], NSNotFound); + *remove = YES; + + handler(); + } + }]; + + client1.manageMemberships() + .userId(users.firstObject.identifier) + .includeFields(PNMembershipSpaceField|PNMembershipSpaceCustomField) + .update(@[ + @{ @"spaceId": spaces[0].identifier, @"custom": membershipCustom[0] }, + @{ @"spaceId": spaces[1].identifier, @"custom": membershipCustom[1] }, + ]) + .performWithCompletion(^(PNManageMembershipsStatus *status) { + XCTAssertFalse(status.isError); + }); + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; + + [self deleteUser:users.firstObject.identifier membershipObjectsUsingClient:client1]; + [self deleteUserObjectsUsingClient:client1]; + [self deleteSpaceObjectsUsingClient:client1]; +} + +- (void)testItShouldUpdateMembershipAndTriggerUpdateEventOnSpaceChannel { + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + NSArray *spaces = [self createObjectForSpaces:2 usingClient:client1]; + NSArray *users = [self createObjectForUsers:1 usingClient:client1]; + NSString *channel = spaces.firstObject.identifier; + NSArray *membershipCustom = @[ + @{ @"user-membership-custom": [@[spaces[0].identifier, @"custom", @"data", @"1"] componentsJoinedByString:@"-"] }, + @{ @"user-membership-custom": [@[spaces[1].identifier, @"custom", @"data", @"2"] componentsJoinedByString:@"-"] } + ]; + + [self createUsersMembership:users inSpaces:spaces withCustoms:nil usingClient:client1]; + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMembershipHandlerForClient:client2 + withBlock:^(PubNub *client, PNMembershipEventResult *event, BOOL *remove) { + + XCTAssertEqualObjects(event.data.event, @"update"); + XCTAssertEqualObjects(event.data.spaceId, spaces.firstObject.identifier); + XCTAssertNotNil(event.data.updated); + XCTAssertNotNil(event.data.timestamp); + *remove = YES; + + handler(); + }]; + + client1.manageMemberships() + .userId(users.firstObject.identifier) + .includeFields(PNMembershipSpaceField|PNMembershipSpaceCustomField) + .update(@[ + @{ @"spaceId": spaces[0].identifier, @"custom": membershipCustom[0] }, + @{ @"spaceId": spaces[1].identifier, @"custom": membershipCustom[1] }, + ]) + .performWithCompletion(^(PNManageMembershipsStatus *status) { + XCTAssertFalse(status.isError); + }); + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; + + [self deleteUser:users.firstObject.identifier membershipObjectsUsingClient:client1]; + [self deleteUserObjectsUsingClient:client1]; + [self deleteSpaceObjectsUsingClient:client1]; +} + +- (void)testItShouldNotUpdateMembershipWhenUserNotHaveMembershipWithSpecifiedSpaces { + NSArray *spaces = [self createObjectForSpaces:2 usingClient:nil]; + NSArray *users = [self createObjectForUsers:1 usingClient:nil]; + NSArray *membershipCustom = @[ + @{ @"user-membership-custom": [@[spaces[0].identifier, @"custom", @"data", @"1"] componentsJoinedByString:@"-"] }, + @{ @"user-membership-custom": [@[spaces[1].identifier, @"custom", @"data", @"2"] componentsJoinedByString:@"-"] } + ]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.manageMemberships() + .userId(users.firstObject.identifier) + .includeFields(PNMembershipCustomField) + .update(@[ + @{ @"spaceId": spaces[0].identifier, @"custom": membershipCustom[0] }, + @{ @"spaceId": spaces[1].identifier, @"custom": membershipCustom[1] } + ]) + .performWithCompletion(^(PNManageMembershipsStatus *status) { + XCTAssertTrue(status.isError); + XCTAssertEqual(status.statusCode, 400); + handler(); + }); + }]; + + [self deleteUserObjectsUsingClient:nil]; + [self deleteSpaceObjectsUsingClient:nil]; +} + + +#pragma mark - Tests :: Builder pattern-based delete membership + +/** + * @brief To test 'retry' functionality + * 'ItShouldDeleteMembershipAndReceiveStatusWithExpectedOperationAndCategory.json' should + * be modified after cassette recording. Find first mention of membership remove and copy paste + * 4 entries which belong to it. For new entries change 'id' field to be different from source. For + * original response entry change status code to 404. + */ +- (void)testItShouldDeleteMembershipAndReceiveStatusWithExpectedOperationAndCategory { + if ([self shouldSkipTestWithManuallyModifiedMockedResponse]) { + NSLog(@"'%@' requires special conditions (modified mocked response). Skip", self.name); + return; + } + + NSArray *spaces = [self createObjectForSpaces:2 usingClient:nil]; + NSArray *users = [self createObjectForUsers:1 usingClient:nil]; + __block BOOL retried = NO; + + [self createUsersMembership:users inSpaces:spaces withCustoms:nil usingClient:nil]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.manageMemberships() + .userId(users.firstObject.identifier) + .includeFields(PNMembershipCustomField) + .remove(@[spaces.firstObject.identifier]) + .performWithCompletion(^(PNManageMembershipsStatus *status) { + if (!retried && !YHVVCR.cassette.isNewCassette) { + XCTAssertTrue(status.error); + XCTAssertEqual(status.operation, PNManageMembershipsOperation); + XCTAssertEqual(status.category, PNMalformedResponseCategory); + + retried = YES; + [status retry]; + } else { + NSArray *memberships = status.data.memberships; + XCTAssertFalse(status.isError); + XCTAssertNotNil(memberships); + XCTAssertEqual(memberships.count, 1); + XCTAssertEqualObjects(memberships.firstObject.spaceId, spaces[1].identifier); + XCTAssertEqual(status.operation, PNManageMembershipsOperation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + + [self deleteUser:users.firstObject.identifier cachedMembershipForSpace:spaces[0].identifier]; + + handler(); + } + }); + }]; + + [self deleteUser:users.firstObject.identifier membershipObjectsUsingClient:nil]; + [self deleteUserObjectsUsingClient:nil]; + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldDeleteMembershipAndReturnFilteredSpaceInformationWhenFilterIsSet { + NSArray *spaces = [self createObjectForSpaces:2 usingClient:nil]; + NSArray *users = [self createObjectForUsers:1 usingClient:nil]; + NSUInteger halfNameLength = (NSUInteger)(spaces.lastObject.name.length * 0.5f); + NSString *filterExpression = [NSString stringWithFormat:@"space.name like '%@*'", + [spaces.lastObject.name substringToIndex:halfNameLength]]; + NSString *expectedFilterExpression = [PNString percentEscapedString:filterExpression]; + + [self createUsersMembership:users inSpaces:spaces withCustoms:nil usingClient:nil]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.manageMemberships() + .userId(users.firstObject.identifier) + .includeFields(PNMembershipSpaceField|PNMembershipSpaceCustomField) + .includeCount(YES) + .filter(filterExpression) + .remove(@[spaces[0].identifier]) + .performWithCompletion(^(PNManageMembershipsStatus *status) { + NSArray *memberships = status.data.memberships; + NSURLRequest *request = [status valueForKey:@"clientRequest"]; + XCTAssertFalse(status.isError); + XCTAssertNotNil(memberships); + XCTAssertEqual(status.data.totalCount, 1); + XCTAssertEqual(memberships.count, status.data.totalCount); + XCTAssertNotNil(memberships.firstObject.space); + XCTAssertEqualObjects(memberships.firstObject.space.identifier, spaces[1].identifier); + XCTAssertEqualObjects(memberships.firstObject.space.custom, spaces[1].custom); + XCTAssertNotEqual([request.URL.absoluteString rangeOfString:expectedFilterExpression].location, + NSNotFound); + + [self deleteUser:users.firstObject.identifier cachedMembershipForSpace:spaces[0].identifier]; + + handler(); + }); + }]; + + [self deleteUser:users.firstObject.identifier membershipObjectsUsingClient:nil]; + [self deleteUserObjectsUsingClient:nil]; + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldDeleteMembershipAndReturnSortedSpaceInformationWhenSortedIsSet { + NSArray *spaces = [self createObjectForSpaces:5 usingClient:nil]; + NSArray *users = [self createObjectForUsers:1 usingClient:nil]; + NSString *expectedSort = @"space.name%3Adesc,created"; + + NSMutableArray *memberships = [[self createUsersMembership:users inSpaces:spaces withCustoms:nil + spaceInformation:YES usingClient:nil] mutableCopy]; + [memberships removeObjectAtIndex:0]; + NSArray *expectedMembershipsOrder = [self memberships:memberships sortedWith:@[ + [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:NO], + [NSSortDescriptor sortDescriptorWithKey:@"created" ascending:YES] + ]]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.manageMemberships() + .userId(users.firstObject.identifier) + .includeFields(PNMembershipSpaceField|PNMembershipSpaceCustomField) + .includeCount(YES) + .sort(@[@"space.name:desc", @"created"]) + .remove(@[spaces[0].identifier]) + .performWithCompletion(^(PNManageMembershipsStatus *status) { + NSArray *fetchedMemberships = status.data.memberships; + NSURLRequest *request = [status valueForKey:@"clientRequest"]; + XCTAssertFalse(status.isError); + XCTAssertNotNil(fetchedMemberships); + XCTAssertNotEqual([request.URL.absoluteString rangeOfString:expectedSort].location, + NSNotFound); + + for (NSUInteger fetchedMembershipIdx = 0; fetchedMembershipIdx < fetchedMemberships.count; fetchedMembershipIdx++) { + XCTAssertEqualObjects(fetchedMemberships[fetchedMembershipIdx].space.name, + expectedMembershipsOrder[fetchedMembershipIdx].space.name); + } + + XCTAssertNotEqualObjects([fetchedMemberships valueForKeyPath:@"space.name"], + [memberships valueForKeyPath:@"space.name"]); + + [self deleteUser:users.firstObject.identifier cachedMembershipForSpace:spaces[0].identifier]; + + handler(); + }); + }]; + + [self deleteUser:users.firstObject.identifier membershipObjectsUsingClient:nil]; + [self deleteUserObjectsUsingClient:nil]; + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldDeleteMembershipAndReturnSpaceInformationWhenSpaceIncludeFlagIsSet { + NSArray *spaces = [self createObjectForSpaces:2 usingClient:nil]; + NSArray *users = [self createObjectForUsers:1 usingClient:nil]; + + [self createUsersMembership:users inSpaces:spaces withCustoms:nil usingClient:nil]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.manageMemberships() + .userId(users.firstObject.identifier) + .includeFields(PNMembershipSpaceField|PNMembershipSpaceCustomField) + .remove(@[spaces[0].identifier]) + .performWithCompletion(^(PNManageMembershipsStatus *status) { + NSArray *memberships = status.data.memberships; + XCTAssertFalse(status.isError); + XCTAssertNotNil(memberships); + XCTAssertEqual(memberships.count, 1); + XCTAssertNotNil(memberships.firstObject.space); + XCTAssertEqualObjects(memberships.firstObject.space.identifier, spaces[1].identifier); + XCTAssertEqualObjects(memberships.firstObject.space.custom, spaces[1].custom); + + [self deleteUser:users.firstObject.identifier cachedMembershipForSpace:spaces[0].identifier]; + + handler(); + }); + }]; + + [self deleteUser:users.firstObject.identifier membershipObjectsUsingClient:nil]; + [self deleteUserObjectsUsingClient:nil]; + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldDeleteMembershipAndTriggerDeleteEventOnUserChannel { + NSMutableArray *deletedMemberships = [NSMutableArray new]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + NSArray *spaces = [self createObjectForSpaces:2 usingClient:client1]; + NSArray *users = [self createObjectForUsers:1 usingClient:client1]; + NSString *channel = users.firstObject.identifier; + + [self createUsersMembership:users inSpaces:spaces withCustoms:nil usingClient:client1]; + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMembershipHandlerForClient:client2 + withBlock:^(PubNub *client, PNMembershipEventResult *event, BOOL *remove) { + + XCTAssertEqualObjects(event.data.event, @"delete"); + XCTAssertNotNil(event.data.timestamp); + + if ([deletedMemberships indexOfObject:event.data.spaceId] == NSNotFound) { + [deletedMemberships addObject:event.data.spaceId]; + } + + if (deletedMemberships.count == spaces.count) { + XCTAssertNotEqual([deletedMemberships indexOfObject:spaces[0].identifier], NSNotFound); + XCTAssertNotEqual([deletedMemberships indexOfObject:spaces[1].identifier], NSNotFound); + *remove = YES; + + handler(); + } + }]; + + client1.manageMemberships() + .userId(users.firstObject.identifier) + .includeFields(PNMembershipSpaceField|PNMembershipSpaceCustomField) + .remove(@[spaces[0].identifier, spaces[1].identifier]) + .performWithCompletion(^(PNManageMembershipsStatus *status) { + XCTAssertFalse(status.isError); + }); + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; + + [self deleteUserObjectsUsingClient:client1]; + [self deleteSpaceObjectsUsingClient:client1]; +} + +- (void)testItShouldDeleteMembershipAndTriggerDeleteEventOnSpaceChannel { + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + NSArray *spaces = [self createObjectForSpaces:2 usingClient:client1]; + NSArray *users = [self createObjectForUsers:1 usingClient:client1]; + NSString *channel = spaces.firstObject.identifier; + + [self createUsersMembership:users inSpaces:spaces withCustoms:nil usingClient:client1]; + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMembershipHandlerForClient:client2 + withBlock:^(PubNub *client, PNMembershipEventResult *event, BOOL *remove) { + + XCTAssertEqualObjects(event.data.event, @"delete"); + XCTAssertEqualObjects(event.data.spaceId, spaces.firstObject.identifier); + XCTAssertNotNil(event.data.timestamp); + *remove = YES; + + handler(); + }]; + + client1.manageMemberships() + .userId(users.firstObject.identifier) + .includeFields(PNMembershipSpaceField|PNMembershipSpaceCustomField) + .remove(@[spaces[0].identifier, spaces[1].identifier]) + .performWithCompletion(^(PNManageMembershipsStatus *status) { + XCTAssertFalse(status.isError); + }); + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; + + [self deleteUserObjectsUsingClient:client1]; + [self deleteSpaceObjectsUsingClient:client1]; +} + + +#pragma mark - Tests :: Builder pattern-based fetch membership + +- (void)testItShouldFetchMembershipsAndReceiveResultWithExpectedOperation { + NSArray *spaces = [self createObjectForSpaces:6 usingClient:nil]; + NSArray *users = [self createObjectForUsers:1 usingClient:nil]; + + [self createUsersMembership:users inSpaces:spaces withCustoms:nil usingClient:nil]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.fetchMemberships() + .userId(users.firstObject.identifier) + .performWithCompletion(^(PNFetchMembershipsResult *result, PNErrorStatus *status) { + NSArray *memberships = result.data.memberships; + XCTAssertNil(status); + XCTAssertNotNil(memberships); + XCTAssertEqual(memberships.count, spaces.count); + XCTAssertEqual(result.data.totalCount, 0); + + handler(); + }); + }]; + + [self deleteUser:users.firstObject.identifier membershipObjectsUsingClient:nil]; + [self deleteUserObjectsUsingClient:nil]; + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldFetchFilteredMembershipsWhenFilterIsSet { + NSArray *spaces = [self createObjectForSpaces:6 usingClient:nil]; + NSArray *users = [self createObjectForUsers:1 usingClient:nil]; + NSUInteger halfNameLength = (NSUInteger)(spaces[3].name.length * 0.5f); + NSString *filterExpression = [NSString stringWithFormat:@"space.name like '%@*'", + [spaces[3].name substringToIndex:halfNameLength]]; + NSString *expectedFilterExpression = [PNString percentEscapedString:filterExpression]; + + [self createUsersMembership:users inSpaces:spaces withCustoms:nil usingClient:nil]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.fetchMemberships() + .userId(users.firstObject.identifier) + .includeCount(YES) + .filter(filterExpression) + .performWithCompletion(^(PNFetchMembershipsResult *result, PNErrorStatus *status) { + NSArray *memberships = result.data.memberships; + NSURLRequest *request = [result valueForKey:@"clientRequest"]; + XCTAssertNil(status); + XCTAssertNotNil(memberships); + XCTAssertEqual(result.data.totalCount, 1); + XCTAssertEqual(memberships.count, result.data.totalCount); + XCTAssertNil(result.data.prev); + XCTAssertNotNil(result.data.next); + XCTAssertNotEqual([request.URL.absoluteString rangeOfString:expectedFilterExpression].location, + NSNotFound); + + handler(); + }); + }]; + + [self deleteUser:users.firstObject.identifier membershipObjectsUsingClient:nil]; + [self deleteUserObjectsUsingClient:nil]; + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldFetchSortedMembershipsWhenSortedIsSet { + NSArray *spaces = [self createObjectForSpaces:6 usingClient:nil]; + NSArray *users = [self createObjectForUsers:1 usingClient:nil]; + NSString *expectedSort = @"space.name%3Adesc,created"; + + NSArray *memberships = [self createUsersMembership:users inSpaces:spaces withCustoms:nil + spaceInformation:YES usingClient:nil]; + NSArray *expectedMembershipsOrder = [self memberships:memberships sortedWith:@[ + [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:NO], + [NSSortDescriptor sortDescriptorWithKey:@"created" ascending:YES] + ]]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.fetchMemberships() + .userId(users.firstObject.identifier) + .includeFields(PNMembershipSpaceField|PNMembershipSpaceField) + .includeCount(YES) + .sort(@[@"space.name:desc", @"created"]) + .performWithCompletion(^(PNFetchMembershipsResult *result, PNErrorStatus *status) { + NSArray *fetchedMemberships = result.data.memberships; + NSURLRequest *request = [result valueForKey:@"clientRequest"]; + XCTAssertNil(status); + XCTAssertNotNil(fetchedMemberships); + XCTAssertNil(result.data.prev); + XCTAssertNotNil(result.data.next); + XCTAssertNotEqual([request.URL.absoluteString rangeOfString:expectedSort].location, + NSNotFound); + + for (NSUInteger fetchedMembershipIdx = 0; fetchedMembershipIdx < fetchedMemberships.count; fetchedMembershipIdx++) { + XCTAssertEqualObjects(fetchedMemberships[fetchedMembershipIdx].space.name, + expectedMembershipsOrder[fetchedMembershipIdx].space.name); + } + + XCTAssertNotEqualObjects([fetchedMemberships valueForKeyPath:@"space.name"], + [memberships valueForKeyPath:@"space.name"]); + + handler(); + }); + }]; + + [self deleteUser:users.firstObject.identifier membershipObjectsUsingClient:nil]; + [self deleteUserObjectsUsingClient:nil]; + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldFetchMembershipWhenLimitIsSet { + NSArray *spaces = [self createObjectForSpaces:6 usingClient:nil]; + NSArray *users = [self createObjectForUsers:1 usingClient:nil]; + NSArray *membershipCustom = @[ + @{ @"user-membership-custom": [@[spaces[0].identifier, @"custom", @"data", @"1"] componentsJoinedByString:@"-"] }, + @{ @"user-membership-custom": [@[spaces[1].identifier, @"custom", @"data", @"2"] componentsJoinedByString:@"-"] } + ]; + NSUInteger expectedCount = 2; + + [self createUsersMembership:users inSpaces:spaces withCustoms:membershipCustom usingClient:nil]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.fetchMemberships() + .userId(users.firstObject.identifier) + .limit(expectedCount) + .includeFields(PNMembershipCustomField) + .includeCount(YES) + .performWithCompletion(^(PNFetchMembershipsResult *result, PNErrorStatus *status) { + NSArray *memberships = result.data.memberships; + XCTAssertNil(status); + XCTAssertNotNil(memberships); + XCTAssertEqual(memberships.count, expectedCount); + XCTAssertEqual(result.data.totalCount, spaces.count); + XCTAssertNotNil(memberships.firstObject.custom); + + handler(); + }); + }]; + + [self deleteUser:users.firstObject.identifier membershipObjectsUsingClient:nil]; + [self deleteUserObjectsUsingClient:nil]; + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldFetchNextMembershipPageWhenStartAndLimitIsSet { + NSArray *spaces = [self createObjectForSpaces:6 usingClient:nil]; + NSArray *users = [self createObjectForUsers:1 usingClient:nil]; + __block NSString *next = nil; + + [self createUsersMembership:users inSpaces:spaces withCustoms:nil usingClient:nil]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.fetchMemberships() + .userId(users.firstObject.identifier) + .limit(spaces.count - 2) + .includeCount(YES) + .performWithCompletion(^(PNFetchMembershipsResult *result, PNErrorStatus *status) { + NSArray *memberships = result.data.memberships; + XCTAssertNil(status); + XCTAssertNotNil(memberships); + XCTAssertEqual(memberships.count, spaces.count - 2); + next = result.data.next; + + handler(); + }); + }]; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.fetchMemberships() + .userId(users.firstObject.identifier) + .start(next) + .includeCount(YES) + .performWithCompletion(^(PNFetchMembershipsResult *result, PNErrorStatus *status) { + NSArray *memberships = result.data.memberships; + XCTAssertNil(status); + XCTAssertNotNil(memberships); + XCTAssertEqual(memberships.count, 2); + + handler(); + }); + }]; + + [self deleteUser:users.firstObject.identifier membershipObjectsUsingClient:nil]; + [self deleteUserObjectsUsingClient:nil]; + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldNotFetchMembershipsWhenUserObjectNotExists { + NSString *userIdentifier = [self uuidForUser:@"not-existing-user"]; + __block BOOL retried = NO; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.fetchMemberships() + .userId(userIdentifier) + .performWithCompletion(^(PNFetchMembershipsResult *result, PNErrorStatus *status) { + XCTAssertTrue(status.isError); + XCTAssertEqual(status.statusCode, 404); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }); + }]; +} + + +#pragma mark - Tests :: Member events + +- (void)testItShouldDeleteMemberAndTriggerUserDeleteOnSpaceChannel { + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + NSArray *spaces = [self createObjectForSpaces:2 usingClient:client1]; + NSArray *users = [self createObjectForUsers:1 usingClient:client1]; + NSString *channel = spaces.firstObject.identifier; + + [self createUsersMembership:users inSpaces:spaces withCustoms:nil usingClient:client1]; + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addUserHandlerForClient:client2 + withBlock:^(PubNub *client, PNUserEventResult *event, BOOL *remove) { + + XCTAssertEqualObjects(event.data.event, @"delete"); + XCTAssertEqualObjects(event.data.identifier, users.firstObject.identifier); + XCTAssertNotNil(event.data.timestamp); + *remove = YES; + + handler(); + }]; + + client1.deleteUser() + .userId(users.firstObject.identifier) + .performWithCompletion(^(PNAcknowledgmentStatus *status) { + XCTAssertFalse(status.isError); + }); + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; + + [self deleteUserObjectsUsingClient:client1]; + [self deleteSpaceObjectsUsingClient:client1]; +} + + +#pragma mark - Misc + +- (NSArray *)flattenedMemberships:(NSArray *)memberships { + NSMutableArray *flattenedMemberships = [NSMutableArray new]; + + for (PNMembership *membership in memberships) { + [flattenedMemberships addObject:@{ + @"name": membership.space.name, + @"created": membership.created + }]; + } + + return flattenedMemberships; +} + +- (NSArray *)memberships:(NSArray *)memberships + sortedWith:(NSArray *)sortDescriptors { + + NSMutableArray *sortedMemberships = [NSMutableArray new]; + NSArray *flattenedMemberships = [self flattenedMemberships:memberships]; + NSArray *sortedFlattenedMemberships = [flattenedMemberships sortedArrayUsingDescriptors:sortDescriptors]; + + for (NSDictionary *flattenedMembership in sortedFlattenedMemberships) { + for (PNMembership *membership in memberships) { + if ([membership.space.name isEqualToString:flattenedMembership[@"name"]]) { + [sortedMemberships addObject:membership]; + break; + } + } + } + + return sortedMemberships; +} + +#pragma mark - + +#pragma clang diagnostic pop + +@end diff --git a/Tests/Tests/Integration/Objects/PNSpaceIntegrationTest.m b/Tests/Tests/Integration/Objects/PNSpaceIntegrationTest.m new file mode 100644 index 000000000..a47b0460c --- /dev/null +++ b/Tests/Tests/Integration/Objects/PNSpaceIntegrationTest.m @@ -0,0 +1,551 @@ +/** + * @author Serhii Mamontov + * @copyright © 2010-2020 PubNub, Inc. + */ +#import "PNRecordableTestCase.h" +#import +#import + + +NS_ASSUME_NONNULL_BEGIN + +#pragma mark Interface declaration + +@interface PNSpaceIntegrationTest : PNRecordableTestCase + + +#pragma mark - + + +@end + +NS_ASSUME_NONNULL_END + + +#pragma mark - Tests + +@implementation PNSpaceIntegrationTest + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Warc-retain-cycles" + + +#pragma mark - Setup / Tear down + +- (void)setUp { + [super setUp]; + + + [self completePubNubConfiguration:self.client]; + [self removeAllObjects]; +} + + +#pragma mark - Tests :: Builder pattern-based create space + +- (void)testItShouldCreateSpaceAndReceiveStatusWithExpectedOperationAndCategoryWhenOnlySpaceAndIdentifierIsSet { + NSString *identifier = [self randomizedValuesWithValues:@[@"test-space"]].firstObject; + NSString *name = [self randomizedValuesWithValues:@[@"test-space-name"]].firstObject; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.createSpace() + .spaceId(identifier) + .name(name) + .includeFields(PNSpaceCustomField) + .performWithCompletion(^(PNCreateSpaceStatus *status) { + PNSpace *space = status.data.space; + XCTAssertFalse(status.isError); + XCTAssertNotNil(space); + XCTAssertEqualObjects(space.custom, [NSNull null]); + XCTAssertEqualObjects(space.identifier, identifier); + XCTAssertEqualObjects(space.name, name); + XCTAssertNotNil(space.created); + XCTAssertNotNil(space.updated); + XCTAssertNotNil(space.eTag); + XCTAssertEqual(status.operation, PNCreateSpaceOperation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + + handler(); + }); + }]; + + [self deleteSpaces:@[identifier] usingClient:nil]; +} + +- (void)testItShouldCreateSpaceWhenAdditionalInformationIsSet { + NSString *information = [self randomizedValuesWithValues:@[@"test-space-information"]].firstObject; + NSString *identifier = [self randomizedValuesWithValues:@[@"test-space"]].firstObject; + NSString *name = [self randomizedValuesWithValues:@[@"test-space-name"]].firstObject; + NSDictionary *custom = @{ + @"space-custom1": [@[name, @"custom", @"data", @"1"] componentsJoinedByString:@"-"], + @"space-custom2": [@[name, @"custom", @"data", @"2"] componentsJoinedByString:@"-"] + }; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.createSpace() + .spaceId(identifier) + .name(name) + .information(information) + .custom(custom) + .includeFields(PNSpaceCustomField) + .performWithCompletion(^(PNCreateSpaceStatus *status) { + PNSpace *space = status.data.space; + XCTAssertFalse(status.isError); + XCTAssertNotNil(space); + XCTAssertEqualObjects(space.custom, custom); + XCTAssertEqualObjects(space.information, information); + + handler(); + }); + }]; + + [self deleteSpaces:@[identifier] usingClient:nil]; +} + +- (void)testItShouldNotCreateSpaceWhenSameSpaceAlreadyExists { + NSArray *spaces = [self createObjectForSpaces:1 usingClient:nil]; + __block BOOL retried = NO; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.createSpace() + .spaceId(spaces.firstObject.identifier) + .name(spaces.firstObject.name) + .performWithCompletion(^(PNCreateSpaceStatus *status) { + XCTAssertTrue(status.isError); + XCTAssertEqual(status.statusCode, 409); + XCTAssertNil(status.data.space); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }); + }]; + + [self deleteSpaceObjectsUsingClient:nil]; +} + + +#pragma mark - Tests :: Builder pattern-based update space + +- (void)testItShouldUpdateSpaceAndReceiveStatusWithExpectedOperationAndCategory { + NSString *name = [self randomizedValuesWithValues:@[@"test-space-name"]].firstObject; + NSArray *spaces = [self createObjectForSpaces:1 usingClient:nil]; + NSDate *createDate = spaces.firstObject.created; + NSDate *updateDate = spaces.firstObject.updated; + NSString *eTag = spaces.firstObject.eTag; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.updateSpace() + .spaceId(spaces.firstObject.identifier) + .name(name) + .includeFields(PNSpaceCustomField) + .performWithCompletion(^(PNUpdateSpaceStatus *status) { + PNSpace *space = status.data.space; + XCTAssertFalse(status.isError); + XCTAssertNotNil(space); + XCTAssertNotEqualObjects(space.updated, updateDate); + XCTAssertEqualObjects(space.created, createDate); + XCTAssertEqualObjects(space.name, name); + XCTAssertNotEqualObjects(space.eTag, eTag); + XCTAssertEqual(status.operation, PNUpdateSpaceOperation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + + handler(); + }); + }]; + + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldUpdateSpaceAndTriggerUpdateEventToSpaceChannel { + NSString *name = [self randomizedValuesWithValues:@[@"test-space-name"]].firstObject; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + NSArray *spaces = [self createObjectForSpaces:1 usingClient:client1]; + NSString *channel = spaces.firstObject.identifier; + NSDictionary *custom = @{ + @"space-custom1": [@[name, @"custom", @"data", @"1"] componentsJoinedByString:@"-"], + @"space-custom2": [@[name, @"custom", @"data", @"2"] componentsJoinedByString:@"-"] + }; + + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addSpaceHandlerForClient:client2 + withBlock:^(PubNub *client, PNSpaceEventResult *event, BOOL *remove) { + + XCTAssertEqualObjects(event.data.event, @"update"); + XCTAssertEqualObjects(event.data.name, name); + XCTAssertEqualObjects(event.data.custom, custom); + XCTAssertNotNil(event.data.updated); + XCTAssertNotNil(event.data.timestamp); + *remove = YES; + + handler(); + }]; + + client1.updateSpace() + .spaceId(spaces.firstObject.identifier) + .name(name) + .custom(custom) + .includeFields(PNSpaceCustomField) + .performWithCompletion(^(PNUpdateSpaceStatus *status) { + XCTAssertFalse(status.isError); + }); + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; + + [self deleteSpaceObjectsUsingClient:client1]; +} + +- (void)testItShouldNotUpdateSpaceWhenTargetSpaceNotExists { + NSString *identifier = [self randomizedValuesWithValues:@[@"test-space"]].firstObject; + NSString *name = [self randomizedValuesWithValues:@[@"test-space-name"]].firstObject; + __block BOOL retried = NO; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.updateSpace() + .spaceId(identifier) + .name(name) + .performWithCompletion(^(PNUpdateSpaceStatus *status) { + XCTAssertTrue(status.isError); + XCTAssertEqual(status.statusCode, 404); + XCTAssertNil(status.data.space); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }); + }]; +} + + +#pragma mark - Tests :: Builder pattern-based delete space + +/** + * @brief To test 'retry' functionality + * 'ItShouldDeleteSpaceAndReceiveStatusWithExpectedOperationAndCategory.json' should + * be modified after cassette recording. Find first mention of space remove and copy paste 4 entries + * which belong to it. For new entries change 'id' field to be different from source. For original + * response entry change status code to 404. + */ +- (void)testItShouldDeleteSpaceAndReceiveStatusWithExpectedOperationAndCategory { + if ([self shouldSkipTestWithManuallyModifiedMockedResponse]) { + NSLog(@"'%@' requires special conditions (modified mocked response). Skip", self.name); + return; + } + + NSArray *spaces = [self createObjectForSpaces:2 usingClient:nil]; + __block BOOL retried = NO; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client + .deleteSpace() + .spaceId(spaces.firstObject.identifier) + .performWithCompletion(^(PNAcknowledgmentStatus *status) { + if (!retried && !YHVVCR.cassette.isNewCassette) { + XCTAssertTrue(status.error); + XCTAssertEqual(status.operation, PNDeleteSpaceOperation); + XCTAssertEqual(status.category, PNMalformedResponseCategory); + + retried = YES; + [status retry]; + } else { + XCTAssertFalse(status.error); + XCTAssertEqual(status.operation, PNDeleteSpaceOperation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + + [self deleteCachedSpace:spaces.firstObject.identifier]; + + handler(); + } + }); + }]; + + + [self verifySpacesCountShouldEqualTo:(spaces.count - 1) usingClient:nil]; + + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldDeleteSpaceAndTriggerDeleteEventToSpaceChannel { + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + NSArray *spaces = [self createObjectForSpaces:2 usingClient:client1]; + NSString *channel = spaces.firstObject.identifier; + + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addSpaceHandlerForClient:client2 + withBlock:^(PubNub *client, PNSpaceEventResult *event, BOOL *remove) { + + XCTAssertEqualObjects(event.data.event, @"delete"); + XCTAssertEqualObjects(event.data.identifier, spaces.firstObject.identifier); + XCTAssertNotNil(event.data.timestamp); + *remove = YES; + + handler(); + }]; + + client1.deleteSpace() + .spaceId(spaces.firstObject.identifier) + .performWithCompletion(^(PNAcknowledgmentStatus *status) { + XCTAssertFalse(status.isError); + + [self deleteCachedSpace:spaces.firstObject.identifier]; + }); + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; + + + [self verifySpacesCountShouldEqualTo:(spaces.count - 1) usingClient:client1]; + + [self deleteSpaceObjectsUsingClient:client1]; +} + + +#pragma mark - Tests :: Builder pattern-based fetch space + +- (void)testItShouldFetchSpaceAndReceiveResultWithExpectedOperation { + NSArray *spaces = [self createObjectForSpaces:1 usingClient:nil]; + NSDate *createDate = spaces.firstObject.created; + NSDate *updateDate = spaces.firstObject.updated; + NSString *eTag = spaces.firstObject.eTag; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.fetchSpace() + .spaceId(spaces.firstObject.identifier) + .includeFields(PNSpaceCustomField) + .performWithCompletion(^(PNFetchSpaceResult *result, PNErrorStatus *status) { + PNSpace *space = result.data.space; + XCTAssertNil(status); + XCTAssertNotNil(space); + XCTAssertEqualObjects(space.created, createDate); + XCTAssertEqualObjects(space.updated, updateDate); + XCTAssertEqualObjects(space.eTag, eTag); + XCTAssertEqual(result.operation, PNFetchSpaceOperation); + + handler(); + }); + }]; + + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldNotFetchSpaceWhenTargetSpaceNotExists { + NSString *identifier = [self randomizedValuesWithValues:@[@"test-space"]].firstObject; + __block BOOL retried = NO; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.fetchSpace() + .spaceId(identifier) + .includeFields(PNSpaceCustomField) + .performWithCompletion(^(PNFetchSpaceResult *result, PNErrorStatus *status) { + XCTAssertNil(result); + XCTAssertTrue(status.isError); + XCTAssertEqual(status.statusCode, 404); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }); + }]; +} + + +#pragma mark - Tests :: Builder pattern-based fetch all spaces + +/** + * @brief To test 'retry' functionality + * 'ItShouldFetchAllSpacesAndReceiveResultWithExpectedOperation.json' should + * be modified after cassette recording. Find first mention of spaces fetch and copy paste 4 entries + * which belong to it. For new entries change 'id' field to be different from source. For original + * response entry change status code to 404. + */ +- (void)testItShouldFetchAllSpacesAndReceiveResultWithExpectedOperation { + if ([self shouldSkipTestWithManuallyModifiedMockedResponse]) { + NSLog(@"'%@' requires special conditions (modified mocked response). Skip", self.name); + return; + } + + NSArray *spaces = [self createObjectForSpaces:6 usingClient:nil]; + __block BOOL retried = NO; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.fetchSpaces().performWithCompletion(^(PNFetchSpacesResult *result, PNErrorStatus *status) { + if (!retried && !YHVVCR.cassette.isNewCassette) { + XCTAssertTrue(status.error); + XCTAssertEqual(status.operation, PNFetchSpacesOperation); + XCTAssertEqual(status.category, PNMalformedResponseCategory); + + retried = YES; + [status retry]; + } else { + XCTAssertNil(status); + XCTAssertEqual(result.data.spaces.count, spaces.count); + XCTAssertEqual(result.data.totalCount, 0); + XCTAssertEqual(result.operation, PNFetchSpacesOperation); + + handler(); + } + }); + }]; + + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldFetchFilteredSpacesWhenFilterIsSet { + NSDateFormatter *formatter = [NSDateFormatter pn_formatterWithString:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"]; + formatter.timeZone = [NSTimeZone timeZoneWithAbbreviation:@"UTC"]; + NSArray *spaces = [self createObjectForSpaces:6 usingClient:nil]; + NSUInteger targetSpaceOffset = 3; + NSDate *targetSpaceUpdateDate = spaces[targetSpaceOffset].updated; + NSString *filterExpression = [NSString stringWithFormat:@"updated >= '%@'", + [formatter stringFromDate:targetSpaceUpdateDate]]; + NSString *expectedFilterExpression = [PNString percentEscapedString:filterExpression]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.fetchSpaces() + .includeCount(YES) + .filter(filterExpression) + .performWithCompletion(^(PNFetchSpacesResult *result, PNErrorStatus *status) { + NSURLRequest *request = [result valueForKey:@"clientRequest"]; + XCTAssertNil(status); + XCTAssertEqual(result.data.totalCount, spaces.count - targetSpaceOffset); + XCTAssertEqual(result.data.spaces.count, result.data.totalCount); + XCTAssertNil(result.data.prev); + XCTAssertNotNil(result.data.next); + XCTAssertNotEqual([request.URL.absoluteString rangeOfString:expectedFilterExpression].location, + NSNotFound); + + handler(); + }); + }]; + + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldFetchSortedSpacesWhenSortIsSet { + NSArray *spaces = [self createObjectForSpaces:6 usingClient:nil]; + NSString *expectedSort = @"name%3Adesc,created"; + NSArray *expectedSpacesOrder = [spaces sortedArrayUsingDescriptors:@[ + [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:NO], + [NSSortDescriptor sortDescriptorWithKey:@"created" ascending:YES] + ]]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.fetchSpaces() + .includeCount(YES) + .sort(@[@"name:desc", @"created"]) + .performWithCompletion(^(PNFetchSpacesResult *result, PNErrorStatus *status) { + NSURLRequest *request = [result valueForKey:@"clientRequest"]; + XCTAssertNil(status); + XCTAssertNil(result.data.prev); + XCTAssertNotNil(result.data.next); + XCTAssertNotEqual([request.URL.absoluteString rangeOfString:expectedSort].location, + NSNotFound); + + for (NSUInteger fetchedSpaceIdx = 0; fetchedSpaceIdx < result.data.spaces.count; fetchedSpaceIdx++) { + XCTAssertEqualObjects(result.data.spaces[fetchedSpaceIdx].identifier, + expectedSpacesOrder[fetchedSpaceIdx].identifier); + } + + handler(); + }); + }]; + + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldFetchAllSpacesWhenLimitItSet { + NSArray *spaces = [self createObjectForSpaces:6 usingClient:nil]; + NSUInteger expectedCount = 2; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.fetchSpaces() + .limit(expectedCount) + .includeFields(PNSpaceCustomField) + .includeCount(YES) + .performWithCompletion(^(PNFetchSpacesResult *result, PNErrorStatus *status) { + NSArray *fetchedSpaces = result.data.spaces; + XCTAssertNil(status); + XCTAssertNotNil(fetchedSpaces); + XCTAssertEqual(fetchedSpaces.count, expectedCount); + XCTAssertEqual(result.data.totalCount, spaces.count); + XCTAssertNotNil(fetchedSpaces.firstObject.custom); + + handler(); + }); + }]; + + [self deleteSpaceObjectsUsingClient:nil]; +} + +- (void)testItShouldFetchNextSpacesPageWhenStartAndLimitIsSet { + NSArray *spaces = [self createObjectForSpaces:6 usingClient:nil]; + __block NSString *next = nil; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.fetchSpaces() + .limit(spaces.count - 2) + .includeCount(YES) + .performWithCompletion(^(PNFetchSpacesResult *result, PNErrorStatus *status) { + NSArray *fetchedSpaces = result.data.spaces; + XCTAssertNil(status); + XCTAssertNotNil(fetchedSpaces); + XCTAssertEqual(fetchedSpaces.count, spaces.count - 2); + next = result.data.next; + + handler(); + }); + }]; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.fetchSpaces() + .start(next) + .includeCount(YES) + .performWithCompletion(^(PNFetchSpacesResult *result, PNErrorStatus *status) { + NSArray *fetchedSpaces = result.data.spaces; + XCTAssertNil(status); + XCTAssertNotNil(fetchedSpaces); + XCTAssertEqual(fetchedSpaces.count, 2); + + handler(); + }); + }]; + + [self deleteSpaceObjectsUsingClient:nil]; +} + +#pragma mark - + +#pragma clang diagnostic pop + +@end diff --git a/Tests/Tests/Integration/Objects/PNUserIntegrationTest.m b/Tests/Tests/Integration/Objects/PNUserIntegrationTest.m new file mode 100644 index 000000000..d64d1c29d --- /dev/null +++ b/Tests/Tests/Integration/Objects/PNUserIntegrationTest.m @@ -0,0 +1,564 @@ +/** + * @author Serhii Mamontov + * @copyright © 2010-2020 PubNub, Inc. + */ +#import "PNRecordableTestCase.h" +#import +#import + + +NS_ASSUME_NONNULL_BEGIN + +#pragma mark Interface declaration + +@interface PNUserIntegrationTest : PNRecordableTestCase + + +#pragma mark - + + +@end + +NS_ASSUME_NONNULL_END + + +#pragma mark - Tests + +@implementation PNUserIntegrationTest + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Warc-retain-cycles" + + +#pragma mark - Setup / Tear down + +- (void)setUp { + [super setUp]; + + + [self completePubNubConfiguration:self.client]; + [self removeAllObjects]; +} + + +#pragma mark - Tests :: Builder pattern-based create user + +- (void)testItShouldCreateUserAndReceiveStatusWithExpectedOperationAndCategoryWhenOnlySpaceAndIdentifierIsSet { + NSString *identifier = [self randomizedValuesWithValues:@[@"test-user"]].firstObject; + NSString *name = [self randomizedValuesWithValues:@[@"test-user-name"]].firstObject; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.createUser() + .userId(identifier) + .name(name) + .includeFields(PNUserCustomField) + .performWithCompletion(^(PNCreateUserStatus *status) { + PNUser *user = status.data.user; + XCTAssertFalse(status.isError); + XCTAssertNotNil(user); + XCTAssertEqualObjects(user.externalId, [NSNull null]); + XCTAssertEqualObjects(user.profileUrl, [NSNull null]); + XCTAssertEqualObjects(user.custom, [NSNull null]); + XCTAssertEqualObjects(user.email, [NSNull null]); + XCTAssertEqualObjects(user.identifier, identifier); + XCTAssertEqualObjects(user.name, name); + XCTAssertNotNil(user.created); + XCTAssertNotNil(user.updated); + XCTAssertNotNil(user.eTag); + XCTAssertEqual(status.operation, PNCreateUserOperation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + + handler(); + }); + }]; + + [self deleteUsers:@[identifier] usingClient:nil]; +} + +- (void)testItShouldCreateUserWhenAdditionalInformationIsSet { + NSString *externalId = [self randomizedValuesWithValues:@[@"test-external-identifier"]].firstObject; + NSString *email = [self randomizedValuesWithValues:@[@"test-user-email"]].firstObject; + NSString *identifier = [self randomizedValuesWithValues:@[@"test-user"]].firstObject; + NSString *name = [self randomizedValuesWithValues:@[@"test-user-name"]].firstObject; + NSString *profileUrl = @"https://pubnub.com"; + NSDictionary *custom = @{ + @"user-custom1": [@[name, @"custom", @"data", @"1"] componentsJoinedByString:@"-"], + @"user-custom2": [@[name, @"custom", @"data", @"2"] componentsJoinedByString:@"-"] + }; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.createUser() + .userId(identifier) + .name(name) + .externalId(externalId) + .profileUrl(profileUrl) + .email(email).custom(custom) + .includeFields(PNUserCustomField) + .performWithCompletion(^(PNCreateUserStatus *status) { + PNUser *user = status.data.user; + XCTAssertFalse(status.isError); + XCTAssertNotNil(user); + XCTAssertEqualObjects(user.externalId, externalId); + XCTAssertEqualObjects(user.profileUrl, profileUrl); + XCTAssertEqualObjects(user.identifier, identifier); + XCTAssertEqualObjects(user.custom, custom); + XCTAssertEqualObjects(user.email, email); + XCTAssertEqualObjects(user.name, name); + XCTAssertNotNil(user.created); + XCTAssertNotNil(user.updated); + XCTAssertNotNil(user.eTag); + + handler(); + }); + }]; + + [self deleteUsers:@[identifier] usingClient:nil]; +} + +- (void)testItShouldNotCreateUserWhenSameUserAlreadyExists { + NSArray *users = [self createObjectForUsers:1 usingClient:nil]; + __block BOOL retried = NO; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.createUser() + .userId(users.firstObject.identifier) + .name(users.firstObject.name) + .performWithCompletion(^(PNCreateUserStatus *status) { + XCTAssertTrue(status.isError); + XCTAssertEqual(status.statusCode, 409); + XCTAssertNil(status.data.user); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }); + }]; + + [self deleteUserObjectsUsingClient:nil]; +} + + +#pragma mark - Tests :: Builder pattern-based update space + +- (void)testItShouldUpdateUserAndReceiveStatusWithExpectedOperationAndCategory { + NSString *name = [self randomizedValuesWithValues:@[@"test-space-name"]].firstObject; + NSArray *users = [self createObjectForUsers:1 usingClient:nil]; + NSDate *createDate = users.firstObject.created; + NSDate *updateDate = users.firstObject.updated; + NSString *eTag = users.firstObject.eTag; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.updateUser() + .userId(users.firstObject.identifier) + .name(name) + .includeFields(PNUserCustomField) + .performWithCompletion(^(PNUpdateUserStatus *status) { + PNUser *user = status.data.user; + XCTAssertFalse(status.isError); + XCTAssertNotNil(user); + XCTAssertNotEqualObjects(user.updated, updateDate); + XCTAssertEqualObjects(user.created, createDate); + XCTAssertEqualObjects(user.name, name); + XCTAssertNotEqualObjects(user.eTag, eTag); + XCTAssertEqual(status.operation, PNUpdateUserOperation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + + handler(); + }); + }]; + + [self deleteUserObjectsUsingClient:nil]; +} + +- (void)testItShouldUpdateUserAndTriggerUpdateEventToUserChannel { + NSString *name = [self randomizedValuesWithValues:@[@"test-space-name"]].firstObject; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + NSArray *users = [self createObjectForUsers:1 usingClient:client1]; + NSString *channel = users.firstObject.identifier; + NSDictionary *custom = @{ + @"user-custom1": [@[name, @"custom", @"data", @"1"] componentsJoinedByString:@"-"], + @"user-custom2": [@[name, @"custom", @"data", @"2"] componentsJoinedByString:@"-"] + }; + + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addUserHandlerForClient:client2 + withBlock:^(PubNub *client, PNUserEventResult *event, BOOL *remove) { + + XCTAssertEqualObjects(event.data.event, @"update"); + XCTAssertEqualObjects(event.data.name, name); + XCTAssertEqualObjects(event.data.custom, custom); + XCTAssertNotNil(event.data.updated); + XCTAssertNotNil(event.data.timestamp); + *remove = YES; + + handler(); + }]; + + client1.updateUser() + .userId(users.firstObject.identifier) + .name(name) + .custom(custom) + .performWithCompletion(^(PNUpdateUserStatus *status) { + XCTAssertFalse(status.isError); + }); + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; + + [self deleteUserObjectsUsingClient:client1]; +} + +- (void)testItShouldNotUpdateUserWhenTargetUserNotExists { + NSString *identifier = [self randomizedValuesWithValues:@[@"test-user"]].firstObject; + NSString *name = [self randomizedValuesWithValues:@[@"test-user-name"]].firstObject; + __block BOOL retried = NO; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.updateUser() + .userId(identifier) + .name(name) + .performWithCompletion(^(PNUpdateUserStatus *status) { + XCTAssertTrue(status.isError); + XCTAssertEqual(status.statusCode, 404); + XCTAssertNil(status.data.user); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }); + }]; +} + + +#pragma mark - Tests :: Builder pattern-based delete space + +/** + * @brief To test 'retry' functionality + * 'ItShouldDeleteUserAndReceiveStatusWithExpectedOperationAndCategory.json' should + * be modified after cassette recording. Find first mention of user remove and copy paste 4 entries + * which belong to it. For new entries change 'id' field to be different from source. For original + * response entry change status code to 404. + */ +- (void)testItShouldDeleteUserAndReceiveStatusWithExpectedOperationAndCategory { + if ([self shouldSkipTestWithManuallyModifiedMockedResponse]) { + NSLog(@"'%@' requires special conditions (modified mocked response). Skip", self.name); + return; + } + + NSArray *users = [self createObjectForUsers:2 usingClient:nil]; + __block BOOL retried = NO; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.deleteUser() + .userId(users.firstObject.identifier) + .performWithCompletion(^(PNAcknowledgmentStatus *status) { + if (!retried && !YHVVCR.cassette.isNewCassette) { + XCTAssertTrue(status.error); + XCTAssertEqual(status.operation, PNDeleteUserOperation); + XCTAssertEqual(status.category, PNMalformedResponseCategory); + + retried = YES; + [status retry]; + } else { + XCTAssertFalse(status.error); + XCTAssertEqual(status.operation, PNDeleteUserOperation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + + [self deleteCachedUser:users.firstObject.identifier]; + + handler(); + } + }); + }]; + + + [self verifyUsersCountShouldEqualTo:(users.count - 1) usingClient:nil]; + + [self deleteUserObjectsUsingClient:nil]; +} + +- (void)testItShouldDeleteUserAndTriggerDeleteEventToSUserChannel { + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + NSArray *users = [self createObjectForUsers:2 usingClient:client1]; + NSString *channel = users.firstObject.identifier; + + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addUserHandlerForClient:client2 + withBlock:^(PubNub *client, PNUserEventResult *event, BOOL *remove) { + + XCTAssertEqualObjects(event.data.event, @"delete"); + XCTAssertEqualObjects(event.data.identifier, users.firstObject.identifier); + XCTAssertNotNil(event.data.timestamp); + *remove = YES; + + handler(); + }]; + + client1.deleteUser() + .userId(users.firstObject.identifier) + .performWithCompletion(^(PNAcknowledgmentStatus *status) { + XCTAssertFalse(status.isError); + + [self deleteCachedUser:users.firstObject.identifier]; + }); + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; + + + [self verifyUsersCountShouldEqualTo:(users.count - 1) usingClient:client1]; + + [self deleteUserObjectsUsingClient:client1]; +} + + +#pragma mark - Tests :: Builder pattern-based fetch users + +- (void)testItShouldFetchUserAndReceiveResultWithExpectedOperation { + NSArray *users = [self createObjectForUsers:1 usingClient:nil]; + NSDate *createDate = users.firstObject.created; + NSDate *updateDate = users.firstObject.updated; + NSString *eTag = users.firstObject.eTag; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.fetchUser() + .userId(users.firstObject.identifier) + .includeFields(PNUserCustomField) + .performWithCompletion(^(PNFetchUserResult *result, PNErrorStatus *status) { + PNUser *user = result.data.user; + XCTAssertNil(status); + XCTAssertNotNil(user); + XCTAssertEqualObjects(user.created, createDate); + XCTAssertEqualObjects(user.updated, updateDate); + XCTAssertEqualObjects(user.eTag, eTag); + XCTAssertEqual(result.operation, PNFetchUserOperation); + + handler(); + }); + }]; + + [self deleteUserObjectsUsingClient:nil]; +} + +- (void)testItShouldNotFetchUserWhenTargetUserNotExists { + NSString *identifier = [self randomizedValuesWithValues:@[@"test-user"]].firstObject; + __block BOOL retried = NO; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.fetchUser() + .userId(identifier) + .includeFields(PNUserCustomField) + .performWithCompletion(^(PNFetchUserResult *result, PNErrorStatus *status) { + XCTAssertNil(result); + XCTAssertTrue(status.isError); + XCTAssertEqual(status.statusCode, 404); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }); + }]; +} + + +#pragma mark - Tests :: Builder pattern-based fetch all users + +/** + * @brief To test 'retry' functionality + * 'ItShouldFetchAllUsersAndReceiveResultWithExpectedOperation.json' should + * be modified after cassette recording. Find first mention of users fetch and copy paste 4 entries + * which belong to it. For new entries change 'id' field to be different from source. For original + * response entry change status code to 404. + */ +- (void)testItShouldFetchAllUsersAndReceiveResultWithExpectedOperation { + if ([self shouldSkipTestWithManuallyModifiedMockedResponse]) { + NSLog(@"'%@' requires special conditions (modified mocked response). Skip", self.name); + return; + } + + NSArray *users = [self createObjectForUsers:6 usingClient:nil]; + __block BOOL retried = NO; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.fetchUsers().performWithCompletion(^(PNFetchUsersResult *result, PNErrorStatus *status) { + if (!retried && !YHVVCR.cassette.isNewCassette) { + XCTAssertTrue(status.error); + XCTAssertEqual(status.operation, PNFetchUsersOperation); + XCTAssertEqual(status.category, PNMalformedResponseCategory); + + retried = YES; + [status retry]; + } else { + XCTAssertNil(status); + XCTAssertEqual(result.data.users.count, users.count); + XCTAssertEqual(result.data.totalCount, 0); + XCTAssertEqual(result.operation, PNFetchUsersOperation); + + handler(); + } + }); + }]; + + [self deleteUserObjectsUsingClient:nil]; +} + +- (void)testItShouldFetchFilteredUsersWhenFilterIsSet { + NSDateFormatter *formatter = [NSDateFormatter pn_formatterWithString:@"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"]; + formatter.timeZone = [NSTimeZone timeZoneWithAbbreviation:@"UTC"]; + NSArray *users = [self createObjectForUsers:6 usingClient:nil]; + NSUInteger targetUserOffset = 3; + NSDate *targetUserUpdateDate = users[targetUserOffset].updated; + NSString *filterExpression = [NSString stringWithFormat:@"updated >= '%@'", + [formatter stringFromDate:targetUserUpdateDate]]; + NSString *expectedFilterExpression = [PNString percentEscapedString:filterExpression]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.fetchUsers() + .includeCount(YES) + .filter(filterExpression) + .performWithCompletion(^(PNFetchUsersResult *result, PNErrorStatus *status) { + NSURLRequest *request = [result valueForKey:@"clientRequest"]; + XCTAssertNil(status); + XCTAssertEqual(result.data.totalCount, users.count - targetUserOffset); + XCTAssertEqual(result.data.users.count, result.data.totalCount); + XCTAssertNil(result.data.prev); + XCTAssertNotNil(result.data.next); + XCTAssertNotEqual([request.URL.absoluteString rangeOfString:expectedFilterExpression].location, + NSNotFound); + + handler(); + }); + }]; + + [self deleteUserObjectsUsingClient:nil]; +} + +- (void)testItShouldFetchSortedUsersWhenSortIsSet { + NSArray *users = [self createObjectForUsers:6 usingClient:nil]; + NSString *expectedSort = @"name%3Adesc,created"; + NSArray *expectedUsersOrder = [users sortedArrayUsingDescriptors:@[ + [NSSortDescriptor sortDescriptorWithKey:@"name" ascending:NO], + [NSSortDescriptor sortDescriptorWithKey:@"created" ascending:YES] + ]]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.fetchUsers() + .includeCount(YES) + .sort(@[@"name:desc", @"created"]) + .performWithCompletion(^(PNFetchUsersResult *result, PNErrorStatus *status) { + NSArray *fetchedUsers = result.data.users; + NSURLRequest *request = [result valueForKey:@"clientRequest"]; + XCTAssertNil(status); + XCTAssertNotNil(fetchedUsers); + XCTAssertNil(result.data.prev); + XCTAssertNotNil(result.data.next); + XCTAssertNotEqual([request.URL.absoluteString rangeOfString:expectedSort].location, + NSNotFound); + + for (NSUInteger fetchedUserIdx = 0; fetchedUserIdx < fetchedUsers.count; fetchedUserIdx++) { + XCTAssertEqualObjects(fetchedUsers[fetchedUserIdx].identifier, + expectedUsersOrder[fetchedUserIdx].identifier); + } + + handler(); + }); + }]; + + [self deleteUserObjectsUsingClient:nil]; +} + +- (void)testItShouldFetchAllUsersWhenLimitItSet { + NSArray *users = [self createObjectForUsers:6 usingClient:nil]; + NSUInteger expectedCount = 2; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.fetchUsers() + .limit(expectedCount) + .includeFields(PNUserCustomField) + .includeCount(YES) + .performWithCompletion(^(PNFetchUsersResult *result, PNErrorStatus *status) { + NSArray *fetchedUsers = result.data.users; + XCTAssertNil(status); + XCTAssertNotNil(fetchedUsers); + XCTAssertEqual(fetchedUsers.count, expectedCount); + XCTAssertEqual(result.data.totalCount, users.count); + XCTAssertNotNil(fetchedUsers.firstObject.custom); + + handler(); + }); + }]; + + [self deleteUserObjectsUsingClient:nil]; +} + +- (void)testItShouldFetchNextUsersPageWhenStartAndLimitIsSet { + NSArray *users = [self createObjectForUsers:6 usingClient:nil]; + __block NSString *next = nil; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.fetchUsers() + .limit(users.count - 2) + .includeCount(YES) + .performWithCompletion(^(PNFetchUsersResult *result, PNErrorStatus *status) { + NSArray *fetchedUsers = result.data.users; + XCTAssertNil(status); + XCTAssertNotNil(fetchedUsers); + XCTAssertEqual(fetchedUsers.count, users.count - 2); + next = result.data.next; + + handler(); + }); + }]; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.fetchUsers() + .start(next) + .includeCount(YES) + .performWithCompletion(^(PNFetchUsersResult *result, PNErrorStatus *status) { + NSArray *fetchedUsers = result.data.users; + XCTAssertNil(status); + XCTAssertNotNil(fetchedUsers); + XCTAssertEqual(fetchedUsers.count, 2); + + handler(); + }); + }]; + + [self deleteUserObjectsUsingClient:nil]; +} + +#pragma mark - + +#pragma clang diagnostic pop + +@end diff --git a/Tests/Tests/Integration/PNChannelGroupIntegrationTests.m b/Tests/Tests/Integration/PNChannelGroupIntegrationTests.m new file mode 100644 index 000000000..968b5f4d4 --- /dev/null +++ b/Tests/Tests/Integration/PNChannelGroupIntegrationTests.m @@ -0,0 +1,411 @@ +/** + * @author Serhii Mamontov + * @copyright © 2010-2020 PubNub, Inc. + */ +#import "PNRecordableTestCase.h" +#import "NSString+PNTest.h" + + +#pragma mark Interface declaration + +@interface PNChannelGroupIntegrationTests : PNRecordableTestCase + + +#pragma mark - Information + +/** + * @brief List of channel names used in tests. + */ +@property (nonatomic, copy) NSArray *channels; + +/** + * @brief Channel groups names used in tests. + */ +@property (nonatomic, copy) NSString *channelGroup; + +#pragma mark - + + +@end + + +#pragma mark - Tests + +@implementation PNChannelGroupIntegrationTests + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Warc-retain-cycles" + + +#pragma mark - Setup / Tear down + +- (BOOL)shouldSetupVCR { + BOOL shouldSetupVCR = [super shouldSetupVCR]; + + if (!shouldSetupVCR) { + NSArray *testNames = @[ + @"ShouldNotRemoveChannelsFromGroupAndReceiveBadRequestStatusWhenChannelGroupIsNil", + @"ShouldNotRemoveAllChannelsFromChannelGroupAndReceiveBadRequestStatusWhenChannelGroupIsNil" + ]; + + shouldSetupVCR = [self.name pnt_includesAnyString:testNames]; + } + + return shouldSetupVCR; +} + +- (void)setUp { + [super setUp]; + + + [self completePubNubConfiguration:self.client]; + + self.channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + self.channelGroup = [self channelGroupWithName:@"test-channel-group"]; +} + +- (void)tearDown { + [self removeChannelGroup:self.channelGroup usingClient:nil]; + + [super tearDown]; +} + + +#pragma mark - Tests :: add channels to group + +- (void)testItShouldAddChannelsToChannelGroupAndReceiveStatusWithExpectedOperationAndCategory { + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client addChannels:self.channels toGroup:self.channelGroup + withCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertFalse(status.isError); + XCTAssertEqual(status.operation, PNAddChannelsToGroupOperation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + + handler(); + }]; + }]; + + + [self verifyChannels:self.channels inChannelGroup:self.channelGroup shouldEqual:YES usingClient:nil]; +} + +- (void)testItShouldAddChannelsToExistingChannelGroup { + NSArray *channels = [self channelsWithNames:@[@"test-channel3", @"test-channel4"]]; + NSMutableArray *expectedChannels = [self.channels mutableCopy]; + [expectedChannels addObjectsFromArray:channels]; + + [self addChannels:self.channels toChannelGroup:self.channelGroup usingClient:nil]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client addChannels:channels toGroup:self.channelGroup + withCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertFalse(status.isError); + XCTAssertEqual(status.operation, PNAddChannelsToGroupOperation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + + handler(); + }]; + }]; + + + [self verifyChannels:expectedChannels inChannelGroup:self.channelGroup shouldEqual:YES usingClient:nil]; +} + +- (void)testItShouldNotAddChannelsToChannelGroupAndReceiveBadRequestStatusWhenChannelGroupIsNil { + NSString *channelGroup = nil; + __block BOOL retried = NO; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client addChannels:self.channels toGroup:channelGroup + withCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNAddChannelsToGroupOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }]; + }]; +} + + +#pragma mark - Tests :: Builder pattern-based add channels to group + +- (void)testItShouldAddChannelsToChannelGroupUsingBuilderPatternInterface { + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.stream().add() + .channels(self.channels) + .channelGroup(self.channelGroup) + .performWithCompletion(^(PNAcknowledgmentStatus *status) { + XCTAssertFalse(status.isError); + XCTAssertEqual(status.operation, PNAddChannelsToGroupOperation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + + handler(); + }); + }]; + + + [self verifyChannels:self.channels inChannelGroup:self.channelGroup shouldEqual:YES usingClient:nil]; +} + + +#pragma mark - Tests :: remove channels from group + +- (void)testItShouldRemoveChannelsFromChannelGroupAndReceiveStatusWithExpectedOperationAndCategory { + [self addChannels:self.channels toChannelGroup:self.channelGroup usingClient:nil]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client removeChannels:@[self.channels.firstObject] fromGroup:self.channelGroup + withCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertFalse(status.isError); + XCTAssertEqual(status.operation, PNRemoveChannelsFromGroupOperation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + + handler(); + }]; + }]; + + + [self verifyChannels:@[self.channels.lastObject] inChannelGroup:self.channelGroup shouldEqual:YES + usingClient:nil]; +} + +- (void)testItShouldNotRemoveChannelsFromGroupAndReceiveBadRequestStatusWhenChannelGroupIsNil { + NSString *channelGroup = nil; + __block BOOL retried = NO; + + [self addChannels:self.channels toChannelGroup:self.channelGroup usingClient:nil]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client removeChannels:self.channels fromGroup:channelGroup + withCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNRemoveChannelsFromGroupOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }]; + }]; + + + [self verifyChannels:self.channels inChannelGroup:self.channelGroup shouldEqual:YES usingClient:nil]; +} + + +#pragma mark - Tests :: Builder pattern-based remove channels from group + +- (void)testItShouldRemoveChannelsFromChannelGroupUsingBuilderPatternInterface { + [self addChannels:self.channels toChannelGroup:self.channelGroup usingClient:nil]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.stream().remove() + .channels(@[self.channels.firstObject]) + .channelGroup(self.channelGroup) + .performWithCompletion(^(PNAcknowledgmentStatus *status) { + XCTAssertFalse(status.isError); + XCTAssertEqual(status.operation, PNRemoveChannelsFromGroupOperation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + + handler(); + }); + }]; + + + [self verifyChannels:@[self.channels.lastObject] inChannelGroup:self.channelGroup shouldEqual:YES + usingClient:nil]; +} + + +#pragma mark - Tests :: remove all channels from group + +- (void)testItShouldRemoveAllChannelsFromChannelGroupAndReceiveStatusWithExpectedOperationAndCategory { + [self addChannels:self.channels toChannelGroup:self.channelGroup usingClient:nil]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client removeChannelsFromGroup:self.channelGroup + withCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertFalse(status.isError); + XCTAssertEqual(status.operation, PNRemoveGroupOperation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + + handler(); + }]; + }]; + + + [self verifyChannels:@[] inChannelGroup:self.channelGroup shouldEqual:YES usingClient:nil]; +} + +- (void)testItShouldNotRemoveAllChannelsFromChannelGroupAndReceiveBadRequestStatusWhenChannelGroupIsNil { + NSString *channelGroup = nil; + __block BOOL retried = NO; + + [self addChannels:self.channels toChannelGroup:self.channelGroup usingClient:nil]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client removeChannelsFromGroup:channelGroup withCompletion:^(PNAcknowledgmentStatus *status) { + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNRemoveGroupOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }]; + }]; + + + [self verifyChannels:self.channels inChannelGroup:self.channelGroup shouldEqual:YES usingClient:nil]; +} + + +#pragma mark - Tests :: Builder pattern-based remove all channels from group + +- (void)testItShouldRemoveAllChannelsFromChannelGroupUsingBuilderPatternInterface { + [self addChannels:self.channels toChannelGroup:self.channelGroup usingClient:nil]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.stream().remove() + .channelGroup(self.channelGroup) + .performWithCompletion(^(PNAcknowledgmentStatus *status) { + XCTAssertFalse(status.isError); + XCTAssertEqual(status.operation, PNRemoveGroupOperation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + + handler(); + }); + }]; + + + [self verifyChannels:@[] inChannelGroup:self.channelGroup shouldEqual:YES usingClient:nil]; +} + + +#pragma mark - Tests :: audit channels for group + +/** + * @brief To test 'retry' functionality + * 'testItShouldAuditChannelsToChannelGroupAndReceiveStatusWithExpectedOperationAndCategory.json' should + * be modified after cassette recording and 5-8 elements should be copied and pasted as 9-12 elements. + * For 6 element status code should be modified to 404. + * 'id' for 9-12 entries should be changed (to be different from 5-8 entries ids). + */ +- (void)testItShouldAuditChannelGroupChannelsAndReceiveResultWithExpectedOperationAndCategory { + NSSet *addedChannelsSet = [NSSet setWithArray:self.channels]; + __block BOOL retried = NO; + + if ([self shouldSkipTestWithManuallyModifiedMockedResponse]) { + NSLog(@"'%@' requires special conditions (modified mocked response). Skip", self.name); + return; + } + + [self addChannels:self.channels toChannelGroup:self.channelGroup usingClient:nil]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client channelsForGroup:self.channelGroup + withCompletion:^(PNChannelGroupChannelsResult *result, PNErrorStatus *status) { + + if (!retried) { + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNChannelsForGroupOperation); + XCTAssertEqual(status.category, PNMalformedResponseCategory); + + retried = YES; + [status retry]; + } else { + NSSet *fetchedChannelsSet = [NSSet setWithArray:result.data.channels]; + XCTAssertNil(status); + XCTAssertNotNil(fetchedChannelsSet); + XCTAssertEqual(result.operation, PNChannelsForGroupOperation); + XCTAssertTrue([fetchedChannelsSet isEqualToSet:addedChannelsSet]); + + handler(); + } + }]; + }]; +} + +/** + * @brief Global channel groups disabled by default and will return empty set. + */ +- (void)testItShouldAuditChannelGroupChannelsAndFetchEmptyGlobalWhenChannelGroupNotSpecified { + NSString *channelGroup = nil; + + [self addChannels:self.channels toChannelGroup:self.channelGroup usingClient:nil]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client channelsForGroup:channelGroup + withCompletion:^(PNChannelGroupChannelsResult *result, PNErrorStatus *status) { + + PNChannelGroupsResult *channelGroupsResult = (PNChannelGroupsResult *)result; + XCTAssertNil(status); + XCTAssertNotNil(channelGroupsResult); + XCTAssertEqual(channelGroupsResult.operation, PNChannelGroupsOperation); + XCTAssertEqualObjects(channelGroupsResult.data.groups, @[]); + + handler(); + }]; + }]; +} + + +#pragma mark - Tests :: Builder pattern-based audit channels for group + +- (void)testItShouldAuditChannelGroupChannelsUsingBuilderPatternInterface { + NSSet *addedChannelsSet = [NSSet setWithArray:self.channels]; + + [self addChannels:self.channels toChannelGroup:self.channelGroup usingClient:nil]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.stream().audit() + .channelGroup(self.channelGroup) + .performWithCompletion(^(PNChannelGroupChannelsResult *result, PNErrorStatus *status) { + NSSet *fetchedChannelsSet = [NSSet setWithArray:result.data.channels]; + XCTAssertNil(status); + XCTAssertNotNil(fetchedChannelsSet); + XCTAssertEqual(result.operation, PNChannelsForGroupOperation); + XCTAssertTrue([fetchedChannelsSet isEqualToSet:addedChannelsSet]); + + handler(); + }); + }]; +} + +#pragma mark - + +#pragma clang diagnostic pop + +@end diff --git a/Tests/Tests/Integration/PNHistoryIntegrationTests.m b/Tests/Tests/Integration/PNHistoryIntegrationTests.m new file mode 100644 index 000000000..19c8dc1ff --- /dev/null +++ b/Tests/Tests/Integration/PNHistoryIntegrationTests.m @@ -0,0 +1,1058 @@ +/** + * @author Serhii Mamontov + * @copyright © 2010-2020 PubNub, Inc. + */ +#import "PNRecordableTestCase.h" +#import "NSString+PNTest.h" + + +#pragma mark Interface declaration + +@interface PNHistoryIntegrationTests : PNRecordableTestCase + + +#pragma mark - Information + +/** + * @brief Property used to create various test cases based on number of PubNub instances. + */ +@property (nonatomic, assign) NSUInteger configurationRequestCounter; + +/** + * @brief Message encryption / decryption key. + */ +@property (nonatomic, copy) NSString *cipherKey; + +#pragma mark - + + +@end + + +#pragma mark - Tests + +@implementation PNHistoryIntegrationTests + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Warc-retain-cycles" + + +#pragma mark - Setup / Tear down + +- (BOOL)shouldSetupVCR { + BOOL shouldSetupVCR = [super shouldSetupVCR]; + + if (!shouldSetupVCR) { + NSArray *testNames = @[ + @"ShouldNotDeleteMessagesForChannelAndReceiveBadRequestStatusWhenChannelIsNil" + ]; + + shouldSetupVCR = [self.name pnt_includesAnyString:testNames]; + } + + return shouldSetupVCR; +} + +- (PNConfiguration *)configurationForTestCaseWithName:(NSString *)name { + PNConfiguration *configuration = [super configurationForTestCaseWithName:name]; + + if ([self.name rangeOfString:@"Encrypt"].location != NSNotFound) { + NSString *cipherKey = self.cipherKey; + + if (self.configurationRequestCounter > 0) { + if ([self.name rangeOfString:@"DifferentCipherKeyIsSet"].location != NSNotFound) { + cipherKey = [NSUUID UUID].UUIDString; + } + } + + configuration.cipherKey = cipherKey; + self.configurationRequestCounter++; + } + + return configuration; +} + +- (void)setUp { + [super setUp]; + + + self.cipherKey = @"enigma"; + [self completePubNubConfiguration:self.client]; +} + + +#pragma mark - Tests :: History for channel + +- (void)testItShouldFetchHistoryForChannelAndReceiveResultWithExpectedOperation { + NSString *channel = [self channelWithName:@"test-channel"]; + NSUInteger expectedMessagesCount = 4; + NSUInteger checkedMessageIdx = (NSUInteger)(expectedMessagesCount * 0.5f); + + NSArray *publishedMessages = [self publishMessages:expectedMessagesCount + toChannel:channel + usingClient:nil]; + NSNumber *firstTimetoken = publishedMessages.firstObject[@"timetoken"]; + NSNumber *lastTimetoken = publishedMessages.lastObject[@"timetoken"]; + NSDictionary *checkedMessage = publishedMessages[checkedMessageIdx]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client historyForChannel:channel + withCompletion:^(PNHistoryResult *result, PNErrorStatus *status) { + + NSArray *fetchedMessages = result.data.messages; + XCTAssertNil(status); + XCTAssertNotNil(fetchedMessages); + XCTAssertEqual(fetchedMessages.count, expectedMessagesCount); + XCTAssertEqualObjects(fetchedMessages[checkedMessageIdx], checkedMessage[@"message"]); + XCTAssertEqual([result.data.start compare:firstTimetoken], NSOrderedSame); + XCTAssertEqual([result.data.end compare:lastTimetoken], NSOrderedSame); + XCTAssertEqual(result.operation, PNHistoryOperation); + + handler(); + }]; + }]; + + [self deleteHistoryForChannel:channel usingClient:nil]; +} + +- (void)testItShouldFetchHistoryForChannelInSpecifiedTimeframeWhenStartAndEndIsSet { + NSString *channel = [self channelWithName:@"test-channel"]; + NSUInteger expectedMessagesCount = 5; + + NSArray *publishedMessages = [self publishMessages:expectedMessagesCount + toChannel:channel + usingClient:nil]; + NSNumber *middleMinusOneTimetoken = publishedMessages[1][@"timetoken"]; + NSNumber *middleTimetoken = publishedMessages[2][@"timetoken"]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client historyForChannel:channel start:middleTimetoken end:middleMinusOneTimetoken limit:101 + reverse:YES withCompletion:^(PNHistoryResult *result, PNErrorStatus *status) { + + NSArray *fetchedMessages = result.data.messages; + XCTAssertNil(status); + XCTAssertNotNil(fetchedMessages); + XCTAssertEqual(fetchedMessages.count, 1); + XCTAssertEqualObjects(fetchedMessages.firstObject, publishedMessages[2][@"message"]); + + handler(); + }]; + }]; + + [self deleteHistoryForChannel:channel usingClient:nil]; +} + +- (void)testItShouldFetchHistoryForChannelWithTimetokenWhenFlagItSet { + NSString *channel = [self channelWithName:@"test-channel"]; + NSUInteger expectedMessagesCount = 4; + + NSArray *publishedMessages = [self publishMessages:expectedMessagesCount + toChannel:channel + usingClient:nil]; + NSUInteger checkedMessageIdx = (NSUInteger)(expectedMessagesCount * 0.5f); + NSDictionary *checkedMessage = publishedMessages[checkedMessageIdx]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client historyForChannel:channel start:nil end:nil includeTimeToken:YES + withCompletion:^(PNHistoryResult *result, PNErrorStatus * status) { + + NSArray *fetchedMessages = result.data.messages; + XCTAssertNil(status); + XCTAssertNotNil(fetchedMessages); + XCTAssertEqualObjects(fetchedMessages[checkedMessageIdx][@"message"], checkedMessage[@"message"]); + XCTAssertEqualObjects(fetchedMessages[checkedMessageIdx][@"timetoken"], checkedMessage[@"timetoken"]); + + handler(); + }]; + }]; + + [self deleteHistoryForChannel:channel usingClient:nil]; +} + +- (void)testItShouldFetchHistoryForChannelWithMetadataWhenFlagIsSet { + NSString *channel = [self channelWithName:@"test-channel"]; + NSUInteger expectedMessagesCount = 4; + NSUInteger checkedMessageIdx = (NSUInteger)(expectedMessagesCount * 0.5f); + + NSArray *publishedMessages = [self publishMessages:expectedMessagesCount + toChannel:channel + usingClient:nil]; + NSDictionary *checkedMessage = publishedMessages[checkedMessageIdx]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client historyForChannel:channel withMetadata:YES + completion:^(PNHistoryResult *result, PNErrorStatus *status) { + + NSArray *fetchedMessages = result.data.messages; + XCTAssertNil(status); + XCTAssertNotNil(fetchedMessages); + XCTAssertEqualObjects(fetchedMessages[checkedMessageIdx][@"metadata"], + @{ @"time": checkedMessage[@"message"][@"time"] }); + XCTAssertEqual(result.operation, PNHistoryOperation); + + handler(); + }]; + }]; + + [self deleteHistoryForChannel:channel usingClient:nil]; +} + +- (void)testItShouldFetchHistoryForChannelWithEncryptedMessagesAndDecrypt { + NSString *channel = [self channelWithName:@"test-channel"]; + NSUInteger expectedMessagesCount = 4; + NSUInteger halfSize = (NSUInteger)(expectedMessagesCount * 0.5f); + + NSArray *publishedMessages = [self publishMessages:expectedMessagesCount + toChannel:channel + usingClient:nil]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client historyForChannel:channel start:nil end:nil includeMetadata:YES + withCompletion:^(PNHistoryResult *result, PNErrorStatus *status) { + + NSArray *fetchedMessages = result.data.messages; + XCTAssertNil(status); + XCTAssertNotNil(fetchedMessages); + XCTAssertEqualObjects(fetchedMessages[halfSize][@"message"], + publishedMessages[halfSize][@"message"]); + XCTAssertTrue([fetchedMessages[halfSize] isKindOfClass:[NSDictionary class]]); + + handler(); + }]; + }]; + + [self deleteHistoryForChannel:channel usingClient:nil]; +} + +- (void)testItShouldFetchHistoryForChannelWithEncryptedMessagesAndFailToDecryptWhenDifferentCipherKeyIsSet { + PubNub *consumerClient = [self createPubNubClients:1].lastObject; + NSString *channel = [self channelWithName:@"test-channel"]; + NSUInteger expectedMessagesCount = 4; + NSUInteger halfSize = (NSUInteger)(expectedMessagesCount * 0.5f); + + NSArray *publishedMessages = [self publishMessages:expectedMessagesCount + toChannel:channel + usingClient:nil]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [consumerClient historyForChannel:channel start:nil end:nil includeMessageActions:YES + withCompletion:^(PNHistoryResult *result, PNErrorStatus *status) { + + XCTAssertNil(result); + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNHistoryOperation); + XCTAssertEqual(status.category, PNDecryptionErrorCategory); + NSArray *encryptedMessages = status.associatedObject[@"channels"][channel]; + XCTAssertNotNil(status.associatedObject); + XCTAssertNotNil(encryptedMessages); + XCTAssertNotEqualObjects(encryptedMessages[halfSize][@"message"], publishedMessages[halfSize][@"message"]); + XCTAssertTrue([encryptedMessages[halfSize][@"message"] isKindOfClass:[NSString class]]); + + handler(); + }]; + }]; + + [self deleteHistoryForChannel:channel usingClient:nil]; +} + +- (void)testItShouldFetchOlderChannelHistoryPageWhenCalledWithLimitAndStartAndReceiveResultWithExpectedOperation { + NSString *channel = [self channelWithName:@"test-channel"]; + NSUInteger expectedMessagesCount = 10; + NSUInteger halfSize = (NSUInteger)(expectedMessagesCount * 0.5f); + + NSArray *publishedMessages = [self publishMessages:expectedMessagesCount + toChannel:channel + usingClient:nil]; + NSNumber *firstTimetoken = publishedMessages.firstObject[@"timetoken"]; + NSNumber *lastTimetoken = publishedMessages.lastObject[@"timetoken"]; + NSNumber *middleMinusOneTimetoken = publishedMessages[halfSize - 1][@"timetoken"]; + NSNumber *middleTimetoken = publishedMessages[halfSize][@"timetoken"]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client historyForChannel:channel start:nil end:nil limit:halfSize + includeTimeToken:YES withCompletion:^(PNHistoryResult *result, PNErrorStatus *status) { + + NSArray *fetchedMessages = result.data.messages; + XCTAssertNil(status); + XCTAssertNotNil(fetchedMessages); + NSNumber *firstFetchedTimetoken = fetchedMessages.firstObject[@"timetoken"]; + NSNumber *lastFetchedTimetoken = fetchedMessages.lastObject[@"timetoken"]; + + XCTAssertEqual([firstFetchedTimetoken compare:middleTimetoken], NSOrderedSame); + XCTAssertEqual([lastFetchedTimetoken compare:lastTimetoken], NSOrderedSame); + XCTAssertEqual(fetchedMessages.count, halfSize); + XCTAssertEqual([result.data.start compare:middleTimetoken], NSOrderedSame); + XCTAssertEqual([result.data.end compare:lastTimetoken], NSOrderedSame); + + handler(); + }]; + }]; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client historyForChannel:channel start:middleTimetoken end:nil limit:halfSize + includeTimeToken:YES withCompletion:^(PNHistoryResult *result, PNErrorStatus *status) { + + NSArray *fetchedMessages = result.data.messages; + XCTAssertNil(status); + XCTAssertNotNil(fetchedMessages); + NSNumber *firstFetchedTimetoken = fetchedMessages.firstObject[@"timetoken"]; + NSNumber *lastFetchedTimetoken = fetchedMessages.lastObject[@"timetoken"]; + + XCTAssertEqual([firstFetchedTimetoken compare:firstTimetoken], NSOrderedSame); + XCTAssertEqual([lastFetchedTimetoken compare:middleMinusOneTimetoken], NSOrderedSame); + XCTAssertEqual(fetchedMessages.count, halfSize); + XCTAssertEqual([result.data.start compare:firstTimetoken], NSOrderedSame); + XCTAssertEqual([result.data.end compare:middleMinusOneTimetoken], NSOrderedSame); + + handler(); + }]; + }]; + + [self deleteHistoryForChannel:channel usingClient:nil]; +} + +- (void)testItShouldFetchNewerChannelHistoryPageWhenCalledWithLimitAndStart { + NSString *channel = [self channelWithName:@"test-channel"]; + NSUInteger expectedMessagesCount = 10; + NSUInteger halfSize = (NSUInteger)(expectedMessagesCount * 0.5f); + + NSArray *publishedMessages = [self publishMessages:expectedMessagesCount + toChannel:channel + usingClient:nil]; + NSNumber *firstTimetoken = publishedMessages.firstObject[@"timetoken"]; + NSNumber *lastTimetoken = publishedMessages.lastObject[@"timetoken"]; + NSNumber *middleMinusOneTimetoken = publishedMessages[halfSize - 1][@"timetoken"]; + NSNumber *middleTimetoken = publishedMessages[halfSize][@"timetoken"]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client historyForChannel:channel start:nil end:nil limit:halfSize reverse:YES + includeTimeToken:YES withCompletion:^(PNHistoryResult *result, PNErrorStatus *status) { + + NSArray *fetchedMessages = result.data.messages; + XCTAssertNil(status); + XCTAssertNotNil(fetchedMessages); + NSNumber *firstFetchedTimetoken = fetchedMessages.firstObject[@"timetoken"]; + NSNumber *lastFetchedTimetoken = fetchedMessages.lastObject[@"timetoken"]; + + XCTAssertEqual([firstFetchedTimetoken compare:firstTimetoken], NSOrderedSame); + XCTAssertEqual([lastFetchedTimetoken compare:middleMinusOneTimetoken], NSOrderedSame); + XCTAssertEqual(fetchedMessages.count, halfSize); + XCTAssertEqual([result.data.start compare:firstTimetoken], NSOrderedSame); + XCTAssertEqual([result.data.end compare:middleMinusOneTimetoken], NSOrderedSame); + + handler(); + }]; + }]; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client historyForChannel:channel start:middleMinusOneTimetoken end:nil limit:halfSize reverse:YES + includeTimeToken:YES withCompletion:^(PNHistoryResult *result, PNErrorStatus *status) { + + NSArray *fetchedMessages = result.data.messages; + XCTAssertNil(status); + XCTAssertNotNil(fetchedMessages); + NSNumber *firstFetchedTimetoken = fetchedMessages.firstObject[@"timetoken"]; + NSNumber *lastFetchedTimetoken = fetchedMessages.lastObject[@"timetoken"]; + + XCTAssertEqual([firstFetchedTimetoken compare:middleTimetoken], NSOrderedSame); + XCTAssertEqual([lastFetchedTimetoken compare:lastTimetoken], NSOrderedSame); + XCTAssertEqual(fetchedMessages.count, halfSize); + XCTAssertEqual([result.data.start compare:middleTimetoken], NSOrderedSame); + XCTAssertEqual([result.data.end compare:lastTimetoken], NSOrderedSame); + + handler(); + }]; + }]; + + [self deleteHistoryForChannel:channel usingClient:nil]; +} + +- (void)testItShouldNotFetchHistoryForChannelAndReceiveBadRequestStatusWhenChannelIsNil { + __block BOOL retried = NO; + NSString *channel = nil; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client historyForChannel:channel withCompletion:^(PNHistoryResult *result, PNErrorStatus *status) { + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNHistoryOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }]; + }]; +} + + +#pragma mark - Tests :: Builder pattern-based history for channel + +- (void)testItShouldFetchHistoryForChannelUsingBuilderPatternInterface { + NSString *channel = [self channelWithName:@"test-channel"]; + NSUInteger expectedMessagesCount = 4; + NSUInteger checkedMessageIdx = (NSUInteger)(expectedMessagesCount * 0.5f); + + NSArray *publishedMessages = [self publishMessages:expectedMessagesCount + toChannel:channel + usingClient:nil]; + NSNumber *firstTimetoken = publishedMessages.firstObject[@"timetoken"]; + NSNumber *lastTimetoken = publishedMessages.lastObject[@"timetoken"]; + NSDictionary *checkedMessage = publishedMessages[checkedMessageIdx]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.history() + .channel(channel) + .performWithCompletion(^(PNHistoryResult *result, PNErrorStatus *status) { + NSArray *fetchedMessages = result.data.messages; + XCTAssertNil(status); + XCTAssertNotNil(fetchedMessages); + XCTAssertEqual(fetchedMessages.count, expectedMessagesCount); + XCTAssertEqualObjects(fetchedMessages[checkedMessageIdx], checkedMessage[@"message"]); + XCTAssertEqual([result.data.start compare:firstTimetoken], NSOrderedSame); + XCTAssertEqual([result.data.end compare:lastTimetoken], NSOrderedSame); + XCTAssertEqual(result.operation, PNHistoryOperation); + + handler(); + }); + }]; + + [self deleteHistoryForChannel:channel usingClient:nil]; +} + + +#pragma mark - Tests :: History for channel with actions + +- (void)testItShouldFetchHistoryForChannelWithActionsAndReceiveResultWithExpectedOperation { + NSString *channel = [self channelWithName:@"test-channel"]; + NSUInteger expectedMessagesCount = 2; + NSUInteger expectedActionsCount = 4; + + NSArray *publishedMessages = [self publishMessages:expectedMessagesCount + toChannel:channel + usingClient:nil]; + NSArray *timetokens = [publishedMessages valueForKey:@"timetoken"]; + NSArray *actions = [self addActions:expectedActionsCount + toMessages:timetokens + inChannel:channel + usingClient:nil]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client historyForChannel:channel withMessageActions:YES + completion:^(PNHistoryResult *result, PNErrorStatus *status) { + + NSArray *fetchedMessages = result.data.channels[channel]; + XCTAssertNil(status); + XCTAssertNotNil(fetchedMessages); + + NSDictionary *actionsByType = [fetchedMessages.firstObject valueForKey:@"actions"]; + NSUInteger historyActionsCount = 0; + + for (NSString *actionType in actionsByType) { + for (NSString *actionValue in actionsByType[actionType]) { + BOOL actionFound = NO; + historyActionsCount++; + + for (PNMessageAction *action in actions) { + if (![action.value isEqualToString:actionValue]) { + continue; + } + + actionFound = YES; + } + + XCTAssertTrue(actionFound); + } + }; + + XCTAssertEqual(historyActionsCount, expectedActionsCount); + XCTAssertEqualObjects(fetchedMessages.firstObject[@"timetoken"], timetokens.firstObject); + XCTAssertEqualObjects(fetchedMessages.lastObject[@"timetoken"], timetokens.lastObject); + XCTAssertEqual(result.operation, PNHistoryWithActionsOperation); + + handler(); + }]; + }]; + + [self deleteHistoryForChannel:channel usingClient:nil]; +} + + +#pragma mark - Tests :: Builder pattern-based history for channel with actions + +- (void)testItShouldFetchHistoryWithActionsUsingBuilderPatternInterface { + NSString *channel = [self channelWithName:@"test-channel"]; + NSUInteger expectedMessagesCount = 2; + NSUInteger expectedActionsCount = 4; + + NSArray *publishedMessages = [self publishMessages:expectedMessagesCount + toChannel:channel + usingClient:nil]; + NSArray *timetokens = [publishedMessages valueForKey:@"timetoken"]; + NSArray *actions = [self addActions:expectedActionsCount + toMessages:timetokens + inChannel:channel + usingClient:nil]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.history() + .channel(channel) + .includeMessageActions(YES) + .includeMetadata(YES) + .limit(16) + .performWithCompletion(^(PNHistoryResult *result, PNErrorStatus *status) { + NSArray *fetchedMessages = result.data.channels[channel]; + XCTAssertNil(status); + XCTAssertNotNil(fetchedMessages); + + NSDictionary *actionsByType = [fetchedMessages.firstObject valueForKey:@"actions"]; + NSUInteger historyActionsCount = 0; + + for (NSString *actionType in actionsByType) { + for (NSString *actionValue in actionsByType[actionType]) { + BOOL actionFound = NO; + historyActionsCount++; + + for (PNMessageAction *action in actions) { + if (![action.value isEqualToString:actionValue]) { + continue; + } + + actionFound = YES; + } + + XCTAssertTrue(actionFound); + } + }; + + XCTAssertEqual(historyActionsCount, expectedActionsCount); + XCTAssertEqualObjects(fetchedMessages.firstObject[@"timetoken"], timetokens.firstObject); + XCTAssertEqualObjects(fetchedMessages.lastObject[@"timetoken"], timetokens.lastObject); + XCTAssertEqual(result.operation, PNHistoryWithActionsOperation); + + handler(); + }); + }]; + + [self deleteHistoryForChannel:channel usingClient:nil]; +} + +- (void)testItShouldNotFetchHistoryWithActionsAndReceiveBadRequestStatusWhenMultupleChannelsSet { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + @try { + self.client.history() + .channels(channels) + .includeMessageActions(YES) + .performWithCompletion(^(PNHistoryResult *result, PNErrorStatus *status) { + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNHistoryOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + }); + } @catch (NSException *exception) { + handler(); + } + }]; +} + + +#pragma mark - Tests :: Builder pattern-based history for channels + +- (void)testItShouldFetchOneMessageForEachChannelUsingBuilderPatternInterfaceAndReceiveResultWithExpectedOperation { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSUInteger expectedMessagesCount = 4; + + NSDictionary *publishedMessages = [self publishMessages:expectedMessagesCount + toChannels:channels + usingClient:nil]; + NSArray *messages1 = publishedMessages[channels.firstObject]; + NSArray *messages2 = publishedMessages[channels.lastObject]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.history() + .channels(channels) + .performWithCompletion(^(PNHistoryResult *result, PNErrorStatus *status) { + XCTAssertNil(status); + XCTAssertNotEqualObjects(result.data.channels, @{}); + NSDictionary *channelsWithMessages = result.data.channels; + NSArray *channel1Messages = channelsWithMessages[channels.firstObject]; + NSArray *channel2Messages = channelsWithMessages[channels.lastObject]; + XCTAssertEqual(channelsWithMessages.count, channels.count); + XCTAssertEqual(channel1Messages.count, 1); + XCTAssertEqual(channel2Messages.count, 1); + XCTAssertEqualObjects(channel1Messages.firstObject[@"message"], messages1.lastObject[@"message"]); + XCTAssertEqualObjects(channel2Messages.firstObject[@"message"], messages2.lastObject[@"message"]); + XCTAssertEqual([channel1Messages.firstObject[@"timetoken"] compare:messages1.lastObject[@"timetoken"]], + NSOrderedSame); + XCTAssertEqual([channel2Messages.firstObject[@"timetoken"] compare:messages2.lastObject[@"timetoken"]], + NSOrderedSame); + XCTAssertEqual([result.data.start compare:@(0)], NSOrderedSame); + XCTAssertEqual([result.data.end compare:@(0)], NSOrderedSame); + XCTAssertEqual(result.operation, PNHistoryForChannelsOperation); + + handler(); + }); + }]; + + [self deleteHistoryForChannels:channels usingClient:nil]; +} + +- (void)testItShouldFetchMessagesForEachChannelUsingBuilderPatternInterfaceWhenLimitIsSet { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSUInteger expectedMessagesCount = 4; + NSUInteger checkedMessageIdx = (NSUInteger)(expectedMessagesCount * 0.5f); + + NSDictionary *publishedMessages = [self publishMessages:expectedMessagesCount + toChannels:channels + usingClient:nil]; + NSArray *messages1 = publishedMessages[channels.firstObject]; + NSArray *messages2 = publishedMessages[channels.lastObject]; + NSNumber *channel1FirstTimetoken = messages1.firstObject[@"timetoken"]; + NSNumber *channel1LastTimetoken = messages1.lastObject[@"timetoken"]; + NSNumber *channel2FirstTimetoken = messages2.firstObject[@"timetoken"]; + NSNumber *channel2LastTimetoken = messages2.lastObject[@"timetoken"]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.history() + .channels(channels) + .limit(20) + .includeMetadata(YES) + .performWithCompletion(^(PNHistoryResult *result, PNErrorStatus *status) { + XCTAssertNil(status); + XCTAssertNotEqualObjects(result.data.channels, @{}); + NSDictionary *channelsWithMessages = result.data.channels; + NSArray *channel1Messages = channelsWithMessages[channels.firstObject]; + NSArray *channel2Messages = channelsWithMessages[channels.lastObject]; + XCTAssertEqual(channelsWithMessages.count, channels.count); + XCTAssertEqual(channel1Messages.count, messages1.count); + XCTAssertEqual(channel2Messages.count, messages2.count); + XCTAssertEqualObjects(channel1Messages[checkedMessageIdx][@"message"], + messages1[checkedMessageIdx][@"message"]); + XCTAssertEqualObjects(channel2Messages[checkedMessageIdx][@"message"], + messages2[checkedMessageIdx][@"message"]); + XCTAssertEqualObjects(channel1Messages[checkedMessageIdx][@"metadata"], + @{ @"time": messages1[checkedMessageIdx][@"message"][@"time"]}); + XCTAssertEqualObjects(channel2Messages[checkedMessageIdx][@"metadata"], + @{ @"time": messages2[checkedMessageIdx][@"message"][@"time"]}); + XCTAssertEqual([channel1Messages.firstObject[@"timetoken"] + compare:channel1FirstTimetoken], NSOrderedSame); + XCTAssertEqual([channel1Messages.lastObject[@"timetoken"] + compare:channel1LastTimetoken], NSOrderedSame); + XCTAssertEqual([channel2Messages.firstObject[@"timetoken"] + compare:channel2FirstTimetoken], NSOrderedSame); + XCTAssertEqual([channel2Messages.lastObject[@"timetoken"] + compare:channel2LastTimetoken], NSOrderedSame); + + handler(); + }); + }]; + + [self deleteHistoryForChannels:channels usingClient:nil]; +} + + +#pragma mark - Tests :: Delete history for channel + +- (void)testItShouldDeleteMessagesForChannelAndReceiveStatusWithExpectedOperationAndCategory { + NSString *channel = [self channelWithName:@"test-channel"]; + NSUInteger expectedMessagesCount = 10; + + [self publishMessages:expectedMessagesCount toChannel:channel usingClient:nil]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client deleteMessagesFromChannel:channel start:nil end:nil + withCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertFalse(status.isError); + XCTAssertEqual(status.operation, PNDeleteMessageOperation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + + handler(); + }]; + }]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client historyForChannel:channel withCompletion:^(PNHistoryResult *result, PNErrorStatus *status) { + XCTAssertNil(status); + XCTAssertEqualObjects(result.data.messages, @[]); + XCTAssertEqual(result.operation, PNHistoryOperation); + + handler(); + }]; + }]; + + [self deleteHistoryForChannel:channel usingClient:nil]; +} + +- (void)testItShouldDeleteMessagesForChannelExcludingSpecifiedTimetokenAndOlderWhenStartIsSet { + NSString *channel = [self channelWithName:@"test-channel"]; + NSUInteger expectedMessagesCount = 10; + NSUInteger halfSize = (NSUInteger)(expectedMessagesCount * 0.5f); + + NSArray *publishedMessages = [self publishMessages:expectedMessagesCount + toChannel:channel + usingClient:nil]; + NSNumber *middleTimetoken = publishedMessages[halfSize][@"timetoken"]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client deleteMessagesFromChannel:channel start:middleTimetoken end:nil + withCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertFalse(status.isError); + + handler(); + }]; + }]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client historyForChannel:channel withCompletion:^(PNHistoryResult *result, PNErrorStatus *status) { + NSArray *fetchedMessages = result.data.messages; + XCTAssertNil(status); + XCTAssertNotNil(fetchedMessages); + XCTAssertEqual(fetchedMessages.count, halfSize); + XCTAssertEqualObjects(fetchedMessages.firstObject, publishedMessages[halfSize][@"message"]); + XCTAssertEqualObjects(fetchedMessages.lastObject, publishedMessages.lastObject[@"message"]); + + handler(); + }]; + }]; + + [self deleteHistoryForChannel:channel usingClient:nil]; +} + +- (void)testItShouldDeleteMessagesForChannelIncludingSpecifiedTimetokenAndNewerWhenEndIsSet { + NSString *channel = [self channelWithName:@"test-channel"]; + NSUInteger expectedMessagesCount = 10; + NSUInteger halfSize = (NSUInteger)(expectedMessagesCount * 0.5f); + + NSArray *publishedMessages = [self publishMessages:expectedMessagesCount + toChannel:channel + usingClient:nil]; + NSNumber *middleTimetoken = publishedMessages[halfSize][@"timetoken"]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client deleteMessagesFromChannel:channel start:nil end:middleTimetoken + withCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertFalse(status.isError); + + handler(); + }]; + }]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client historyForChannel:channel withCompletion:^(PNHistoryResult *result, PNErrorStatus *status) { + NSArray *fetchedMessages = result.data.messages; + XCTAssertNil(status); + XCTAssertNotNil(fetchedMessages); + XCTAssertEqual(fetchedMessages.count, halfSize); + XCTAssertEqualObjects(fetchedMessages.firstObject, publishedMessages.firstObject[@"message"]); + XCTAssertEqualObjects(fetchedMessages.lastObject, publishedMessages[halfSize - 1][@"message"]); + + handler(); + }]; + }]; + + [self deleteHistoryForChannel:channel usingClient:nil]; +} + +- (void)testItShouldDeleteMessagesForChannelExcludingSpecifiedStartAndIncludingEndTimetokenWhenStartAndEndIsSet { + NSString *channel = [self channelWithName:@"test-channel"]; + NSUInteger expectedMessagesCount = 10; + + NSArray *publishedMessages = [self publishMessages:expectedMessagesCount + toChannel:channel + usingClient:nil]; + NSNumber *firstTimetoken = publishedMessages[0][@"timetoken"]; + NSNumber *lastTimetoken = publishedMessages[publishedMessages.count - 2][@"timetoken"]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client deleteMessagesFromChannel:channel start:lastTimetoken end:firstTimetoken + withCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertFalse(status.isError); + + handler(); + }]; + }]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client historyForChannel:channel withCompletion:^(PNHistoryResult *result, PNErrorStatus *status) { + NSArray *fetchedMessages = result.data.messages; + XCTAssertNil(status); + XCTAssertNotNil(fetchedMessages); + XCTAssertEqual(fetchedMessages.count, 2); + XCTAssertEqualObjects(fetchedMessages.firstObject, publishedMessages.firstObject[@"message"]); + XCTAssertEqualObjects(fetchedMessages.lastObject, publishedMessages.lastObject[@"message"]); + + handler(); + }]; + }]; + + [self deleteHistoryForChannel:channel usingClient:nil]; +} + +- (void)testItShouldNotDeleteMessagesForChannelAndReceiveBadRequestStatusWhenChannelIsNil { + NSString *channel = [self channelWithName:@"test-channel"]; + NSUInteger expectedMessagesCount = 4; + __block BOOL retried = NO; + NSString *expectedChannel = nil; + + NSArray *publishedMessages = [self publishMessages:expectedMessagesCount + toChannel:channel + usingClient:nil]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client deleteMessagesFromChannel:expectedChannel start:nil end:nil + withCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNDeleteMessageOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }]; + }]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client historyForChannel:channel withCompletion:^(PNHistoryResult *result, PNErrorStatus *status) { + NSArray *fetchedMessages = result.data.messages; + XCTAssertNil(status); + XCTAssertNotNil(fetchedMessages); + XCTAssertEqual(fetchedMessages.count, publishedMessages.count); + XCTAssertEqualObjects(fetchedMessages.firstObject, publishedMessages.firstObject[@"message"]); + XCTAssertEqualObjects(fetchedMessages.lastObject, publishedMessages.lastObject[@"message"]); + + handler(); + }]; + }]; + + [self deleteHistoryForChannel:channel usingClient:nil]; +} + + +#pragma mark - Tests :: Builder pattern-based delete history for channel + +- (void)testItShouldDeleteMessagesForChannelUsingBuilderPatternInterface { + NSString *channel = [self channelWithName:@"test-channel"]; + NSUInteger expectedMessagesCount = 10; + + [self publishMessages:expectedMessagesCount toChannel:channel usingClient:nil]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.deleteMessage() + .channel(channel) + .performWithCompletion(^(PNAcknowledgmentStatus *status) { + XCTAssertFalse(status.isError); + XCTAssertEqual(status.operation, PNDeleteMessageOperation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + + handler(); + }); + }]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client historyForChannel:channel withCompletion:^(PNHistoryResult *result, PNErrorStatus *status) { + XCTAssertNil(status); + XCTAssertEqualObjects(result.data.messages, @[]); + XCTAssertEqual(result.operation, PNHistoryOperation); + + handler(); + }]; + }]; + + [self deleteHistoryForChannel:channel usingClient:nil]; +} + + +#pragma mark - Tests :: Builder pattern-based channel messages count + +- (void)testItShouldFetchMessagesCountForChannelAndReceiveResultWithExpectedOperation { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSUInteger expectedMessagesCount = 5; + NSUInteger expectedCount = 2; + NSUInteger checkedMessageIdx = (NSUInteger)(expectedMessagesCount * 0.5f); + + NSDictionary *publishedMessages = [self publishMessages:expectedMessagesCount + toChannels:channels + usingClient:nil]; + NSNumber *channel1CheckedTimetoken = publishedMessages[channels.firstObject][checkedMessageIdx][@"timetoken"]; + NSNumber *channel2CheckedTimetoken = publishedMessages[channels.lastObject][checkedMessageIdx][@"timetoken"]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.messageCounts() + .channels(channels) + .timetokens(@[channel1CheckedTimetoken, channel2CheckedTimetoken]) + .performWithCompletion(^(PNMessageCountResult *result, PNErrorStatus *status) { + NSDictionary *messagesCount = result.data.channels; + XCTAssertNil(status); + XCTAssertEqual(messagesCount[channels.firstObject].unsignedIntegerValue, expectedCount); + XCTAssertEqual(messagesCount[channels.lastObject].unsignedIntegerValue, expectedCount); + XCTAssertEqual(result.operation, PNMessageCountOperation); + + handler(); + }); + }]; + + [self deleteHistoryForChannels:channels usingClient:nil]; +} + +- (void)testItShouldFetchMessagesCountForChannelAndSingleTimetokenForFewChannels { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSUInteger expectedMessagesCount = 5; + NSUInteger expectedChannel1Count = 2; + NSUInteger expectedChannel2Count = expectedMessagesCount; + NSUInteger checkedMessageIdx = (NSUInteger)(expectedMessagesCount * 0.5f); + + NSDictionary *publishedMessages = [self publishMessages:expectedMessagesCount + toChannels:channels + usingClient:nil]; + NSNumber *channel1CheckedTimetoken = publishedMessages[channels.firstObject][checkedMessageIdx][@"timetoken"]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.messageCounts() + .channels(channels) + .timetokens(@[channel1CheckedTimetoken]) + .performWithCompletion(^(PNMessageCountResult *result, PNErrorStatus *status) { + NSDictionary *messagesCount = result.data.channels; + XCTAssertNil(status); + XCTAssertEqual(messagesCount[channels.firstObject].unsignedIntegerValue, expectedChannel1Count); + XCTAssertEqual(messagesCount[channels.lastObject].unsignedIntegerValue, expectedChannel2Count); + XCTAssertEqual(result.operation, PNMessageCountOperation); + + handler(); + }); + }]; + + [self deleteHistoryForChannels:channels usingClient:nil]; +} + +- (void)testItShouldNotFetchMessagesCountForChannelAndReceiveBadRequestStatusWhenChannelsIsNil { + NSArray *timetokens = @[@1000000]; + NSArray *channels = nil; + __block BOOL retried = NO; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.messageCounts() + .channels(channels) + .timetokens(timetokens) + .performWithCompletion(^(PNMessageCountResult *result, PNErrorStatus *status) { + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNMessageCountOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + + handler(); + }); + }]; +} + +- (void)testItShouldNotFetchMessagesCountForChannelAndReceiveBadRequestStatusWhenDifferentThanChannelsTimetokensCountPassed { + NSArray *channels = [self channelsWithNames:@[@"test-channel1"]]; + NSArray *timetokens = @[@1000000, @1000001]; + __block BOOL retried = NO; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.messageCounts() + .channels(channels) + .timetokens(timetokens) + .performWithCompletion(^(PNMessageCountResult *result, PNErrorStatus *status) { + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNMessageCountOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + + handler(); + }); + }]; +} + +- (void)testItShouldNotFetchMessagesCountForChannelAndReceiveBadRequestStatusWhenTimetokensIsNil { + NSArray *channels = [self channelsWithNames:@[@"test-channel1"]]; + NSArray *timetokens = nil; + __block BOOL retried = NO; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.messageCounts() + .channels(channels) + .timetokens(timetokens) + .performWithCompletion(^(PNMessageCountResult *result, PNErrorStatus *status) { + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNMessageCountOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + + handler(); + }); + }]; +} + +#pragma mark - + +#pragma clang diagnostic pop + +@end diff --git a/Tests/Tests/Integration/PNPresenceIntegrationTest.m b/Tests/Tests/Integration/PNPresenceIntegrationTest.m new file mode 100644 index 000000000..b7324b96d --- /dev/null +++ b/Tests/Tests/Integration/PNPresenceIntegrationTest.m @@ -0,0 +1,1323 @@ +/** + * @author Serhii Mamontov + * @copyright © 2010-2020 PubNub, Inc. + */ +#import "PNRecordableTestCase.h" +#import "NSString+PNTest.h" + + +NS_ASSUME_NONNULL_BEGIN + +#pragma mark Interface declaration + +@interface PNPresenceIntegrationTest : PNRecordableTestCase + + +#pragma mark - + + +@end + +NS_ASSUME_NONNULL_END + + +#pragma mark - Tests + +@implementation PNPresenceIntegrationTest + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Warc-retain-cycles" + + +#pragma mark - Setup / Tear down + +- (PNConfiguration *)configurationForTestCaseWithName:(NSString *)name { + PNConfiguration *configuration = [super configurationForTestCaseWithName:name]; + configuration.presenceHeartbeatValue = 20; + configuration.presenceHeartbeatInterval = 0; + + if ([self.name pnt_includesAnyString:@[@"SetConnected", @"SetNotConnected"]]) { + configuration.managePresenceListManually = ![self.name pnt_includesString:@"ManualPresenceManagementIsDisabled"]; + } + + return configuration; +} + +- (void)setUp { + [super setUp]; + + + [self completePubNubConfiguration:self.client]; +} + + +#pragma mark - Tests :: Global here now + +- (void)testItShouldFetchGlobalHereNowAndReceiveResultWithExpectedOperation { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2", @"test-channel3"]]; + NSArray *clients = [self createPubNubClients:channels.count]; + + + for (NSUInteger clientIdx = 0; clientIdx < clients.count; clientIdx++) { + [self subscribeClient:clients[clientIdx] toChannels:@[channels[clientIdx]] withPresence:NO]; + } + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 5.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client hereNowWithCompletion:^(PNPresenceGlobalHereNowResult *result, PNErrorStatus *status) { + NSDictionary *fetchedChannels = result.data.channels; + XCTAssertNil(status); + XCTAssertNotNil(fetchedChannels); + XCTAssertEqual(fetchedChannels.count, channels.count); + XCTAssertEqual(result.data.totalChannels.unsignedIntegerValue, channels.count); + XCTAssertEqual(result.data.totalOccupancy.unsignedIntegerValue, clients.count); + XCTAssertEqual(result.operation, PNHereNowGlobalOperation); + + for (NSUInteger channelIdx = 0; channelIdx < channels.count; channelIdx++) { + NSDictionary *channelInformation = fetchedChannels[channels[channelIdx]]; + NSString *clientUUID = clients[channelIdx].currentConfiguration.uuid; + + XCTAssertEqual(((NSNumber *)channelInformation[@"occupancy"]).unsignedIntegerValue, 1); + XCTAssertEqualObjects(channelInformation[@"uuids"], @[@{ @"uuid": clientUUID }]); + } + + handler(); + }]; + }]; + + for (NSUInteger clientIdx = 0; clientIdx < clients.count; clientIdx++) { + [self unsubscribeClient:clients[clientIdx] fromChannels:@[channels[clientIdx]] withPresence:NO]; + } + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; +} + +- (void)testItShouldFetchGlobalHereNowWithParticipantsUUIDWhenUUIDVerbosityIsSet { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2", @"test-channel3"]]; + NSArray *clients = [self createPubNubClients:channels.count]; + + + for (NSUInteger clientIdx = 0; clientIdx < clients.count; clientIdx++) { + [self subscribeClient:clients[clientIdx] toChannels:@[channels[clientIdx]] withPresence:NO]; + } + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 5.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client hereNowWithVerbosity:PNHereNowUUID + completion:^(PNPresenceGlobalHereNowResult *result, PNErrorStatus *status) { + + NSDictionary *fetchedChannels = result.data.channels; + XCTAssertNil(status); + XCTAssertNotNil(fetchedChannels); + XCTAssertEqual(fetchedChannels.count, channels.count); + XCTAssertEqual(result.data.totalChannels.unsignedIntegerValue, channels.count); + XCTAssertEqual(result.data.totalOccupancy.unsignedIntegerValue, clients.count); + + for (NSUInteger channelIdx = 0; channelIdx < channels.count; channelIdx++) { + NSDictionary *channelInformation = fetchedChannels[channels[channelIdx]]; + NSString *clientUUID = clients[channelIdx].currentConfiguration.uuid; + + XCTAssertEqual(((NSNumber *)channelInformation[@"occupancy"]).unsignedIntegerValue, 1); + XCTAssertEqualObjects(channelInformation[@"uuids"], @[clientUUID]); + } + + handler(); + }]; + }]; + + for (NSUInteger clientIdx = 0; clientIdx < clients.count; clientIdx++) { + [self unsubscribeClient:clients[clientIdx] fromChannels:@[channels[clientIdx]] withPresence:NO]; + } + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; +} + +- (void)testItShouldFetchGlobalHereNowWithParticipantsStateWhenStateVerbosityIsSet { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2", @"test-channel3"]]; + NSArray *states = @[ + @{ @"channel1-state": [self randomizedValuesWithValues:@[@"channel-1-random-value"]] }, + @{ @"channel2-state": [self randomizedValuesWithValues:@[@"channel-2-random-value"]] }, + @{ @"channel3-state": [self randomizedValuesWithValues:@[@"channel-3-random-value"]] }, + ]; + NSArray *clients = [self createPubNubClients:channels.count]; + + + for (NSUInteger clientIdx = 0; clientIdx < clients.count; clientIdx++) { + [self subscribeClient:clients[clientIdx] toChannels:@[channels[clientIdx]] withPresence:NO]; + } + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 5.f : 0.f)]; + + for (NSUInteger clientIdx = 0; clientIdx < clients.count; clientIdx++) { + [self setState:states[clientIdx] onChannel:channels[clientIdx] usingClient:clients[clientIdx]]; + } + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client hereNowWithVerbosity:PNHereNowState + completion:^(PNPresenceGlobalHereNowResult *result, PNErrorStatus *status) { + NSDictionary *fetchedChannels = result.data.channels; + XCTAssertNil(status); + XCTAssertNotNil(fetchedChannels); + + for (NSUInteger channelIdx = 0; channelIdx < channels.count; channelIdx++) { + NSDictionary *channelInformation = fetchedChannels[channels[channelIdx]]; + NSString *clientUUID = clients[channelIdx].currentConfiguration.uuid; + NSDictionary *channelParticipant = channelInformation[@"uuids"][0]; + + XCTAssertEqualObjects(channelParticipant[@"uuid"], clientUUID); + XCTAssertEqualObjects(channelParticipant[@"state"], states[channelIdx]); + } + + handler(); + }]; + }]; + + for (NSUInteger clientIdx = 0; clientIdx < clients.count; clientIdx++) { + [self unsubscribeClient:clients[clientIdx] fromChannels:@[channels[clientIdx]] withPresence:NO]; + } + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; +} + +/** + * @brief To test 'retry' functionality + * 'ItShouldFetchGlobalHereWithParticipantsOccupancyWhenOccupancyVerbosityIsSet.json' should + * be modified after cassette recording. Find first place where presence fetch API usage and copy paste + * 4 entries which belong to it. For new entries change 'id' field to be different from source. For + * original response entry change status code to 404. + */ +- (void)testItShouldFetchGlobalHereNowWithParticipantsOccupancyWhenOccupancyVerbosityIsSet { + if ([self shouldSkipTestWithManuallyModifiedMockedResponse]) { + NSLog(@"'%@' requires special conditions (modified mocked response). Skip", self.name); + return; + } + + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2", @"test-channel3"]]; + NSArray *clients = [self createPubNubClients:channels.count]; + __block BOOL retried = NO; + + + for (NSUInteger clientIdx = 0; clientIdx < clients.count; clientIdx++) { + [self subscribeClient:clients[clientIdx] toChannels:@[channels[clientIdx]] withPresence:NO]; + } + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 5.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client hereNowWithVerbosity:PNHereNowOccupancy + completion:^(PNPresenceGlobalHereNowResult *result, PNErrorStatus *status) { + + if (!retried) { + XCTAssertTrue(status.error); + XCTAssertEqual(status.operation, PNHereNowGlobalOperation); + XCTAssertEqual(status.category, PNMalformedResponseCategory); + + retried = YES; + [status retry]; + } else { + NSDictionary *fetchedChannels = result.data.channels; + XCTAssertNil(status); + XCTAssertNotNil(fetchedChannels); + + for (NSUInteger channelIdx = 0; channelIdx < channels.count; channelIdx++) { + NSDictionary *channelInformation = fetchedChannels[channels[channelIdx]]; + + XCTAssertNil(channelInformation[@"uuids"]); + XCTAssertEqual(((NSNumber *)channelInformation[@"occupancy"]).unsignedIntegerValue, 1); + } + + handler(); + } + }]; + }]; + + for (NSUInteger clientIdx = 0; clientIdx < clients.count; clientIdx++) { + [self unsubscribeClient:clients[clientIdx] fromChannels:@[channels[clientIdx]] withPresence:NO]; + } + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; +} + + +#pragma mark - Tests :: Builder pattern-based global here now + +- (void)testItShouldFetchGlobalHereNowUsingBuilderPatternInterface { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2", @"test-channel3"]]; + NSArray *clients = [self createPubNubClients:channels.count]; + + + for (NSUInteger clientIdx = 0; clientIdx < clients.count; clientIdx++) { + [self subscribeClient:clients[clientIdx] toChannels:@[channels[clientIdx]] withPresence:NO]; + } + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 5.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.presence().hereNow() + .performWithCompletion(^(PNPresenceGlobalHereNowResult *result, PNErrorStatus *status) { + NSDictionary *fetchedChannels = result.data.channels; + XCTAssertNil(status); + XCTAssertNotNil(fetchedChannels); + XCTAssertEqual(fetchedChannels.count, channels.count); + XCTAssertEqual(result.data.totalChannels.unsignedIntegerValue, channels.count); + XCTAssertEqual(result.data.totalOccupancy.unsignedIntegerValue, clients.count); + XCTAssertEqual(result.operation, PNHereNowGlobalOperation); + + for (NSUInteger channelIdx = 0; channelIdx < channels.count; channelIdx++) { + NSDictionary *channelInformation = fetchedChannels[channels[channelIdx]]; + NSString *clientUUID = clients[channelIdx].currentConfiguration.uuid; + + XCTAssertEqual(((NSNumber *)channelInformation[@"occupancy"]).unsignedIntegerValue, 1); + XCTAssertEqualObjects(channelInformation[@"uuids"], @[@{ @"uuid": clientUUID }]); + } + + handler(); + }); + }]; + + for (NSUInteger clientIdx = 0; clientIdx < clients.count; clientIdx++) { + [self unsubscribeClient:clients[clientIdx] fromChannels:@[channels[clientIdx]] withPresence:NO]; + } + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; +} + + +#pragma mark - Tests :: Channel here now + +- (void)testItShouldFetchChannelHereNowAndReceiveResultWithExpectedOperation { + NSString *channel = [self channelsWithNames:@[@"test-channel1"]].lastObject; + NSArray *clients = [self createPubNubClients:3]; + + + for (NSUInteger clientIdx = 0; clientIdx < clients.count; clientIdx++) { + [self subscribeClient:clients[clientIdx] toChannels:@[channel] withPresence:NO]; + } + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 5.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client hereNowForChannel:channel + withCompletion:^(PNPresenceChannelHereNowResult *result, PNErrorStatus *status) { + + NSArray *uuids = result.data.uuids; + XCTAssertNil(status); + XCTAssertNotNil(uuids); + XCTAssertEqual(uuids.count, clients.count); + XCTAssertEqual(result.data.occupancy.unsignedIntegerValue, clients.count); + XCTAssertEqual(result.operation, PNHereNowForChannelOperation); + + for (NSUInteger clientIdx = 0; clientIdx < clients.count; clientIdx++) { + PubNub *client = clients[clientIdx]; + + XCTAssertTrue([uuids containsObject:@{ @"uuid": client.currentConfiguration.uuid }]); + } + + handler(); + }]; + }]; + + for (NSUInteger clientIdx = 0; clientIdx < clients.count; clientIdx++) { + [self unsubscribeClient:clients[clientIdx] fromChannels:@[channel] withPresence:NO]; + } + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; +} + +- (void)testItShouldFetchChannelHereNowWithParticipantsUUIDWhenUUIDVerbosityIsSet { + NSString *channel = [self channelsWithNames:@[@"test-channel1"]].lastObject; + NSArray *clients = [self createPubNubClients:3]; + + + for (NSUInteger clientIdx = 0; clientIdx < clients.count; clientIdx++) { + [self subscribeClient:clients[clientIdx] toChannels:@[channel] withPresence:NO]; + } + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 5.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client hereNowForChannel:channel withVerbosity:PNHereNowUUID + completion:^(PNPresenceChannelHereNowResult *result, PNErrorStatus *status) { + + NSArray *uuids = result.data.uuids; + XCTAssertNil(status); + XCTAssertNotNil(uuids); + XCTAssertEqual(uuids.count, clients.count); + XCTAssertEqual(result.data.occupancy.unsignedIntegerValue, clients.count); + + for (NSUInteger clientIdx = 0; clientIdx < clients.count; clientIdx++) { + PubNub *client = clients[clientIdx]; + + XCTAssertTrue([uuids containsObject:client.currentConfiguration.uuid]); + } + + handler(); + }]; + }]; + + for (NSUInteger clientIdx = 0; clientIdx < clients.count; clientIdx++) { + [self unsubscribeClient:clients[clientIdx] fromChannels:@[channel] withPresence:NO]; + } + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; +} + +- (void)testItShouldFetchChannelHereNowWithParticipantsStateWhenStateVerbosityIsSet { + NSString *channel = [self channelsWithNames:@[@"test-channel1"]].lastObject; + NSDictionary *state = @{ @"channel1-state": [self randomizedValuesWithValues:@[@"channel-1-random-value"]] }; + NSArray *clients = [self createPubNubClients:3]; + + + for (NSUInteger clientIdx = 0; clientIdx < clients.count; clientIdx++) { + [self subscribeClient:clients[clientIdx] toChannels:@[channel] withPresence:NO]; + } + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 5.f : 0.f)]; + + for (NSUInteger clientIdx = 0; clientIdx < clients.count; clientIdx++) { + [self setState:state onChannel:channel usingClient:clients[clientIdx]]; + } + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client hereNowForChannel:channel withVerbosity:PNHereNowState + completion:^(PNPresenceChannelHereNowResult *result, PNErrorStatus *status) { + + NSArray *uuids = result.data.uuids; + XCTAssertNil(status); + XCTAssertNotNil(uuids); + + for (NSUInteger clientIdx = 0; clientIdx < clients.count; clientIdx++) { + NSString *clientUUID = clients[clientIdx].currentConfiguration.uuid; + NSDictionary *userInformation = nil; + + for (NSDictionary *information in uuids) { + if ([information[@"uuid"] isEqualToString:clientUUID]) { + userInformation = information; + break; + } + } + + XCTAssertNotNil(userInformation); + XCTAssertEqualObjects(userInformation[@"state"], state); + } + + handler(); + }]; + }]; + + for (NSUInteger clientIdx = 0; clientIdx < clients.count; clientIdx++) { + [self unsubscribeClient:clients[clientIdx] fromChannels:@[channel] withPresence:NO]; + } + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; +} + +- (void)testItShouldFetchChannelHereNowWithParticipantsOccupancyWhenOccupancyVerbosityIsSet { + NSString *channel = [self channelsWithNames:@[@"test-channel1"]].lastObject; + NSArray *clients = [self createPubNubClients:3]; + + + for (NSUInteger clientIdx = 0; clientIdx < clients.count; clientIdx++) { + [self subscribeClient:clients[clientIdx] toChannels:@[channel] withPresence:NO]; + } + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 5.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client hereNowForChannel:channel + withVerbosity:PNHereNowOccupancy + completion:^(PNPresenceChannelHereNowResult *result, PNErrorStatus *status) { + + NSNumber *fetchedOccupancy = result.data.occupancy; + XCTAssertNil(status); + XCTAssertNotNil(fetchedOccupancy); + XCTAssertEqual(fetchedOccupancy.unsignedIntegerValue, clients.count); + + handler(); + }]; + }]; + + for (NSUInteger clientIdx = 0; clientIdx < clients.count; clientIdx++) { + [self unsubscribeClient:clients[clientIdx] fromChannels:@[channel] withPresence:NO]; + } + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; +} + +- (void)testItShouldNotFetchChannelHereNowAndReceiveBadRequestStatusWhenChannelIsNil { + __block BOOL retried = NO; + NSString *channel = nil; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client hereNowForChannel:channel + withCompletion:^(PNPresenceChannelHereNowResult *result, PNErrorStatus *status) { + + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNHereNowForChannelOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }]; + }]; +} + + +#pragma mark - Tests :: Builder pattern-based channel here now + +- (void)testItShouldFetchChannelHereNowUsingBuilderPatternInterface { + NSString *channel = [self channelsWithNames:@[@"test-channel1"]].lastObject; + NSArray *clients = [self createPubNubClients:3]; + + + for (NSUInteger clientIdx = 0; clientIdx < clients.count; clientIdx++) { + [self subscribeClient:clients[clientIdx] toChannels:@[channel] withPresence:NO]; + } + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 5.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.presence().hereNow() + .channel(channel) + .verbosity(PNHereNowOccupancy) + .performWithCompletion(^(PNPresenceChannelHereNowResult *result, PNErrorStatus *status) { + NSNumber *fetchedOccupancy = result.data.occupancy; + XCTAssertNil(status); + XCTAssertNotNil(fetchedOccupancy); + XCTAssertEqual(fetchedOccupancy.unsignedIntegerValue, clients.count); + XCTAssertEqual(result.operation, PNHereNowForChannelOperation); + + handler(); + }); + }]; + + for (NSUInteger clientIdx = 0; clientIdx < clients.count; clientIdx++) { + [self unsubscribeClient:clients[clientIdx] fromChannels:@[channel] withPresence:NO]; + } + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; +} + + +#pragma mark - Tests :: Channel group here now + +- (void)testItShouldFetchChannelGroupHereNowAndReceiveResultWithExpectedOperation { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2", @"test-channel3"]]; + NSString *channelGroup = [self channelGroupWithName:@"test-channel-group"]; + NSArray *clients = [self createPubNubClients:channels.count]; + + + [self addChannels:channels toChannelGroup:channelGroup usingClient:nil]; + + for (NSUInteger clientIdx = 0; clientIdx < clients.count; clientIdx++) { + [self subscribeClient:clients[clientIdx] toChannels:@[channels[clientIdx]] withPresence:NO]; + } + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 5.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client hereNowForChannelGroup:channelGroup + withCompletion:^(PNPresenceChannelGroupHereNowResult *result, PNErrorStatus *status) { + + NSDictionary *fetchedChannels = result.data.channels; + XCTAssertNil(status); + XCTAssertNotNil(fetchedChannels); + XCTAssertEqual(fetchedChannels.count, channels.count); + XCTAssertEqual(result.data.totalChannels.unsignedIntegerValue, channels.count); + XCTAssertEqual(result.data.totalOccupancy.unsignedIntegerValue, clients.count); + XCTAssertEqual(result.operation, PNHereNowForChannelGroupOperation); + + for (NSUInteger channelIdx = 0; channelIdx < channels.count; channelIdx++) { + NSDictionary *channelInformation = fetchedChannels[channels[channelIdx]]; + NSString *clientUUID = clients[channelIdx].currentConfiguration.uuid; + + XCTAssertEqual(((NSNumber *)channelInformation[@"occupancy"]).unsignedIntegerValue, 1); + XCTAssertEqualObjects(channelInformation[@"uuids"], @[@{ @"uuid": clientUUID }]); + } + + handler(); + + }]; + }]; + + for (NSUInteger clientIdx = 0; clientIdx < clients.count; clientIdx++) { + [self unsubscribeClient:clients[clientIdx] fromChannels:channels withPresence:NO]; + } + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + [self removeChannelGroup:channelGroup usingClient:nil]; +} + +- (void)testItShouldFetchChannelGroupHereNowWithParticipantsUUIDWhenUUIDVerbosityIsSet { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2", @"test-channel3"]]; + NSString *channelGroup = [self channelGroupWithName:@"test-channel-group"]; + NSArray *clients = [self createPubNubClients:channels.count]; + + + [self addChannels:channels toChannelGroup:channelGroup usingClient:nil]; + + for (NSUInteger clientIdx = 0; clientIdx < clients.count; clientIdx++) { + [self subscribeClient:clients[clientIdx] toChannels:@[channels[clientIdx]] withPresence:NO]; + } + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 5.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client hereNowForChannelGroup:channelGroup + withVerbosity:PNHereNowUUID + completion:^(PNPresenceChannelGroupHereNowResult *result, PNErrorStatus *status) { + + NSDictionary *fetchedChannels = result.data.channels; + XCTAssertNil(status); + XCTAssertNotNil(fetchedChannels); + XCTAssertEqual(fetchedChannels.count, channels.count); + XCTAssertEqual(result.data.totalChannels.unsignedIntegerValue, channels.count); + XCTAssertEqual(result.data.totalOccupancy.unsignedIntegerValue, clients.count); + + for (NSUInteger channelIdx = 0; channelIdx < channels.count; channelIdx++) { + NSDictionary *channelInformation = fetchedChannels[channels[channelIdx]]; + NSString *clientUUID = clients[channelIdx].currentConfiguration.uuid; + + XCTAssertEqual(((NSNumber *)channelInformation[@"occupancy"]).unsignedIntegerValue, 1); + XCTAssertEqualObjects(channelInformation[@"uuids"], @[clientUUID]); + } + + handler(); + }]; + }]; + + for (NSUInteger clientIdx = 0; clientIdx < clients.count; clientIdx++) { + [self unsubscribeClient:clients[clientIdx] fromChannels:channels withPresence:NO]; + } + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + [self removeChannelGroup:channelGroup usingClient:nil]; +} + +- (void)testItShouldFetchChannelGroupHereNowWithParticipantsStateWhenStateVerbosityIsSet { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2", @"test-channel3"]]; + NSString *channelGroup = [self channelGroupWithName:@"test-channel-group"]; + NSArray *states = @[ + @{ @"channel1-state": [self randomizedValuesWithValues:@[@"channel-1-random-value"]] }, + @{ @"channel2-state": [self randomizedValuesWithValues:@[@"channel-2-random-value"]] }, + @{ @"channel3-state": [self randomizedValuesWithValues:@[@"channel-3-random-value"]] }, + ]; + NSArray *clients = [self createPubNubClients:channels.count]; + + + [self addChannels:channels toChannelGroup:channelGroup usingClient:nil]; + + for (NSUInteger clientIdx = 0; clientIdx < clients.count; clientIdx++) { + [self subscribeClient:clients[clientIdx] toChannels:@[channels[clientIdx]] withPresence:NO]; + } + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 5.f : 0.f)]; + + for (NSUInteger clientIdx = 0; clientIdx < clients.count; clientIdx++) { + [self setState:states[clientIdx] onChannel:channels[clientIdx] usingClient:clients[clientIdx]]; + } + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client hereNowForChannelGroup:channelGroup + withVerbosity:PNHereNowState + completion:^(PNPresenceChannelGroupHereNowResult *result, PNErrorStatus *status) { + + NSDictionary *fetchedChannels = result.data.channels; + XCTAssertNil(status); + XCTAssertNotNil(fetchedChannels); + + for (NSUInteger channelIdx = 0; channelIdx < channels.count; channelIdx++) { + NSDictionary *channelInformation = fetchedChannels[channels[channelIdx]]; + NSString *clientUUID = clients[channelIdx].currentConfiguration.uuid; + NSDictionary *channelParticipant = channelInformation[@"uuids"][0]; + + XCTAssertEqualObjects(channelParticipant[@"uuid"], clientUUID); + XCTAssertEqualObjects(channelParticipant[@"state"], states[channelIdx]); + } + + handler(); + }]; + }]; + + for (NSUInteger clientIdx = 0; clientIdx < clients.count; clientIdx++) { + [self unsubscribeClient:clients[clientIdx] fromChannels:channels withPresence:NO]; + } + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + [self removeChannelGroup:channelGroup usingClient:nil]; +} + +- (void)testItShouldFetchChannelGroupHereNowWithParticipantsOccupancyWhenOccupancyVerbosityIsSet { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2", @"test-channel3"]]; + NSString *channelGroup = [self channelGroupWithName:@"test-channel-group"]; + NSArray *clients = [self createPubNubClients:channels.count]; + + + [self addChannels:channels toChannelGroup:channelGroup usingClient:nil]; + + for (NSUInteger clientIdx = 0; clientIdx < clients.count; clientIdx++) { + [self subscribeClient:clients[clientIdx] toChannels:@[channels[clientIdx]] withPresence:NO]; + } + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 5.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client hereNowForChannelGroup:channelGroup + withVerbosity:PNHereNowOccupancy + completion:^(PNPresenceChannelGroupHereNowResult *result, PNErrorStatus *status) { + + NSDictionary *fetchedChannels = result.data.channels; + XCTAssertNil(status); + XCTAssertNotNil(fetchedChannels); + + for (NSUInteger channelIdx = 0; channelIdx < channels.count; channelIdx++) { + NSDictionary *channelInformation = fetchedChannels[channels[channelIdx]]; + + XCTAssertNil(channelInformation[@"uuids"]); + XCTAssertEqual(((NSNumber *)channelInformation[@"occupancy"]).unsignedIntegerValue, 1); + } + + handler(); + }]; + }]; + + for (NSUInteger clientIdx = 0; clientIdx < clients.count; clientIdx++) { + [self unsubscribeClient:clients[clientIdx] fromChannels:channels withPresence:NO]; + } + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + [self removeChannelGroup:channelGroup usingClient:nil]; +} + +- (void)testItShouldNotFetchChannelGroupHereNowAndReceiveBadRequestStatusWhenChannelGroupIsNil { + NSString *channelGroup = nil; + __block BOOL retried = NO; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client hereNowForChannelGroup:channelGroup + withCompletion:^(PNPresenceChannelGroupHereNowResult *result, PNErrorStatus *status) { + + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNHereNowForChannelGroupOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }]; + }]; +} + + +#pragma mark - Tests :: Builder pattern-based channel group here now + +- (void)testItShouldFetchChannelGroupHereNowUsingBuilderPatternInterface { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2", @"test-channel3"]]; + NSString *channelGroup = [self channelGroupWithName:@"test-channel-group"]; + NSArray *clients = [self createPubNubClients:channels.count]; + + + [self addChannels:channels toChannelGroup:channelGroup usingClient:nil]; + + for (NSUInteger clientIdx = 0; clientIdx < clients.count; clientIdx++) { + [self subscribeClient:clients[clientIdx] toChannels:@[channels[clientIdx]] withPresence:NO]; + } + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 5.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.presence().hereNow() + .channelGroup(channelGroup) + .performWithCompletion(^(PNPresenceChannelGroupHereNowResult *result, PNErrorStatus *status) { + NSDictionary *fetchedChannels = result.data.channels; + XCTAssertNil(status); + XCTAssertNotNil(fetchedChannels); + XCTAssertEqual(fetchedChannels.count, channels.count); + XCTAssertEqual(result.data.totalChannels.unsignedIntegerValue, channels.count); + XCTAssertEqual(result.data.totalOccupancy.unsignedIntegerValue, clients.count); + XCTAssertEqual(result.operation, PNHereNowForChannelGroupOperation); + + for (NSUInteger channelIdx = 0; channelIdx < channels.count; channelIdx++) { + NSDictionary *channelInformation = fetchedChannels[channels[channelIdx]]; + NSString *clientUUID = clients[channelIdx].currentConfiguration.uuid; + + XCTAssertEqual(((NSNumber *)channelInformation[@"occupancy"]).unsignedIntegerValue, 1); + XCTAssertEqualObjects(channelInformation[@"uuids"], @[@{ @"uuid": clientUUID }]); + } + + handler(); + }); + }]; + + for (NSUInteger clientIdx = 0; clientIdx < clients.count; clientIdx++) { + [self unsubscribeClient:clients[clientIdx] fromChannels:channels withPresence:NO]; + } + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + [self removeChannelGroup:channelGroup usingClient:nil]; +} + + +#pragma mark - Tests :: Where now + +- (void)testItShouldFetchWhereNowAndReceiveResultWithExpectedOperation { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2", @"test-channel3"]]; + + + [self subscribeClient:self.client toChannels:channels withPresence:NO]; + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 5.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client whereNowUUID:self.client.currentConfiguration.uuid + withCompletion:^(PNPresenceWhereNowResult *result, PNErrorStatus *status) { + + NSArray *fetchedChannels = result.data.channels; + XCTAssertNil(status); + XCTAssertNotNil(fetchedChannels); + XCTAssertEqual(result.operation, PNWhereNowOperation); + + for (NSUInteger channelIdx = 0; channelIdx < channels.count; channelIdx++) { + XCTAssertTrue([fetchedChannels containsObject:channels[channelIdx]]); + } + + handler(); + }]; + }]; + + [self unsubscribeClient:self.client fromChannels:channels withPresence:NO]; + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; +} + +- (void)testItShouldNotFetchWhereNowAndReceiveBadRequestStatusWhenUUIDIsNil { + __block BOOL retried = NO; + NSString *uuid = nil; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client whereNowUUID:uuid + withCompletion:^(PNPresenceWhereNowResult *result, PNErrorStatus *status) { + + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNWhereNowOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }]; + }]; +} + + +#pragma mark - Tests :: Builder pattern-based where now + +- (void)testItShouldFetchWhereNowUsingBuilderPatternInterface { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2", @"test-channel3"]]; + + + [self subscribeClient:self.client toChannels:channels withPresence:NO]; + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 5.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.presence().whereNow() + .uuid(self.client.currentConfiguration.uuid) + .performWithCompletion(^(PNPresenceWhereNowResult *result, PNErrorStatus *status) { + NSArray *fetchedChannels = result.data.channels; + XCTAssertNil(status); + XCTAssertNotNil(fetchedChannels); + XCTAssertEqual(result.operation, PNWhereNowOperation); + XCTAssertEqual(fetchedChannels.count, channels.count); + + handler(); + }); + }]; + + [self unsubscribeClient:self.client fromChannels:channels withPresence:NO]; + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; +} + + +#pragma mark - Tests :: Builder pattern-based connected channels + +- (void)testItShouldSetConnectedStateForChannelsAndReceiveStatusWithExpectedOperationAndCategory { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2", @"test-channel3"]]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.presence() + .connected(YES) + .channels(channels) + .performWithCompletion(^(PNStatus *status) { + XCTAssertFalse(status.isError); + XCTAssertEqual(status.operation, PNHeartbeatOperation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + + handler(); + }); + }]; + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 5.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.presence().whereNow() + .uuid(self.client.currentConfiguration.uuid) + .performWithCompletion(^(PNPresenceWhereNowResult *result, PNErrorStatus *status) { + XCTAssertEqual(result.data.channels.count, channels.count); + + handler(); + }); + }]; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.presence() + .connected(NO) + .channels(channels) + .performWithCompletion(^(PNStatus *status) { + handler(); + }); + }]; + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; +} + +- (void)testItShouldSetConnectedStateForChannelsWithState { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2", @"test-channel3"]]; + NSDictionary *states = @{ + channels[0]: @{ @"test-channel1": [self randomizedValuesWithValues:@[@"channel-1-random-value"]] }, + channels[1]: @{ @"test-channel2": [self randomizedValuesWithValues:@[@"channel-2-random-value"]] }, + channels[2]: @{ @"test-channel3": [self randomizedValuesWithValues:@[@"channel-3-random-value"]] } + }; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.presence() + .connected(YES) + .channels(channels) + .state(states) + .performWithCompletion(^(PNStatus *status) { + XCTAssertFalse(status.isError); + handler(); + }); + }]; + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 5.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.presence().hereNow().channel(channels.firstObject).verbosity(PNHereNowState) + .performWithCompletion(^(PNPresenceChannelHereNowResult *result, PNErrorStatus *status) { + NSArray *uuids = result.data.uuids; + NSDictionary *fetchedState = uuids.firstObject[@"state"]; + XCTAssertNil(status); + XCTAssertNotNil(fetchedState); + XCTAssertEqualObjects(fetchedState, states[channels.firstObject]); + + handler(); + }); + }]; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.presence() + .connected(NO) + .channels(channels) + .performWithCompletion(^(PNStatus *status) { + handler(); + }); + }]; + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; +} + +- (void)testItShouldNotSetConnectedStateForChannelsAndReceiveBadRequestStatusWhenChannelsIsNil { + NSArray *channels = nil; + __block BOOL retried = NO; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.presence() + .connected(YES) + .channels(channels) + .performWithCompletion(^(PNStatus *status) { + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNHeartbeatOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }); + }]; +} + +- (void)testItShouldNotSetConnectedStateForChannelsAndReceiveBadRequestStatusWhenManualPresenceManagementIsDisabled { + NSArray *channels = nil; + __block BOOL retried = NO; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.presence() + .connected(YES) + .channels(channels) + .performWithCompletion(^(PNStatus *status) { + XCTAssertFalse(status.isError); + XCTAssertEqual(status.operation, PNHeartbeatOperation); + XCTAssertEqual(status.category, PNCancelledCategory); + XCTAssertEqual(status.statusCode, 200); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }); + }]; +} + +- (void)testItShouldSetNotConnectedStateForChannelsAndReceiveStatusWithExpectedOperationAndCategory { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2", @"test-channel3"]]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.presence() + .connected(YES) + .channels(channels) + .performWithCompletion(^(PNStatus *status) { + XCTAssertFalse(status.isError); + handler(); + }); + }]; + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 5.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.presence() + .connected(NO) + .channels(channels) + .performWithCompletion(^(PNStatus *status) { + XCTAssertFalse(status.isError); + XCTAssertEqual(status.operation, PNUnsubscribeOperation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + + handler(); + }); + }]; + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.presence().whereNow() + .uuid(self.client.currentConfiguration.uuid) + .performWithCompletion(^(PNPresenceWhereNowResult *result, PNErrorStatus *status) { + XCTAssertEqual(result.data.channels.count, 0); + + handler(); + }); + }]; +} + +- (void)testItShouldNotSetNotConnectedStateForChannelsAndReceiveBadRequestStatusWhenChannelsIsNil { + NSArray *channels = nil; + __block BOOL retried = NO; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.presence() + .connected(NO) + .channels(channels) + .performWithCompletion(^(PNStatus *status) { + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNUnsubscribeOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }); + }]; +} + + +#pragma mark - Tests :: Builder pattern-based connected channel groups + +- (void)testItShouldSetConnectedStateForChannelGroupsAndReceiveStatusWithExpectedOperationAndCategory { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2", @"test-channel3"]]; + NSString *channelGroup = [self channelGroupWithName:@"test-channel-group"]; + + + [self addChannels:channels toChannelGroup:channelGroup usingClient:nil]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.presence() + .connected(YES) + .channelGroups(@[channelGroup]) + .performWithCompletion(^(PNStatus *status) { + XCTAssertFalse(status.isError); + XCTAssertEqual(status.operation, PNHeartbeatOperation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + + handler(); + }); + }]; + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 5.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.presence().hereNow() + .channelGroup(channelGroup) + .performWithCompletion(^(PNPresenceChannelGroupHereNowResult *result, PNErrorStatus *status) { + XCTAssertEqual(result.data.channels.count, channels.count); + + handler(); + }); + }]; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.presence() + .connected(NO) + .channelGroups(@[channelGroup]) + .performWithCompletion(^(PNStatus *status) { + handler(); + }); + }]; + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + [self removeChannelGroup:channelGroup usingClient:nil]; +} + +- (void)disabled_testItShouldSetConnectedStateForChannelGroupsWithState { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2", @"test-channel3"]]; + NSString *channelGroup = [self channelGroupWithName:@"test-channel-group"]; + NSDictionary *states = @{ + channelGroup: @{ @"channel-group": [self randomizedValuesWithValues:@[@"channel-group-random-value"]] } + }; + + + [self addChannels:channels toChannelGroup:channelGroup usingClient:nil]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.presence() + .connected(YES) + .channelGroups(@[channelGroup]) + .state(states) + .performWithCompletion(^(PNStatus *status) { + XCTAssertFalse(status.isError); + handler(); + }); + }]; + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 5.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.presence().hereNow().channelGroup(channelGroup).verbosity(PNHereNowState) + .performWithCompletion(^(PNPresenceChannelGroupHereNowResult *result, PNErrorStatus *status) { + NSDictionary *fetchedChannels = result.data.channels; + NSArray *uuids = fetchedChannels[channels.firstObject][@"uuids"]; + NSDictionary *fetchedState = uuids.firstObject[self.client.currentConfiguration.uuid]; + XCTAssertNil(status); + XCTAssertNotNil(fetchedState); + XCTAssertEqualObjects(fetchedState, states[channelGroup]); + + handler(); + }); + }]; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.presence() + .connected(NO) + .channelGroups(@[channelGroup]) + .performWithCompletion(^(PNStatus *status) { + handler(); + }); + }]; + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + [self removeChannelGroup:channelGroup usingClient:nil]; +} + +- (void)testItShouldNotSetConnectedStateForChannelGroupsAndReceiveBadRequestStatusWhenChannelGroupsIsNil { + NSArray *channelGroups = nil; + __block BOOL retried = NO; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.presence() + .connected(YES) + .channelGroups(channelGroups) + .performWithCompletion(^(PNStatus *status) { + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNHeartbeatOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }); + }]; +} + +- (void)testItShouldNotSetConnectedStateForChannelGroupsAndReceiveBadRequestStatusManualPresenceManagementIsDisabled { + NSArray *channelGroups = nil; + __block BOOL retried = NO; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.presence() + .connected(YES) + .channelGroups(channelGroups) + .performWithCompletion(^(PNStatus *status) { + XCTAssertFalse(status.isError); + XCTAssertEqual(status.operation, PNHeartbeatOperation); + XCTAssertEqual(status.category, PNCancelledCategory); + XCTAssertEqual(status.statusCode, 200); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }); + }]; +} + +- (void)testItShouldSetNotConnectedStateForChannelGroupsAndReceiveStatusWithExpectedOperationAndCategory { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2", @"test-channel3"]]; + NSString *channelGroup = [self channelGroupWithName:@"test-channel-group"]; + + + [self addChannels:channels toChannelGroup:channelGroup usingClient:nil]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.presence() + .connected(YES) + .channelGroups(@[channelGroup]) + .performWithCompletion(^(PNStatus *status) { + XCTAssertFalse(status.isError); + handler(); + }); + }]; + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 5.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.presence() + .connected(NO) + .channelGroups(@[channelGroup]) + .performWithCompletion(^(PNStatus *status) { + XCTAssertFalse(status.isError); + XCTAssertEqual(status.operation, PNUnsubscribeOperation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + + handler(); + }); + }]; + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.presence().whereNow() + .uuid(self.client.currentConfiguration.uuid) + .performWithCompletion(^(PNPresenceWhereNowResult *result, PNErrorStatus *status) { + XCTAssertEqual(result.data.channels.count, 0); + + handler(); + }); + }]; + + [self removeChannelGroup:channelGroup usingClient:nil]; +} + +- (void)testItShouldNotSetNotConnectedStateForChannelGroupsAndReceiveBadRequestStatusWhenChannelsIsNil { + NSArray *channelGroups = nil; + __block BOOL retried = NO; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.presence() + .connected(NO) + .channelGroups(channelGroups) + .performWithCompletion(^(PNStatus *status) { + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNUnsubscribeOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }); + }]; +} + +#pragma mark - + +#pragma clang diagnostic pop + +@end diff --git a/Tests/Tests/Integration/PNPresenceStateIntegrationTest.m b/Tests/Tests/Integration/PNPresenceStateIntegrationTest.m new file mode 100644 index 000000000..55f0e0c1d --- /dev/null +++ b/Tests/Tests/Integration/PNPresenceStateIntegrationTest.m @@ -0,0 +1,612 @@ +/** + * @author Serhii Mamontov + * @copyright © 2010-2020 PubNub, Inc. + */ +#import "PNRecordableTestCase.h" +#import + + +NS_ASSUME_NONNULL_BEGIN + +#pragma mark Interface declaration + +@interface PNPresenceStateIntegrationTest : PNRecordableTestCase + + +#pragma mark - + + +@end + +NS_ASSUME_NONNULL_END + + +#pragma mark - Tests + +@implementation PNPresenceStateIntegrationTest + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Warc-retain-cycles" + + +#pragma mark - Setup / Tear down + +- (void)setUp { + [super setUp]; + + + [self completePubNubConfiguration:self.client]; +} + + +#pragma mark - Tests :: Set state for channel + +- (void)testItShouldSetPresenceStateForChannelAndReceiveStatusWithExpectedOperationAndCategory { + NSString *channel = [self channelWithName:@"test-channel1"]; + NSString *uuid = self.client.currentConfiguration.uuid; + NSDictionary *state = @{ + @"channel1-state": [self randomizedValuesWithValues:@[@"channel-1-random-value"]] + }; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client setState:state forUUID:uuid onChannel:channel + withCompletion:^(PNClientStateUpdateStatus *status) { + + NSDictionary *clientState = status.data.state; + XCTAssertFalse(status.isError); + XCTAssertNotNil(clientState); + XCTAssertEqualObjects(clientState, state); + XCTAssertEqual(status.operation, PNSetStateOperation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + + handler(); + }]; + }]; +} + +- (void)testItShouldSetPresenceStateForChannelAndTriggerUpdateEventToTargetChannel { + NSString *channel = [self channelWithName:@"test-channel1"]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"serhii"]; + NSDictionary *state = @{ + @"channel1-state": [self randomizedValuesWithValues:@[@"channel-1-random-value"]] + }; + NSDictionary *updatedState = @{ + @"channel1-state": [self randomizedValuesWithValues:@[@"channel-1-updated-random-value"]] + }; + + + [self setState:state onChannel:channel usingClient:client1]; + [self subscribeClient:client2 toChannels:@[channel] withPresence:YES]; + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addPresenceHandlerForClient:client2 + withBlock:^(PubNub *client, PNPresenceEventResult *event, BOOL *remove) { + + if ([event.data.presenceEvent isEqualToString:@"state-change"]) { + XCTAssertEqualObjects(event.data.presence.uuid, client1.currentConfiguration.uuid); + XCTAssertEqualObjects(event.data.presence.state, updatedState); + XCTAssertNotNil(event.data.presence.timetoken); + *remove = YES; + + handler(); + } + }]; + + [client1 setState:updatedState forUUID:client1.currentConfiguration.uuid onChannel:channel + withCompletion:^(PNClientStateUpdateStatus *status) { + XCTAssertFalse(status.isError); + }]; + }]; + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + // Ensure, that state manager for observing client (same user) stored updated user state. + XCTAssertEqualObjects([client2.clientStateManager state][channel], updatedState); +} + +- (void)testItShouldNotSetPresenceStateForChannelAndReceiveBadRequestStatusWhenChannelIsNil { + NSString *uuid = self.client.currentConfiguration.uuid; + NSDictionary *state = @{ + @"channel1-state": [self randomizedValuesWithValues:@[@"channel-1-random-value"]] + }; + __block BOOL retried = NO; + NSString *channel = nil; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client setState:state forUUID:uuid onChannel:channel + withCompletion:^(PNClientStateUpdateStatus *status) { + + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNSetStateOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }]; + }]; +} + +- (void)testItShouldNotSetPresenceStateForChannelAndReceiveBadRequestStatusWhenUUIDIsNil { + NSString *channel = [self channelWithName:@"test-channel1"]; + NSDictionary *state = @{ + @"channel1-state": [self randomizedValuesWithValues:@[@"channel-1-random-value"]] + }; + __block BOOL retried = NO; + NSString *uuid = nil; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client setState:state forUUID:uuid onChannel:channel + withCompletion:^(PNClientStateUpdateStatus *status) { + + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNSetStateOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }]; + }]; +} + + +#pragma mark - Tests :: Builder pattern-based set state for channel + +- (void)testItShouldSetPresenceStateForChannelUsingBuilderPatternInterface { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSString *uuid = self.client.currentConfiguration.uuid; + NSDictionary *state = @{ + @"users-state": [self randomizedValuesWithValues:@[@"users-random-value"]] + }; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.state().set() + .state(state) + .uuid(uuid) + .channels(channels) + .performWithCompletion(^(PNClientStateUpdateStatus *status) { + NSDictionary *clientState = status.data.state; + XCTAssertFalse(status.isError); + XCTAssertNotNil(clientState); + XCTAssertEqualObjects(clientState, state); + XCTAssertEqual(status.operation, PNSetStateOperation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + + handler(); + + }); + }]; +} + + +#pragma mark - Tests :: Set state for channel group + +- (void)testItShouldSetPresenceStateForChannelGroupAndReceiveStatusWithExpectedOperationAndCategory { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSString *channelGroup = [self channelGroupWithName:@"test-channel-group"]; + NSString *uuid = self.client.currentConfiguration.uuid; + NSDictionary *state = @{ + @"user-state": [self randomizedValuesWithValues:@[@"users-random-value"]] + }; + + + [self addChannels:channels toChannelGroup:channelGroup usingClient:nil]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client setState:state forUUID:uuid onChannelGroup:channelGroup + withCompletion:^(PNClientStateUpdateStatus *status) { + + NSDictionary *clientState = status.data.state; + XCTAssertFalse(status.isError); + XCTAssertNotNil(clientState); + XCTAssertEqualObjects(clientState, state); + XCTAssertEqual(status.operation, PNSetStateOperation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + + handler(); + }]; + }]; + + [self removeChannelGroup:channelGroup usingClient:nil]; +} + +- (void)testItShouldNotSetPresenceStateForChannelGroupAndReceiveBadRequestStatusWhenChannelGroupIsNil { + NSString *uuid = self.client.currentConfiguration.uuid; + NSString *channelGroup = nil; + NSDictionary *state = @{ + @"user-state": [self randomizedValuesWithValues:@[@"users-random-value"]] + }; + __block BOOL retried = NO; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client setState:state forUUID:uuid onChannelGroup:channelGroup + withCompletion:^(PNClientStateUpdateStatus *status) { + + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNSetStateOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }]; + }]; +} + +- (void)testItShouldNotSetPresenceStateForChannelGroupAndReceiveBadRequestStatusWhenUUIDIsNil { + NSString *channelGroup = [self channelGroupWithName:@"test-channel-group"]; + NSDictionary *state = @{ + @"user-state": [self randomizedValuesWithValues:@[@"users-random-value"]] + }; + __block BOOL retried = NO; + NSString *uuid = nil; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client setState:state forUUID:uuid onChannelGroup:channelGroup + withCompletion:^(PNClientStateUpdateStatus *status) { + + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNSetStateOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }]; + }]; +} + + +#pragma mark - Tests :: Builder pattern-based set state for channel + +- (void)testItShouldSetPresenceStateForChannelGroupUsingBuilderPatternInterface { + NSArray *channelGroups = [self channelGroupsWithNames:@[@"test-channel-group1", @"test-channel-group2"]]; + NSArray *channels1 = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSArray *channels2 = [self channelsWithNames:@[@"test-channel3", @"test-channel4"]]; + NSString *uuid = self.client.currentConfiguration.uuid; + NSDictionary *state = @{ + @"users-state": [self randomizedValuesWithValues:@[@"channel-1-random-value"]] + }; + + + [self addChannels:channels1 toChannelGroup:channelGroups.firstObject usingClient:nil]; + [self addChannels:channels2 toChannelGroup:channelGroups.lastObject usingClient:nil]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.state().set() + .state(state) + .uuid(uuid) + .channelGroups(channelGroups) + .performWithCompletion(^(PNClientStateUpdateStatus *status) { + NSDictionary *clientState = status.data.state; + XCTAssertFalse(status.isError); + XCTAssertNotNil(clientState); + XCTAssertEqualObjects(clientState, state); + XCTAssertEqual(status.operation, PNSetStateOperation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + + handler(); + + }); + }]; + + [self removeChannelGroup:channelGroups.firstObject usingClient:nil]; + [self removeChannelGroup:channelGroups.lastObject usingClient:nil]; +} + + +#pragma mark - Tests :: Fetch state for channel + +- (void)testItShouldFetchPresenceStateForChannelAndReceiveResultWithExpectedOperation { + NSString *channel = [self channelWithName:@"test-channel1"]; + NSString *uuid = self.client.currentConfiguration.uuid; + NSDictionary *state = @{ + @"channel1-state": [self randomizedValuesWithValues:@[@"channel-1-random-value"]] + }; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client setState:state forUUID:uuid onChannel:channel + withCompletion:^(PNClientStateUpdateStatus *status) { + + XCTAssertFalse(status.isError); + handler(); + }]; + }]; + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client stateForUUID:uuid onChannel:channel + withCompletion:^(PNChannelClientStateResult *result, PNErrorStatus *status) { + + NSDictionary *clientState = result.data.state; + XCTAssertNotNil(clientState); + XCTAssertEqualObjects(clientState, state); + XCTAssertEqual(result.operation, PNStateForChannelOperation); + + handler(); + }]; + }]; +} + +- (void)testItShouldNotFetchPresenceStateForChannelAndReceiveBadRequestStatusWhenChannelIsNil { + NSString *uuid = self.client.currentConfiguration.uuid; + __block BOOL retried = NO; + NSString *channel = nil; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client stateForUUID:uuid onChannel:channel + withCompletion:^(PNChannelClientStateResult *result, PNErrorStatus *status) { + + XCTAssertTrue(status.isError); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }]; + }]; +} + +- (void)testItShouldNotFetchPresenceStateForChannelAndReceiveBadRequestStatusWhenUUIDIsNil { + NSString *channel = [self channelWithName:@"test-channel1"]; + __block BOOL retried = NO; + NSString *uuid = nil; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client stateForUUID:uuid onChannel:channel + withCompletion:^(PNChannelClientStateResult *result, PNErrorStatus *status) { + + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNStateForChannelOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }]; + }]; +} + + +#pragma mark - Tests :: Builder pattern-based fetch state for channel + +- (void)testItShouldFetchPresenceStateForChannelUsingBuilderPatternInterface { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSString *uuid = self.client.currentConfiguration.uuid; + NSDictionary *state = @{ + @"users-state": [self randomizedValuesWithValues:@[@"users-random-value"]] + }; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.state().set() + .state(state) + .uuid(uuid) + .channels(channels) + .performWithCompletion(^(PNClientStateUpdateStatus *status) { + XCTAssertFalse(status.isError); + handler(); + }); + }]; + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.state().audit() + .uuid(uuid) + .channels(channels) + .performWithCompletion(^(PNClientStateGetResult *result, PNErrorStatus *status) { + NSDictionary *fetchedChannels = result.data.channels; + XCTAssertFalse(status.isError); + XCTAssertNotNil(fetchedChannels); + XCTAssertEqualObjects(fetchedChannels[channels.firstObject], state); + XCTAssertEqualObjects(fetchedChannels[channels.firstObject], + fetchedChannels[channels.lastObject]); + XCTAssertEqual(result.operation, PNGetStateOperation); + + handler(); + }); + }]; +} + + +#pragma mark - Tests :: Fetch state for channel group + +- (void)testItShouldFetchPresenceStateForChannelGroupAndReceiveResultWithExpectedOperation { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSString *channelGroup = [self channelGroupWithName:@"test-channel-group"]; + NSString *uuid = self.client.currentConfiguration.uuid; + NSDictionary *state = @{ + @"user-state": [self randomizedValuesWithValues:@[@"users-random-value"]] + }; + + + [self addChannels:channels toChannelGroup:channelGroup usingClient:nil]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client setState:state forUUID:uuid onChannelGroup:channelGroup + withCompletion:^(PNClientStateUpdateStatus *status) { + + XCTAssertFalse(status.isError); + handler(); + }]; + }]; + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client stateForUUID:uuid onChannelGroup:channelGroup + withCompletion:^(PNChannelGroupClientStateResult *result, PNErrorStatus *status) { + + NSDictionary *fetchedChannels = result.data.channels; + XCTAssertFalse(status.isError); + XCTAssertNotNil(fetchedChannels); + XCTAssertEqualObjects(fetchedChannels[channels.firstObject], state); + XCTAssertEqualObjects(fetchedChannels[channels.firstObject], + fetchedChannels[channels.lastObject]); + XCTAssertEqual(result.operation, PNStateForChannelGroupOperation); + + handler(); + }]; + }]; + + [self removeChannelGroup:channelGroup usingClient:nil]; +} + +- (void)testItShouldNotFetchPresenceStateForChannelGroupAndReceiveBadRequestStatusWhenChannelGroupIsNil { + NSString *uuid = self.client.currentConfiguration.uuid; + NSString *channelGroup = nil; + __block BOOL retried = NO; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client stateForUUID:uuid onChannelGroup:channelGroup + withCompletion:^(PNChannelGroupClientStateResult *result, PNErrorStatus *status) { + + XCTAssertTrue(status.isError); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }]; + }]; +} + +- (void)testItShouldNotFetchPresenceStateForChannelGroupAndReceiveBadRequestStatusWhenUUIDIsNil { + NSString *channelGroup = [self channelGroupWithName:@"test-channel-group"]; + __block BOOL retried = NO; + NSString *uuid = nil; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client stateForUUID:uuid onChannelGroup:channelGroup + withCompletion:^(PNChannelGroupClientStateResult *result, PNErrorStatus *status) { + + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNStateForChannelGroupOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }]; + }]; +} + + +#pragma mark - Tests :: Builder pattern-based fetch state for channel + +- (void)testItShouldFetchPresenceStateForChannelGroupUsingBuilderPatternInterface { + NSArray *channelGroups = [self channelGroupsWithNames:@[@"test-channel-group1", @"test-channel-group2"]]; + NSArray *channels1 = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSArray *channels2 = [self channelsWithNames:@[@"test-channel3", @"test-channel4"]]; + NSString *uuid = self.client.currentConfiguration.uuid; + NSDictionary *state = @{ + @"users-state": [self randomizedValuesWithValues:@[@"channel-1-random-value"]] + }; + + + [self addChannels:channels1 toChannelGroup:channelGroups.firstObject usingClient:nil]; + [self addChannels:channels2 toChannelGroup:channelGroups.lastObject usingClient:nil]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.state().set() + .state(state) + .uuid(uuid) + .channelGroups(channelGroups) + .performWithCompletion(^(PNClientStateUpdateStatus *status) { + XCTAssertFalse(status.isError); + handler(); + }); + }]; + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.state().audit() + .uuid(uuid) + .channelGroups(channelGroups) + .performWithCompletion(^(PNClientStateGetResult *result, PNErrorStatus *status) { + NSDictionary *fetchedChannels = result.data.channels; + XCTAssertFalse(status.isError); + XCTAssertNotNil(fetchedChannels); + XCTAssertEqualObjects(fetchedChannels[channels1.firstObject], state); + XCTAssertEqualObjects(fetchedChannels[channels2.firstObject], state); + XCTAssertEqualObjects(fetchedChannels[channels1.firstObject], + fetchedChannels[channels2.lastObject]); + XCTAssertEqual(result.operation, PNGetStateOperation); + + handler(); + }); + }]; + + [self removeChannelGroup:channelGroups.firstObject usingClient:nil]; + [self removeChannelGroup:channelGroups.lastObject usingClient:nil]; +} + +#pragma mark - + +#pragma clang diagnostic pop + +@end diff --git a/Tests/Tests/Integration/PNPublishIntegrationTests.m b/Tests/Tests/Integration/PNPublishIntegrationTests.m new file mode 100644 index 000000000..7329407d7 --- /dev/null +++ b/Tests/Tests/Integration/PNPublishIntegrationTests.m @@ -0,0 +1,1395 @@ +/** + * @author Serhii Mamontov + * @copyright © 2010-2020 PubNub, Inc. + */ +#import "PNRecordableTestCase.h" +#import +#import "NSString+PNTest.h" + + +#pragma mark Interface declaration + +@interface PNPublishIntegrationTests : PNRecordableTestCase + + +#pragma mark - Information + +/** + * @brief Message encryption / decryption key. + */ +@property (nonatomic, copy) NSString *cipherKey; + +#pragma mark - + + +@end + + +#pragma mark - Tests + +@implementation PNPublishIntegrationTests + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Warc-retain-cycles" + + +#pragma mark - VCR configuration + +- (BOOL)shouldSetupVCR { + BOOL shouldSetupVCR = [super shouldSetupVCR]; + + if ([self.name pnt_includesString:@"Size"]) { + shouldSetupVCR = NO; + } + + return shouldSetupVCR; +} + + +#pragma mark - Setup / Tear down + +- (PNConfiguration *)configurationForTestCaseWithName:(NSString *)name { + PNConfiguration *configuration = [super configurationForTestCaseWithName:name]; + + if ([self.name pnt_includesString:@"Encrypt"]) { + configuration.cipherKey = self.cipherKey; + } + + return configuration; +} + +- (void)setUp { + [super setUp]; + + self.cipherKey = @"enigma"; +} + + +#pragma mark - Tests :: Regular publish + +- (void)testItShouldPublishAndReceivePublishTimetoken { + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client = [self createPubNubForUser:@"serhii"]; + NSString *expectedMessage = @"Hello there"; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [client publish:expectedMessage toChannel:channel withCompletion:^(PNPublishStatus *status) { + XCTAssertFalse(status.isError); + XCTAssertNotNil(status.data.timetoken); + XCTAssertEqual(status.statusCode, 200); + + handler(); + }]; + }]; +} + +- (void)testItShouldPublishAndReceiveStatusWithExpectedOperationAndCategory { + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client = [self createPubNubForUser:@"serhii"]; + NSString *expectedMessage = @"Hello there"; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [client publish:expectedMessage toChannel:channel withCompletion:^(PNPublishStatus *status) { + XCTAssertFalse(status.isError); + XCTAssertEqual(status.operation, PNPublishOperation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + + handler(); + }]; + }]; +} + +- (void)testItShouldNotPublishAndReceiveBadRequestStatusWhenMessageIsNil { + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client = [self createPubNubForUser:@"serhii"]; + NSString *expectedMessage = nil; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [client publish:expectedMessage toChannel:channel withCompletion:^(PNPublishStatus *status) { + XCTAssertTrue(status.isError); + XCTAssertNil(status.data.information); + XCTAssertEqual(status.operation, PNPublishOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + handler(); + }]; + }]; +} + +- (void)testItShouldNotPublishAndReceiveBadRequestStatusWhenChannelIsNil { + PubNub *client = [self createPubNubForUser:@"serhii"]; + NSString *expectedMessage = @"Hello there"; + NSString *channel = nil; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [client publish:expectedMessage toChannel:channel withCompletion:^(PNPublishStatus *status) { + XCTAssertTrue(status.isError); + XCTAssertNil(status.data.information); + XCTAssertEqual(status.operation, PNPublishOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + handler(); + }]; + }]; +} + +- (void)testItShouldPublishWithTTL { + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client = [self createPubNubForUser:@"serhii"]; + NSString *expectedMessage = @"Hello there"; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + client.publish() + .message(expectedMessage) + .channel(channel) + .ttl(120) + .performWithCompletion(^(PNPublishStatus *status) { + NSString *url = status.clientRequest.URL.absoluteString; + XCTAssertFalse(status.isError); + XCTAssertNotNil(url); + XCTAssertTrue([url pnt_includesString:@"ttl=120"]); + + handler(); + }); + }]; +} + +- (void)testItShouldPublishWithOutTTLWhenStoreInHistoryDisabled { + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client = [self createPubNubForUser:@"serhii"]; + NSString *expectedMessage = @"Hello there"; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + client.publish() + .message(expectedMessage) + .channel(channel) + .ttl(120) + .shouldStore(NO) + .performWithCompletion(^(PNPublishStatus *status) { + NSString *url = status.clientRequest.URL.absoluteString; + XCTAssertFalse(status.isError); + XCTAssertNotNil(url); + XCTAssertTrue([url pnt_includesString:@"store=0"]); + XCTAssertFalse([url pnt_includesString:@"ttl=120"]); + + handler(); + }); + }]; +} + +- (void)testItShouldPublishWithNoReplicationPolicy { + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client = [self createPubNubForUser:@"serhii"]; + NSString *expectedMessage = @"Hello there"; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + client.publish() + .message(expectedMessage) + .channel(channel) + .replicate(NO) + .performWithCompletion(^(PNPublishStatus *status) { + NSString *url = status.clientRequest.URL.absoluteString; + XCTAssertFalse(status.isError); + XCTAssertNotNil(url); + XCTAssertTrue([url pnt_includesString:@"norep=true"]); + + handler(); + }); + }]; +} + +- (void)testItShouldPublishNSString { + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + NSString *expectedMessage = @"Hello there"; + + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMessageHandlerForClient:client2 withBlock:^(PubNub *client, PNMessageResult *message, BOOL *shouldRemove) { + XCTAssertEqualObjects(message.data.publisher, client1.currentConfiguration.uuid); + XCTAssertEqualObjects(message.data.message, expectedMessage); + *shouldRemove = YES; + + handler(); + }]; + + [client1 publish:expectedMessage toChannel:channel withCompletion:^(PNPublishStatus *status) { + XCTAssertFalse(status.isError); + }]; + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; +} + +- (void)testItShouldPublishNSNumber { + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + NSNumber *expectedMessage = @2010; + + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMessageHandlerForClient:client2 withBlock:^(PubNub *client, PNMessageResult *message, BOOL *shouldRemove) { + XCTAssertEqualObjects(message.data.publisher, client1.currentConfiguration.uuid); + XCTAssertEqualObjects(message.data.message, expectedMessage); + *shouldRemove = YES; + + handler(); + }]; + + [client1 publish:expectedMessage toChannel:channel withCompletion:^(PNPublishStatus *status) { + XCTAssertFalse(status.isError); + }]; + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; +} + +- (void)testItShouldPublishNSDictionary { + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + NSDictionary *expectedMessage = @{ @"hello": @"there" }; + + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMessageHandlerForClient:client2 withBlock:^(PubNub *client, PNMessageResult *message, BOOL *shouldRemove) { + XCTAssertEqualObjects(message.data.publisher, client1.currentConfiguration.uuid); + XCTAssertEqualObjects(message.data.message, expectedMessage); + *shouldRemove = YES; + + handler(); + }]; + + [client1 publish:expectedMessage toChannel:channel withCompletion:^(PNPublishStatus *status) { + XCTAssertFalse(status.isError); + }]; + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; +} + +- (void)testItShouldPublishNSDictionaryWithNestedCollections { + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + NSDictionary *expectedMessage = @{ @"hello": @[@"there", @{ @"general": @"kenobi" }] }; + + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMessageHandlerForClient:client2 withBlock:^(PubNub *client, PNMessageResult *message, BOOL *shouldRemove) { + XCTAssertEqualObjects(message.data.publisher, client1.currentConfiguration.uuid); + XCTAssertEqualObjects(message.data.message, expectedMessage); + *shouldRemove = YES; + + handler(); + }]; + + [client1 publish:expectedMessage toChannel:channel withCompletion:^(PNPublishStatus *status) { + XCTAssertFalse(status.isError); + }]; + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; +} + +- (void)testItShouldPublishNSArray { + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + NSArray *expectedMessage = @[@"hello", @"there"]; + + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMessageHandlerForClient:client2 withBlock:^(PubNub *client, PNMessageResult *message, BOOL *shouldRemove) { + XCTAssertEqualObjects(message.data.publisher, client1.currentConfiguration.uuid); + XCTAssertEqualObjects(message.data.message, expectedMessage); + *shouldRemove = YES; + + handler(); + }]; + + [client1 publish:expectedMessage toChannel:channel withCompletion:^(PNPublishStatus *status) { + XCTAssertFalse(status.isError); + }]; + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; +} + +- (void)testItShouldPublishNSArrayWithNestedCollections { + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + NSArray *expectedMessage = @[@"hello", @[@"there", @{ @"general": @"kenobi" }]]; + + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMessageHandlerForClient:client2 withBlock:^(PubNub *client, PNMessageResult *message, BOOL *shouldRemove) { + XCTAssertEqualObjects(message.data.publisher, client1.currentConfiguration.uuid); + XCTAssertEqualObjects(message.data.message, expectedMessage); + *shouldRemove = YES; + + handler(); + }]; + + [client1 publish:expectedMessage toChannel:channel withCompletion:^(PNPublishStatus *status) { + XCTAssertFalse(status.isError); + }]; + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; +} + +- (void)testItShouldPublish1000CharactersLongNSString { + NSString *expectedMessage = [@"hello-there" pnt_stringWithLength:1000]; + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMessageHandlerForClient:client2 withBlock:^(PubNub *client, PNMessageResult *message, BOOL *shouldRemove) { + XCTAssertEqualObjects(message.data.publisher, client1.currentConfiguration.uuid); + XCTAssertEqualObjects(message.data.message, expectedMessage); + *shouldRemove = YES; + + handler(); + }]; + + XCTAssertEqual(expectedMessage.length, 1000); + [client1 publish:expectedMessage toChannel:channel withCompletion:^(PNPublishStatus *status) { + XCTAssertFalse(status.isError); + }]; + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; +} + +- (void)testItShouldPublish10000CharactersLongNSString { + NSString *expectedMessage = [@"hello-there" pnt_stringWithLength:10000]; + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMessageHandlerForClient:client2 withBlock:^(PubNub *client, PNMessageResult *message, BOOL *shouldRemove) { + XCTAssertEqualObjects(message.data.publisher, client1.currentConfiguration.uuid); + XCTAssertEqualObjects(message.data.message, expectedMessage); + *shouldRemove = YES; + + handler(); + }]; + + XCTAssertEqual(expectedMessage.length, 10000); + [client1 publish:expectedMessage toChannel:channel withCompletion:^(PNPublishStatus *status) { + XCTAssertFalse(status.isError); + }]; + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; +} + +- (void)testItShouldNotPublishTooLongPublishMessage { + NSString *expectedMessage = [@"hello-there" pnt_stringWithLength:100000]; + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client = [self createPubNubForUser:@"serhii"]; + __block BOOL retried = NO; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + XCTAssertEqual(expectedMessage.length, 100000); + + [client publish:expectedMessage toChannel:channel withCompletion:^(PNPublishStatus *status) { + XCTAssertTrue(status.isError); + XCTAssertEqual(status.statusCode, 414); + XCTAssertNotNil(status.errorData.information); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }]; + }]; + + XCTAssertTrue(retried); +} + +- (void)testItShouldPublishStringWithSpecialSymbols { + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + NSString *expectedMessage = @"!@#$%^&*()_+|"; + + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMessageHandlerForClient:client2 withBlock:^(PubNub *client, PNMessageResult *message, BOOL *shouldRemove) { + XCTAssertEqualObjects(message.data.publisher, client1.currentConfiguration.uuid); + XCTAssertEqualObjects(message.data.message, expectedMessage); + *shouldRemove = YES; + + handler(); + }]; + + [client1 publish:expectedMessage toChannel:channel withCompletion:^(PNPublishStatus *status) { + XCTAssertFalse(status.isError); + }]; + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; +} + + +#pragma mark - Tests :: Publish with encryption + +- (void)testItShouldPublishEncryptedMessage { + NSDictionary *message = @{ @"hello": @[@"there", @{ @"general": @"kenobi" }] }; + NSString *expectedMessage = @"xY6oQ3eZMfoY03b6UtjUih+3u63/VZQCcB1o3wavdJc+nabYNOLmZYdz2vuEEPup"; + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + + // Reset cipher key, so second subscriber will receive raw encrypted data. + self.cipherKey = nil; + PubNub *client2 = [self createPubNubForUser:@"david"]; + + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMessageHandlerForClient:client2 withBlock:^(PubNub *client, PNMessageResult *receivedMessage, BOOL *shouldRemove) { + XCTAssertEqualObjects(receivedMessage.data.publisher, client1.currentConfiguration.uuid); + XCTAssertNotEqualObjects(receivedMessage.data.message, message); + XCTAssertTrue([receivedMessage.data.message isKindOfClass:[NSString class]]); + XCTAssertEqualObjects(receivedMessage.data.message, expectedMessage); + *shouldRemove = YES; + + handler(); + }]; + + [client1 publish:message toChannel:channel withCompletion:^(PNPublishStatus *status) { + XCTAssertFalse(status.isError); + }]; + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; +} + + +#pragma mark - Tests :: Publish with metadata + +- (void)testItShouldPublishWithFilterMetadata { + NSDictionary *expectedMetadata = @{ @"access-level": @"editor" }; + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + NSString *expectedMessage = @"Hello there"; + + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMessageHandlerForClient:client2 withBlock:^(PubNub *client, PNMessageResult *message, BOOL *shouldRemove) { + XCTAssertEqualObjects(message.data.publisher, client1.currentConfiguration.uuid); + XCTAssertEqualObjects(message.data.message, expectedMessage); + XCTAssertEqualObjects(message.data.userMetadata, expectedMetadata); + *shouldRemove = YES; + + handler(); + }]; + + [client1 publish:expectedMessage toChannel:channel withMetadata:expectedMetadata + completion:^(PNPublishStatus *status) { + + XCTAssertFalse(status.isError); + }]; + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; +} + + +#pragma mark - Tests :: Publish with storage option + +- (void)testItShouldPublishAndFetchMessageFromHistory { + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client = [self createPubNubForUser:@"serhii"]; + NSString *expectedMessage = @"Hello there"; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [client publish:expectedMessage toChannel:channel withCompletion:^(PNPublishStatus *status) { + XCTAssertFalse(status.isError); + handler(); + }]; + }]; + + [self waitTask:@"waitForStorage" completionFor:(YHVVCR.cassette.isNewCassette ? 6.f : 0.f)]; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [client historyForChannel:channel withCompletion:^(PNHistoryResult *result, PNErrorStatus *status) { + XCTAssertNil(status); + XCTAssertEqual(result.data.messages.count, 1); + XCTAssertEqualObjects(result.data.messages.firstObject, expectedMessage); + + handler(); + }]; + }]; +} + +- (void)testItShouldPublishAndFetchEmptyHistoryWhenStoreInHistoryDisabled { + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client = [self createPubNubForUser:@"serhii"]; + NSString *expectedMessage = @"Hello there"; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [client publish:expectedMessage toChannel:channel storeInHistory:NO + withCompletion:^(PNPublishStatus *status) { + + XCTAssertFalse(status.isError); + handler(); + }]; + }]; + + [self waitTask:@"waitForStorage" completionFor:(YHVVCR.cassette.isNewCassette ? 6.f : 0.f)]; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [client historyForChannel:channel withCompletion:^(PNHistoryResult *result, PNErrorStatus *status) { + XCTAssertNil(status); + XCTAssertEqual(result.data.messages.count, 0); + + handler(); + }]; + }]; +} + + +#pragma mark - Tests :: Publish with mobile payloads + +- (void)testItShouldPublishMobilePayloadWithWrappedKeys { + NSDictionary *mobilePayload = @{ + @"apns": @{ @"aps": @{ @"alert": @"Hello there" } }, + @"gcm": @{ @"data": @{ @"hello": @"there" } } + }; + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + NSString *message = @"Hello there"; + NSDictionary *expectedMessage = @{ + @"pn_other": message, + @"pn_apns": mobilePayload[@"apns"], + @"pn_gcm": mobilePayload[@"gcm"] + }; + + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMessageHandlerForClient:client2 withBlock:^(PubNub *client, PNMessageResult *message, BOOL *shouldRemove) { + XCTAssertEqualObjects(message.data.publisher, client1.currentConfiguration.uuid); + XCTAssertEqualObjects(message.data.message, expectedMessage); + *shouldRemove = YES; + + handler(); + }]; + + [client1 publish:message toChannel:channel mobilePushPayload:mobilePayload + withCompletion:^(PNPublishStatus *status) { + + XCTAssertFalse(status.isError); + }]; + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; +} + +- (void)testItShouldPublishMobilePayloadWithWrappedAPSKey { + NSDictionary *mobilePayload = @{ @"aps": @{ @"alert": @"Hello there" } }; + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + NSString *message = @"Hello there"; + NSDictionary *expectedMessage = @{ @"pn_other": message, @"pn_apns": mobilePayload }; + + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMessageHandlerForClient:client2 withBlock:^(PubNub *client, PNMessageResult *message, BOOL *shouldRemove) { + XCTAssertEqualObjects(message.data.publisher, client1.currentConfiguration.uuid); + XCTAssertEqualObjects(message.data.message, expectedMessage); + *shouldRemove = YES; + + handler(); + }]; + + [client1 publish:message toChannel:channel mobilePushPayload:mobilePayload + withCompletion:^(PNPublishStatus *status) { + + XCTAssertFalse(status.isError); + }]; + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; +} + +- (void)testItShouldPublishNSStringWithMobilePayload { + NSDictionary *mobilePayload = @{ @"apns": @{ @"aps": @{ @"alert": @"Hello there" } } }; + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + NSString *message = @"Hello there"; + NSDictionary *expectedMessage = @{ @"pn_other": message, @"pn_apns": mobilePayload[@"apns"] }; + + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMessageHandlerForClient:client2 withBlock:^(PubNub *client, PNMessageResult *message, BOOL *shouldRemove) { + XCTAssertEqualObjects(message.data.publisher, client1.currentConfiguration.uuid); + XCTAssertEqualObjects(message.data.message, expectedMessage); + *shouldRemove = YES; + + handler(); + }]; + + [client1 publish:message toChannel:channel mobilePushPayload:mobilePayload + withCompletion:^(PNPublishStatus *status) { + + XCTAssertFalse(status.isError); + }]; + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; +} + +- (void)testItShouldPublishNSNumberWithMobilePayload { + NSDictionary *mobilePayload = @{ @"apns": @{ @"aps": @{ @"alert": @"Hello there" } } }; + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + NSNumber *message = @2010; + NSDictionary *expectedMessage = @{ @"pn_other": message, @"pn_apns": mobilePayload[@"apns"] }; + + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMessageHandlerForClient:client2 withBlock:^(PubNub *client, PNMessageResult *message, BOOL *shouldRemove) { + XCTAssertEqualObjects(message.data.publisher, client1.currentConfiguration.uuid); + XCTAssertEqualObjects(message.data.message, expectedMessage); + *shouldRemove = YES; + + handler(); + }]; + + [client1 publish:message toChannel:channel mobilePushPayload:mobilePayload + withCompletion:^(PNPublishStatus *status) { + + XCTAssertFalse(status.isError); + }]; + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; +} + +- (void)testItShouldPublishNSArrayWithMobilePayload { + NSDictionary *mobilePayload = @{ @"apns": @{ @"aps": @{ @"alert": @"Hello there" } } }; + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + NSArray *message = @[@"hello", @[@"there", @{ @"general": @"kenobi" }]]; + NSDictionary *expectedMessage = @{ @"pn_other": message, @"pn_apns": mobilePayload[@"apns"] }; + + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMessageHandlerForClient:client2 withBlock:^(PubNub *client, PNMessageResult *message, BOOL *shouldRemove) { + XCTAssertEqualObjects(message.data.publisher, client1.currentConfiguration.uuid); + XCTAssertEqualObjects(message.data.message, expectedMessage); + *shouldRemove = YES; + + handler(); + }]; + + [client1 publish:message toChannel:channel mobilePushPayload:mobilePayload + withCompletion:^(PNPublishStatus *status) { + + XCTAssertFalse(status.isError); + }]; + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; +} + +- (void)testItShouldPublishNSDictionaryWithMobilePayload { + NSDictionary *mobilePayload = @{ @"apns": @{ @"aps": @{ @"alert": @"Hello there" } } }; + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + NSDictionary *message = @{ @"hello": @[@"there", @{ @"general": @"kenobi" }] }; + NSMutableDictionary *expectedMessage = [@{ @"pn_apns": mobilePayload[@"apns"] } mutableCopy]; + [expectedMessage addEntriesFromDictionary:message]; + + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMessageHandlerForClient:client2 withBlock:^(PubNub *client, PNMessageResult *message, BOOL *shouldRemove) { + XCTAssertEqualObjects(message.data.publisher, client1.currentConfiguration.uuid); + XCTAssertEqualObjects(message.data.message, expectedMessage); + *shouldRemove = YES; + + handler(); + }]; + + [client1 publish:message toChannel:channel mobilePushPayload:mobilePayload + withCompletion:^(PNPublishStatus *status) { + + XCTAssertFalse(status.isError); + }]; + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; +} + +- (void)testItShouldPublishEncryptedMessageWithNotEncryptedMobilePayload { + NSDictionary *mobilePayload = @{ @"apns": @{ @"aps": @{ @"alert": @"Hello there" } } }; + NSDictionary *message = @{ @"hello": @[@"there", @{ @"general": @"kenobi" }] }; + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + NSDictionary *expectedMessage = @{ + @"pn_apns": mobilePayload[@"apns"], + @"pn_other": @"\"xY6oQ3eZMfoY03b6UtjUih+3u63/VZQCcB1o3wavdJc+nabYNOLmZYdz2vuEEPup\"" + }; + + // Reset cipher key, so second subscriber will receive raw encrypted data. + self.cipherKey = nil; + PubNub *client2 = [self createPubNubForUser:@"david"]; + + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMessageHandlerForClient:client2 withBlock:^(PubNub *client, PNMessageResult *message, BOOL *shouldRemove) { + XCTAssertEqualObjects(message.data.publisher, client1.currentConfiguration.uuid); + XCTAssertEqualObjects(message.data.message, expectedMessage); + *shouldRemove = YES; + + handler(); + }]; + + [client1 publish:message toChannel:channel mobilePushPayload:mobilePayload + withCompletion:^(PNPublishStatus *status) { + + XCTAssertFalse(status.isError); + }]; + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; +} + +- (void)testItShouldPublishCompressedMessageWithMobilePayload { + NSDictionary *mobilePayload = @{ @"apns": @{ @"aps": @{ @"alert": @"Hello there" } } }; + NSDictionary *message = @{ @"hello": @[@"there", @{ @"general": @"kenobi" }] }; + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + NSMutableDictionary *expectedMessage = [@{ @"pn_apns": mobilePayload[@"apns"] } mutableCopy]; + [expectedMessage addEntriesFromDictionary:message]; + + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMessageHandlerForClient:client2 withBlock:^(PubNub *client, PNMessageResult *message, BOOL *shouldRemove) { + XCTAssertEqualObjects(message.data.publisher, client1.currentConfiguration.uuid); + XCTAssertEqualObjects(message.data.message, expectedMessage); + *shouldRemove = YES; + + handler(); + }]; + + [client1 publish:message toChannel:channel mobilePushPayload:mobilePayload compressed:YES + withCompletion:^(PNPublishStatus *status) { + + XCTAssertFalse(status.isError); + }]; + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; +} + +- (void)testItShouldPublishMessageWithMobilePayloadAndFetchEmptyHistoryWhenStoreInHistoryDisabled { + NSDictionary *mobilePayload = @{ @"apns": @{ @"aps": @{ @"alert": @"Hello there" } } }; + NSDictionary *message = @{ @"hello": @[@"there", @{ @"general": @"kenobi" }] }; + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client = [self createPubNubForUser:@"serhii"]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [client publish:message toChannel:channel mobilePushPayload:mobilePayload storeInHistory:NO + withCompletion:^(PNPublishStatus *status) { + + XCTAssertFalse(status.isError); + handler(); + }]; + }]; + + [self waitTask:@"waitForStorage" completionFor:(YHVVCR.cassette.isNewCassette ? 6.f : 0.f)]; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [client historyForChannel:channel withCompletion:^(PNHistoryResult *result, PNErrorStatus *status) { + XCTAssertNil(status); + XCTAssertEqual(result.data.messages.count, 0); + + handler(); + }]; + }]; +} + +- (void)testItShouldPublishCompressedMessageWithMobilePayloadAndFetchMessageFromHistory { + NSDictionary *mobilePayload = @{ @"apns": @{ @"aps": @{ @"alert": @"Hello there" } } }; + NSDictionary *message = @{ @"hello": @[@"there", @{ @"general": @"kenobi" }] }; + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client = [self createPubNubForUser:@"serhii"]; + NSMutableDictionary *expectedMessage = [@{ @"pn_apns": mobilePayload[@"apns"] } mutableCopy]; + [expectedMessage addEntriesFromDictionary:message]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [client publish:message toChannel:channel mobilePushPayload:mobilePayload storeInHistory:YES + compressed:YES withCompletion:^(PNPublishStatus *status) { + + XCTAssertFalse(status.isError); + handler(); + }]; + }]; + + [self waitTask:@"waitForStorage" completionFor:(YHVVCR.cassette.isNewCassette ? 6.f : 0.f)]; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [client historyForChannel:channel withCompletion:^(PNHistoryResult *result, PNErrorStatus *status) { + XCTAssertNil(status); + XCTAssertEqual(result.data.messages.count, 1); + XCTAssertEqualObjects(result.data.messages.firstObject, expectedMessage); + + handler(); + }]; + }]; +} + +- (void)testItShouldPublishOnlyWithMobilePayload { + NSDictionary *mobilePayload = @{ @"apns": @{ @"aps": @{ @"alert": @"Hello there" } } }; + NSDictionary *expectedMessage = @{ @"pn_apns": mobilePayload[@"apns"] }; + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMessageHandlerForClient:client2 withBlock:^(PubNub *client, PNMessageResult *message, BOOL *shouldRemove) { + XCTAssertEqualObjects(message.data.publisher, client1.currentConfiguration.uuid); + XCTAssertEqualObjects(message.data.message, expectedMessage); + *shouldRemove = YES; + + handler(); + }]; + + [client1 publish:nil toChannel:channel mobilePushPayload:mobilePayload + withCompletion:^(PNPublishStatus *status) { + + XCTAssertFalse(status.isError); + }]; + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; +} + +#pragma mark - Tests :: Publish with compression + +- (void)testItShouldPublishCompressedMessageUsingPOST { + NSString *expectedMessage = [@"hello-there" pnt_stringWithLength:10000]; + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client = [self createPubNubForUser:@"serhii"]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + XCTAssertEqual(expectedMessage.length, 10000); + + [client publish:expectedMessage toChannel:channel compressed:YES withCompletion:^(PNPublishStatus *status) { + NSURLRequest *request = status.clientRequest; + XCTAssertFalse(status.isError); + XCTAssertNotNil(request); + XCTAssertEqualObjects(request.HTTPMethod.lowercaseString, @"post"); + XCTAssertEqualObjects(request.allHTTPHeaderFields[@"Content-Encoding"], @"gzip"); + XCTAssertLessThan(request.allHTTPHeaderFields[@"Content-Length"].intValue, expectedMessage.length); + + handler(); + }]; + }]; +} + +- (void)testItShouldPublishCompressedAndFetchEmptyHistoryWhenStoreInHistoryDisabled { + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client = [self createPubNubForUser:@"serhii"]; + NSString *expectedMessage = @"Hello there"; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [client publish:expectedMessage toChannel:channel storeInHistory:NO compressed:YES + withCompletion:^(PNPublishStatus *status) { + + XCTAssertFalse(status.isError); + handler(); + }]; + }]; + + [self waitTask:@"waitForStorage" completionFor:(YHVVCR.cassette.isNewCassette ? 6.f : 0.f)]; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [client historyForChannel:channel withCompletion:^(PNHistoryResult *result, PNErrorStatus *status) { + XCTAssertNil(status); + XCTAssertEqual(result.data.messages.count, 0); + + handler(); + }]; + }]; +} + + +#pragma mark - Tests :: Builder pattern-based publish + +- (void)testItShouldPublishNSDictionaryUsingBuilderPatternInterface { + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + NSDictionary *expectedMessage = @{ @"hello": @"there" }; + + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMessageHandlerForClient:client2 withBlock:^(PubNub *client, PNMessageResult *message, BOOL *shouldRemove) { + XCTAssertEqualObjects(message.data.publisher, client1.currentConfiguration.uuid); + XCTAssertEqualObjects(message.data.message, expectedMessage); + *shouldRemove = YES; + + handler(); + }]; + + client1.publish().channel(channel).message(expectedMessage).performWithCompletion(^(PNPublishStatus *status) { + XCTAssertFalse(status.isError); + }); + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; +} + + +#pragma mark - Tests :: Builder pattern-based fire + +- (void)testItShouldFireMessageAndFetchEmptyHistory { + NSDictionary *message = @{ @"hello": @[@"there", @{ @"general": @"kenobi" }] }; + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client = [self createPubNubForUser:@"serhii"]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + client.fire() + .message(message) + .channel(channel) + .performWithCompletion(^(PNPublishStatus *status) { + XCTAssertFalse(status.isError); + handler(); + }); + }]; + + [self waitTask:@"waitForStorage" completionFor:(YHVVCR.cassette.isNewCassette ? 6.f : 0.f)]; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [client historyForChannel:channel withCompletion:^(PNHistoryResult *result, PNErrorStatus *status) { + XCTAssertNil(status); + XCTAssertEqual(result.data.messages.count, 0); + + handler(); + }]; + }]; +} + + +#pragma mark - Tests :: Signal + +- (void)testItShouldSendSignalAndReceivePublishTimetoken { + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client = [self createPubNubForUser:@"serhii"]; + NSString *expectedSignal = @"Hello there"; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [client signal:expectedSignal channel:channel withCompletion:^(PNSignalStatus *status) { + XCTAssertFalse(status.isError); + XCTAssertNotNil(status.data.timetoken); + XCTAssertEqual(status.statusCode, 200); + + handler(); + }]; + }]; +} + +- (void)testItShouldSendSignalAndReceiveStatusWithExpectedOperationAndCategory { + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client = [self createPubNubForUser:@"serhii"]; + NSNumber *expectedSignal = @2010; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [client signal:expectedSignal channel:channel withCompletion:^(PNSignalStatus *status) { + XCTAssertFalse(status.isError); + XCTAssertEqual(status.operation, PNSignalOperation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + + handler(); + }]; + }]; +} + +- (void)testItShouldNotSendTooLongSignalMessage { + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client = [self createPubNubForUser:@"serhii"]; + NSString *expectedSignal = [@"hello-there" pnt_stringWithLength:200]; + __block BOOL retried = NO; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [client signal:expectedSignal channel:channel withCompletion:^(PNSignalStatus *status) { + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNSignalOperation); + XCTAssertEqual(status.category, PNMalformedResponseCategory); + XCTAssertNotNil(status.errorData.information); + XCTAssertEqualObjects(status.errorData.information, @"Signal size too large"); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }]; + }]; + + XCTAssertTrue(retried); +} + + +#pragma mark - Tests :: Builder pattern-based signal + +- (void)testItShouldSendSignalUsingBuilderPatternInterface { + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + NSDictionary *expectedSignal = @{ @"hello": @"there" }; + + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addSignalHandlerForClient:client2 withBlock:^(PubNub *client, PNSignalResult *signal, BOOL *shouldRemove) { + XCTAssertEqualObjects(signal.data.publisher, client1.currentConfiguration.uuid); + XCTAssertEqualObjects(signal.data.message, expectedSignal); + *shouldRemove = YES; + + handler(); + }]; + + client1.signal().channel(channel).message(expectedSignal).performWithCompletion(^(PNSignalStatus *status) { + XCTAssertFalse(status.isError); + }); + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; +} + + +#pragma mark - Tests :: Publish with encryption + +- (void)testItShouldSendSignalWithNotEncryptedMessageWhenCipherKeyIsSet { + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + NSDictionary *message = @{ @"hello": @"there" }; + + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addSignalHandlerForClient:client2 withBlock:^(PubNub *client, PNSignalResult *signal, BOOL *shouldRemove) { + XCTAssertEqualObjects(signal.data.publisher, client1.currentConfiguration.uuid); + XCTAssertEqualObjects(signal.data.message, message); + *shouldRemove = YES; + + handler(); + }]; + + [client1 signal:message channel:channel withCompletion:^(PNSignalStatus *status) { + XCTAssertFalse(status.isError); + }]; + }]; + + [self unsubscribeClient:client2 fromChannels:@[channel] withPresence:NO]; +} + + +#pragma mark - Tests :: Publish size + +- (void)testItShouldHaveNegativeSizeWhenMessageIsNil { + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client = [self createPubNubForUser:@"serhii"]; + NSString *expectedMessage = nil; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [client sizeOfMessage:expectedMessage toChannel:channel withCompletion:^(NSInteger size) { + XCTAssertEqual(size, -1); + handler(); + }]; + }]; +} + +- (void)testItShouldHaveNegativeSizeWhenChannelIsNil { + PubNub *client = [self createPubNubForUser:@"serhii"]; + NSString *expectedMessage = @"Hello there"; + NSString *channel = nil; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [client sizeOfMessage:expectedMessage toChannel:channel withCompletion:^(NSInteger size) { + XCTAssertEqual(size, -1); + handler(); + }]; + }]; +} + +- (void)testItShouldCalculateNSStringMessageSize { + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client = [self createPubNubForUser:@"serhii"]; + NSString *expectedMessage = @"Hello there"; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [client sizeOfMessage:expectedMessage toChannel:channel withCompletion:^(NSInteger size) { + XCTAssertEqualWithAccuracy(size, 526, 30); + handler(); + }]; + }]; +} + +- (void)testItShouldCalculateNSNumberMessageSize { + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client = [self createPubNubForUser:@"serhii"]; + NSNumber *expectedMessage = @2010; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [client sizeOfMessage:expectedMessage toChannel:channel withCompletion:^(NSInteger size) { + XCTAssertEqualWithAccuracy(size, 511, 30); + handler(); + }]; + }]; +} + +- (void)testItShouldCalculateNSDictionaryMessageSize { + NSString *channel = [self channelWithName:@"test-channel"]; + NSDictionary *expectedMessage = @{ @"hello": @"there" }; + PubNub *client = [self createPubNubForUser:@"serhii"]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [client sizeOfMessage:expectedMessage toChannel:channel withCompletion:^(NSInteger size) { + XCTAssertEqualWithAccuracy(size, 538, 30); + handler(); + }]; + }]; +} + +- (void)testItShouldCalculateNSDictionaryWithNestedCollectionsMessageSize { + NSDictionary *expectedMessage = @{ @"hello": @[@"there", @{ @"general": @"kenobi" }] }; + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client = [self createPubNubForUser:@"serhii"]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [client sizeOfMessage:expectedMessage toChannel:channel withCompletion:^(NSInteger size) { + XCTAssertEqualWithAccuracy(size, 581, 30); + handler(); + }]; + }]; +} + +- (void)testItShouldCalculateNSArrayMessageSize { + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client = [self createPubNubForUser:@"serhii"]; + NSArray *expectedMessage = @[@"hello", @"there"]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [client sizeOfMessage:expectedMessage toChannel:channel withCompletion:^(NSInteger size) { + XCTAssertEqualWithAccuracy(size, 538, 30); + handler(); + }]; + }]; +} + +- (void)testItShouldCalculateNSArrayWithNestedCollectionsMessageSize { + NSArray *expectedMessage = @[@"hello", @[@"there", @{ @"general": @"kenobi" }]]; + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client = [self createPubNubForUser:@"serhii"]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [client sizeOfMessage:expectedMessage toChannel:channel withCompletion:^(NSInteger size) { + XCTAssertEqualWithAccuracy(size, 581, 30); + handler(); + }]; + }]; +} + +- (void)testItShouldCalculateCompressedMessageSize { + NSString *expectedMessage = [@"hello-there" pnt_stringWithLength:1000]; + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client = [self createPubNubForUser:@"serhii"]; + __block NSInteger compressedStorableMessageSize = 0; + __block NSInteger compressedMessageSize = 0; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [client sizeOfMessage:expectedMessage toChannel:channel compressed:YES + withCompletion:^(NSInteger size) { + + compressedMessageSize = size; + handler(); + }]; + }]; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [client sizeOfMessage:expectedMessage toChannel:channel compressed:YES storeInHistory:YES + withCompletion:^(NSInteger size) { + + compressedStorableMessageSize = size; + handler(); + }]; + }]; + + + XCTAssertEqualWithAccuracy(compressedMessageSize, 617, 30); + XCTAssertEqual(compressedStorableMessageSize, compressedMessageSize); +} + +- (void)testItShouldCalculateNotStorableMessageSize { + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client = [self createPubNubForUser:@"serhii"]; + NSString *expectedMessage = @"Hello there"; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [client sizeOfMessage:expectedMessage toChannel:channel storeInHistory:YES + withCompletion:^(NSInteger size) { + + XCTAssertEqualWithAccuracy(size, 526, 30); + handler(); + }]; + }]; +} + +- (void)testItShouldCalculateSizeOfMessageWithMetadata { + NSString *expectedMessage = [@"hello-there" pnt_stringWithLength:1000]; + NSDictionary *expectedMetadata = @{ @"access-level": @"editor" }; + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client = [self createPubNubForUser:@"serhii"]; + __block NSInteger messageWithMetadataSize = 0; + __block NSInteger notCompressedMessageWithMetadataSize = 0; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [client sizeOfMessage:expectedMessage toChannel:channel withMetadata:expectedMetadata + completion:^(NSInteger size) { + + messageWithMetadataSize = size; + handler(); + }]; + }]; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [client sizeOfMessage:expectedMessage toChannel:channel compressed:NO + withMetadata:expectedMetadata completion:^(NSInteger size) { + + notCompressedMessageWithMetadataSize = size; + handler(); + }]; + }]; + + + XCTAssertEqualWithAccuracy(messageWithMetadataSize, 1558, 30); + XCTAssertEqual(notCompressedMessageWithMetadataSize, messageWithMetadataSize); +} + + +#pragma mark - Tests :: Builder pattern-based message size + +- (void)testItShouldCalculateSizeUsingBuilderPatternInterface { + NSString *channel = [self channelWithName:@"test-channel"]; + PubNub *client = [self createPubNubForUser:@"serhii"]; + NSString *expectedMessage = @"Hello there"; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + client.size() + .message(expectedMessage) + .channel(channel) + .shouldStore(NO) + .ttl(120) + .replicate(NO) + .performWithCompletion(^(NSInteger size) { + XCTAssertEqualWithAccuracy(size, 545, 30); + handler(); + }); + }]; +} + +#pragma mark - + +#pragma clang diagnostic pop + +@end diff --git a/Tests/Tests/Integration/PNPushNotificationsIntegrationTests.m b/Tests/Tests/Integration/PNPushNotificationsIntegrationTests.m new file mode 100644 index 000000000..14263dd44 --- /dev/null +++ b/Tests/Tests/Integration/PNPushNotificationsIntegrationTests.m @@ -0,0 +1,1679 @@ +/** + * @author Serhii Mamontov + * @copyright © 2010-2020 PubNub, Inc. + */ +#import "PNRecordableTestCase.h" +#import "NSString+PNTest.h" + + +#pragma mark Interface declaration + +@interface PNPushNotificationsIntegrationTests : PNRecordableTestCase + + +#pragma mark - Information + +/** + * @brief Target devices environment which has been used for test case. + */ +@property (nonatomic, assign) PNAPNSEnvironment apnsEnvironment; + +/** + * @brief String created from APNS provided device token. + */ +@property (nonatomic, copy) NSString *devicePushTokenString; + +/** + * @brief APNS provided device token. + */ +@property (nonatomic, strong) NSData *devicePushTokenData; + +/** + * @brief Push type which has been used during test case. + */ +@property (nonatomic, assign) PNPushType pushType; + +/** + * @brief Whether APNS over HTTP/2 REST API has been used during test case or not. + */ +@property (nonatomic, assign) BOOL testingV2API; + +/** + * @brief Topic for APNS over HTTP/2 endpoint which should be used in tests. + */ +@property (nonatomic, copy) NSString *apns2Topic; + + +#pragma mark - Misc + +/** + * @brief Enable notifications for list of channels + * + * @param channels List of channels on which notifications should be enabled. + */ +- (void)enabledPushNotificationsForChannels:(NSArray *)channels; + +/** + * @brief Ensure, that push notifications has been enabled on specified \c channels. + * + * @param channels List of channels which should be checked. + */ +- (void)verifyEnabledForPushNotificationsChannels:(NSArray *)channels; + +/** + * @brief Clean up after test case has been completed. + */ +- (void)disableAllPushNotificationsOnDevice; + +#pragma mark - + + +@end + + +#pragma mark - Tests + +@implementation PNPushNotificationsIntegrationTests + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Warc-retain-cycles" + + +#pragma mark - Setup / Tear down + +- (BOOL)shouldSetupVCR { + BOOL shouldSetupVCR = [super shouldSetupVCR]; + + if (!shouldSetupVCR) { + NSArray *testNames = @[ + @"ShouldNotAddPushNotificationsAndReceiveBadRequestStatusWhenChannelsIsNil", + @"ShouldNotAddPushNotificationsUsingV2APIAndReceiveBadRequestStatusWhenChannelsIsNil", + @"ShouldNotRemovePushNotificationsAndReceiveBadRequestStatusWhenChannelsIsNil", + @"ShouldNotRemovePushNotificationsUsingV2APIAndReceiveBadRequestStatusWhenChannelsIsNil" + ]; + + shouldSetupVCR = [self.name pnt_includesAnyString:testNames]; + } + + return shouldSetupVCR; +} + +- (void)setUp { + [super setUp]; + + + [self completePubNubConfiguration:self.client]; + + self.devicePushTokenString = @"6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091"; + self.devicePushTokenData = [self.devicePushTokenString pnt_dataFromHex]; + self.apns2Topic = @"com.pubnub.test-topic"; + self.apnsEnvironment = PNAPNSDevelopment; + self.pushType = PNAPNSPush; +} + + +#pragma mark - Tests :: add notifications on channels + +- (void)testItShouldAddPushNotificationsAndReceiveStatusWithExpectedOperationAndCategory { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + + [self disableAllPushNotificationsOnDevice]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client addPushNotificationsOnChannels:channels withDevicePushToken:self.devicePushTokenData + andCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertFalse(status.isError); + XCTAssertEqual(status.operation, PNAddPushNotificationsOnChannelsOperation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + + handler(); + }]; + }]; + + + [self verifyEnabledForPushNotificationsChannels:channels]; +} + +- (void)testItShouldAddPushNotificationsWithDefaultToAPNSPushType { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client addPushNotificationsOnChannels:channels withDevicePushToken:self.devicePushTokenData + andCompletion:^(PNAcknowledgmentStatus *status) { + + NSString *url = status.clientRequest.URL.absoluteString; + XCTAssertFalse(status.isError); + XCTAssertNotNil(url); + XCTAssertNotEqual([url rangeOfString:@"type=apns"].location, NSNotFound); + + handler(); + }]; + }]; +} + +- (void)testItShouldAddPushNotificationsWithFCMPushType { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + self.pushType = PNFCMPush; + + [self disableAllPushNotificationsOnDevice]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client addPushNotificationsOnChannels:channels withDevicePushToken:self.devicePushTokenString + pushType:self.pushType + andCompletion:^(PNAcknowledgmentStatus *status) { + + NSString *url = status.clientRequest.URL.absoluteString; + XCTAssertFalse(status.isError); + XCTAssertNotNil(url); + XCTAssertNotEqual([url rangeOfString:@"type=gcm"].location, NSNotFound); + + handler(); + }]; + }]; + + + [self verifyEnabledForPushNotificationsChannels:channels]; +} + +- (void)testItShouldAddPushNotificationsWithMPNSPushType { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + self.pushType = PNMPNSPush; + + [self disableAllPushNotificationsOnDevice]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client addPushNotificationsOnChannels:channels withDevicePushToken:self.devicePushTokenString + pushType:self.pushType andCompletion:^(PNAcknowledgmentStatus *status) { + + NSString *url = status.clientRequest.URL.absoluteString; + XCTAssertFalse(status.isError); + XCTAssertNotNil(url); + XCTAssertNotEqual([url rangeOfString:@"type=mpns"].location, NSNotFound); + + handler(); + }]; + }]; + + + [self verifyEnabledForPushNotificationsChannels:channels]; +} + +- (void)testItShouldNotAddPushNotificationsAndReceiveBadRequestStatusWhenChannelsIsNil { + NSArray *channels = nil; + __block BOOL retried = NO; + + [self disableAllPushNotificationsOnDevice]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client addPushNotificationsOnChannels:channels withDevicePushToken:self.devicePushTokenData + andCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNAddPushNotificationsOnChannelsOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }]; + }]; + + + [self verifyEnabledForPushNotificationsChannels:@[]]; +} + +- (void)testItShouldNotAddPushNotificationsAndReceiveBadRequestStatusWhenAPNSDevicePushTokenIsNil { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSData *devicePushToken = nil; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client addPushNotificationsOnChannels:channels withDevicePushToken:devicePushToken + andCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNAddPushNotificationsOnChannelsOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + handler(); + }]; + }]; +} + +- (void)testItShouldNotAddPushNotificationsAndReceiveBadRequestStatusWhenAPNSDevicePushTokenIsNotNSData { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSData *devicePushToken = (id)@2010; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client addPushNotificationsOnChannels:channels withDevicePushToken:devicePushToken + andCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNAddPushNotificationsOnChannelsOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + handler(); + }]; + }]; +} + +- (void)testItShouldNotAddPushNotificationsAndReceiveBadRequestStatusWhenFCMDevicePushTokenIsNil { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSString *devicePushToken = nil; + self.pushType = PNFCMPush; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client addPushNotificationsOnChannels:channels withDevicePushToken:devicePushToken + pushType:self.pushType andCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNAddPushNotificationsOnChannelsOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + handler(); + }]; + }]; +} + +- (void)testItShouldNotAddPushNotificationsAndReceiveBadRequestStatusWhenFCMDevicePushTokenIsNotNSString { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSString *devicePushToken = (id)@2010; + self.pushType = PNFCMPush; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client addPushNotificationsOnChannels:channels withDevicePushToken:devicePushToken + pushType:self.pushType andCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNAddPushNotificationsOnChannelsOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + handler(); + }]; + }]; +} + +- (void)testItShouldNotAddPushNotificationsAndReceiveBadRequestStatusWhenMPNSDevicePushTokenIsNil { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSString *devicePushToken = nil; + self.pushType = PNMPNSPush; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client addPushNotificationsOnChannels:channels withDevicePushToken:devicePushToken + pushType:self.pushType andCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNAddPushNotificationsOnChannelsOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + handler(); + }]; + }]; +} + +- (void)testItShouldNotAddPushNotificationsAndReceiveBadRequestStatusWhenMPNSDevicePushTokenIsNotNSString { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSString *devicePushToken = (id)@2010; + self.pushType = PNMPNSPush; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client addPushNotificationsOnChannels:channels withDevicePushToken:devicePushToken + pushType:self.pushType andCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNAddPushNotificationsOnChannelsOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + handler(); + }]; + }]; +} + +- (void)testItShouldAddPushNotificationsUsingV2APIAndReceiveStatusWithExpectedOperationAndCategory { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + self.pushType = PNAPNS2Push; + self.testingV2API = YES; + + [self disableAllPushNotificationsOnDevice]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client addPushNotificationsOnChannels:channels withDevicePushToken:self.devicePushTokenData + pushType:self.pushType environment:self.apnsEnvironment + topic:self.apns2Topic andCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertFalse(status.isError); + XCTAssertEqual(status.operation, PNAddPushNotificationsOnChannelsV2Operation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + + handler(); + }]; + }]; + + + [self verifyEnabledForPushNotificationsChannels:channels]; +} + +- (void)testItShouldAddPushNotificationsUsingV2APIAndBundleIdentifierAsDefaultTopicWhenTopicIsNil { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + self.apns2Topic = NSBundle.mainBundle.bundleIdentifier; + self.pushType = PNAPNS2Push; + self.testingV2API = YES; + NSString *topic = nil; + + [self disableAllPushNotificationsOnDevice]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client addPushNotificationsOnChannels:channels withDevicePushToken:self.devicePushTokenData + pushType:self.pushType environment:self.apnsEnvironment + topic:topic andCompletion:^(PNAcknowledgmentStatus *status) { + + NSString *topicQuery = [@[@"topic", self.apns2Topic] componentsJoinedByString:@"="]; + NSString *url = status.clientRequest.URL.absoluteString; + XCTAssertFalse(status.isError); + XCTAssertNotNil(url); + XCTAssertNotEqual([url rangeOfString:@"devices-apns2"].location, NSNotFound); + XCTAssertNotEqual([url rangeOfString:topicQuery].location, NSNotFound); + + handler(); + }]; + }]; + + + [self verifyEnabledForPushNotificationsChannels:channels]; +} + +- (void)testItShouldNotAddPushNotificationsUsingV2APIAndReceiveBadRequestStatusWhenChannelsIsNil { + NSArray *channels = nil; + self.pushType = PNAPNS2Push; + self.testingV2API = YES; + + [self disableAllPushNotificationsOnDevice]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client addPushNotificationsOnChannels:channels withDevicePushToken:self.devicePushTokenData + pushType:self.pushType environment:self.apnsEnvironment + topic:self.apns2Topic andCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNAddPushNotificationsOnChannelsV2Operation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + handler(); + }]; + }]; + + + [self verifyEnabledForPushNotificationsChannels:@[]]; +} + +- (void)testItShouldNotAddPushNotificationsUsingV2APIAndReceiveBadRequestStatusWhenDevicePushTokenIsNil { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSData *devicePushToken = nil; + self.pushType = PNAPNS2Push; + self.testingV2API = YES; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client addPushNotificationsOnChannels:channels withDevicePushToken:devicePushToken + pushType:self.pushType environment:self.apnsEnvironment + topic:self.apns2Topic andCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNAddPushNotificationsOnChannelsV2Operation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + handler(); + }]; + }]; +} + + +#pragma mark - Tests :: Builder pattern-based add notifications on channels + +- (void)testItShouldShouldAddPushNotificationsUsingBuilderPatternInterface { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + PubNub *client = [self createPubNubForUser:@"serhii"]; + self.pushType = PNFCMPush; + + [self disableAllPushNotificationsOnDevice]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + client.push().enable() + .channels(channels) + .token(self.devicePushTokenString) + .pushType(PNFCMPush) + .performWithCompletion(^(PNAcknowledgmentStatus *status) { + + NSString *url = status.clientRequest.URL.absoluteString; + XCTAssertFalse(status.isError); + XCTAssertNotNil(url); + XCTAssertEqual(status.operation, PNAddPushNotificationsOnChannelsOperation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + XCTAssertNotEqual([url rangeOfString:@"type=gcm"].location, NSNotFound); + + handler(); + }); + }]; + + + [self verifyEnabledForPushNotificationsChannels:channels]; +} + + +#pragma mark - Tests :: remove notifications from channels + +- (void)testItShouldRemovePushNotificationsAndReceiveStatusWithExpectedOperationAndCategory { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + + [self disableAllPushNotificationsOnDevice]; + [self enabledPushNotificationsForChannels:channels]; + + [self verifyEnabledForPushNotificationsChannels:channels]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client removePushNotificationsFromChannels:@[channels.firstObject] + withDevicePushToken:self.devicePushTokenData + andCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertFalse(status.isError); + XCTAssertEqual(status.operation, PNRemovePushNotificationsFromChannelsOperation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + + handler(); + }]; + }]; + + + [self verifyEnabledForPushNotificationsChannels:@[channels.lastObject]]; +} + +- (void)testItShouldRemovePushNotificationsWithDefaultToAPNSPushType { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client removePushNotificationsFromChannels:channels withDevicePushToken:self.devicePushTokenData + andCompletion:^(PNAcknowledgmentStatus *status) { + + NSString *url = status.clientRequest.URL.absoluteString; + XCTAssertFalse(status.isError); + XCTAssertNotNil(url); + XCTAssertNotEqual([url rangeOfString:@"type=apns"].location, NSNotFound); + + handler(); + }]; + }]; +} + +- (void)testItShouldRemovePushNotificationsWithFCMPushType { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + self.pushType = PNFCMPush; + + [self disableAllPushNotificationsOnDevice]; + [self enabledPushNotificationsForChannels:channels]; + + [self verifyEnabledForPushNotificationsChannels:channels]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client removePushNotificationsFromChannels:@[channels.firstObject] + withDevicePushToken:self.devicePushTokenString pushType:self.pushType + andCompletion:^(PNAcknowledgmentStatus *status) { + + NSString *url = status.clientRequest.URL.absoluteString; + XCTAssertFalse(status.isError); + XCTAssertNotNil(url); + XCTAssertNotEqual([url rangeOfString:@"type=gcm"].location, NSNotFound); + + handler(); + }]; + }]; + + + [self verifyEnabledForPushNotificationsChannels:@[channels.lastObject]]; +} + +- (void)testItShouldRemovePushNotificationsWithMPNSPushType { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + self.pushType = PNMPNSPush; + + [self disableAllPushNotificationsOnDevice]; + [self enabledPushNotificationsForChannels:channels]; + + [self verifyEnabledForPushNotificationsChannels:channels]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client removePushNotificationsFromChannels:@[channels.firstObject] + withDevicePushToken:self.devicePushTokenString pushType:self.pushType + andCompletion:^(PNAcknowledgmentStatus *status) { + + NSString *url = status.clientRequest.URL.absoluteString; + XCTAssertFalse(status.isError); + XCTAssertNotNil(url); + XCTAssertNotEqual([url rangeOfString:@"type=mpns"].location, NSNotFound); + + handler(); + }]; + }]; + + + [self verifyEnabledForPushNotificationsChannels:@[channels.lastObject]]; +} + +- (void)testItShouldNotRemovePushNotificationsAndReceiveBadRequestStatusWhenChannelsIsNil { + NSArray *channels1 = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSArray *channels2 = nil; + __block BOOL retried = NO; + + [self disableAllPushNotificationsOnDevice]; + [self enabledPushNotificationsForChannels:channels1]; + + [self verifyEnabledForPushNotificationsChannels:channels1]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client removePushNotificationsFromChannels:channels2 withDevicePushToken:self.devicePushTokenData + andCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNRemovePushNotificationsFromChannelsOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }]; + }]; + + + [self verifyEnabledForPushNotificationsChannels:channels1]; +} + +- (void)testItShouldNotRemovePushNotificationsAndReceiveBadRequestStatusWhenAPNSDevicePushTokenIsNil { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSData *devicePushToken = nil; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client removePushNotificationsFromChannels:channels withDevicePushToken:devicePushToken + andCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNRemovePushNotificationsFromChannelsOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + handler(); + }]; + }]; +} + +- (void)testItShouldNotRemovePushNotificationsAndReceiveBadRequestStatusWhenAPNSDevicePushTokenIsNotNSData { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSData *devicePushToken = (id)@2010; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client removePushNotificationsFromChannels:channels withDevicePushToken:devicePushToken + andCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNRemovePushNotificationsFromChannelsOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + handler(); + }]; + }]; +} + +- (void)testItShouldNotRemovePushNotificationsAndReceiveBadRequestStatusWhenFCMDevicePushTokenIsNil { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSString *devicePushToken = nil; + self.pushType = PNFCMPush; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client removePushNotificationsFromChannels:channels withDevicePushToken:devicePushToken + pushType:self.pushType andCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNRemovePushNotificationsFromChannelsOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + handler(); + }]; + }]; +} + +- (void)testItShouldNotRemovePushNotificationsAndReceiveBadRequestStatusWhenFCMDevicePushTokenIsNotNSString { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSString *devicePushToken = (id)@2010; + self.pushType = PNFCMPush; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client removePushNotificationsFromChannels:channels withDevicePushToken:devicePushToken + pushType:self.pushType andCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNRemovePushNotificationsFromChannelsOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + handler(); + }]; + }]; +} + +- (void)testItShouldNotRemovePushNotificationsAndReceiveBadRequestStatusWhenMPNSDevicePushTokenIsNil { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSString *devicePushToken = nil; + self.pushType = PNMPNSPush; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client removePushNotificationsFromChannels:channels withDevicePushToken:devicePushToken + pushType:self.pushType andCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNRemovePushNotificationsFromChannelsOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + handler(); + }]; + }]; +} + +- (void)testItShouldNotRemovePushNotificationsAndReceiveBadRequestStatusWhenMPNSDevicePushTokenIsNotNSString { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSString *devicePushToken = (id)@2010; + self.pushType = PNMPNSPush; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client removePushNotificationsFromChannels:channels withDevicePushToken:devicePushToken + pushType:self.pushType andCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNRemovePushNotificationsFromChannelsOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + handler(); + }]; + }]; +} + +- (void)testItShouldRemovePushNotificationsUsingV2APIAndReceiveStatusWithExpectedOperationAndCategory { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + self.pushType = PNAPNS2Push; + self.testingV2API = YES; + + [self disableAllPushNotificationsOnDevice]; + [self enabledPushNotificationsForChannels:channels]; + + [self verifyEnabledForPushNotificationsChannels:channels]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client removePushNotificationsFromChannels:@[channels.firstObject] + withDevicePushToken:self.devicePushTokenData + pushType:self.pushType environment:self.apnsEnvironment + topic:self.apns2Topic andCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertFalse(status.isError); + XCTAssertEqual(status.operation, PNRemovePushNotificationsFromChannelsV2Operation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + + handler(); + }]; + }]; + + + [self verifyEnabledForPushNotificationsChannels:@[channels.lastObject]]; +} + +- (void)testItShouldRemovePushNotificationsUsingV2APIAndBundleIdentifierAsDefaultTopicWhenTopicIsNil { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + self.apns2Topic = NSBundle.mainBundle.bundleIdentifier; + self.pushType = PNAPNS2Push; + self.testingV2API = YES; + NSString *topic = nil; + + [self disableAllPushNotificationsOnDevice]; + [self enabledPushNotificationsForChannels:channels]; + + [self verifyEnabledForPushNotificationsChannels:channels]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client removePushNotificationsFromChannels:@[channels.firstObject] + withDevicePushToken:self.devicePushTokenData + pushType:self.pushType environment:self.apnsEnvironment + topic:topic andCompletion:^(PNAcknowledgmentStatus *status) { + + NSString *topicQuery = [@[@"topic", self.apns2Topic] componentsJoinedByString:@"="]; + NSString *url = status.clientRequest.URL.absoluteString; + XCTAssertFalse(status.isError); + XCTAssertNotNil(url); + XCTAssertNotEqual([url rangeOfString:@"devices-apns2"].location, NSNotFound); + XCTAssertNotEqual([url rangeOfString:topicQuery].location, NSNotFound); + + handler(); + }]; + }]; + + + [self verifyEnabledForPushNotificationsChannels:@[channels.lastObject]]; +} + +- (void)testItShouldNotRemovePushNotificationsUsingV2APIAndReceiveBadRequestStatusWhenChannelsIsNil { + NSArray *channels1 = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSArray *channels2 = nil; + self.pushType = PNAPNS2Push; + self.testingV2API = YES; + + [self disableAllPushNotificationsOnDevice]; + [self enabledPushNotificationsForChannels:channels1]; + + [self verifyEnabledForPushNotificationsChannels:channels1]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client removePushNotificationsFromChannels:channels2 withDevicePushToken:self.devicePushTokenData + pushType:self.pushType environment:self.apnsEnvironment + topic:self.apns2Topic andCompletion:^(PNAcknowledgmentStatus + *status) { + + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNRemovePushNotificationsFromChannelsV2Operation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + handler(); + }]; + }]; + + + [self verifyEnabledForPushNotificationsChannels:channels1]; +} + +- (void)testItShouldNotRemovePushNotificationsUsingV2APIAndReceiveBadRequestStatusWhenDevicePushTokenIsNil { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSData *devicePushToken = nil; + self.pushType = PNAPNS2Push; + self.testingV2API = YES; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client removePushNotificationsFromChannels:channels withDevicePushToken:devicePushToken + pushType:self.pushType environment:self.apnsEnvironment + topic:self.apns2Topic andCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNRemovePushNotificationsFromChannelsV2Operation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + handler(); + }]; + }]; +} + + +#pragma mark - Tests :: Builder pattern-based remove notifications from channels + +- (void)testItShouldRemovePushNotificationsUsingBuilderPatternInterface { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + PubNub *client = [self createPubNubForUser:@"serhii"]; + self.pushType = PNFCMPush; + + [self disableAllPushNotificationsOnDevice]; + [self enabledPushNotificationsForChannels:channels]; + + [self verifyEnabledForPushNotificationsChannels:channels]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + client.push().disable() + .channels(@[channels.firstObject]) + .token(self.devicePushTokenString) + .pushType(PNFCMPush) + .performWithCompletion(^(PNAcknowledgmentStatus *status) { + + NSString *url = status.clientRequest.URL.absoluteString; + XCTAssertFalse(status.isError); + XCTAssertNotNil(url); + XCTAssertEqual(status.operation, PNRemovePushNotificationsFromChannelsOperation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + XCTAssertNotEqual([url rangeOfString:@"type=gcm"].location, NSNotFound); + + handler(); + }); + }]; + + + [self verifyEnabledForPushNotificationsChannels:@[channels.lastObject]]; +} + + +#pragma mark - Tests :: remove all notifications for device + +- (void)testItShouldRemoveAllPushNotificationsAndReceiveStatusWithExpectedOperationAndCategory { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + + [self disableAllPushNotificationsOnDevice]; + [self enabledPushNotificationsForChannels:channels]; + + [self verifyEnabledForPushNotificationsChannels:channels]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client removeAllPushNotificationsFromDeviceWithPushToken:self.devicePushTokenData + andCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertFalse(status.isError); + XCTAssertEqual(status.operation, PNRemoveAllPushNotificationsOperation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + + handler(); + }]; + }]; + + + [self verifyEnabledForPushNotificationsChannels:@[]]; +} + +- (void)testItShouldRemoveAllPushNotificationsWithDefaultToAPNSPushType { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + + [self disableAllPushNotificationsOnDevice]; + [self enabledPushNotificationsForChannels:channels]; + + [self verifyEnabledForPushNotificationsChannels:channels]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client removeAllPushNotificationsFromDeviceWithPushToken:self.devicePushTokenData + andCompletion:^(PNAcknowledgmentStatus *status) { + + NSString *url = status.clientRequest.URL.absoluteString; + XCTAssertFalse(status.isError); + XCTAssertNotNil(url); + XCTAssertNotEqual([url rangeOfString:@"type=apns"].location, NSNotFound); + + handler(); + }]; + }]; + + + [self verifyEnabledForPushNotificationsChannels:@[]]; +} + +- (void)testItShouldRemoveAllPushNotificationsWithFCMPushType { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + self.pushType = PNFCMPush; + + [self disableAllPushNotificationsOnDevice]; + [self enabledPushNotificationsForChannels:channels]; + + [self verifyEnabledForPushNotificationsChannels:channels]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client removeAllPushNotificationsFromDeviceWithPushToken:self.devicePushTokenString + pushType:self.pushType + andCompletion:^(PNAcknowledgmentStatus *status) { + + NSString *url = status.clientRequest.URL.absoluteString; + XCTAssertFalse(status.isError); + XCTAssertNotNil(url); + XCTAssertNotEqual([url rangeOfString:@"type=gcm"].location, NSNotFound); + + handler(); + }]; + }]; + + + [self verifyEnabledForPushNotificationsChannels:@[]]; +} + +- (void)testItShouldRemoveAllPushNotificationsWithMPNSPushType { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + self.pushType = PNMPNSPush; + + [self disableAllPushNotificationsOnDevice]; + [self enabledPushNotificationsForChannels:channels]; + + [self verifyEnabledForPushNotificationsChannels:channels]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client removeAllPushNotificationsFromDeviceWithPushToken:self.devicePushTokenString + pushType:self.pushType + andCompletion:^(PNAcknowledgmentStatus *status) { + + NSString *url = status.clientRequest.URL.absoluteString; + XCTAssertFalse(status.isError); + XCTAssertNotNil(url); + XCTAssertNotEqual([url rangeOfString:@"type=mpns"].location, NSNotFound); + + handler(); + }]; + }]; + + + [self verifyEnabledForPushNotificationsChannels:@[]]; +} + +- (void)testItShouldNotRemoveAllPushNotificationsAndReceiveBadRequestStatusWhenAPNSDevicePushTokenIsNil { + NSData *devicePushToken = nil; + __block BOOL retried = NO; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client removeAllPushNotificationsFromDeviceWithPushToken:devicePushToken + andCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNRemoveAllPushNotificationsOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }]; + }]; +} + +- (void)testItShouldNotRemoveAllPushNotificationsAndReceiveBadRequestStatusWhenAPNSDevicePushTokenIsNotNSData { + NSData *devicePushToken = (id)@2010; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client removeAllPushNotificationsFromDeviceWithPushToken:devicePushToken + andCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNRemoveAllPushNotificationsOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + handler(); + }]; + }]; +} + +- (void)testItShouldNotRemoveAllPushNotificationsAndReceiveBadRequestStatusWhenFCMDevicePushTokenIsNil { + NSString *devicePushToken = nil; + self.pushType = PNFCMPush; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client removeAllPushNotificationsFromDeviceWithPushToken:devicePushToken pushType:self.pushType + andCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNRemoveAllPushNotificationsOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + handler(); + }]; + }]; +} + +- (void)testItShouldNotRemoveAllPushNotificationsAndReceiveBadRequestStatusWhenFCMDevicePushTokenIsNotNSString { + NSString *devicePushToken = (id)@2010; + self.pushType = PNFCMPush; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client removeAllPushNotificationsFromDeviceWithPushToken:devicePushToken pushType:self.pushType + andCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNRemoveAllPushNotificationsOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + handler(); + }]; + }]; +} + +- (void)testItShouldNotRemoveAllPushNotificationsAndReceiveBadRequestStatusWhenMPNSDevicePushTokenIsNil { + NSString *devicePushToken = nil; + self.pushType = PNMPNSPush; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client removeAllPushNotificationsFromDeviceWithPushToken:devicePushToken pushType:self.pushType + andCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNRemoveAllPushNotificationsOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + handler(); + }]; + }]; +} + +- (void)testItShouldNotRemoveAllPushNotificationsAndReceiveBadRequestStatusWhenMPNSDevicePushTokenIsNotNSString { + NSString *devicePushToken = (id)@2010; + self.pushType = PNMPNSPush; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client removeAllPushNotificationsFromDeviceWithPushToken:devicePushToken pushType:self.pushType + andCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNRemoveAllPushNotificationsOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + handler(); + }]; + }]; +} + +- (void)testItShouldRemoveAllPushNotificationsUsingV2APIAndReceiveStatusWithExpectedOperationAndCategory { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + self.pushType = PNAPNS2Push; + self.testingV2API = YES; + + [self disableAllPushNotificationsOnDevice]; + [self enabledPushNotificationsForChannels:channels]; + + [self verifyEnabledForPushNotificationsChannels:channels]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client removeAllPushNotificationsFromDeviceWithPushToken:self.devicePushTokenData + pushType:self.pushType environment:self.apnsEnvironment + topic:self.apns2Topic + andCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertFalse(status.isError); + XCTAssertEqual(status.operation, PNRemoveAllPushNotificationsV2Operation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + + handler(); + }]; + }]; + + + [self verifyEnabledForPushNotificationsChannels:@[]]; +} + +- (void)testItShouldRemoveAllPushNotificationsUsingV2APIAndBundleIdentifierAsDefaultTopicWhenTopicIsNil { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + self.apns2Topic = NSBundle.mainBundle.bundleIdentifier; + self.pushType = PNAPNS2Push; + self.testingV2API = YES; + NSString *topic = nil; + + [self disableAllPushNotificationsOnDevice]; + [self enabledPushNotificationsForChannels:channels]; + + [self verifyEnabledForPushNotificationsChannels:channels]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client removeAllPushNotificationsFromDeviceWithPushToken:self.devicePushTokenData + pushType:self.pushType environment:self.apnsEnvironment + topic:topic + andCompletion:^(PNAcknowledgmentStatus *status) { + + NSString *topicQuery = [@[@"topic", self.apns2Topic] componentsJoinedByString:@"="]; + NSString *url = status.clientRequest.URL.absoluteString; + XCTAssertFalse(status.isError); + XCTAssertNotNil(url); + XCTAssertNotEqual([url rangeOfString:@"devices-apns2"].location, NSNotFound); + XCTAssertNotEqual([url rangeOfString:topicQuery].location, NSNotFound); + + handler(); + }]; + }]; + + + [self verifyEnabledForPushNotificationsChannels:@[]]; +} + +- (void)testItShouldNotRemoveAllPushNotificationsUsingV2APIAndReceiveBadRequestStatusWhenDevicePushTokenIsNil { + NSData *devicePushToken = nil; + self.pushType = PNAPNS2Push; + self.testingV2API = YES; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client removeAllPushNotificationsFromDeviceWithPushToken:devicePushToken pushType:self.pushType + environment:self.apnsEnvironment topic:self.apns2Topic andCompletion:^(PNAcknowledgmentStatus *status) { + + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNRemoveAllPushNotificationsV2Operation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + handler(); + }]; + }]; +} + + +#pragma mark - Tests :: Builder pattern-based remove all notifications for device + +- (void)testItShouldRemoveAllPushNotificationsUsingBuilderPatternInterface { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + PubNub *client = [self createPubNubForUser:@"serhii"]; + self.pushType = PNFCMPush; + + [self disableAllPushNotificationsOnDevice]; + [self enabledPushNotificationsForChannels:channels]; + + [self verifyEnabledForPushNotificationsChannels:channels]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + client.push().disableAll() + .token(self.devicePushTokenString) + .pushType(PNFCMPush) + .performWithCompletion(^(PNAcknowledgmentStatus *status) { + + NSString *url = status.clientRequest.URL.absoluteString; + XCTAssertFalse(status.isError); + XCTAssertNotNil(url); + XCTAssertEqual(status.operation, PNRemoveAllPushNotificationsOperation); + XCTAssertEqual(status.category, PNAcknowledgmentCategory); + XCTAssertNotEqual([url rangeOfString:@"type=gcm"].location, NSNotFound); + + handler(); + }); + }]; + + + [self verifyEnabledForPushNotificationsChannels:@[]]; +} + + +#pragma mark - Tests :: audit notifications + +- (void)testItShouldAuditPushNotificationsAndReceiveResultWithExpectedOperation { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSSet *addedChannelsSet = [NSSet setWithArray:channels]; + + [self disableAllPushNotificationsOnDevice]; + [self enabledPushNotificationsForChannels:channels]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client pushNotificationEnabledChannelsForDeviceWithPushToken:self.devicePushTokenData + andCompletion:^(PNAPNSEnabledChannelsResult *result, PNErrorStatus *status) { + + NSSet *fetchedChannelsSet = [NSSet setWithArray:result.data.channels]; + XCTAssertNil(status); + XCTAssertNotNil(fetchedChannelsSet); + XCTAssertEqual(result.operation, PNPushNotificationEnabledChannelsOperation); + XCTAssertTrue([fetchedChannelsSet isEqualToSet:addedChannelsSet]); + + handler(); + }]; + }]; +} + +- (void)testItShouldAuditPushNotificationsWithDefaultToAPNSPushType { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSSet *addedChannelsSet = [NSSet setWithArray:channels]; + + [self disableAllPushNotificationsOnDevice]; + [self enabledPushNotificationsForChannels:channels]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client pushNotificationEnabledChannelsForDeviceWithPushToken:self.devicePushTokenData + andCompletion:^(PNAPNSEnabledChannelsResult *result, PNErrorStatus *status) { + + NSSet *fetchedChannelsSet = [NSSet setWithArray:result.data.channels]; + NSString *url = result.clientRequest.URL.absoluteString; + XCTAssertNil(status); + XCTAssertNotNil(fetchedChannelsSet); + XCTAssertNotNil(url); + XCTAssertNotEqual([url rangeOfString:@"type=apns"].location, NSNotFound); + XCTAssertTrue([fetchedChannelsSet isEqualToSet:addedChannelsSet]); + + handler(); + }]; + }]; +} + +- (void)testItShouldAuditPushNotificationsWithFCMPushType { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSSet *addedChannelsSet = [NSSet setWithArray:channels]; + self.pushType = PNFCMPush; + + [self disableAllPushNotificationsOnDevice]; + [self enabledPushNotificationsForChannels:channels]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client pushNotificationEnabledChannelsForDeviceWithPushToken:self.devicePushTokenString + pushType:self.pushType andCompletion:^(PNAPNSEnabledChannelsResult *result, PNErrorStatus *status) { + + NSSet *fetchedChannelsSet = [NSSet setWithArray:result.data.channels]; + NSString *url = result.clientRequest.URL.absoluteString; + XCTAssertNil(status); + XCTAssertNotNil(fetchedChannelsSet); + XCTAssertNotNil(url); + XCTAssertNotEqual([url rangeOfString:@"type=gcm"].location, NSNotFound); + XCTAssertTrue([fetchedChannelsSet isEqualToSet:addedChannelsSet]); + + handler(); + }]; + }]; +} + +- (void)testItShouldAuditPushNotificationsWithMPNSPushType { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSSet *addedChannelsSet = [NSSet setWithArray:channels]; + self.pushType = PNMPNSPush; + + [self disableAllPushNotificationsOnDevice]; + [self enabledPushNotificationsForChannels:channels]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client pushNotificationEnabledChannelsForDeviceWithPushToken:self.devicePushTokenString + pushType:self.pushType andCompletion:^(PNAPNSEnabledChannelsResult *result, PNErrorStatus *status) { + + NSSet *fetchedChannelsSet = [NSSet setWithArray:result.data.channels]; + NSString *url = result.clientRequest.URL.absoluteString; + XCTAssertNil(status); + XCTAssertNotNil(fetchedChannelsSet); + XCTAssertNotNil(url); + XCTAssertNotEqual([url rangeOfString:@"type=mpns"].location, NSNotFound); + XCTAssertTrue([fetchedChannelsSet isEqualToSet:addedChannelsSet]); + + handler(); + }]; + }]; +} + +- (void)testItShouldNotAuditPushNotificationsAndReceiveBadRequestStatusWhenAPNSDevicePushTokenIsNil { + NSData *devicePushToken = nil; + __block BOOL retried = NO; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client pushNotificationEnabledChannelsForDeviceWithPushToken:devicePushToken + andCompletion:^(PNAPNSEnabledChannelsResult *result, PNErrorStatus *status) { + + XCTAssertNil(result); + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNPushNotificationEnabledChannelsOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + if (!retried) { + retried = YES; + [status retry]; + } else { + handler(); + } + }]; + }]; +} + +- (void)testItShouldNotAuditPushNotificationsAndReceiveBadRequestStatusWhenAPNSDevicePushTokenIsNotNSData { + NSData *devicePushToken = (id)@2010; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client pushNotificationEnabledChannelsForDeviceWithPushToken:devicePushToken + andCompletion:^(PNAPNSEnabledChannelsResult *result, PNErrorStatus *status) { + + XCTAssertNil(result); + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNPushNotificationEnabledChannelsOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + handler(); + }]; + }]; +} + +- (void)testItShouldNotAuditPushNotificationsAndReceiveBadRequestStatusWhenFCMDevicePushTokenIsNil { + NSString *devicePushToken = nil; + self.pushType = PNFCMPush; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client pushNotificationEnabledChannelsForDeviceWithPushToken:devicePushToken pushType:self.pushType + andCompletion:^(PNAPNSEnabledChannelsResult *result, PNErrorStatus *status) { + + XCTAssertNil(result); + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNPushNotificationEnabledChannelsOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + handler(); + }]; + }]; +} + +- (void)testItShouldNotAuditPushNotificationsAndReceiveBadRequestStatusWhenFCMDevicePushTokenIsNotNSString { + NSString *devicePushToken = (id)@2010; + self.pushType = PNFCMPush; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client pushNotificationEnabledChannelsForDeviceWithPushToken:devicePushToken pushType:self.pushType + andCompletion:^(PNAPNSEnabledChannelsResult *result, PNErrorStatus *status) { + + XCTAssertNil(result); + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNPushNotificationEnabledChannelsOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + handler(); + }]; + }]; +} + +- (void)testItShouldNotAuditPushNotificationsAndReceiveBadRequestStatusWhenMPNSDevicePushTokenIsNil { + NSString *devicePushToken = nil; + self.pushType = PNMPNSPush; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client pushNotificationEnabledChannelsForDeviceWithPushToken:devicePushToken pushType:self.pushType + andCompletion:^(PNAPNSEnabledChannelsResult *result, PNErrorStatus *status) { + + XCTAssertNil(result); + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNPushNotificationEnabledChannelsOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + handler(); + }]; + }]; +} + +- (void)testItShouldNotAuditPushNotificationsAndReceiveBadRequestStatusWhenMPNSDevicePushTokenIsNotNSString { + NSString *devicePushToken = (id)@2010; + self.pushType = PNMPNSPush; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client pushNotificationEnabledChannelsForDeviceWithPushToken:devicePushToken pushType:self.pushType + andCompletion:^(PNAPNSEnabledChannelsResult *result, PNErrorStatus *status) { + + XCTAssertNil(result); + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNPushNotificationEnabledChannelsOperation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + handler(); + }]; + }]; +} + +- (void)testItShouldAuditPushNotificationsUsingV2APIAndReceiveResultWithExpectedOperationAndCategory { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSSet *addedChannelsSet = [NSSet setWithArray:channels]; + self.pushType = PNAPNS2Push; + self.testingV2API = YES; + + [self disableAllPushNotificationsOnDevice]; + [self enabledPushNotificationsForChannels:channels]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client pushNotificationEnabledChannelsForDeviceWithPushToken:self.devicePushTokenData + pushType:self.pushType environment:self.apnsEnvironment topic:self.apns2Topic + andCompletion:^(PNAPNSEnabledChannelsResult *result, PNErrorStatus *status) { + + NSSet *fetchedChannelsSet = [NSSet setWithArray:result.data.channels]; + XCTAssertNil(status); + XCTAssertNotNil(result); + XCTAssertNotNil(fetchedChannelsSet); + XCTAssertEqual(result.operation, PNPushNotificationEnabledChannelsV2Operation); + XCTAssertTrue([fetchedChannelsSet isEqualToSet:addedChannelsSet]); + + handler(); + }]; + }]; +} + +- (void)testItShouldAuditPushNotificationsUsingV2APIAndBundleIdentifierAsDefaultTopicWhenTopicIsNil { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSSet *addedChannelsSet = [NSSet setWithArray:channels]; + self.apns2Topic = NSBundle.mainBundle.bundleIdentifier; + self.pushType = PNAPNS2Push; + self.testingV2API = YES; + NSString *topic = nil; + + [self disableAllPushNotificationsOnDevice]; + [self enabledPushNotificationsForChannels:channels]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client pushNotificationEnabledChannelsForDeviceWithPushToken:self.devicePushTokenData + pushType:self.pushType environment:self.apnsEnvironment topic:topic + andCompletion:^(PNAPNSEnabledChannelsResult *result, PNErrorStatus *status) { + + NSString *topicQuery = [@[@"topic", self.apns2Topic] componentsJoinedByString:@"="]; + NSSet *fetchedChannelsSet = [NSSet setWithArray:result.data.channels]; + NSString *url = result.clientRequest.URL.absoluteString; + XCTAssertNil(status); + XCTAssertNotNil(url); + XCTAssertNotNil(fetchedChannelsSet); + XCTAssertNotEqual([url rangeOfString:@"devices-apns2"].location, NSNotFound); + XCTAssertNotEqual([url rangeOfString:topicQuery].location, NSNotFound); + XCTAssertTrue([fetchedChannelsSet isEqualToSet:addedChannelsSet]); + + handler(); + }]; + }]; +} + +- (void)testItShouldNotAuditPushNotificationsUsingV2APIAndReceiveBadRequestStatusWhenDevicePushTokenIsNil { + NSData *devicePushToken = nil; + self.pushType = PNAPNS2Push; + self.testingV2API = YES; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client pushNotificationEnabledChannelsForDeviceWithPushToken:devicePushToken + pushType:self.pushType environment:self.apnsEnvironment topic:self.apns2Topic + andCompletion:^(PNAPNSEnabledChannelsResult *result, PNErrorStatus *status) { + + XCTAssertNil(result); + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNPushNotificationEnabledChannelsV2Operation); + XCTAssertEqual(status.category, PNBadRequestCategory); + XCTAssertEqual(status.statusCode, 400); + + handler(); + }]; + }]; +} + + +#pragma mark - Tests :: Builder pattern-based audit notifications + +- (void)testItShouldShouldAuditPushNotificationsUsingBuilderPatternInterface { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSSet *addedChannelsSet = [NSSet setWithArray:channels]; + PubNub *client = [self createPubNubForUser:@"serhii"]; + self.pushType = PNFCMPush; + + [self disableAllPushNotificationsOnDevice]; + [self enabledPushNotificationsForChannels:channels]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + client.push().audit() + .token(self.devicePushTokenString) + .pushType(PNFCMPush) + .performWithCompletion(^(PNAPNSEnabledChannelsResult *result, PNErrorStatus *status) { + + NSSet *fetchedChannelsSet = [NSSet setWithArray:result.data.channels]; + NSString *url = result.clientRequest.URL.absoluteString; + XCTAssertNil(status); + XCTAssertNotNil(result); + XCTAssertNotNil(fetchedChannelsSet); + XCTAssertNotNil(url); + XCTAssertEqual(result.operation, PNPushNotificationEnabledChannelsOperation); + XCTAssertNotEqual([url rangeOfString:@"type=gcm"].location, NSNotFound); + XCTAssertTrue([fetchedChannelsSet isEqualToSet:addedChannelsSet]); + + handler(); + }); + }]; +} + + +#pragma mark - Misc + +- (void)enabledPushNotificationsForChannels:(NSArray *)channels { + __block PNPushNotificationsStateModificationCompletionBlock addHandler = nil; + id token = self.devicePushTokenData; + + if (self.pushType != PNAPNSPush && self.pushType != PNAPNS2Push) { + token = self.devicePushTokenString; + } + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + addHandler = ^(PNAcknowledgmentStatus *status) { + XCTAssertFalse(status.isError); + handler(); + }; + + if (!self.testingV2API) { + [self.client addPushNotificationsOnChannels:channels withDevicePushToken:token + pushType:self.pushType andCompletion:addHandler]; + } else { + [self.client addPushNotificationsOnChannels:channels withDevicePushToken:token + pushType:self.pushType environment:self.apnsEnvironment + topic:self.apns2Topic andCompletion:addHandler]; + } + }]; + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 1.f : 0.f)]; +} + +- (void)verifyEnabledForPushNotificationsChannels:(NSArray *)channels { + __block PNPushNotificationsStateAuditCompletionBlock auditHandler = nil; + NSSet *addedChannelsSet = [NSSet setWithArray:channels]; + id token = self.devicePushTokenData; + + if (self.pushType != PNAPNSPush && self.pushType != PNAPNS2Push) { + token = self.devicePushTokenString; + } + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + auditHandler = ^(PNAPNSEnabledChannelsResult *result, PNErrorStatus *status) { + NSSet *fetchedChannelsSet = [NSSet setWithArray:result.data.channels]; + XCTAssertNil(status); + XCTAssertNotNil(fetchedChannelsSet); + XCTAssertTrue([fetchedChannelsSet isEqualToSet:addedChannelsSet]); + + handler(); + }; + + if (!self.testingV2API) { + [self.client pushNotificationEnabledChannelsForDeviceWithPushToken:token pushType:self.pushType + andCompletion:auditHandler]; + } else { + [self.client pushNotificationEnabledChannelsForDeviceWithPushToken:token + pushType:self.pushType + environment:self.apnsEnvironment + topic:self.apns2Topic + andCompletion:auditHandler]; + } + }]; +} + +- (void)disableAllPushNotificationsOnDevice { + __block PNPushNotificationsStateModificationCompletionBlock removeHandler = nil; + id token = self.devicePushTokenData; + + if (self.pushType != PNAPNSPush && self.pushType != PNAPNS2Push) { + token = self.devicePushTokenString; + } + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 1.f : 0.f)]; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + removeHandler = ^(PNAcknowledgmentStatus *status) { + XCTAssertFalse(status.isError); + handler(); + }; + + if (!self.testingV2API) { + [self.client removeAllPushNotificationsFromDeviceWithPushToken:token pushType:self.pushType + andCompletion:removeHandler]; + } else { + [self.client removeAllPushNotificationsFromDeviceWithPushToken:token + pushType:self.pushType + environment:self.apnsEnvironment + topic:self.apns2Topic + andCompletion:removeHandler]; + } + }]; +} + +#pragma mark - + +#pragma clang diagnostic pop + +@end diff --git a/Tests/Tests/Integration/PNSubscribeIntegrationTest.m b/Tests/Tests/Integration/PNSubscribeIntegrationTest.m new file mode 100644 index 000000000..de5c23a19 --- /dev/null +++ b/Tests/Tests/Integration/PNSubscribeIntegrationTest.m @@ -0,0 +1,2079 @@ +/** + * @author Serhii Mamontov + * @copyright © 2010-2020 PubNub, Inc. + */ +#import "PNRecordableTestCase.h" +#import "NSString+PNTest.h" + + +NS_ASSUME_NONNULL_BEGIN + +#pragma mark Interface declaration + +@interface PNSubscribeIntegrationTest : PNRecordableTestCase + + +#pragma mark - Information + +@property (nonatomic, assign) NSUInteger initializedClientsCount; + + +#pragma mark - + + +@end + +NS_ASSUME_NONNULL_END + + +#pragma mark - Tests + +@implementation PNSubscribeIntegrationTest + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Warc-retain-cycles" + + +#pragma mark - Setup / Tear down + +- (PNConfiguration *)configurationForTestCaseWithName:(NSString *)name { + PNConfiguration *configuration = [super configurationForTestCaseWithName:name]; + configuration.presenceHeartbeatValue = 20; + configuration.presenceHeartbeatInterval = 0; + + if ([name pnt_includesAnyString:@[@"SetToKeepTimetokenOnChannelsListChange", @"SetToKeepTimetokenChannelGroupsListChange"]]) { + configuration.keepTimeTokenOnListChange = YES; + } else if ([name pnt_includesAnyString:@[@"SetToNotKeepTimetokenOnChannelsListChange", @"SetToNotKeepTimetokenOnChannelGroupsListChange"]]) { + configuration.keepTimeTokenOnListChange = NO; + } else if ([name pnt_includesString:@"CipherKey"]) { + configuration.cipherKey = @"enigma"; + + if ([name pnt_includesString:@"DifferentCipherKey"] && self.initializedClientsCount >= 2) { + configuration.cipherKey = @"secret"; + } + } + + self.initializedClientsCount++; + + return configuration; +} + +- (BOOL)usePAMEnabledKeysForTestCaseWithName:(NSString *)name { + return [self.name pnt_includesString:@"AccessDenied"]; +} + +- (void)setUp { + [super setUp]; + + if (![self.name pnt_includesString:@"Encrypted"]) { + [self completePubNubConfiguration:self.client]; + } +} + + +#pragma mark - Tests :: Subscribe to channel + +- (void)testItShouldSubscribeToSingleChannelAndReceiveConnectedEvent { + NSString *channel = [self channelWithName:@"test-channel1"]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addStatusHandlerForClient:self.client + withBlock:^(PubNub *client, PNSubscribeStatus *status, BOOL *remove) { + + if (status.operation == PNSubscribeOperation && status.category == PNConnectedCategory) { + XCTAssertNotEqual([status.subscribedChannels indexOfObject:channel], NSNotFound); + XCTAssertEqual([@0 compare:status.currentTimetoken], NSOrderedAscending); + XCTAssertTrue([self.client isSubscribedOn:channel]); + *remove = YES; + + handler(); + } + }]; + + [self.client subscribeToChannels:@[channel] withPresence:NO]; + }]; +} + +- (void)testItShouldSubscribeToSingleChannelAndTriggerOnlineEvent { + NSString *channel = [self channelWithName:@"test-channel1"]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + + + [self subscribeClient:client2 toChannels:@[channel] withPresence:YES]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addPresenceHandlerForClient:client2 + withBlock:^(PubNub *client, PNPresenceEventResult *event, BOOL *remove) { + + if ([event.data.presenceEvent isEqualToString:@"join"] && + [event.data.presence.uuid isEqualToString:client1.currentConfiguration.uuid]) { + + XCTAssertEqual([@0 compare:event.data.presence.timetoken], NSOrderedAscending); + XCTAssertEqualObjects(event.data.subscription, channel); + XCTAssertEqualObjects(event.data.channel, channel); + *remove = YES; + + handler(); + } + }]; + + [client1 subscribeToChannels:@[channel] withPresence:NO]; + }]; +} + +- (void)testItShouldSubscribeToSingleChannelWithPresenceAndReceiveOwnOnlineEvent { + NSString *channel = [self channelWithName:@"test-channel1"]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addPresenceHandlerForClient:self.client + withBlock:^(PubNub *client, PNPresenceEventResult *event, BOOL *remove) { + + if ([event.data.presenceEvent isEqualToString:@"join"] && + [event.data.presence.uuid isEqualToString:self.client.currentConfiguration.uuid]) { + + NSString *presenceChannel = [channel stringByAppendingString:@"-pnpres"]; + XCTAssertEqualObjects(event.data.presence.uuid, self.client.currentConfiguration.uuid); + XCTAssertEqual([@0 compare:event.data.presence.timetoken], NSOrderedAscending); + XCTAssertNotEqual([self.client.presenceChannels indexOfObject:presenceChannel], NSNotFound); + XCTAssertEqualObjects(event.data.subscription, channel); + XCTAssertEqualObjects(event.data.channel, channel); + *remove = YES; + + handler(); + } + }]; + + [self.client subscribeToChannels:@[channel] withPresence:YES]; + }]; +} + +- (void)testItShouldSubscribeToMultipleChannelsAndReceiveConnectedEvent { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSSet *subscriptionChannelsSet = [NSSet setWithArray:channels]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addStatusHandlerForClient:self.client + withBlock:^(PubNub *client, PNSubscribeStatus *status, BOOL *remove) { + + if (status.operation == PNSubscribeOperation && status.category == PNConnectedCategory) { + NSSet *subscribedChannelsSet = [NSSet setWithArray:status.subscribedChannels]; + XCTAssertTrue([subscribedChannelsSet isEqualToSet:subscriptionChannelsSet]); + XCTAssertEqual([@0 compare:status.currentTimetoken], NSOrderedAscending); + XCTAssertTrue([self.client isSubscribedOn:channels.lastObject]); + *remove = YES; + + handler(); + } + }]; + + [self.client subscribeToChannels:channels withPresence:NO]; + }]; +} + +- (void)testItShouldSubscribeToMultipleChannelsAndTriggerOnlineEvent { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + __block NSUInteger reportedOnlineCount = 0; + + + [self subscribeClient:client2 toChannels:channels withPresence:YES]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addPresenceHandlerForClient:client2 + withBlock:^(PubNub *client, PNPresenceEventResult *event, BOOL *remove) { + + if ([event.data.presenceEvent isEqualToString:@"join"] && + [event.data.presence.uuid isEqualToString:client1.currentConfiguration.uuid]) { + + XCTAssertTrue([channels containsObject:event.data.subscription]); + XCTAssertTrue([channels containsObject:event.data.channel]); + reportedOnlineCount++; + } + + if (reportedOnlineCount == channels.count) { + *remove = YES; + handler(); + } + }]; + + [client1 subscribeToChannels:channels withPresence:NO]; + }]; +} + +- (void)testItShouldSubscribeToMultipleChannelsAndTriggerOnlineEventWhenSubscribedOnPresenceChannelSeparatelly { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + + + [self subscribeClient:client2 toChannels:channels withPresence:NO]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToNotCompleteIn:self.falseTestCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addPresenceHandlerForClient:client2 + withBlock:^(PubNub *client, PNPresenceEventResult *event, BOOL *remove) { + + if ([event.data.presenceEvent isEqualToString:@"join"] && + [event.data.presence.uuid isEqualToString:client1.currentConfiguration.uuid]) { + *remove = YES; + + handler(); + } + }]; + + [client1 subscribeToChannels:@[channels.firstObject] withPresence:NO]; + }]; + + + [client2 subscribeToPresenceChannels:@[channels.lastObject]]; + [self waitTask:@"waitForSubscribeOnPresence" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + XCTAssertTrue([client2 isSubscribedOn:[channels.lastObject stringByAppendingString:@"-pnpres"]]); + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addPresenceHandlerForClient:client2 + withBlock:^(PubNub *client, PNPresenceEventResult *event, BOOL *remove) { + + if ([event.data.presenceEvent isEqualToString:@"join"] && + [event.data.presence.uuid isEqualToString:client1.currentConfiguration.uuid]) { + *remove = YES; + + handler(); + } + }]; + + [client1 subscribeToChannels:@[channels.lastObject] withPresence:NO]; + }]; +} + +- (void)testItShouldSubscribeToMultipleChannelsWithPresenceAndReceiveOwnOnlineEvent { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + __block NSUInteger reportedOnlineCount = 0; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addPresenceHandlerForClient:self.client + withBlock:^(PubNub *client, PNPresenceEventResult *event, BOOL *remove) { + + if ([event.data.presenceEvent isEqualToString:@"join"] && + [event.data.presence.uuid isEqualToString:self.client.currentConfiguration.uuid]) { + + XCTAssertTrue([channels containsObject:event.data.subscription]); + XCTAssertTrue([channels containsObject:event.data.channel]); + reportedOnlineCount++; + } + + if (reportedOnlineCount == channels.count) { + *remove = YES; + handler(); + } + }]; + + [self.client subscribeToChannels:channels withPresence:YES]; + }]; +} + +/** + * Test added to cover usage of legacy code allowed to set presence state during subscription call. + */ +- (void)testItShouldSubscribeToSingleChannelAndSetState { + NSString *channel = [self channelWithName:@"test-channel1"]; + NSDictionary *states = @{ + channel: @{ @"channel1-state": [self randomizedValuesWithValues:@[@"channel-1-random-value"]] } + }; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addStatusHandlerForClient:self.client + withBlock:^(PubNub *client, PNSubscribeStatus *status, BOOL *remove) { + + if (status.operation == PNSubscribeOperation && status.category == PNConnectedCategory) { + *remove = YES; + + handler(); + } + }]; + + [self.client subscribeToChannels:@[channel] withPresence:NO clientState:states]; + }]; + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 5.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client stateForUUID:self.client.currentConfiguration.uuid onChannel:channel + withCompletion:^(PNChannelClientStateResult *result, PNErrorStatus *status) { + + NSDictionary *fetchedState = result.data.state; + XCTAssertNotNil(fetchedState); + XCTAssertEqualObjects(fetchedState, states[channel]); + + handler(); + }]; + }]; +} + +/** + * Test added to cover usage of legacy code allowed to set presence state during subscription call. + */ +- (void)testItShouldSubscribeToMultipleChannelsAndSetState { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSDictionary *states = @{ + channels.firstObject: @{ @"channel1-state": [self randomizedValuesWithValues:@[@"channel-1-random-value"]] }, + channels.lastObject: @{ @"channel2-state": [self randomizedValuesWithValues:@[@"channel-2-random-value"]] } + }; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addStatusHandlerForClient:self.client + withBlock:^(PubNub *client, PNSubscribeStatus *status, BOOL *remove) { + + if (status.operation == PNSubscribeOperation && status.category == PNConnectedCategory) { + *remove = YES; + + handler(); + } + }]; + + [self.client subscribeToChannels:channels withPresence:NO clientState:states]; + }]; + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 5.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.state().audit() + .uuid(self.client.currentConfiguration.uuid) + .channels(channels) + .performWithCompletion(^(PNClientStateGetResult *result, PNErrorStatus *status) { + NSDictionary *fetchedChannels = result.data.channels; + XCTAssertNotNil(fetchedChannels); + XCTAssertEqualObjects(fetchedChannels[channels.firstObject], states[channels.firstObject]); + XCTAssertEqualObjects(fetchedChannels[channels.lastObject], states[channels.lastObject]); + XCTAssertNotEqualObjects(fetchedChannels[channels.firstObject], + fetchedChannels[channels.lastObject]); + + handler(); + }); + }]; +} + +- (void)testItShouldNotSubscribeToChannelAndReceiveAccessDeniedEventWhenPAMKeysUsed { + NSString *channel = [self channelWithName:@"test-channel1"]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addStatusHandlerForClient:self.client + withBlock:^(PubNub *client, PNSubscribeStatus *status, BOOL *remove) { + + if (status.operation == PNSubscribeOperation && status.category == PNAccessDeniedCategory) { + XCTAssertTrue(status.willAutomaticallyRetry); + [status cancelAutomaticRetry]; + + *remove = YES; + + handler(); + } + }]; + + [self.client subscribeToChannels:@[channel] withPresence:NO]; + }]; +} + +- (void)testItShouldNotSubscribeToChannelAndRetryWhenReceiveAccessDeniedEvent { + NSString *channel = [self channelWithName:@"test-channel1"]; + __block NSUInteger retriedCount = 0; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addStatusHandlerForClient:self.client + withBlock:^(PubNub *client, PNSubscribeStatus *status, BOOL *remove) { + + if (status.operation == PNSubscribeOperation && status.category == PNAccessDeniedCategory) { + XCTAssertTrue(status.willAutomaticallyRetry); + + if (retriedCount == 1) { + [status cancelAutomaticRetry]; + *remove = YES; + handler(); + } else { + retriedCount++; + } + } + }]; + + [self.client subscribeToChannels:@[channel] withPresence:NO]; + }]; +} + + +#pragma mark - Tests :: Subscribe to channel group + +- (void)testItShouldSubscribeToSingleChannelGroupAndReceiveConnectedEvent { + NSString *channelGroup = [self channelGroupWithName:@"test-channel-group1"]; + NSString *channel = [self channelWithName:@"test-channel1"]; + + + [self addChannels:@[channel] toChannelGroup:channelGroup usingClient:nil]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addStatusHandlerForClient:self.client + withBlock:^(PubNub *client, PNSubscribeStatus *status, BOOL *remove) { + + if (status.operation == PNSubscribeOperation && status.category == PNConnectedCategory) { + XCTAssertNotEqual([status.subscribedChannelGroups indexOfObject:channelGroup], NSNotFound); + XCTAssertEqual([@0 compare:status.currentTimetoken], NSOrderedAscending); + XCTAssertTrue([self.client isSubscribedOn:channelGroup]); + *remove = YES; + + handler(); + } + }]; + + [self.client subscribeToChannelGroups:@[channelGroup] withPresence:NO]; + }]; + + [self removeChannelGroup:channelGroup usingClient:nil]; +} + +- (void)testItShouldSubscribeToSingleChannelGroupAndTriggerOnlineEvent { + NSString *channelGroup = [self channelGroupWithName:@"test-channel-group1"]; + NSString *channel = [self channelWithName:@"test-channel1"]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + + + [self addChannels:@[channel] toChannelGroup:channelGroup usingClient:client1]; + [self subscribeClient:client2 toChannelGroups:@[channelGroup] withPresence:YES]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addPresenceHandlerForClient:client2 + withBlock:^(PubNub *client, PNPresenceEventResult *event, BOOL *remove) { + + if ([event.data.presenceEvent isEqualToString:@"join"] && + [event.data.presence.uuid isEqualToString:client1.currentConfiguration.uuid]) { + + XCTAssertEqual([@0 compare:event.data.presence.timetoken], NSOrderedAscending); + XCTAssertEqualObjects(event.data.subscription, channelGroup); + XCTAssertEqualObjects(event.data.channel, channel); + *remove = YES; + + handler(); + } + }]; + + [client1 subscribeToChannelGroups:@[channelGroup] withPresence:NO]; + }]; + + [self removeChannelGroup:channelGroup usingClient:client1]; +} + +- (void)testItShouldSubscribeToSingleChannelGroupWithPresenceAndReceiveOwnOnlineEvent { + NSString *channelGroup = [self channelGroupWithName:@"test-channel-group1"]; + NSString *channel = [self channelWithName:@"test-channel1"]; + + + [self addChannels:@[channel] toChannelGroup:channelGroup usingClient:nil]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addPresenceHandlerForClient:self.client + withBlock:^(PubNub *client, PNPresenceEventResult *event, BOOL *remove) { + + if ([event.data.presenceEvent isEqualToString:@"join"] && + [event.data.presence.uuid isEqualToString:self.client.currentConfiguration.uuid]) { + NSString *presenceChannelGroup = [channelGroup stringByAppendingString:@"-pnpres"]; + XCTAssertNotEqual([self.client.channelGroups indexOfObject:presenceChannelGroup], NSNotFound); + XCTAssertEqualObjects(event.data.presence.uuid, self.client.currentConfiguration.uuid); + XCTAssertEqual([@0 compare:event.data.presence.timetoken], NSOrderedAscending); + XCTAssertEqualObjects(event.data.subscription, channelGroup); + XCTAssertEqualObjects(event.data.channel, channel); + *remove = YES; + + handler(); + } + }]; + + [self.client subscribeToChannelGroups:@[channelGroup] withPresence:YES]; + }]; + + [self removeChannelGroup:channelGroup usingClient:nil]; +} + +- (void)testItShouldSubscribeToMultipleChannelGroupsAndReceiveConnectedEvent { + NSArray *channelGroups = [self channelGroupsWithNames:@[@"test-channel-group1", @"test-channel-group2"]]; + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSSet *subscriptionChannelGroupsSet = [NSSet setWithArray:channelGroups]; + + + [self addChannels:@[channels.firstObject] toChannelGroup:channelGroups.firstObject usingClient:nil]; + [self addChannels:@[channels.lastObject] toChannelGroup:channelGroups.lastObject usingClient:nil]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addStatusHandlerForClient:self.client + withBlock:^(PubNub *client, PNSubscribeStatus *status, BOOL *remove) { + + if (status.operation == PNSubscribeOperation && status.category == PNConnectedCategory) { + NSSet *subscribedChannelGroupsSet = [NSSet setWithArray:status.subscribedChannelGroups]; + XCTAssertTrue([subscribedChannelGroupsSet isEqualToSet:subscriptionChannelGroupsSet]); + XCTAssertEqual([@0 compare:status.currentTimetoken], NSOrderedAscending); + XCTAssertTrue([self.client isSubscribedOn:channelGroups.lastObject]); + *remove = YES; + + handler(); + } + }]; + + [self.client subscribeToChannelGroups:channelGroups withPresence:NO]; + }]; + + [self removeChannelGroup:channelGroups.firstObject usingClient:nil]; + [self removeChannelGroup:channelGroups.lastObject usingClient:nil]; +} + +- (void)testItShouldSubscribeToMultipleChannelGroupsAndTriggerOnlineEvent { + NSArray *channelGroups = [self channelGroupsWithNames:@[@"test-channel-group1", @"test-channel-group2"]]; + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + __block NSUInteger reportedOnlineCount = 0; + + + [self addChannels:@[channels.firstObject] toChannelGroup:channelGroups.firstObject usingClient:client1]; + [self addChannels:@[channels.lastObject] toChannelGroup:channelGroups.lastObject usingClient:client1]; + [self subscribeClient:client2 toChannelGroups:channelGroups withPresence:YES]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addPresenceHandlerForClient:client2 + withBlock:^(PubNub *client, PNPresenceEventResult *event, BOOL *remove) { + + if ([event.data.presenceEvent isEqualToString:@"join"] && + [event.data.presence.uuid isEqualToString:client1.currentConfiguration.uuid]) { + + XCTAssertTrue([channelGroups containsObject:event.data.subscription]); + XCTAssertTrue([channels containsObject:event.data.channel]); + reportedOnlineCount++; + } + + if (reportedOnlineCount == channelGroups.count) { + *remove = YES; + handler(); + } + }]; + + [client1 subscribeToChannelGroups:channelGroups withPresence:NO]; + }]; + + [self removeChannelGroup:channelGroups.firstObject usingClient:client1]; + [self removeChannelGroup:channelGroups.lastObject usingClient:client1]; +} + +- (void)testItShouldSubscribeToMultipleChannelGroupsWithPresenceAndReceiveOwnOnlineEvent { + NSArray *channelGroups = [self channelGroupsWithNames:@[@"test-channel-group1", @"test-channel-group2"]]; + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + __block NSUInteger reportedOnlineCount = 0; + + + [self addChannels:@[channels.firstObject] toChannelGroup:channelGroups.firstObject usingClient:nil]; + [self addChannels:@[channels.lastObject] toChannelGroup:channelGroups.lastObject usingClient:nil]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addPresenceHandlerForClient:self.client + withBlock:^(PubNub *client, PNPresenceEventResult *event, BOOL *remove) { + + if ([event.data.presenceEvent isEqualToString:@"join"] && + [event.data.presence.uuid isEqualToString:self.client.currentConfiguration.uuid]) { + + XCTAssertTrue([channelGroups containsObject:event.data.subscription]); + XCTAssertTrue([channels containsObject:event.data.channel]); + reportedOnlineCount++; + } + + if (reportedOnlineCount == channelGroups.count) { + *remove = YES; + handler(); + } + }]; + + [self.client subscribeToChannelGroups:channelGroups withPresence:YES]; + }]; + + [self removeChannelGroup:channelGroups.firstObject usingClient:nil]; + [self removeChannelGroup:channelGroups.lastObject usingClient:nil]; +} + +/** + * Test added to cover usage of legacy code allowed to set presence state during subscription call. + */ +- (void)testItShouldSubscribeToSingleChannelGroupAndSetState { + NSString *channelGroup = [self channelGroupWithName:@"test-channel-group1"]; + NSString *channel = [self channelWithName:@"test-channel1"]; + NSDictionary *states = @{ + channelGroup: @{ @"channel-group-1-state": [self randomizedValuesWithValues:@[@"channel-group-1-random-value"]] } + }; + + + [self addChannels:@[channel] toChannelGroup:channelGroup usingClient:nil]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addStatusHandlerForClient:self.client + withBlock:^(PubNub *client, PNSubscribeStatus *status, BOOL *remove) { + + if (status.operation == PNSubscribeOperation && status.category == PNConnectedCategory) { + *remove = YES; + + handler(); + } + }]; + + [self.client subscribeToChannelGroups:@[channelGroup] withPresence:NO clientState:states]; + }]; + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 5.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client stateForUUID:self.client.currentConfiguration.uuid onChannel:channel + withCompletion:^(PNChannelClientStateResult *result, PNErrorStatus *status) { + + NSDictionary *fetchedState = result.data.state; + XCTAssertNotNil(fetchedState); + XCTAssertEqualObjects(fetchedState, states[channelGroup]); + + handler(); + }]; + }]; + + [self removeChannelGroup:channelGroup usingClient:nil]; +} + +/** + * Test added to cover usage of legacy code allowed to set presence state during subscription call. + */ +- (void)testItShouldSubscribeToMultipleChannelGroupsAndSetState { + NSArray *channelGroups = [self channelGroupsWithNames:@[@"test-channel-group1", @"test-channel-group2"]]; + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSDictionary *states = @{ + channelGroups.firstObject: @{ + @"channel-group-1-state": [self randomizedValuesWithValues:@[@"channel-group-1-random-value"]] + }, + channelGroups.lastObject: @{ + @"channel-group-2-state": [self randomizedValuesWithValues:@[@"channel-group-2-random-value"]] + } + }; + + + [self addChannels:@[channels.firstObject] toChannelGroup:channelGroups.firstObject usingClient:nil]; + [self addChannels:@[channels.lastObject] toChannelGroup:channelGroups.lastObject usingClient:nil]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addStatusHandlerForClient:self.client + withBlock:^(PubNub *client, PNSubscribeStatus *status, BOOL *remove) { + + if (status.operation == PNSubscribeOperation && status.category == PNConnectedCategory) { + *remove = YES; + + handler(); + } + }]; + + [self.client subscribeToChannelGroups:channelGroups withPresence:NO clientState:states]; + }]; + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 5.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.state().audit() + .uuid(self.client.currentConfiguration.uuid) + .channelGroups(channelGroups) + .performWithCompletion(^(PNClientStateGetResult *result, PNErrorStatus *status) { + NSDictionary *fetchedChannels = result.data.channels; + XCTAssertNotNil(fetchedChannels); + XCTAssertEqualObjects(fetchedChannels[channels.firstObject], states[channelGroups.firstObject]); + XCTAssertEqualObjects(fetchedChannels[channels.lastObject], states[channelGroups.lastObject]); + XCTAssertNotEqualObjects(fetchedChannels[channels.firstObject], + fetchedChannels[channels.lastObject]); + + handler(); + }); + }]; + + [self removeChannelGroup:channelGroups.firstObject usingClient:nil]; + [self removeChannelGroup:channelGroups.lastObject usingClient:nil]; +} + +- (void)testItShouldNotSubscribeToChannelGroupAndReceiveAccessDeniedEventWhenPAMKeysUsed { + NSString *channelGroup = [self channelGroupWithName:@"test-channel-group1"]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addStatusHandlerForClient:self.client + withBlock:^(PubNub *client, PNSubscribeStatus *status, BOOL *remove) { + + if (status.operation == PNSubscribeOperation && status.category == PNAccessDeniedCategory) { + XCTAssertTrue(status.willAutomaticallyRetry); + [status cancelAutomaticRetry]; + + *remove = YES; + + handler(); + } + }]; + + [self.client subscribeToChannelGroups:@[channelGroup] withPresence:NO]; + }]; +} + +- (void)testItShouldNotSubscribeToChannelGroupAndRetryWhenReceiveAccessDeniedEvent { + NSString *channelGroup = [self channelGroupWithName:@"test-channel-group1"]; + __block NSUInteger retriedCount = 0; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addStatusHandlerForClient:self.client + withBlock:^(PubNub *client, PNSubscribeStatus *status, BOOL *remove) { + + if (status.operation == PNSubscribeOperation && status.category == PNAccessDeniedCategory) { + XCTAssertTrue(status.willAutomaticallyRetry); + + if (retriedCount == 1) { + [status cancelAutomaticRetry]; + *remove = YES; + handler(); + } else { + retriedCount++; + } + } + }]; + + [self.client subscribeToChannelGroups:@[channelGroup] withPresence:NO]; + }]; +} + + +#pragma mark - Tests :: Builder pattern-based subscribe + +- (void)testItShouldSubscribeToChannelAndGroupUsingBuilderPatternInterface { + NSString *channelGroup = [self channelGroupWithName:@"test-channel-group1"]; + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSString *channel = [self channelWithName:@"test-channel3"]; + NSSet *subscriptionChannelGroupsSet = [NSSet setWithArray:@[channelGroup]]; + NSSet *subscriptionChannelsSet = [NSSet setWithArray:@[channel]]; + + + [self addChannels:channels toChannelGroup:channelGroup usingClient:nil]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addStatusHandlerForClient:self.client + withBlock:^(PubNub *client, PNSubscribeStatus *status, BOOL *remove) { + + if (status.operation == PNSubscribeOperation && status.category == PNConnectedCategory) { + NSSet *subscribedChannelGroupsSet = [NSSet setWithArray:status.subscribedChannelGroups]; + NSSet *subscribedChannelsSet = [NSSet setWithArray:status.subscribedChannels]; + XCTAssertTrue([subscribedChannelGroupsSet isEqualToSet:subscriptionChannelGroupsSet]); + XCTAssertTrue([subscribedChannelsSet isEqualToSet:subscriptionChannelsSet]); + XCTAssertEqual([@0 compare:status.currentTimetoken], NSOrderedAscending); + *remove = YES; + + handler(); + } + }]; + + self.client.subscribe() + .channels(@[channel]) + .channelGroups(@[channelGroup]) + .withPresence(NO) + .perform(); + }]; + + [self removeChannelGroup:channelGroup usingClient:nil]; +} + +- (void)testItShouldSubscribeToPresenceChannelUsingBuilderPatternInterface { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + + + [self subscribeClient:client2 toChannels:channels withPresence:NO]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToNotCompleteIn:self.falseTestCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addPresenceHandlerForClient:client2 + withBlock:^(PubNub *client, PNPresenceEventResult *event, BOOL *remove) { + + if ([event.data.presenceEvent isEqualToString:@"join"] && + [event.data.presence.uuid isEqualToString:client1.currentConfiguration.uuid]) { + *remove = YES; + + handler(); + } + }]; + + [client1 subscribeToChannels:@[channels.firstObject] withPresence:NO]; + }]; + + + client2.subscribe().presenceChannels(@[channels.lastObject]).perform(); + [self waitTask:@"waitForSubscribeOnPresence" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + XCTAssertTrue([client2 isSubscribedOn:[channels.lastObject stringByAppendingString:@"-pnpres"]]); + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addPresenceHandlerForClient:client2 + withBlock:^(PubNub *client, PNPresenceEventResult *event, BOOL *remove) { + + if ([event.data.presenceEvent isEqualToString:@"join"] && + [event.data.presence.uuid isEqualToString:client1.currentConfiguration.uuid]) { + *remove = YES; + + handler(); + } + }]; + + [client1 subscribeToChannels:@[channels.lastObject] withPresence:NO]; + }]; +} + + +#pragma mark - Tests :: Unsubscribe from channel + +- (void)testItShouldUnsubscribeFromSingleChannelAndReceiveDisconnectedEvent { + NSString *channel = [self channelWithName:@"test-channel1"]; + + + [self subscribeClient:self.client toChannels:@[channel] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addStatusHandlerForClient:self.client + withBlock:^(PubNub *client, PNSubscribeStatus *status, BOOL *remove) { + + if (status.operation == PNUnsubscribeOperation && status.category == PNDisconnectedCategory) { + XCTAssertEqual([status.subscribedChannels indexOfObject:channel], NSNotFound); + XCTAssertEqual([@0 compare:status.currentTimetoken], NSOrderedSame); + *remove = YES; + } + + handler(); + }]; + + [self.client unsubscribeFromChannels:@[channel] withPresence:NO]; + }]; +} + +- (void)testItShouldUnsubscribeFromSingleChannelAndTriggerOfflineEvent { + NSString *channel = [self channelWithName:@"test-channel1"]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + + + [self subscribeClient:client1 toChannels:@[channel] withPresence:NO]; + [self subscribeClient:client2 toChannels:@[channel] withPresence:YES]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addPresenceHandlerForClient:client2 + withBlock:^(PubNub *client, PNPresenceEventResult *event, BOOL *remove) { + + if ([event.data.presenceEvent isEqualToString:@"leave"] && + [event.data.presence.uuid isEqualToString:client1.currentConfiguration.uuid]) { + + XCTAssertEqual([@0 compare:event.data.presence.timetoken], NSOrderedAscending); + *remove = YES; + + handler(); + } + }]; + + [client1 unsubscribeFromChannels:@[channel] withPresence:NO]; + }]; +} + +- (void)testItShouldUnsubscribeFromMultipleChannelsAndReceiveDisconnectedEvent { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSSet *subscriptionChannelsSet = [NSSet setWithArray:channels]; + + + [self subscribeClient:self.client toChannels:channels withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addStatusHandlerForClient:self.client + withBlock:^(PubNub *client, PNSubscribeStatus *status, BOOL *remove) { + + if (status.operation == PNUnsubscribeOperation && status.category == PNDisconnectedCategory) { + NSSet *subscribedChannelsSet = [NSSet setWithArray:status.subscribedChannels]; + XCTAssertFalse([subscribedChannelsSet isEqualToSet:subscriptionChannelsSet]); + XCTAssertEqual([@0 compare:status.currentTimetoken], NSOrderedSame); + *remove = YES; + + handler(); + } + }]; + + [self.client unsubscribeFromChannels:channels withPresence:NO]; + }]; +} + +- (void)testItShouldUnsubscribeFromMultipleChannelsAndTriggerOfflineEvent { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + __block NSUInteger reportedOfflineCount = 0; + + + [self subscribeClient:client1 toChannels:channels withPresence:NO]; + [self subscribeClient:client2 toChannels:channels withPresence:YES]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addPresenceHandlerForClient:client2 + withBlock:^(PubNub *client, PNPresenceEventResult *event, BOOL *remove) { + + if ([event.data.presenceEvent isEqualToString:@"leave"] && + [event.data.presence.uuid isEqualToString:client1.currentConfiguration.uuid]) { + + reportedOfflineCount++; + } + + if (reportedOfflineCount == channels.count) { + *remove = YES; + handler(); + } + }]; + + [client1 unsubscribeFromChannels:channels withPresence:NO]; + }]; +} + +- (void)testItShouldUnsubscribeFromoMultipleChannelAndNotTriggerOfflineEventWhenUnsubscribedFromPresenceChannelSeparatelly { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + + + [self subscribeClient:client1 toChannels:channels withPresence:NO]; + [self subscribeClient:client2 toChannels:channels withPresence:YES]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addPresenceHandlerForClient:client2 + withBlock:^(PubNub *client, PNPresenceEventResult *event, BOOL *remove) { + + if ([event.data.presenceEvent isEqualToString:@"leave"] && + [event.data.presence.uuid isEqualToString:client1.currentConfiguration.uuid]) { + *remove = YES; + + handler(); + } + }]; + + [client1 unsubscribeFromChannels:@[channels.firstObject] withPresence:NO]; + }]; + + [client2 unsubscribeFromPresenceChannels:@[channels.lastObject]]; + [self waitTask:@"waitForUnsubscribeFromPresence" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + XCTAssertFalse([client2 isSubscribedOn:[channels.lastObject stringByAppendingString:@"-pnpres"]]); + + [self waitToNotCompleteIn:self.falseTestCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addPresenceHandlerForClient:client2 + withBlock:^(PubNub *client, PNPresenceEventResult *event, BOOL *remove) { + + if ([event.data.presenceEvent isEqualToString:@"leave"] && + [event.data.presence.uuid isEqualToString:client1.currentConfiguration.uuid]) { + *remove = YES; + + handler(); + } + }]; + + [client1 unsubscribeFromChannels:@[channels.lastObject] withPresence:NO]; + }]; +} + + +#pragma mark - Tests :: Unsubscribe from channel group + +- (void)testItShouldUnsubscribeFromSingleChannelGroupAndReceiveDisconnectedEvent { + NSString *channelGroup = [self channelGroupWithName:@"test-channel-group1"]; + NSString *channel = [self channelWithName:@"test-channel1"]; + + + [self addChannels:@[channel] toChannelGroup:channelGroup usingClient:nil]; + [self subscribeClient:self.client toChannelGroups:@[channelGroup] withPresence:NO]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addStatusHandlerForClient:self.client + withBlock:^(PubNub *client, PNSubscribeStatus *status, BOOL *remove) { + + if (status.operation == PNUnsubscribeOperation && status.category == PNDisconnectedCategory) { + XCTAssertEqual([status.subscribedChannelGroups indexOfObject:channelGroup], NSNotFound); + XCTAssertEqual([@0 compare:status.currentTimetoken], NSOrderedSame); + *remove = YES; + } + + handler(); + }]; + + [self.client unsubscribeFromChannelGroups:@[channelGroup] withPresence:NO]; + }]; + + [self removeChannelGroup:channelGroup usingClient:nil]; +} + +- (void)testItShouldUnsubscribeFromSingleChannelGroupAndTriggerOfflineEvent { + NSString *channelGroup = [self channelGroupWithName:@"test-channel-group1"]; + NSString *channel = [self channelWithName:@"test-channel1"]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + + + [self addChannels:@[channel] toChannelGroup:channelGroup usingClient:client1]; + [self subscribeClient:client1 toChannelGroups:@[channelGroup] withPresence:NO]; + [self subscribeClient:client2 toChannelGroups:@[channelGroup] withPresence:YES]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addPresenceHandlerForClient:client2 + withBlock:^(PubNub *client, PNPresenceEventResult *event, BOOL *remove) { + + if ([event.data.presenceEvent isEqualToString:@"leave"] && + [event.data.presence.uuid isEqualToString:client1.currentConfiguration.uuid]) { + + XCTAssertEqual([@0 compare:event.data.presence.timetoken], NSOrderedAscending); + *remove = YES; + + handler(); + } + }]; + + [client1 unsubscribeFromChannelGroups:@[channelGroup] withPresence:NO]; + }]; + + [self removeChannelGroup:channelGroup usingClient:client1]; +} + +- (void)testItShouldUnsubscribeFromMultipleChannelGroupsAndReceiveDisconnectedEvent { + NSArray *channelGroups = [self channelGroupsWithNames:@[@"test-channel-group1", @"test-channel-group2"]]; + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSSet *subscriptionChannelGroupsSet = [NSSet setWithArray:channelGroups]; + + + [self addChannels:@[channels.firstObject] toChannelGroup:channelGroups.firstObject usingClient:nil]; + [self addChannels:@[channels.lastObject] toChannelGroup:channelGroups.lastObject usingClient:nil]; + [self subscribeClient:self.client toChannelGroups:channelGroups withPresence:NO]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addStatusHandlerForClient:self.client + withBlock:^(PubNub *client, PNSubscribeStatus *status, BOOL *remove) { + + if (status.operation == PNUnsubscribeOperation && status.category == PNDisconnectedCategory) { + NSSet *subscribedChannelGroupsSet = [NSSet setWithArray:status.subscribedChannelGroups]; + XCTAssertFalse([subscribedChannelGroupsSet isEqualToSet:subscriptionChannelGroupsSet]); + XCTAssertEqual([@0 compare:status.currentTimetoken], NSOrderedSame); + *remove = YES; + + handler(); + } + }]; + + [self.client unsubscribeFromChannelGroups:channelGroups withPresence:NO]; + }]; + + [self removeChannelGroup:channels.firstObject usingClient:nil]; + [self removeChannelGroup:channels.lastObject usingClient:nil]; +} + +- (void)testItShouldUnsubscribeFromMultipleChannelGroupsAndTriggerOfflineEvent { + NSArray *channelGroups = [self channelGroupsWithNames:@[@"test-channel-group1", @"test-channel-group2"]]; + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + __block NSUInteger reportedOfflineCount = 0; + + + [self addChannels:@[channels.firstObject] toChannelGroup:channelGroups.firstObject usingClient:client1]; + [self addChannels:@[channels.lastObject] toChannelGroup:channelGroups.lastObject usingClient:client1]; + [self subscribeClient:client1 toChannelGroups:channelGroups withPresence:NO]; + [self subscribeClient:client2 toChannelGroups:channelGroups withPresence:YES]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addPresenceHandlerForClient:client2 + withBlock:^(PubNub *client, PNPresenceEventResult *event, BOOL *remove) { + + if ([event.data.presenceEvent isEqualToString:@"leave"] && + [event.data.presence.uuid isEqualToString:client1.currentConfiguration.uuid]) { + + reportedOfflineCount++; + } + + if (reportedOfflineCount == channels.count) { + *remove = YES; + handler(); + } + }]; + + [client1 unsubscribeFromChannelGroups:channelGroups withPresence:NO]; + }]; + + [self removeChannelGroup:channels.firstObject usingClient:client1]; + [self removeChannelGroup:channels.lastObject usingClient:client1]; +} + + +#pragma mark - Tests :: Builder pattern-based unsubscribe + +- (void)testItShouldUnsubscribeFromChannelAndGroupUsingBuilderPatternInterface { + NSString *channelGroup = [self channelGroupWithName:@"test-channel-group1"]; + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSString *channel = [self channelWithName:@"test-channel3"]; + + + [self addChannels:channels toChannelGroup:channelGroup usingClient:nil]; + [self subscribeClient:self.client toChannelGroups:@[channelGroup] withPresence:NO]; + [self subscribeClient:self.client toChannels:@[channel] withPresence:NO]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addStatusHandlerForClient:self.client + withBlock:^(PubNub *client, PNSubscribeStatus *status, BOOL *remove) { + + if (status.operation == PNUnsubscribeOperation && status.category == PNDisconnectedCategory) { + XCTAssertEqual(status.subscribedChannelGroups.count, 0); + XCTAssertEqual(status.subscribedChannels.count, 0); + *remove = YES; + + handler(); + } + }]; + + self.client.unsubscribe() + .channels(@[channel]) + .channelGroups(@[channelGroup]) + .withPresence(YES) + .perform(); + }]; + + [self removeChannelGroup:channelGroup usingClient:nil]; +} + +- (void)testItShouldUnsubscribeFromPresenceChannelUsingBuilderPatternInterface { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + + + [self subscribeClient:client1 toChannels:channels withPresence:NO]; + [self subscribeClient:client2 toChannels:channels withPresence:YES]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addPresenceHandlerForClient:client2 + withBlock:^(PubNub *client, PNPresenceEventResult *event, BOOL *remove) { + + if ([event.data.presenceEvent isEqualToString:@"leave"] && + [event.data.presence.uuid isEqualToString:client1.currentConfiguration.uuid]) { + *remove = YES; + + handler(); + } + }]; + + [client1 unsubscribeFromChannels:@[channels.firstObject] withPresence:NO]; + }]; + + client2.unsubscribe().presenceChannels(@[channels.lastObject]).perform(); + [self waitTask:@"waitForUnsubscribeFromPresence" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + XCTAssertFalse([client2 isSubscribedOn:[channels.lastObject stringByAppendingString:@"-pnpres"]]); + + [self waitToNotCompleteIn:self.falseTestCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addPresenceHandlerForClient:client2 + withBlock:^(PubNub *client, PNPresenceEventResult *event, BOOL *remove) { + + if ([event.data.presenceEvent isEqualToString:@"leave"] && + [event.data.presence.uuid isEqualToString:client1.currentConfiguration.uuid]) { + *remove = YES; + + handler(); + } + }]; + + [client1 unsubscribeFromChannels:@[channels.lastObject] withPresence:NO]; + }]; +} + + +#pragma mark - Tests :: Unsubscribe from all + +- (void)testItShouldUnsubscribeFromAllChannelsAndGroupsAndReceiveDisconnectedEvent { + NSString *channelGroup = [self channelGroupWithName:@"test-channel-group1"]; + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSString *channel = [self channelWithName:@"test-channel3"]; + + + [self addChannels:channels toChannelGroup:channelGroup usingClient:nil]; + [self subscribeClient:self.client toChannelGroups:@[channelGroup] withPresence:NO]; + [self subscribeClient:self.client toChannels:@[channel] withPresence:NO]; + [self waitTask:@"waitForUnsubscribeFromPresence" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addStatusHandlerForClient:self.client + withBlock:^(PubNub *client, PNSubscribeStatus *status, BOOL *remove) { + + if (status.operation == PNUnsubscribeOperation && status.category == PNDisconnectedCategory) { + XCTAssertEqual([status.subscribedChannelGroups indexOfObject:channelGroup], NSNotFound); + XCTAssertEqual([status.subscribedChannels indexOfObject:channel], NSNotFound); + XCTAssertEqual([@0 compare:status.currentTimetoken], NSOrderedSame); + *remove = YES; + } + + handler(); + }]; + + [self.client unsubscribeFromAll]; + }]; + + [self removeChannelGroup:channelGroup usingClient:nil]; +} + + +#pragma mark - Tests :: Builder pattern-based unsubscribe from all + +- (void)testItShouldUnsubscribeFromAllChannelsAndGroupsUsingBuilderPatternInterface { + NSString *channelGroup = [self channelGroupWithName:@"test-channel-group1"]; + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSString *channel = [self channelWithName:@"test-channel3"]; + + + [self addChannels:channels toChannelGroup:channelGroup usingClient:nil]; + [self subscribeClient:self.client toChannelGroups:@[channelGroup] withPresence:NO]; + [self subscribeClient:self.client toChannels:@[channel] withPresence:NO]; + [self waitTask:@"waitForUnsubscribeFromPresence" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addStatusHandlerForClient:self.client + withBlock:^(PubNub *client, PNSubscribeStatus *status, BOOL *remove) { + + if (status.operation == PNUnsubscribeOperation && status.category == PNDisconnectedCategory) { + XCTAssertEqual([status.subscribedChannelGroups indexOfObject:channelGroup], NSNotFound); + XCTAssertEqual([status.subscribedChannels indexOfObject:channel], NSNotFound); + XCTAssertEqual([@0 compare:status.currentTimetoken], NSOrderedSame); + *remove = YES; + } + + handler(); + }]; + + self.client.unsubscribe().perform(); + }]; + + [self removeChannelGroup:channelGroup usingClient:nil]; +} + + +#pragma mark - Tests :: Messages + +- (void)testItShouldSubscribeToSingleChannelAndReceiveMessageWhenPublished { + NSDictionary *publishedMessage = @{ @"test-message": [self randomizedValuesWithValues:@[@"message"]] }; + NSString *channel = [self channelWithName:@"test-channel1"]; + + + [self subscribeClient:self.client toChannels:@[channel] withPresence:NO]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMessageHandlerForClient:self.client + withBlock:^(PubNub *client, PNMessageResult *message, BOOL *remove) { + + if ([message.data.publisher isEqualToString:self.client.currentConfiguration.uuid]) { + XCTAssertEqualObjects(message.data.message, publishedMessage); + XCTAssertEqualObjects(message.data.subscription, channel); + XCTAssertEqualObjects(message.data.channel, channel); + *remove = YES; + + handler(); + } + }]; + + [self.client publish:publishedMessage toChannel:channel withCompletion:^(PNPublishStatus *status) { + XCTAssertFalse(status.isError); + }]; + }]; +} + +- (void)testItShouldSubscribeToSingleChannelAndReceiveDecryptedMessageWhenPublisherAndReceivedHasSameCipherKey { + NSDictionary *publishedMessage = @{ @"test-message": @"message for encryption" }; + NSString *channel = [self channelWithName:@"test-channel1"]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + XCTAssertNotNil(client1.currentConfiguration.cipherKey); + XCTAssertNotNil(client2.currentConfiguration.cipherKey); + XCTAssertEqualObjects(client1.currentConfiguration.cipherKey, client2.currentConfiguration.cipherKey); + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMessageHandlerForClient:client2 + withBlock:^(PubNub *client, PNMessageResult *message, BOOL *remove) { + + if ([message.data.publisher isEqualToString:client1.currentConfiguration.uuid]) { + XCTAssertEqualObjects(message.data.message, publishedMessage); + XCTAssertEqualObjects(message.data.subscription, channel); + XCTAssertEqualObjects(message.data.channel, channel); + *remove = YES; + + handler(); + } + }]; + + [client1 publish:publishedMessage toChannel:channel withCompletion:^(PNPublishStatus *status) { + XCTAssertFalse(status.isError); + }]; + }]; +} + +- (void)testItShouldSubscribeToSingleChannelAndReceiveNotDecryptedMessageWhenPublishedReceivedHasDifferentCipherKey { + NSDictionary *publishedMessage = @{ @"test-message": @"message for encryption" }; + NSData *publishedMessageData = [NSJSONSerialization dataWithJSONObject:publishedMessage options:(NSJSONWritingOptions)0 error:nil]; + NSString *channel = [self channelWithName:@"test-channel1"]; + PubNub *client1 = [self createPubNubForUser:@"serhii"]; + PubNub *client2 = [self createPubNubForUser:@"david"]; + NSString *encryptedMessage = [PNAES encrypt:publishedMessageData withKey:client1.currentConfiguration.cipherKey]; + + [self subscribeClient:client2 toChannels:@[channel] withPresence:NO]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + XCTAssertNotNil(client1.currentConfiguration.cipherKey); + XCTAssertNotNil(client2.currentConfiguration.cipherKey); + XCTAssertNotEqualObjects(client1.currentConfiguration.cipherKey, client2.currentConfiguration.cipherKey); + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addStatusHandlerForClient:client2 withBlock:^(PubNub *client, PNSubscribeStatus *status, BOOL *remove) { + if (status.operation == PNSubscribeOperation && status.category == PNDecryptionErrorCategory) { + PNMessageData *messageData = status.associatedObject; + + XCTAssertEqualObjects(messageData.message, encryptedMessage); + XCTAssertEqualObjects(messageData.subscription, channel); + XCTAssertEqualObjects(messageData.channel, channel); + *remove = YES; + + handler(); + } + }]; + + [client1 publish:publishedMessage toChannel:channel withCompletion:^(PNPublishStatus *status) { + XCTAssertFalse(status.isError); + }]; + }]; +} + +- (void)testItShouldSubscribeToMultipleChannelsAndReceiveMessageWhenPublished { + NSDictionary *publishedMessage = @{ @"test-message": [self randomizedValuesWithValues:@[@"message"]] }; + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + + + [self subscribeClient:self.client toChannels:channels withPresence:NO]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMessageHandlerForClient:self.client + withBlock:^(PubNub *client, PNMessageResult *message, BOOL *remove) { + + if ([message.data.publisher isEqualToString:self.client.currentConfiguration.uuid]) { + XCTAssertEqualObjects(message.data.message, publishedMessage); + XCTAssertEqualObjects(message.data.subscription, channels.lastObject); + XCTAssertEqualObjects(message.data.channel, channels.lastObject); + *remove = YES; + + handler(); + } + }]; + + [self.client publish:publishedMessage toChannel:channels.lastObject + withCompletion:^(PNPublishStatus *status) { + + XCTAssertFalse(status.isError); + }]; + }]; +} + +- (void)testItShouldSubscribeToSingleChannelWithCatchUpOnSecondChannelWhenSetToKeepTimetokenOnChannelsListChange { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSDictionary *publishedMessage = @{ @"test-message": [self randomizedValuesWithValues:@[@"message"]] }; + __block NSNumber *lastTimetoken = nil; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addStatusHandlerForClient:self.client + withBlock:^(PubNub *client, PNSubscribeStatus *status, BOOL *remove) { + + if (status.operation == PNSubscribeOperation && status.category == PNConnectedCategory) { + lastTimetoken = status.currentTimetoken; + *remove = YES; + + handler(); + } + }]; + + [self.client subscribeToChannels:@[channels.firstObject] withPresence:NO]; + }]; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client publish:publishedMessage toChannel:channels.lastObject + withCompletion:^(PNPublishStatus *status) { + + XCTAssertFalse(status.isError); + handler(); + }]; + }]; + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 5.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMessageHandlerForClient:self.client + withBlock:^(PubNub *client, PNMessageResult *message, BOOL *remove) { + + NSURLRequest *request = [message valueForKey:@"clientRequest"]; + + if ([message.data.publisher isEqualToString:self.client.currentConfiguration.uuid]) { + XCTAssertTrue([request.URL.absoluteString pnt_includesString:lastTimetoken.stringValue]); + XCTAssertEqualObjects(message.data.message, publishedMessage); + *remove = YES; + + handler(); + } + }]; + + [self.client subscribeToChannels:@[channels.lastObject] withPresence:NO]; + }]; +} + +- (void)testItShouldSubscribeToSingleChannelWithCatchUpOnSecondChannelWhenSubscribedWithTimetoken { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSDictionary *publishedMessage = @{ @"test-message": [self randomizedValuesWithValues:@[@"message"]] }; + __block NSNumber *lastTimetoken = nil; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addStatusHandlerForClient:self.client + withBlock:^(PubNub *client, PNSubscribeStatus *status, BOOL *remove) { + + if (status.operation == PNSubscribeOperation && status.category == PNConnectedCategory) { + lastTimetoken = status.currentTimetoken; + *remove = YES; + + handler(); + } + }]; + + [self.client subscribeToChannels:@[channels.firstObject] withPresence:NO]; + }]; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client publish:publishedMessage toChannel:channels.lastObject + withCompletion:^(PNPublishStatus *status) { + + XCTAssertFalse(status.isError); + handler(); + }]; + }]; + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 5.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMessageHandlerForClient:self.client + withBlock:^(PubNub *client, PNMessageResult *message, BOOL *remove) { + + if ([message.data.publisher isEqualToString:self.client.currentConfiguration.uuid]) { + XCTAssertEqualObjects(message.data.message, publishedMessage); + *remove = YES; + + handler(); + } + }]; + + NSNumber *timetoken = @(lastTimetoken.unsignedLongLongValue - 1); + [self.client subscribeToChannels:@[channels.lastObject] withPresence:NO usingTimeToken:timetoken]; + }]; +} + +- (void)testItShouldSubscribeToSingleChannelWithOutCatchUpOnSecondChannelWhenSetToNotKeepTimetokenOnChannelsListChange { + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSDictionary *publishedMessage = @{ @"test-message": [self randomizedValuesWithValues:@[@"message"]] }; + __block NSNumber *lastTimetoken = nil; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addStatusHandlerForClient:self.client + withBlock:^(PubNub *client, PNSubscribeStatus *status, BOOL *remove) { + + if (status.operation == PNSubscribeOperation && status.category == PNConnectedCategory) { + lastTimetoken = status.currentTimetoken; + *remove = YES; + + handler(); + } + }]; + + [self.client subscribeToChannels:@[channels.firstObject] withPresence:NO]; + }]; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client publish:publishedMessage toChannel:channels.lastObject + withCompletion:^(PNPublishStatus *status) { + + XCTAssertFalse(status.isError); + handler(); + }]; + }]; + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 5.f : 0.f)]; + + + [self waitToNotCompleteIn:self.falseTestCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMessageHandlerForClient:self.client + withBlock:^(PubNub *client, PNMessageResult *message, BOOL *remove) { + NSURLRequest *request = [message valueForKey:@"clientRequest"]; + + if ([message.data.publisher isEqualToString:self.client.currentConfiguration.uuid]) { + XCTAssertTrue([request.URL.absoluteString pnt_includesString:lastTimetoken.stringValue]); + XCTAssertEqualObjects(message.data.message, publishedMessage); + *remove = YES; + + handler(); + } + }]; + + [self.client subscribeToChannels:@[channels.lastObject] withPresence:NO]; + }]; +} + +- (void)testItShouldSubscribeToSingleChannelGroupAndReceiveMessageWhenPublished { + NSDictionary *publishedMessage = @{ @"test-message": [self randomizedValuesWithValues:@[@"message"]] }; + NSString *channelGroup = [self channelGroupWithName:@"test-channel-group1"]; + NSString *channel = [self channelWithName:@"test-channel1"]; + + + [self addChannels:@[channel] toChannelGroup:channelGroup usingClient:nil]; + [self subscribeClient:self.client toChannelGroups:@[channelGroup] withPresence:NO]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMessageHandlerForClient:self.client + withBlock:^(PubNub *client, PNMessageResult *message, BOOL *remove) { + + if ([message.data.publisher isEqualToString:self.client.currentConfiguration.uuid]) { + XCTAssertEqualObjects(message.data.message, publishedMessage); + XCTAssertEqualObjects(message.data.subscription, channelGroup); + XCTAssertEqualObjects(message.data.channel, channel); + *remove = YES; + + handler(); + } + }]; + + [self.client publish:publishedMessage toChannel:channel withCompletion:^(PNPublishStatus *status) { + XCTAssertFalse(status.isError); + }]; + }]; + + [self removeChannelGroup:channelGroup usingClient:nil]; +} + +- (void)testItShouldSubscribeToMultipleChannelGroupsAndReceiveMessageWhenPublished { + NSArray *channelGroups = [self channelGroupsWithNames:@[@"test-channel-group1", @"test-channel-group2"]]; + NSDictionary *publishedMessage = @{ @"test-message": [self randomizedValuesWithValues:@[@"message"]] }; + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + + + [self addChannels:@[channels.firstObject] toChannelGroup:channelGroups.firstObject usingClient:nil]; + [self addChannels:@[channels.lastObject] toChannelGroup:channelGroups.lastObject usingClient:nil]; + [self subscribeClient:self.client toChannelGroups:channelGroups withPresence:NO]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMessageHandlerForClient:self.client + withBlock:^(PubNub *client, PNMessageResult *message, BOOL *remove) { + + if ([message.data.publisher isEqualToString:self.client.currentConfiguration.uuid]) { + XCTAssertEqualObjects(message.data.message, publishedMessage); + XCTAssertEqualObjects(message.data.subscription, channelGroups.firstObject); + XCTAssertEqualObjects(message.data.channel, channels.firstObject); + *remove = YES; + + handler(); + } + }]; + + [self.client publish:publishedMessage toChannel:channels.firstObject + withCompletion:^(PNPublishStatus *status) { + + XCTAssertFalse(status.isError); + }]; + }]; + + [self removeChannelGroup:channelGroups.firstObject usingClient:nil]; + [self removeChannelGroup:channelGroups.lastObject usingClient:nil]; +} + +- (void)testItShouldSubscribeToSingleChannelGroupWithCatchUpOnSecondChannelGroupWhenSetToKeepTimetokenChannelGroupsListChange { + NSArray *channelGroups = [self channelGroupsWithNames:@[@"test-channel-group1", @"test-channel-group2"]]; + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSDictionary *publishedMessage = @{ @"test-message": [self randomizedValuesWithValues:@[@"message"]] }; + __block NSNumber *lastTimetoken = nil; + + + [self addChannels:@[channels.firstObject] toChannelGroup:channelGroups.firstObject usingClient:nil]; + [self addChannels:@[channels.lastObject] toChannelGroup:channelGroups.lastObject usingClient:nil]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addStatusHandlerForClient:self.client + withBlock:^(PubNub *client, PNSubscribeStatus *status, BOOL *remove) { + + if (status.operation == PNSubscribeOperation && status.category == PNConnectedCategory) { + lastTimetoken = status.currentTimetoken; + *remove = YES; + + handler(); + } + }]; + + [self.client subscribeToChannelGroups:@[channelGroups.firstObject] withPresence:NO]; + }]; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client publish:publishedMessage toChannel:channels.lastObject + withCompletion:^(PNPublishStatus *status) { + + XCTAssertFalse(status.isError); + handler(); + }]; + }]; + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 5.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMessageHandlerForClient:self.client + withBlock:^(PubNub *client, PNMessageResult *message, BOOL *remove) { + + NSURLRequest *request = [message valueForKey:@"clientRequest"]; + + if ([message.data.publisher isEqualToString:self.client.currentConfiguration.uuid]) { + XCTAssertTrue([request.URL.absoluteString pnt_includesString:lastTimetoken.stringValue]); + XCTAssertEqualObjects(message.data.message, publishedMessage); + *remove = YES; + + handler(); + } + }]; + + [self.client subscribeToChannelGroups:@[channelGroups.lastObject] withPresence:NO]; + }]; + + [self removeChannelGroup:channelGroups.firstObject usingClient:nil]; + [self removeChannelGroup:channelGroups.lastObject usingClient:nil]; +} + +- (void)testItShouldSubscribeToSingleChannelGroupWithOutCatchUpOnSecondChannelGrpoupWhenSetToNotKeepTimetokenOnChannelGroupsListChange { + NSArray *channelGroups = [self channelGroupsWithNames:@[@"test-channel-group1", @"test-channel-group2"]]; + NSArray *channels = [self channelsWithNames:@[@"test-channel1", @"test-channel2"]]; + NSDictionary *publishedMessage = @{ @"test-message": [self randomizedValuesWithValues:@[@"message"]] }; + __block NSNumber *lastTimetoken = nil; + + + [self addChannels:@[channels.firstObject] toChannelGroup:channelGroups.firstObject usingClient:nil]; + [self addChannels:@[channels.lastObject] toChannelGroup:channelGroups.lastObject usingClient:nil]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addStatusHandlerForClient:self.client + withBlock:^(PubNub *client, PNSubscribeStatus *status, BOOL *remove) { + + if (status.operation == PNSubscribeOperation && status.category == PNConnectedCategory) { + lastTimetoken = status.currentTimetoken; + *remove = YES; + + handler(); + } + }]; + + [self.client subscribeToChannelGroups:@[channelGroups.firstObject] withPresence:NO]; + }]; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client publish:publishedMessage toChannel:channels.lastObject + withCompletion:^(PNPublishStatus *status) { + + XCTAssertFalse(status.isError); + handler(); + }]; + }]; + + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 5.f : 0.f)]; + + + [self waitToNotCompleteIn:self.falseTestCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMessageHandlerForClient:self.client + withBlock:^(PubNub *client, PNMessageResult *message, BOOL *remove) { + NSURLRequest *request = [message valueForKey:@"clientRequest"]; + + if ([message.data.publisher isEqualToString:self.client.currentConfiguration.uuid]) { + XCTAssertTrue([request.URL.absoluteString pnt_includesString:lastTimetoken.stringValue]); + XCTAssertEqualObjects(message.data.message, publishedMessage); + *remove = YES; + + handler(); + } + }]; + + [self.client subscribeToChannelGroups:@[channelGroups.lastObject] withPresence:NO]; + }]; + + [self removeChannelGroup:channelGroups.firstObject usingClient:nil]; + [self removeChannelGroup:channelGroups.lastObject usingClient:nil]; +} + + +#pragma mark - Tests :: Messages filter expression + +- (void)testItShouldSubscribeToSingleChannelAndReceiveMessageWhenFilterExpressionIsSetToExactMatch { + NSString *filterExpression = [NSString stringWithFormat:@"uuid == '%@'", self.client.currentConfiguration.uuid]; + NSDictionary *publishedMessage = @{ @"test-message": [self randomizedValuesWithValues:@[@"message"]] }; + NSDictionary *messageMetadata = @{ @"uuid": self.client.currentConfiguration.uuid }; + NSString *channel = [self channelWithName:@"test-channel1"]; + + + self.client.filterExpression = filterExpression; + [self subscribeClient:self.client toChannels:@[channel] withPresence:NO]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + XCTAssertEqualObjects(self.client.filterExpression, filterExpression); + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMessageHandlerForClient:self.client + withBlock:^(PubNub *client, PNMessageResult *message, BOOL *remove) { + + if ([message.data.publisher isEqualToString:self.client.currentConfiguration.uuid]) { + *remove = YES; + + handler(); + } + }]; + + [self.client publish:publishedMessage toChannel:channel withMetadata:messageMetadata + completion:^(PNPublishStatus *status) { + + XCTAssertFalse(status.isError); + }]; + }]; +} + +- (void)testItShouldSubscribeToSingleChannelAndReceiveMessageWhenFilterExpressionIsSetToCompound { + NSString *filterExpression = [NSString stringWithFormat:@"uuid == '%@' && (('admin','super-user') contains role) && age >= 32", + self.client.currentConfiguration.uuid]; + NSDictionary *publishedMessage = @{ @"test-message": [self randomizedValuesWithValues:@[@"message"]] }; + NSDictionary *messageMetadata = @{ + @"uuid": self.client.currentConfiguration.uuid, + @"role": @"super-user", + @"age": @32 + }; + NSString *channel = [self channelWithName:@"test-channel1"]; + + + self.client.filterExpression = filterExpression; + [self subscribeClient:self.client toChannels:@[channel] withPresence:NO]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + XCTAssertEqualObjects(self.client.filterExpression, filterExpression); + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMessageHandlerForClient:self.client + withBlock:^(PubNub *client, PNMessageResult *message, BOOL *remove) { + + if ([message.data.publisher isEqualToString:self.client.currentConfiguration.uuid]) { + *remove = YES; + + handler(); + } + }]; + + [self.client publish:publishedMessage toChannel:channel withMetadata:messageMetadata + completion:^(PNPublishStatus *status) { + + XCTAssertFalse(status.isError); + }]; + }]; +} + +- (void)testItShouldSubscribeToSingleChannelAndReceiveMessageWhenFilterExpressionIsSetToCompoundWithSubstringCheck { + NSString *filterExpression = [NSString stringWithFormat:@"uuid == '%@' && role contains 'adm' && age >= 32", + self.client.currentConfiguration.uuid]; + NSDictionary *publishedMessage = @{ @"test-message": [self randomizedValuesWithValues:@[@"message"]] }; + NSDictionary *messageMetadata = @{ + @"uuid": self.client.currentConfiguration.uuid, + @"role": @"admin", + @"age": @32 + }; + NSString *channel = [self channelWithName:@"test-channel1"]; + + + self.client.filterExpression = filterExpression; + [self subscribeClient:self.client toChannels:@[channel] withPresence:NO]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + XCTAssertEqualObjects(self.client.filterExpression, filterExpression); + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMessageHandlerForClient:self.client + withBlock:^(PubNub *client, PNMessageResult *message, BOOL *remove) { + + if ([message.data.publisher isEqualToString:self.client.currentConfiguration.uuid]) { + *remove = YES; + + handler(); + } + }]; + + [self.client publish:publishedMessage toChannel:channel withMetadata:messageMetadata + completion:^(PNPublishStatus *status) { + + XCTAssertFalse(status.isError); + }]; + }]; +} + +- (void)testItShouldSubscribeToSingleChannelAndReceiveMessageWhenFilterExpressionIsSetToCompoundWithLike { + NSString *filterExpression = [NSString stringWithFormat:@"uuid == '%@' && privileges like '*write' && age >= 32", + self.client.currentConfiguration.uuid]; + NSDictionary *publishedMessage = @{ @"test-message": [self randomizedValuesWithValues:@[@"message"]] }; + NSDictionary *messageMetadata = @{ + @"uuid": self.client.currentConfiguration.uuid, + @"privileges": @[@"write", @"read-write"], + @"age": @32 + }; + NSString *channel = [self channelWithName:@"test-channel1"]; + + + self.client.filterExpression = filterExpression; + [self subscribeClient:self.client toChannels:@[channel] withPresence:NO]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + XCTAssertEqualObjects(self.client.filterExpression, filterExpression); + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMessageHandlerForClient:self.client + withBlock:^(PubNub *client, PNMessageResult *message, BOOL *remove) { + + if ([message.data.publisher isEqualToString:self.client.currentConfiguration.uuid]) { + *remove = YES; + + handler(); + } + }]; + + [self.client publish:publishedMessage toChannel:channel withMetadata:messageMetadata + completion:^(PNPublishStatus *status) { + + XCTAssertFalse(status.isError); + }]; + }]; +} + +- (void)testItShouldSubscribeToSingleChannelAndNotReceiveMessageWhenFilterExpressionIsSetToExactMatch { + NSDictionary *publishedMessage = @{ @"test-message": [self randomizedValuesWithValues:@[@"message"]] }; + NSDictionary *messageMetadata = @{ @"uuid": self.client.currentConfiguration.uuid }; + NSString *channel = [self channelWithName:@"test-channel1"]; + NSString *filterExpression = @"uuid == 'bob'"; + + + self.client.filterExpression = filterExpression; + [self subscribeClient:self.client toChannels:@[channel] withPresence:NO]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + XCTAssertEqualObjects(self.client.filterExpression, filterExpression); + + [self waitToNotCompleteIn:self.falseTestCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMessageHandlerForClient:self.client + withBlock:^(PubNub *client, PNMessageResult *message, BOOL *remove) { + + if ([message.data.publisher isEqualToString:self.client.currentConfiguration.uuid]) { + *remove = YES; + + handler(); + } + }]; + + [self.client publish:publishedMessage toChannel:channel withMetadata:messageMetadata + completion:^(PNPublishStatus *status) { + + XCTAssertFalse(status.isError); + }]; + }]; +} + +- (void)testItShouldSubscribeToSingleChannelAndNotReceiveMessageWhenFilterExpressionIsSetToCompound { + NSString *filterExpression = [NSString stringWithFormat:@"uuid == '%@' && !admin && age >= 32", + self.client.currentConfiguration.uuid]; + NSDictionary *publishedMessage = @{ @"test-message": [self randomizedValuesWithValues:@[@"message"]] }; + NSDictionary *messageMetadata = @{ + @"uuid": self.client.currentConfiguration.uuid, + @"admin": @YES, + @"age": @33 + }; + NSString *channel = [self channelWithName:@"test-channel1"]; + + + self.client.filterExpression = filterExpression; + [self subscribeClient:self.client toChannels:@[channel] withPresence:NO]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + XCTAssertEqualObjects(self.client.filterExpression, filterExpression); + + [self waitToNotCompleteIn:self.falseTestCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMessageHandlerForClient:self.client + withBlock:^(PubNub *client, PNMessageResult *message, BOOL *remove) { + + if ([message.data.publisher isEqualToString:self.client.currentConfiguration.uuid]) { + *remove = YES; + + handler(); + } + }]; + + [self.client publish:publishedMessage toChannel:channel withMetadata:messageMetadata + completion:^(PNPublishStatus *status) { + + XCTAssertFalse(status.isError); + }]; + }]; +} + +- (void)testItShouldSubscribeToSingleChannelAndReceiveFilteredMessagesWhenFilterExpressionSetAfterSubscribe { + NSString *filterExpression = [NSString stringWithFormat:@"uuid == '%@' && !admin && age >= 32", + self.client.currentConfiguration.uuid]; + NSDictionary *publishedMessage = @{ @"test-message": [self randomizedValuesWithValues:@[@"message"]] }; + NSDictionary *messageMetadata = @{ + @"uuid": self.client.currentConfiguration.uuid, + @"admin": @YES, + @"age": @33 + }; + NSString *channel = [self channelWithName:@"test-channel1"]; + + + [self subscribeClient:self.client toChannels:@[channel] withPresence:NO]; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMessageHandlerForClient:self.client + withBlock:^(PubNub *client, PNMessageResult *message, BOOL *remove) { + + if ([message.data.publisher isEqualToString:self.client.currentConfiguration.uuid]) { + *remove = YES; + + handler(); + } + }]; + + [self.client publish:publishedMessage toChannel:channel withMetadata:messageMetadata + completion:^(PNPublishStatus *status) { + + XCTAssertFalse(status.isError); + }]; + }]; + + + self.client.filterExpression = filterExpression; + [self waitTask:@"waitForDistribution" completionFor:(YHVVCR.cassette.isNewCassette ? 3.f : 0.f)]; + + [self waitToNotCompleteIn:self.falseTestCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self addMessageHandlerForClient:self.client + withBlock:^(PubNub *client, PNMessageResult *message, BOOL *remove) { + + if ([message.data.publisher isEqualToString:self.client.currentConfiguration.uuid]) { + *remove = YES; + + handler(); + } + }]; + + [self.client publish:publishedMessage toChannel:channel withMetadata:messageMetadata + completion:^(PNPublishStatus *status) { + + XCTAssertFalse(status.isError); + }]; + }]; +} + +#pragma mark - + +#pragma clang diagnostic pop + +@end diff --git a/Tests/Tests/Integration/PNTimeIntegrationTest.m b/Tests/Tests/Integration/PNTimeIntegrationTest.m new file mode 100644 index 000000000..8f504dde9 --- /dev/null +++ b/Tests/Tests/Integration/PNTimeIntegrationTest.m @@ -0,0 +1,109 @@ +/** + * @author Serhii Mamontov + * @copyright © 2010-2020 PubNub, Inc. + */ +#import "PNRecordableTestCase.h" + + +NS_ASSUME_NONNULL_BEGIN + +#pragma mark Interface declaration + +@interface PNTimeIntegrationTest : PNRecordableTestCase + + +#pragma mark - + + +@end + +NS_ASSUME_NONNULL_END + + +#pragma mark - Tests + +@implementation PNTimeIntegrationTest + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Warc-retain-cycles" + + +#pragma mark - Setup / Tear down + +- (void)setUp { + [super setUp]; + + + [self completePubNubConfiguration:self.client]; +} + + +#pragma mark - Tests :: Fetch PubNub time + +- (void)testItShouldFetchPubNubTimeAndReceiveResultWithExpectedOperation { + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client timeWithCompletion:^(PNTimeResult *result, PNErrorStatus *status) { + XCTAssertNil(status); + XCTAssertNotNil(result.data.timetoken); + XCTAssertEqual([@0 compare:result.data.timetoken], NSOrderedAscending); + XCTAssertEqual(result.operation, PNTimeOperation); + + handler(); + }]; + }]; +} + +/** + * @brief To test 'retry' functionality + * 'ItShouldFetchPubNubTimeAfterRetry.json' should be modified after cassette recording. Find first mention of time API and copy paste + * 4 entries which belong to it. For new entries change 'id' field to be different from source. For + * original response entry change status code to 404. + */ +- (void)testItShouldFetchPubNubTimeAfterRetry { + if ([self shouldSkipTestWithManuallyModifiedMockedResponse]) { + NSLog(@"'%@' requires special conditions (modified mocked response). Skip", self.name); + return; + } + __block BOOL retried = NO; + + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + [self.client timeWithCompletion:^(PNTimeResult *result, PNErrorStatus *status) { + if (!retried) { + XCTAssertTrue(status.isError); + XCTAssertEqual(status.operation, PNTimeOperation); + XCTAssertEqual(status.category, PNMalformedResponseCategory); + XCTAssertEqual(status.statusCode, 404); + + retried = YES; + [status retry]; + } else { + XCTAssertNil(status); + XCTAssertNotNil(result.data.timetoken); + XCTAssertEqual([@0 compare:result.data.timetoken], NSOrderedAscending); + handler(); + } + }]; + }]; +} + + +#pragma mark - Tests :: Builder pattern-based channel here now + +- (void)testItShouldFetchPubNubTimeUsingBuilderPatternInterface { + [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { + self.client.time().performWithCompletion(^(PNTimeResult *result, PNErrorStatus *status) { + XCTAssertNil(status); + XCTAssertNotNil(result.data.timetoken); + XCTAssertEqual([@0 compare:result.data.timetoken], NSOrderedAscending); + XCTAssertEqual(result.operation, PNTimeOperation); + + handler(); + }); + }]; +} + +#pragma mark - + +#pragma clang diagnostic pop + +@end diff --git a/Tests/iOS Tests/Tests/Unit/Core/Actions/Messages/PNMessageActionsTest.m b/Tests/Tests/Unit/Core/Actions/Messages/PNMessageActionsTest.m similarity index 88% rename from Tests/iOS Tests/Tests/Unit/Core/Actions/Messages/PNMessageActionsTest.m rename to Tests/Tests/Unit/Core/Actions/Messages/PNMessageActionsTest.m index ad749a686..c203b3be3 100644 --- a/Tests/iOS Tests/Tests/Unit/Core/Actions/Messages/PNMessageActionsTest.m +++ b/Tests/Tests/Unit/Core/Actions/Messages/PNMessageActionsTest.m @@ -1,58 +1,53 @@ /** - * @author Serhii Mamontov - * @copyright © 2010-2019 PubNub, Inc. - */ +* @author Serhii Mamontov +* @copyright © 2010-2020 PubNub, Inc. +*/ #import #import +#import "PNRecordableTestCase.h" #import #import -#import "PNTestCase.h" -#pragma mark Test interface declaration +NS_ASSUME_NONNULL_BEGIN -@interface PNMessageActionsTest : PNTestCase +#pragma mark Interface declaration - -#pragma mark - Information - -@property (nonatomic, strong) PubNub *client; +@interface PNMessageActionsTest : PNRecordableTestCase #pragma mark - @end +NS_ASSUME_NONNULL_END + #pragma mark - Tests @implementation PNMessageActionsTest +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Warc-retain-cycles" + -#pragma mark - Setup / Tear down +#pragma mark - VCR configuration -- (void)setUp { - [super setUp]; - - - dispatch_queue_t callbackQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); - PNConfiguration *configuration = [PNConfiguration configurationWithPublishKey:self.publishKey - subscribeKey:self.subscribeKey]; - - self.client = [PubNub clientWithConfiguration:configuration callbackQueue:callbackQueue]; +- (BOOL)shouldSetupVCR { + return NO; } #pragma mark - Tests :: Add Message Action -- (void)testAddMessageAction_ShouldReturnBuilder { +- (void)testItShouldReturnAddMessageActionBuilder { XCTAssertTrue([self.client.addMessageAction() isKindOfClass:[PNAddMessageActionAPICallBuilder class]]); } #pragma mark - Tests :: Add Message Action :: Call -- (void)testAddMessageAction_ShouldProcessOperation_WhenCalled { +- (void)testItShouldAddMessageActionWhenCalled { NSNumber *expectedMessageTimetoken = @([NSDate date].timeIntervalSince1970 * 1000); NSString *expectedChannel = [NSUUID UUID].UUIDString; NSString *expectedValue = [NSUUID UUID].UUIDString; @@ -87,7 +82,7 @@ - (void)testAddMessageAction_ShouldProcessOperation_WhenCalled { }]; } -- (void)testAddMessageAction_ShouldReturnError_WhenChannelIsMissing { +- (void)testItShouldNotAddMessageActionWhenChannelIsMissing { NSNumber *expectedMessageTimetoken = @([NSDate date].timeIntervalSince1970 * 1000); NSString *expectedValue = [NSUUID UUID].UUIDString; @@ -107,7 +102,7 @@ - (void)testAddMessageAction_ShouldReturnError_WhenChannelIsMissing { }]; } -- (void)testAddMessageAction_ShouldReturnError_WhenMessageTimetokenIsMissing { +- (void)testItShouldNotAddMessageActionWhenMessageTimetokenIsMissing { NSString *expectedChannel = [NSUUID UUID].UUIDString; NSString *expectedValue = [NSUUID UUID].UUIDString; @@ -127,7 +122,7 @@ - (void)testAddMessageAction_ShouldReturnError_WhenMessageTimetokenIsMissing { }]; } -- (void)testAddMessageAction_ShouldReturnError_WhenValueIsMissing { +- (void)testItShouldNotAddMessageActionWhenValueIsMissing { NSNumber *expectedMessageTimetoken = @([NSDate date].timeIntervalSince1970 * 1000); NSString *expectedChannel = [NSUUID UUID].UUIDString; @@ -147,7 +142,7 @@ - (void)testAddMessageAction_ShouldReturnError_WhenValueIsMissing { }]; } -- (void)testAddMessageAction_ShouldReturnError_WhenActionTypeNotSet { +- (void)testItShouldNotAddMessageActionWhenActionTypeNotSet { NSNumber *expectedMessageTimetoken = @([NSDate date].timeIntervalSince1970 * 1000); NSString *expectedChannel = [NSUUID UUID].UUIDString; NSString *expectedValue = [NSUUID UUID].UUIDString; @@ -168,7 +163,7 @@ - (void)testAddMessageAction_ShouldReturnError_WhenActionTypeNotSet { }]; } -- (void)testAddMessageAction_ShouldReturnError_WhenActionTypeTooLong { +- (void)testItShouldNotAddMessageActionWhenActionTypeTooLong { NSNumber *expectedMessageTimetoken = @([NSDate date].timeIntervalSince1970 * 1000); NSString *expectedChannel = [NSUUID UUID].UUIDString; NSString *expectedValue = [NSUUID UUID].UUIDString; @@ -190,7 +185,7 @@ - (void)testAddMessageAction_ShouldReturnError_WhenActionTypeTooLong { }]; } -- (void)testAddMessageAction_ShouldReturnError_WhenUnableToSerializeValue { +- (void)testItShouldNotAddMessageActionWhenUnableToSerializeValue { NSNumber *expectedMessageTimetoken = @([NSDate date].timeIntervalSince1970 * 1000); NSString *expectedChannel = [NSUUID UUID].UUIDString; NSString *expectedValue = (id)[NSDate date]; @@ -218,14 +213,14 @@ - (void)testAddMessageAction_ShouldReturnError_WhenUnableToSerializeValue { #pragma mark - Tests :: Remove Message Action -- (void)testRemoveMessageAction_ShouldReturnBuilder { +- (void)testItShouldReturnRemoveMessageActionBuilder { XCTAssertTrue([self.client.removeMessageAction() isKindOfClass:[PNRemoveMessageActionAPICallBuilder class]]); } #pragma mark - Tests :: Remove Message Action :: Call -- (void)testRemoveMessageAction_ShouldProcessOperation_WhenCalled { +- (void)testItShouldRemoveMessageActionWhenCalled { NSNumber *expectedActionTimetoken = @([NSDate date].timeIntervalSince1970 * 1000 + 1); NSNumber *expectedMessageTimetoken = @([NSDate date].timeIntervalSince1970 * 1000); NSString *expectedChannel = [NSUUID UUID].UUIDString; @@ -255,7 +250,7 @@ - (void)testRemoveMessageAction_ShouldProcessOperation_WhenCalled { }]; } -- (void)testRemoveMessageAction_ShouldReturnError_WhenChannelIsMissing { +- (void)testItShouldNotRemoveMessageActionWhenChannelIsMissing { NSNumber *expectedActionTimetoken = @([NSDate date].timeIntervalSince1970 * 1000 + 1); NSNumber *expectedMessageTimetoken = @([NSDate date].timeIntervalSince1970 * 1000); @@ -274,7 +269,7 @@ - (void)testRemoveMessageAction_ShouldReturnError_WhenChannelIsMissing { }]; } -- (void)testRemoveMessageAction_ShouldReturnError_WhenMessageTimetokenIsMissing { +- (void)testItShouldNotRemoveMessageActionWhenMessageTimetokenIsMissing { NSNumber *expectedActionTimetoken = @([NSDate date].timeIntervalSince1970 * 1000 + 1); NSString *expectedChannel = [NSUUID UUID].UUIDString; @@ -293,7 +288,7 @@ - (void)testRemoveMessageAction_ShouldReturnError_WhenMessageTimetokenIsMissing }]; } -- (void)testRemoveMessageAction_ShouldReturnError_WhenActionTimetokenIsMissing { +- (void)testItShouldNotRemoveMessageActionWhenActionTimetokenIsMissing { NSNumber *expectedMessageTimetoken = @([NSDate date].timeIntervalSince1970 * 1000); NSString *expectedChannel = [NSUUID UUID].UUIDString; @@ -315,14 +310,14 @@ - (void)testRemoveMessageAction_ShouldReturnError_WhenActionTimetokenIsMissing { #pragma mark - Tests :: Fetch Messages Actions -- (void)testFetchMessagesActions_ShouldReturnBuilder { +- (void)testItShouldReturnFetchMessagesActionsBuilder { XCTAssertTrue([self.client.fetchMessageActions() isKindOfClass:[PNFetchMessagesActionsAPICallBuilder class]]); } #pragma mark - Tests :: Fetch Messages Actions -- (void)testFetchMessagesActions_ShouldProcessOperation_WhenCalled { +- (void)testItShouldFetchMessagesActionsWhenCalled { NSNumber *expectedStart = @([NSDate date].timeIntervalSince1970 * 1000 + 1); NSNumber *expectedEnd = @([NSDate date].timeIntervalSince1970 * 1000); NSString *expectedChannel = [NSUUID UUID].UUIDString; @@ -352,7 +347,7 @@ - (void)testFetchMessagesActions_ShouldProcessOperation_WhenCalled { }]; } -- (void)testFetchMessagesActions_ShouldReturnError_WhenChannelIsMissing { +- (void)testItShouldNotFetchMessagesActionsWhenChannelIsMissing { NSNumber *expectedStart = @([NSDate date].timeIntervalSince1970 * 1000 + 1); NSNumber *expectedEnd = @([NSDate date].timeIntervalSince1970 * 1000); NSNumber *expectedLimit = @(56); @@ -375,5 +370,6 @@ - (void)testFetchMessagesActions_ShouldReturnError_WhenChannelIsMissing { #pragma mark - +#pragma clang diagnostic pop @end diff --git a/Tests/iOS Tests/Tests/Unit/Core/History/PNMessageCountTest.m b/Tests/Tests/Unit/Core/History/PNMessageCountTest.m similarity index 81% rename from Tests/iOS Tests/Tests/Unit/Core/History/PNMessageCountTest.m rename to Tests/Tests/Unit/Core/History/PNMessageCountTest.m index d40e7bd0b..e372a814c 100644 --- a/Tests/iOS Tests/Tests/Unit/Core/History/PNMessageCountTest.m +++ b/Tests/Tests/Unit/Core/History/PNMessageCountTest.m @@ -1,62 +1,54 @@ /** - * @author Serhii Mamontov - * @copyright © 2010-2019 PubNub, Inc. - */ +* @author Serhii Mamontov +* @copyright © 2010-2020 PubNub, Inc. +*/ #import #import +#import "PNRecordableTestCase.h" #import #import #import -#import "PNTestCase.h" -#pragma mark Test interface declaration +NS_ASSUME_NONNULL_BEGIN -@interface PNMessageCountTest : PNTestCase +#pragma mark Interface declaration - -#pragma mark - Information - -@property (nonatomic, strong) PubNub *client; +@interface PNMessageCountTest : PNRecordableTestCase #pragma mark - @end +NS_ASSUME_NONNULL_END + #pragma mark - Tests @implementation PNMessageCountTest - -#pragma mark - Setup / Tear down +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Warc-retain-cycles" -- (void)setUp { - - [super setUp]; - - - dispatch_queue_t callbackQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); - PNConfiguration *configuration = [PNConfiguration configurationWithPublishKey:self.publishKey - subscribeKey:self.subscribeKey]; - self.client = [PubNub clientWithConfiguration:configuration callbackQueue:callbackQueue]; +#pragma mark - VCR configuration + +- (BOOL)shouldSetupVCR { + return NO; } #pragma mark - Tests :: Builder -- (void)testMessageCounts_ShouldReturnBuilder { - +- (void)testItShouldReturnMessageCountsBuilder { XCTAssertTrue([self.client.messageCounts() isKindOfClass:[PNMessageCountAPICallBuilder class]]); } #pragma mark - Tests :: Call -- (void)testMessageCounts_ShouldProcessOperation_WhenCalled { - +- (void)testItShouldFetchMessageCountsWhenCalled { NSArray *channels = @[@"PubNub 1", @"PubNub-2"]; NSArray *timetokens = @[@(1550140202)]; NSString *expectedChannels = [PNChannel namesForRequest:channels]; @@ -79,8 +71,7 @@ - (void)testMessageCounts_ShouldProcessOperation_WhenCalled { }]; } -- (void)testMessageCounts_ShouldUseTimetoken_WhenOnlyOneTimetokenProvidedForChannels { - +- (void)testItShouldUseTimetokenWhenOnlyOneTimetokenProvidedForChannels { NSArray *channels = @[@"PubNub 1", @"PubNub-2"]; NSArray *timetokens = @[@(1550140202)]; NSString *expectedTimetokens = @(15501402020000000).stringValue; @@ -99,8 +90,7 @@ - (void)testMessageCounts_ShouldUseTimetoken_WhenOnlyOneTimetokenProvidedForChan .performWithCompletion(^(PNMessageCountResult *result, PNErrorStatus *status) { }); } -- (void)testMessageCounts_ShouldUseChannelsTimetoken_WhenMultipleOneTimetokenProvidedForChannels { - +- (void)testItShouldUseChannelsTimetokenWhenMultipleOneTimetokenProvidedForChannels { NSArray *channels = @[@"PubNub 1", @"PubNub-2"]; NSArray *timetokens = @[@(1550140202), @(1550140204)]; NSString *expectedTimetokens = [@[@(15501402020000000), @(15501402040000000)] componentsJoinedByString:@","]; @@ -119,8 +109,7 @@ - (void)testMessageCounts_ShouldUseChannelsTimetoken_WhenMultipleOneTimetokenPro .performWithCompletion(^(PNMessageCountResult *result, PNErrorStatus *status) { }); } -- (void)testMessageCounts_ShouldNotSetChannels_WhenNumberOfChannelsAndTimetokensIsDifferent { - +- (void)testItShouldNotSetChannelsWhenNumberOfChannelsAndTimetokensIsDifferent { NSArray *channels = @[@"PubNub 1", @"PubNub-2"]; NSArray *timetokens = @[@(1550140202), @(1550140204), @(1550140206)]; @@ -137,8 +126,7 @@ - (void)testMessageCounts_ShouldNotSetChannels_WhenNumberOfChannelsAndTimetokens .performWithCompletion(^(PNMessageCountResult *result, PNErrorStatus *status) { }); } -- (void)testMessageCounts_ShouldReturnBadRequest_WhenNumberOfChannelsAndTimetokensIsDifferent { - +- (void)testItShouldReturnBadRequestWhenNumberOfChannelsAndTimetokensIsDifferent { NSArray *channels = @[@"PubNub 1", @"PubNub-2"]; NSArray *timetokens = @[@(1550140202), @(1550140204), @(1550140206)]; @@ -157,8 +145,7 @@ - (void)testMessageCounts_ShouldReturnBadRequest_WhenNumberOfChannelsAndTimetoke #pragma mark - Tests :: Retry -- (void)testMessageCounts_ShouldCallMethodAgain_WhenRetryOnFailureCalled { - +- (void)testItShouldRetryWhenRetryOnFailureCalled { NSArray *channels = @[@"PubNub 1", @"PubNub-2"]; NSArray *timetokens = @[@(1550140202), @(1550140204), @(1550140206)]; __block PNErrorStatus *errorStatus = nil; @@ -182,5 +169,6 @@ - (void)testMessageCounts_ShouldCallMethodAgain_WhenRetryOnFailureCalled { #pragma mark - +#pragma clang diagnostic pop @end diff --git a/Tests/iOS Tests/Tests/Unit/Core/Interfaces/Actions/Messages/PNMessageActionsAPICallBuilderTest.m b/Tests/Tests/Unit/Core/Interfaces/Actions/Messages/PNMessageActionsAPICallBuilderTest.m similarity index 76% rename from Tests/iOS Tests/Tests/Unit/Core/Interfaces/Actions/Messages/PNMessageActionsAPICallBuilderTest.m rename to Tests/Tests/Unit/Core/Interfaces/Actions/Messages/PNMessageActionsAPICallBuilderTest.m index 9301894cb..eb6eb6890 100644 --- a/Tests/iOS Tests/Tests/Unit/Core/Interfaces/Actions/Messages/PNMessageActionsAPICallBuilderTest.m +++ b/Tests/Tests/Unit/Core/Interfaces/Actions/Messages/PNMessageActionsAPICallBuilderTest.m @@ -1,14 +1,16 @@ /** - * @author Serhii Mamontov - * @copyright © 2010-2019 PubNub, Inc. - */ +* @author Serhii Mamontov +* @copyright © 2010-2020 PubNub, Inc. +*/ #import #import #import #import -#pragma mark Test interface declaration +NS_ASSUME_NONNULL_BEGIN + +#pragma mark Interface declaration @interface PNMessageActionsAPICallBuilderTest : XCTestCase @@ -27,22 +29,27 @@ - (NSString *)mockedParameterFrom:(NSString *)parameter; @end +NS_ASSUME_NONNULL_END + #pragma mark - Tests @implementation PNMessageActionsAPICallBuilderTest +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Warc-retain-cycles" + #pragma mark - Tests :: add :: messageTimetoken -- (void)testAddMessageTimetoken_ShouldReturnAddBuilder_WhenCalled { +- (void)testItShouldReturnAddBuilderWhenMessageTimetokenSpecifiedInChain { id builder = [self addMessageActionBuilder]; id addBuilder = ((PNAddMessageActionAPICallBuilder *)builder).messageTimetoken(@(2010)); XCTAssertEqual(addBuilder, builder); } -- (void)testAdd_ShouldSetMessageTimetoken_WhenNSNumberPassed { +- (void)testItShouldSetMessageTimetokenWhenNSNumberPassedAsAddMessageTimetoken { PNAddMessageActionAPICallBuilder *builder = [self addMessageActionBuilder]; NSNumber *expected = @(2010); @@ -52,10 +59,10 @@ - (void)testAdd_ShouldSetMessageTimetoken_WhenNSNumberPassed { builder.messageTimetoken(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testAdd_ShouldNotSetMessageTimetoken_WhenNonNSNumberPassed { +- (void)testItShouldNotSetMessageTimetokenWhenNonNSNumberPassedAsAddMessageTimetoken { PNAddMessageActionAPICallBuilder *builder = [self addMessageActionBuilder]; NSNumber *expected = (id)@"PubNub"; @@ -65,20 +72,20 @@ - (void)testAdd_ShouldNotSetMessageTimetoken_WhenNonNSNumberPassed { builder.messageTimetoken(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: add :: type -- (void)testAddType_ShouldReturnAddBuilder_WhenCalled { +- (void)testItShouldReturnAddBuilderWhenActionTypeSpecifiedInChain { id builder = [self addMessageActionBuilder]; id addBuilder = ((PNAddMessageActionAPICallBuilder *)builder).type(@"receipt"); XCTAssertEqual(addBuilder, builder); } -- (void)testAdd_ShouldSetType_WhenNSStringPassed { +- (void)testItShouldSetTypeWhenNSStringPassedAsAddActionType { PNAddMessageActionAPICallBuilder *builder = [self addMessageActionBuilder]; NSString *expected = @"receipt"; @@ -88,10 +95,10 @@ - (void)testAdd_ShouldSetType_WhenNSStringPassed { builder.type(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testAdd_ShouldNotSetType_WhenEmptyNSStringPassed { +- (void)testItShouldNotSetTypeWhenEmptyNSStringPassedAsAddActionType { PNAddMessageActionAPICallBuilder *builder = [self addMessageActionBuilder]; NSString *expected = @""; @@ -101,10 +108,10 @@ - (void)testAdd_ShouldNotSetType_WhenEmptyNSStringPassed { builder.type(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testAdd_ShouldNotSetType_WhenNonNSStringPassed { +- (void)testItShouldNotSetTypeWhenNonNSStringPassedAsAddActionType { PNAddMessageActionAPICallBuilder *builder = [self addMessageActionBuilder]; NSString *expected = (id)@2010; @@ -114,20 +121,20 @@ - (void)testAdd_ShouldNotSetType_WhenNonNSStringPassed { builder.type(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: add :: channel -- (void)testAddChannel_ShouldReturnAddBuilder_WhenCalled { +- (void)testItShouldReturnAddBuilderWhenChannelSpecifiedInChain { id builder = [self addMessageActionBuilder]; id addBuilder = ((PNAddMessageActionAPICallBuilder *)builder).channel(@"secret"); XCTAssertEqual(addBuilder, builder); } -- (void)testAdd_ShouldSetChannel_WhenNSStringPassed { +- (void)testItShouldSetChannelWhenNSStringPassedAsAddChannel { PNAddMessageActionAPICallBuilder *builder = [self addMessageActionBuilder]; NSString *expected = @"secret"; @@ -137,10 +144,10 @@ - (void)testAdd_ShouldSetChannel_WhenNSStringPassed { builder.channel(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testAdd_ShouldNotSetChannel_WhenEmptyNSStringPassed { +- (void)testItShouldNotSetChannelWhenEmptyNSStringPassedAsAddChannel { PNAddMessageActionAPICallBuilder *builder = [self addMessageActionBuilder]; NSString *expected = @""; @@ -150,10 +157,10 @@ - (void)testAdd_ShouldNotSetChannel_WhenEmptyNSStringPassed { builder.channel(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testAdd_ShouldNotSetChannel_WhenNonNSStringPassed { +- (void)testItShouldNotSetChannelWhenNonNSStringPassedAsAddChannel { PNAddMessageActionAPICallBuilder *builder = [self addMessageActionBuilder]; NSString *expected = (id)@2010; @@ -163,20 +170,20 @@ - (void)testAdd_ShouldNotSetChannel_WhenNonNSStringPassed { builder.channel(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: add :: value -- (void)testAddValue_ShouldReturnAddBuilder_WhenCalled { +- (void)testItShouldReturnAddBuilderWhenValueSpecifiedInChain { id builder = [self addMessageActionBuilder]; id addBuilder = ((PNAddMessageActionAPICallBuilder *)builder).value(@"smile"); XCTAssertEqual(addBuilder, builder); } -- (void)testAdd_ShouldSetValue_WhenNSStringPassed { +- (void)testItShouldSetValueWhenNSStringPassedAsAddValue { PNAddMessageActionAPICallBuilder *builder = [self addMessageActionBuilder]; NSString *expected = @"smile"; @@ -186,10 +193,10 @@ - (void)testAdd_ShouldSetValue_WhenNSStringPassed { builder.value(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testAdd_ShouldNotSetValue_WhenEmptyNSStringPassed { +- (void)testItShouldNotSetValueWhenEmptyNSStringPassedAsAddValue { PNAddMessageActionAPICallBuilder *builder = [self addMessageActionBuilder]; NSString *expected = @""; @@ -199,10 +206,10 @@ - (void)testAdd_ShouldNotSetValue_WhenEmptyNSStringPassed { builder.value(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testAdd_ShouldNotSetValue_WhenNonNSStringPassed { +- (void)testItShouldNotSetValueWhenNonNSStringPassedAsAddValue { PNAddMessageActionAPICallBuilder *builder = [self addMessageActionBuilder]; NSString *expected = (id)@2010; @@ -212,20 +219,20 @@ - (void)testAdd_ShouldNotSetValue_WhenNonNSStringPassed { builder.value(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: remove :: messageTimetoken -- (void)testRemoveMessageTimetoken_ShouldReturnAddBuilder_WhenCalled { +- (void)testItShouldReturnRemoveBuilderWhenMessageTimetokenSpecifiedInChain { id builder = [self removeMessageActionBuilder]; id removeBuilder = ((PNRemoveMessageActionAPICallBuilder *)builder).messageTimetoken(@(2010)); XCTAssertEqual(removeBuilder, builder); } -- (void)testRemove_ShouldSetMessageTimetoken_WhenNSNumberPassed { +- (void)testItShouldSetMessageTimetokenWhenNSNumberPassedAsRemoveMessageTimetoken { PNRemoveMessageActionAPICallBuilder *builder = [self removeMessageActionBuilder]; NSNumber *expected = @(2010); @@ -235,10 +242,10 @@ - (void)testRemove_ShouldSetMessageTimetoken_WhenNSNumberPassed { builder.messageTimetoken(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testRemove_ShouldNotSetMessageTimetoken_WhenNonNSNumberPassed { +- (void)testItShouldNotSetMessageTimetokenWhenNonNSNumberPassedAsRemoveMessageTimetoken { PNRemoveMessageActionAPICallBuilder *builder = [self removeMessageActionBuilder]; NSNumber *expected = (id)@"PubNub"; @@ -248,20 +255,20 @@ - (void)testRemove_ShouldNotSetMessageTimetoken_WhenNonNSNumberPassed { builder.messageTimetoken(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: remove :: actionTimetoken -- (void)testRemoveActionTimetoken_ShouldReturnAddBuilder_WhenCalled { +- (void)testItShouldReturnAddBuilderWhenActionTimetokenSpecifiedInChain { id builder = [self removeMessageActionBuilder]; id removeBuilder = ((PNRemoveMessageActionAPICallBuilder *)builder).actionTimetoken(@(2010)); XCTAssertEqual(removeBuilder, builder); } -- (void)testRemove_ShouldSetActionTimetoken_WhenNSNumberPassed { +- (void)testItShouldSetActionTimetokenWhenNSNumberPassedAsRemoveActionTimetoken { PNRemoveMessageActionAPICallBuilder *builder = [self removeMessageActionBuilder]; NSNumber *expected = @(2010); @@ -271,10 +278,10 @@ - (void)testRemove_ShouldSetActionTimetoken_WhenNSNumberPassed { builder.actionTimetoken(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testRemove_ShouldNotSetActionTimetoken_WhenNonNSNumberPassed { +- (void)testItShouldNotSetActionTimetokenWhenNonNSNumberPassedAsRemoveActionTimetoken { PNRemoveMessageActionAPICallBuilder *builder = [self removeMessageActionBuilder]; NSNumber *expected = (id)@"PubNub"; @@ -284,20 +291,20 @@ - (void)testRemove_ShouldNotSetActionTimetoken_WhenNonNSNumberPassed { builder.actionTimetoken(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: remove :: channel -- (void)testRemoveChannel_ShouldReturnAddBuilder_WhenCalled { +- (void)testItShouldReturnRemoveBuilderWhenChannelSpecifiedInChain { id builder = [self removeMessageActionBuilder]; id removeBuilder = ((PNRemoveMessageActionAPICallBuilder *)builder).channel(@"secret"); XCTAssertEqual(removeBuilder, builder); } -- (void)testRemove_ShouldSetChannel_WhenNSStringPassed { +- (void)testItShouldSetChannelWhenNSStringPassedAsRemoveChannel { PNRemoveMessageActionAPICallBuilder *builder = [self removeMessageActionBuilder]; NSString *expected = @"secret"; @@ -307,10 +314,10 @@ - (void)testRemove_ShouldSetChannel_WhenNSStringPassed { builder.channel(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testRemove_ShouldNotSetChannel_WhenEmptyNSStringPassed { +- (void)testItShouldNotSetChannelWhenEmptyNSStringPassedAsRemoveChannel { PNRemoveMessageActionAPICallBuilder *builder = [self removeMessageActionBuilder]; NSString *expected = @""; @@ -320,10 +327,10 @@ - (void)testRemove_ShouldNotSetChannel_WhenEmptyNSStringPassed { builder.channel(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testRemove_ShouldNotSetChannel_WhenNonNSStringPassed { +- (void)testItShouldNotSetChannelWhenNonNSStringPassedAsRemoveChannel { PNRemoveMessageActionAPICallBuilder *builder = [self removeMessageActionBuilder]; NSString *expected = (id)@2010; @@ -333,20 +340,20 @@ - (void)testRemove_ShouldNotSetChannel_WhenNonNSStringPassed { builder.channel(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: fetch :: channel -- (void)testFetchChannel_ShouldReturnFetchBuilder_WhenCalled { +- (void)testItShouldReturnFetchBuilderWhenChannelSpecifiedInChain { id builder = [self fetchMessagesActionsBuilder]; id fetchBuilder = ((PNFetchMessagesActionsAPICallBuilder *)builder).channel(@"secret"); XCTAssertEqual(fetchBuilder, builder); } -- (void)testFetch_ShouldSetChannel_WhenNSStringPassed { +- (void)testItShouldSetChannelWhenNSStringPassedAsFetchChannel { PNFetchMessagesActionsAPICallBuilder *builder = [self fetchMessagesActionsBuilder]; NSString *expected = @"secret"; @@ -356,10 +363,10 @@ - (void)testFetch_ShouldSetChannel_WhenNSStringPassed { builder.channel(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testFetch_ShouldNotSetChannel_WhenEmptyNSStringPassed { +- (void)testItShouldNotSetChannelWhenEmptyNSStringPassedAsFetchChannel { PNFetchMessagesActionsAPICallBuilder *builder = [self fetchMessagesActionsBuilder]; NSString *expected = @""; @@ -369,10 +376,10 @@ - (void)testFetch_ShouldNotSetChannel_WhenEmptyNSStringPassed { builder.channel(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testFetch_ShouldNotSetChannel_WhenNonNSStringPassed { +- (void)testItShouldNotSetChannelWhenNonNSStringPassedAsFetchChannel { PNFetchMessagesActionsAPICallBuilder *builder = [self fetchMessagesActionsBuilder]; NSString *expected = (id)@2010; @@ -382,19 +389,19 @@ - (void)testFetch_ShouldNotSetChannel_WhenNonNSStringPassed { builder.channel(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: fetch :: start -- (void)testFetchStart_ShouldReturnFetchBuilder_WhenCalled { +- (void)testItShouldReturnFetchBuilderWhenStartTokenSpecifiedInChain { id builder = [self fetchMessagesActionsBuilder]; id fetchBuilder = ((PNFetchMessagesActionsAPICallBuilder *)builder).start(@(2010)); XCTAssertEqual(fetchBuilder, builder); } -- (void)testFetch_ShouldSetStart_WhenNSNumberPassed { +- (void)testItShouldSetStartWhenNSNumberPassedAsFetchStartToken { PNFetchMessagesActionsAPICallBuilder *builder = [self fetchMessagesActionsBuilder]; NSNumber *expected = @(2010); @@ -404,10 +411,10 @@ - (void)testFetch_ShouldSetStart_WhenNSNumberPassed { builder.start(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testFetch_ShouldNotSetStart_WhenNonNSNumberPassed { +- (void)testItShouldNotSetStartWhenNonNSNumberPassedAsFetchStartToken { PNFetchMessagesActionsAPICallBuilder *builder = [self fetchMessagesActionsBuilder]; NSNumber *expected = (id)@"PubNub"; @@ -417,20 +424,20 @@ - (void)testFetch_ShouldNotSetStart_WhenNonNSNumberPassed { builder.start(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: fetch :: end -- (void)testFetchEnd_ShouldReturnFetchAllBuilder_WhenCalled { +- (void)testItShouldReturnFetchAllBuilderWhenEndTokenSpecifiedInChain { id builder = [self fetchMessagesActionsBuilder]; id fetchBuilder = ((PNFetchMessagesActionsAPICallBuilder *)builder).end(@(2010)); XCTAssertEqual(fetchBuilder, builder); } -- (void)testFetch_ShouldSetEnd_WhenNSStringPassed { +- (void)testItShouldSetEndWhenNSStringPassedAsFetchEndToken { PNFetchMessagesActionsAPICallBuilder *builder = [self fetchMessagesActionsBuilder]; NSNumber *expected = @(2010); @@ -440,10 +447,10 @@ - (void)testFetch_ShouldSetEnd_WhenNSStringPassed { builder.end(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testFetch_ShouldNotSetEnd_WhenNonNSStringPassed { +- (void)testItShouldNotSetEndWhenNonNSStringPassedAsFetchEndToken { PNFetchMessagesActionsAPICallBuilder *builder = [self fetchMessagesActionsBuilder]; NSNumber *expected = (id)@"PubNub"; @@ -453,22 +460,22 @@ - (void)testFetch_ShouldNotSetEnd_WhenNonNSStringPassed { builder.end(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: fetch :: limit -- (void)testFetchLimit_ShouldReturnFetchAllBuilder_WhenCalled { +- (void)testItShouldReturnFetchAllBuilderWhenLimitSpecifiedInChain { id builder = [self fetchMessagesActionsBuilder]; id fetchBuilder = ((PNFetchMessagesActionsAPICallBuilder *)builder).limit(20); XCTAssertEqual(fetchBuilder, builder); } -- (void)testFetchAll_ShouldSetLimit_WhenCalled { +- (void)testItShouldSetLimitWhenFetchLimitSpecifiedInChain { PNFetchMessagesActionsAPICallBuilder *builder = [self fetchMessagesActionsBuilder]; - NSNumber *expected = @YES; + NSNumber *expected = @35; id builderMock = OCMPartialMock(builder); @@ -476,7 +483,7 @@ - (void)testFetchAll_ShouldSetLimit_WhenCalled { builder.limit(35); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } @@ -506,7 +513,7 @@ - (void)expect:(BOOL)shouldCall mock:(id)mockedObject toSetValue:(id)value toPar if (shouldCall) { OCMExpect([mockedObject setValue:value forParameter:parameter]); } else { - OCMExpect([[mockedObject reject] setValue:value forParameter:parameter]); + OCMReject([mockedObject setValue:value forParameter:parameter]); } } @@ -516,5 +523,6 @@ - (NSString *)mockedParameterFrom:(NSString *)parameter { #pragma mark - +#pragma clang diagnostic pop @end diff --git a/Tests/iOS Tests/Tests/Unit/Core/Interfaces/History/PNMessageCountAPICallBuilderTest.m b/Tests/Tests/Unit/Core/Interfaces/History/PNMessageCountAPICallBuilderTest.m similarity index 70% rename from Tests/iOS Tests/Tests/Unit/Core/Interfaces/History/PNMessageCountAPICallBuilderTest.m rename to Tests/Tests/Unit/Core/Interfaces/History/PNMessageCountAPICallBuilderTest.m index 3dce04624..59f48f0c6 100644 --- a/Tests/iOS Tests/Tests/Unit/Core/Interfaces/History/PNMessageCountAPICallBuilderTest.m +++ b/Tests/Tests/Unit/Core/Interfaces/History/PNMessageCountAPICallBuilderTest.m @@ -1,14 +1,16 @@ /** - * @author Serhii Mamontov - * @copyright © 2010-2019 PubNub, Inc. - */ -#import +* @author Serhii Mamontov +* @copyright © 2010-2020 PubNub, Inc. +*/ #import +#import #import #import -#pragma mark Test interface declaration +NS_ASSUME_NONNULL_BEGIN + +#pragma mark Interface declaration @interface PNMessageCountAPICallBuilderTest : XCTestCase @@ -22,15 +24,20 @@ - (PNMessageCountAPICallBuilder *)builder; @end +NS_ASSUME_NONNULL_END + #pragma mark - Tests @implementation PNMessageCountAPICallBuilderTest +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Warc-retain-cycles" + #pragma mark - Tests :: channels -- (void)testChannels_ShouldReturnReferenceOnBuilder_WhenCalled { +- (void)testItShouldReturnMessageCountBuilderWhenChannelsSpecifiedInChain { PNMessageCountAPICallBuilder *builder = [self builder]; @@ -38,7 +45,7 @@ - (void)testChannels_ShouldReturnReferenceOnBuilder_WhenCalled { XCTAssertEqualObjects(builder.channels(@[@"PubNub"]), builder); } -- (void)testChannels_ShouldSetChannels_WhenNSArrayPassed { +- (void)testItShouldSetChannelsWhenNSArrayPassedAsChannels { PNMessageCountAPICallBuilder *builder = [self builder]; NSString *parameter = @"channels"; @@ -51,10 +58,10 @@ - (void)testChannels_ShouldSetChannels_WhenNSArrayPassed { builder.channels(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testChannels_ShouldNotSetChannels_WhenNonNSArrayPassed { +- (void)testItShouldNotSetChannelsWhenNonNSArrayPassedAsChannels { PNMessageCountAPICallBuilder *builder = [self builder]; NSString *parameter = @"channels"; @@ -63,17 +70,17 @@ - (void)testChannels_ShouldNotSetChannels_WhenNonNSArrayPassed { id builderMock = OCMPartialMock(builder); - OCMExpect([[builderMock reject] setValue:expected forParameter:mockedParameter]); + OCMReject([builderMock setValue:expected forParameter:mockedParameter]); builder.channels(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: timetokens -- (void)testTimetokens_ShouldReturnReferenceOnBuilder_WhenCalled { +- (void)testItShouldReturnMessageCountBuilderWhenTimetokensSpecifiedInChain { PNMessageCountAPICallBuilder *builder = [self builder]; @@ -81,10 +88,10 @@ - (void)testTimetokens_ShouldReturnReferenceOnBuilder_WhenCalled { XCTAssertEqualObjects(builder.timetokens(@[@1234567890]), builder); } -- (void)testTimetokens_ShouldSetChannels_WhenNSArrayPassed { +- (void)testItShouldSetChannelsWhenNSArrayPassedAsTimetokens { PNMessageCountAPICallBuilder *builder = [self builder]; - NSString *parameter = @"channels"; + NSString *parameter = @"timetokens"; NSString *mockedParameter = [@[@"ocmock_replaced", parameter] componentsJoinedByString:@"_"]; NSArray *expected = @[@1234567890]; @@ -94,23 +101,23 @@ - (void)testTimetokens_ShouldSetChannels_WhenNSArrayPassed { builder.timetokens(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testTimetokens_ShouldNotSetChannels_WhenNonNSArrayPassed { +- (void)testItShouldNotSetChannelsWhenNonNSArrayPassedAsTimetokens { PNMessageCountAPICallBuilder *builder = [self builder]; - NSString *parameter = @"channels"; + NSString *parameter = @"timetokens"; NSString *mockedParameter = [@[@"ocmock_replaced", parameter] componentsJoinedByString:@"_"]; NSArray *expected = (id)@"PubNub"; id builderMock = OCMPartialMock(builder); - OCMExpect([[builderMock reject] setValue:expected forParameter:mockedParameter]); + OCMReject([builderMock setValue:expected forParameter:mockedParameter]); builder.timetokens(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } @@ -127,5 +134,6 @@ - (PNMessageCountAPICallBuilder *)builder { #pragma mark - +#pragma clang diagnostic pop @end diff --git a/Tests/iOS Tests/Tests/Unit/Core/Interfaces/Objects/PNMembersObjectsAPICallBuilderTest.m b/Tests/Tests/Unit/Core/Interfaces/Objects/PNMembersObjectsAPICallBuilderTest.m similarity index 57% rename from Tests/iOS Tests/Tests/Unit/Core/Interfaces/Objects/PNMembersObjectsAPICallBuilderTest.m rename to Tests/Tests/Unit/Core/Interfaces/Objects/PNMembersObjectsAPICallBuilderTest.m index 68e919dfd..b08e6bc18 100644 --- a/Tests/iOS Tests/Tests/Unit/Core/Interfaces/Objects/PNMembersObjectsAPICallBuilderTest.m +++ b/Tests/Tests/Unit/Core/Interfaces/Objects/PNMembersObjectsAPICallBuilderTest.m @@ -1,7 +1,7 @@ /** - * @author Serhii Mamontov - * @copyright © 2010-2019 PubNub, Inc. - */ +* @author Serhii Mamontov +* @copyright © 2010-2020 PubNub, Inc. +*/ #import #import #import @@ -10,7 +10,7 @@ NS_ASSUME_NONNULL_BEGIN -#pragma mark Test interface declaration +#pragma mark Interface declaration @interface PNMembersObjectsAPICallBuilderTest : XCTestCase @@ -30,19 +30,25 @@ - (NSString *)mockedParameterFrom:(NSString *)parameter; NS_ASSUME_NONNULL_END + +#pragma mark - Tests + @implementation PNMembersObjectsAPICallBuilderTest +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Warc-retain-cycles" + #pragma mark - Tests :: manage :: spaceId -- (void)testManageUserId_ShouldReturnManageBuilder_WhenCalled { +- (void)testItShouldReturnManageBuilderWhenSpaceIdSpecifiedInChain { id builder = [self manageBuilder]; id manageBuilder = ((PNManageMembersAPICallBuilder *)builder).spaceId(@"id"); XCTAssertEqual(manageBuilder, builder); } -- (void)testManage_ShouldSetUserId_WhenNSStringPassed { +- (void)testItShouldSetSpaceIdWhenNSStringPassedAsManageSpaceId { PNManageMembersAPICallBuilder *builder = [self manageBuilder]; NSString *expected = @"OpenID"; @@ -52,10 +58,10 @@ - (void)testManage_ShouldSetUserId_WhenNSStringPassed { builder.spaceId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testManage_ShouldNotSetUserId_WhenEmptyNSStringPassed { +- (void)testItShouldNotSetSpaceIdWhenEmptyNSStringPassedAsManageSpaceId { PNManageMembersAPICallBuilder *builder = [self manageBuilder]; NSString *expected = @""; @@ -65,10 +71,10 @@ - (void)testManage_ShouldNotSetUserId_WhenEmptyNSStringPassed { builder.spaceId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testManage_ShouldNotSetUserId_WhenNonNSStringPassed { +- (void)testItShouldNotSetSpaceIdWhenNonNSStringPassedAsManageSpaceId { PNManageMembersAPICallBuilder *builder = [self manageBuilder]; NSString *expected = (id)@2010; @@ -78,20 +84,118 @@ - (void)testManage_ShouldNotSetUserId_WhenNonNSStringPassed { builder.spaceId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); +} + + +#pragma mark - Tests :: manage :: filter + +- (void)testItShouldReturnManageBuilderWhenFilterSpecifiedInChain { + id builder = [self manageBuilder]; + + id manageBuilder = ((PNManageMembersAPICallBuilder *)builder).filter(@"custom.name == 'Bob'"); + XCTAssertEqual(manageBuilder, builder); +} + +- (void)testItShouldSetFilterWhenNSStringPassedAsManageFilter { + PNManageMembersAPICallBuilder *builder = [self manageBuilder]; + NSString *expected = @"custom.name like 'Darth*'"; + + + id builderMock = OCMPartialMock(builder); + [self expect:YES mock:builderMock toSetValue:expected toParameter:@"filter"]; + + builder.filter(expected); + + OCMVerifyAll(builderMock); +} + +- (void)testItShouldNotSetFilterWhenEmptyNSStringPassedAsManageFilter { + PNManageMembersAPICallBuilder *builder = [self manageBuilder]; + NSString *expected = @""; + + + id builderMock = OCMPartialMock(builder); + [self expect:NO mock:builderMock toSetValue:expected toParameter:@"filter"]; + + builder.filter(expected); + + OCMVerifyAll(builderMock); +} + +- (void)testItShouldNotSetFilterWhenNonNSStringPassedAsManageFilter { + PNManageMembersAPICallBuilder *builder = [self manageBuilder]; + NSString *expected = (id)@2010; + + + id builderMock = OCMPartialMock(builder); + [self expect:NO mock:builderMock toSetValue:expected toParameter:@"filter"]; + + builder.filter(expected); + + OCMVerifyAll(builderMock); +} + + +#pragma mark - Tests :: manage :: sort + +- (void)testItShouldReturnManageBuilderWhenSortSpecifiedInChain { + id builder = [self manageBuilder]; + + id manageBuilder = ((PNManageMembersAPICallBuilder *)builder).sort(@[@"name"]); + XCTAssertEqual(manageBuilder, builder); +} + +- (void)testItShouldSetFilterWhenNSArrayPassedAsManageSort { + PNManageMembersAPICallBuilder *builder = [self manageBuilder]; + NSArray *expected = @[@"name", @"created:desc"]; + + + id builderMock = OCMPartialMock(builder); + [self expect:YES mock:builderMock toSetValue:expected toParameter:@"sort"]; + + builder.sort(expected); + + OCMVerifyAll(builderMock); +} + +- (void)testItShouldNotSetFilterWhenEmptyNSArrayPassedAsManageSort { + PNManageMembersAPICallBuilder *builder = [self manageBuilder]; + NSArray *expected = @[]; + + + id builderMock = OCMPartialMock(builder); + [self expect:NO mock:builderMock toSetValue:expected toParameter:@"sort"]; + + builder.sort(expected); + + OCMVerifyAll(builderMock); +} + +- (void)testItShouldNotSetFilterWhenNonNSArrayPassedAsManageSort { + PNManageMembersAPICallBuilder *builder = [self manageBuilder]; + NSArray *expected = (id)@2010; + + + id builderMock = OCMPartialMock(builder); + [self expect:NO mock:builderMock toSetValue:expected toParameter:@"sort"]; + + builder.sort(expected); + + OCMVerifyAll(builderMock); } #pragma mark - Tests :: manage :: add -- (void)testManageAdd_ShouldReturnManageBuilder_WhenCalled { +- (void)testItShouldReturnManageBuilderWhenAddUsersSpecifiedInChain { id builder = [self manageBuilder]; id manageBuilder = ((PNManageMembersAPICallBuilder *)builder).add(@[@{ @"id": @"identifier" }]); XCTAssertEqual(manageBuilder, builder); } -- (void)testManage_ShouldSetAdd_WhenNSArrayPassed { +- (void)testItShouldSetAddWhenNSArrayPassedAsManageUsers { PNManageMembersAPICallBuilder *builder = [self manageBuilder]; NSArray *expected = @[@{ @"id": @"identifier" }]; @@ -101,10 +205,10 @@ - (void)testManage_ShouldSetAdd_WhenNSArrayPassed { builder.add(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testManage_ShouldNotSetAdd_WhenEmptyNSArrayPassed { +- (void)testItShouldNotSetAddWhenEmptyNSArrayPassedAsManageUsers { PNManageMembersAPICallBuilder *builder = [self manageBuilder]; NSArray *expected = @[]; @@ -114,10 +218,10 @@ - (void)testManage_ShouldNotSetAdd_WhenEmptyNSArrayPassed { builder.add(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testManage_ShouldNotSetAdd_WhenNonNSArrayPassed { +- (void)testItShouldNotSetAddWhenNonNSArrayPassedAsManageUsers { PNManageMembersAPICallBuilder *builder = [self manageBuilder]; NSArray *expected = (id)@2010; @@ -127,20 +231,20 @@ - (void)testManage_ShouldNotSetAdd_WhenNonNSArrayPassed { builder.add(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: manage :: update -- (void)testManageUpdate_ShouldReturnManageBuilder_WhenCalled { +- (void)testItShouldReturnManageBuilderWhenUpdateUsersSpecifiedInChain { id builder = [self manageBuilder]; id manageBuilder = ((PNManageMembersAPICallBuilder *)builder).update(@[@{ @"id": @"identifier" }]); XCTAssertEqual(manageBuilder, builder); } -- (void)testManage_ShouldSetUpdate_WhenNSArrayPassed { +- (void)testItShouldSetUpdateWhenNSArrayPassedAsManageUsers { PNManageMembersAPICallBuilder *builder = [self manageBuilder]; NSArray *expected = @[@{ @"id": @"identifier" }]; @@ -150,10 +254,10 @@ - (void)testManage_ShouldSetUpdate_WhenNSArrayPassed { builder.update(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testManage_ShouldNotSetUpdate_WhenEmptyNSArrayPassed { +- (void)testItShouldNotSetUpdateWhenEmptyNSArrayPassedAsManageUsers { PNManageMembersAPICallBuilder *builder = [self manageBuilder]; NSArray *expected = @[]; @@ -163,10 +267,10 @@ - (void)testManage_ShouldNotSetUpdate_WhenEmptyNSArrayPassed { builder.update(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testManage_ShouldNotSetUpdate_WhenNonNSArrayPassed { +- (void)testItShouldNotSetUpdateWhenNonNSArrayPassedAsManageUsers { PNManageMembersAPICallBuilder *builder = [self manageBuilder]; NSArray *expected = (id)@2010; @@ -176,20 +280,20 @@ - (void)testManage_ShouldNotSetUpdate_WhenNonNSArrayPassed { builder.update(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: manage :: remove -- (void)testManageRemove_ShouldReturnManageBuilder_WhenCalled { +- (void)testItShouldReturnManageBuilderWhenRemoveUsersSpecifiedInChain { id builder = [self manageBuilder]; id manageBuilder = ((PNManageMembersAPICallBuilder *)builder).remove(@[ @"identifier" ]); XCTAssertEqual(manageBuilder, builder); } -- (void)testManage_ShouldSetRemove_WhenNSArrayPassed { +- (void)testMItShouldSetRemoveWhenNSArrayPassedAsManageUsers { PNManageMembersAPICallBuilder *builder = [self manageBuilder]; NSArray *expected = @[ @"identifier" ]; @@ -199,10 +303,10 @@ - (void)testManage_ShouldSetRemove_WhenNSArrayPassed { builder.remove(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testManage_ShouldNotSetRemove_WhenEmptyNSArrayPassed { +- (void)testItShouldNotSetRemoveWhenEmptyNSArrayPassedAsManageUsers { PNManageMembersAPICallBuilder *builder = [self manageBuilder]; NSArray *expected = @[]; @@ -212,10 +316,10 @@ - (void)testManage_ShouldNotSetRemove_WhenEmptyNSArrayPassed { builder.remove(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testManage_ShouldNotSetRemove_WhenNonNSArrayPassed { +- (void)testItShouldNotSetRemoveWhenNonNSArrayPassedAsManageUsers { PNManageMembersAPICallBuilder *builder = [self manageBuilder]; NSArray *expected = (id)@2010; @@ -225,20 +329,20 @@ - (void)testManage_ShouldNotSetRemove_WhenNonNSArrayPassed { builder.remove(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: manage :: start -- (void)testManageStart_ShouldReturnManageBuilder_WhenCalled { +- (void)testItShouldReturnManageBuilderWhenStartTokenSpecifiedInChain { id builder = [self manageBuilder]; id fetchBuilder = ((PNManageMembersAPICallBuilder *)builder).start(@"NjA"); XCTAssertEqual(fetchBuilder, builder); } -- (void)testManage_ShouldSetStart_WhenNSStringPassed { +- (void)testItShouldSetStartWhenNSStringPassedAsManageStartToken { PNManageMembersAPICallBuilder *builder = [self manageBuilder]; NSString *expected = @"NjA"; @@ -248,10 +352,10 @@ - (void)testManage_ShouldSetStart_WhenNSStringPassed { builder.start(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testManage_ShouldNotSetStart_WhenEmptyNSStringPassed { +- (void)testItShouldNotSetStartWhenEmptyNSStringPassedAsManageStartToken { PNManageMembersAPICallBuilder *builder = [self manageBuilder]; NSString *expected = @""; @@ -261,10 +365,10 @@ - (void)testManage_ShouldNotSetStart_WhenEmptyNSStringPassed { builder.start(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testManage_ShouldNotSetStart_WhenNonNSStringPassed { +- (void)testItShouldNotSetStartWhenNonNSStringPassedAsManageStartToken { PNManageMembersAPICallBuilder *builder = [self manageBuilder]; NSString *expected = (id)@2010; @@ -274,20 +378,20 @@ - (void)testManage_ShouldNotSetStart_WhenNonNSStringPassed { builder.start(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: manage :: end -- (void)testManageEnd_ShouldReturnManageBuilder_WhenCalled { +- (void)testItShouldReturnManageBuilderWhenEndTokenSpecifiedInChain { id builder = [self manageBuilder]; id manageBuilder = ((PNManageMembersAPICallBuilder *)builder).end(@"NjA"); XCTAssertEqual(manageBuilder, builder); } -- (void)testManage_ShouldSetEnd_WhenNSStringPassed { +- (void)testItShouldSetEndWhenNSStringPassedAsManageEndToken { PNManageMembersAPICallBuilder *builder = [self manageBuilder]; NSString *expected = @"NjA"; @@ -297,10 +401,10 @@ - (void)testManage_ShouldSetEnd_WhenNSStringPassed { builder.end(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testManage_ShouldNotSetEnd_WhenEmptyNSStringPassed { +- (void)testItShouldNotSetEndWhenEmptyNSStringPassedAsManageEndToken { PNManageMembersAPICallBuilder *builder = [self manageBuilder]; NSString *expected = @""; @@ -310,10 +414,10 @@ - (void)testManage_ShouldNotSetEnd_WhenEmptyNSStringPassed { builder.end(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testManage_ShouldNotSetEnd_WhenNonNSStringPassed { +- (void)testItShouldNotSetEndWhenNonNSStringPassedAsManageEndToken { PNManageMembersAPICallBuilder *builder = [self manageBuilder]; NSString *expected = (id)@2010; @@ -323,22 +427,22 @@ - (void)testManage_ShouldNotSetEnd_WhenNonNSStringPassed { builder.end(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: manage :: limit -- (void)testManageLimit_ShouldReturnManageBuilder_WhenCalled { +- (void)testItShouldReturnManageBuilderWhenLimitSpecifiedInChain { id builder = [self manageBuilder]; id manageBuilder = ((PNManageMembersAPICallBuilder *)builder).limit(20); XCTAssertEqual(manageBuilder, builder); } -- (void)testManage_ShouldSetLimit_WhenCalled { +- (void)testItShouldSetLimitWhenLimitSpecifiedInChain { PNManageMembersAPICallBuilder *builder = [self manageBuilder]; - NSNumber *expected = @YES; + NSNumber *expected = @35; id builderMock = OCMPartialMock(builder); @@ -346,20 +450,20 @@ - (void)testManage_ShouldSetLimit_WhenCalled { builder.limit(35); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: manage :: includeCount -- (void)testManageIncludeCount_ShouldReturnManageBuilder_WhenCalled { +- (void)testItShouldReturnManageBuilderWhenIncludeCountSpecifiedInChain { id builder = [self manageBuilder]; id manageBuilder = ((PNManageMembersAPICallBuilder *)builder).includeCount(YES); XCTAssertEqual(manageBuilder, builder); } -- (void)testManage_ShouldSetIncludeCount_WhenCalled { +- (void)testItShouldSetIncludeCountWhenIncludeCountSpecifiedInChain { PNManageMembersAPICallBuilder *builder = [self manageBuilder]; NSNumber *expected = @YES; @@ -367,22 +471,22 @@ - (void)testManage_ShouldSetIncludeCount_WhenCalled { id builderMock = OCMPartialMock(builder); [self expect:YES mock:builderMock toSetValue:expected toParameter:@"includeCount"]; - builder.includeCount(NO); + builder.includeCount(YES); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: manage :: includeFields -- (void)testManageIncludeFields_ShouldReturnManageBuilder_WhenCalled { +- (void)testItShouldReturnManageBuilderWhenIncludeFieldsSpecifiedInChain { id builder = [self manageBuilder]; id manageBuilder = ((PNManageMembersAPICallBuilder *)builder).includeFields(PNMemberCustomField); XCTAssertEqual(manageBuilder, builder); } -- (void)testManage_ShouldSetIncludeFields_WhenCalled { +- (void)testItShouldSetIncludeFieldsWhenIncludeFieldsSpecifiedInChain { PNManageMembersAPICallBuilder *builder = [self manageBuilder]; PNMemberFields expected = PNMemberCustomField | PNMemberUserField; @@ -392,20 +496,20 @@ - (void)testManage_ShouldSetIncludeFields_WhenCalled { builder.includeFields(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: fetch :: spaceId -- (void)testFetchSpaceId_ShouldReturnCreateBuilder_WhenCalled { +- (void)testItShouldReturnCreateBuilderWhenSpaceIdSpecifiedInChain { id builder = [self fetchBuilder]; id fetchBuilder = ((PNFetchMembersAPICallBuilder *)builder).spaceId(@"id"); XCTAssertEqual(fetchBuilder, builder); } -- (void)testFetch_ShouldSetSpaceId_WhenNSStringPassed { +- (void)testItShouldSetSpaceIdWhenNSStringPassedAsFetchSpaceId { PNFetchMembersAPICallBuilder *builder = [self fetchBuilder]; NSString *expected = @"OpenID"; @@ -415,10 +519,10 @@ - (void)testFetch_ShouldSetSpaceId_WhenNSStringPassed { builder.spaceId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testFetch_ShouldNotSetSpaceId_WhenEmptyNSStringPassed { +- (void)testItShouldNotSetSpaceIdWhenEmptyNSStringPassedAsFetchSpaceId { PNFetchMembersAPICallBuilder *builder = [self fetchBuilder]; NSString *expected = @""; @@ -428,10 +532,10 @@ - (void)testFetch_ShouldNotSetSpaceId_WhenEmptyNSStringPassed { builder.spaceId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testFetch_ShouldNotSetSpaceId_WhenNonNSStringPassed { +- (void)testItShouldNotSetSpaceIdWhenNonNSStringPassedAsFetchSpaceId { PNFetchMembersAPICallBuilder *builder = [self fetchBuilder]; NSString *expected = (id)@2010; @@ -441,20 +545,118 @@ - (void)testFetch_ShouldNotSetSpaceId_WhenNonNSStringPassed { builder.spaceId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); +} + + +#pragma mark - Tests :: fetch :: filter + +- (void)testItShouldReturnFetchBuilderWhenFilterSpecifiedInChain { + id builder = [self fetchBuilder]; + + id manageBuilder = ((PNFetchMembersAPICallBuilder *)builder).filter(@"custom.name == 'Bob'"); + XCTAssertEqual(manageBuilder, builder); +} + +- (void)testItShouldSetFilterWhenNSStringPassedAsFetchFilter { + PNFetchMembersAPICallBuilder *builder = [self fetchBuilder]; + NSString *expected = @"custom.name like 'Darth*'"; + + + id builderMock = OCMPartialMock(builder); + [self expect:YES mock:builderMock toSetValue:expected toParameter:@"filter"]; + + builder.filter(expected); + + OCMVerifyAll(builderMock); +} + +- (void)testItShouldNotSetFilterWhenEmptyNSStringPassedAsFetchFilter { + PNFetchMembersAPICallBuilder *builder = [self fetchBuilder]; + NSString *expected = @""; + + + id builderMock = OCMPartialMock(builder); + [self expect:NO mock:builderMock toSetValue:expected toParameter:@"filter"]; + + builder.filter(expected); + + OCMVerifyAll(builderMock); +} + +- (void)testItShouldNotSetFilterWhenNonNSStringPassedAsFetchFilter { + PNFetchMembersAPICallBuilder *builder = [self fetchBuilder]; + NSString *expected = (id)@2010; + + + id builderMock = OCMPartialMock(builder); + [self expect:NO mock:builderMock toSetValue:expected toParameter:@"filter"]; + + builder.filter(expected); + + OCMVerifyAll(builderMock); +} + + +#pragma mark - Tests :: fetch :: sort + +- (void)testItShouldReturnFetchBuilderWhenSortSpecifiedInChain { + id builder = [self fetchBuilder]; + + id manageBuilder = ((PNFetchMembersAPICallBuilder *)builder).sort(@[@"name"]); + XCTAssertEqual(manageBuilder, builder); +} + +- (void)testItShouldSetSortWhenNSArrayPassedAsFetchSort { + PNFetchMembersAPICallBuilder *builder = [self fetchBuilder]; + NSArray *expected = @[@"name", @"created:desc"]; + + + id builderMock = OCMPartialMock(builder); + [self expect:YES mock:builderMock toSetValue:expected toParameter:@"sort"]; + + builder.sort(@[@"name", @"created:desc"]); + + OCMVerifyAll(builderMock); +} + +- (void)testItShouldNotSetSortWhenEmptyNSArrayPassedAsFetchSort { + PNFetchMembersAPICallBuilder *builder = [self fetchBuilder]; + NSArray *expected = @[]; + + + id builderMock = OCMPartialMock(builder); + [self expect:NO mock:builderMock toSetValue:expected toParameter:@"sort"]; + + builder.sort(expected); + + OCMVerifyAll(builderMock); +} + +- (void)testItShouldNotSetSortWhenNonNSArrayPassedAsFetchSort { + PNFetchMembersAPICallBuilder *builder = [self fetchBuilder]; + NSArray *expected = (id)@2010; + + + id builderMock = OCMPartialMock(builder); + [self expect:NO mock:builderMock toSetValue:expected toParameter:@"sort"]; + + builder.sort(expected); + + OCMVerifyAll(builderMock); } #pragma mark - Tests :: fetch :: start -- (void)testFetchStart_ShouldReturnFetchBuilder_WhenCalled { +- (void)testItShouldReturnFetchBuilderWhenStartTokenSpecifiedInChain { id builder = [self fetchBuilder]; id fetchBuilder = ((PNFetchMembersAPICallBuilder *)builder).start(@"NjA"); XCTAssertEqual(fetchBuilder, builder); } -- (void)testFetch_ShouldSetStart_WhenNSStringPassed { +- (void)testItShouldSetStartWhenNSStringPassedAsFetchStartToken { PNFetchMembersAPICallBuilder *builder = [self fetchBuilder]; NSString *expected = @"NjA"; @@ -464,10 +666,10 @@ - (void)testFetch_ShouldSetStart_WhenNSStringPassed { builder.start(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testFetch_ShouldNotSetStart_WhenEmptyNSStringPassed { +- (void)testItShouldNotSetStartWhenEmptyNSStringPassedAsFetchStartToken { PNFetchMembersAPICallBuilder *builder = [self fetchBuilder]; NSString *expected = @""; @@ -477,10 +679,10 @@ - (void)testFetch_ShouldNotSetStart_WhenEmptyNSStringPassed { builder.start(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testFetch_ShouldNotSetStart_WhenNonNSStringPassed { +- (void)testItShouldNotSetStartWhenNonNSStringPassedAsFetchStartToken { PNFetchMembersAPICallBuilder *builder = [self fetchBuilder]; NSString *expected = (id)@2010; @@ -490,20 +692,20 @@ - (void)testFetch_ShouldNotSetStart_WhenNonNSStringPassed { builder.start(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: fetch :: end -- (void)testFetchEnd_ShouldReturnFetchBuilder_WhenCalled { +- (void)testFetchEnd_ShouldReturnFetchBuilderWhenEndTokenSpecifiedInChain { id builder = [self fetchBuilder]; id fetchBuilder = ((PNFetchMembersAPICallBuilder *)builder).end(@"NjA"); XCTAssertEqual(fetchBuilder, builder); } -- (void)testFetch_ShouldSetEnd_WhenNSStringPassed { +- (void)testItShouldSetEndWhenNSStringPassedAsFetchEndToken { PNFetchMembersAPICallBuilder *builder = [self fetchBuilder]; NSString *expected = @"NjA"; @@ -513,10 +715,10 @@ - (void)testFetch_ShouldSetEnd_WhenNSStringPassed { builder.end(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testFetch_ShouldNotSetEnd_WhenEmptyNSStringPassed { +- (void)testItShouldNotSetEndWhenEmptyNSStringPassedAsFetchEndToken { PNFetchMembersAPICallBuilder *builder = [self fetchBuilder]; NSString *expected = @""; @@ -526,10 +728,10 @@ - (void)testFetch_ShouldNotSetEnd_WhenEmptyNSStringPassed { builder.end(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testFetch_ShouldNotSetEnd_WhenNonNSStringPassed { +- (void)testItShouldNotSetEndWhenNonNSStringPassedAsFetchEndToken { PNFetchMembersAPICallBuilder *builder = [self fetchBuilder]; NSString *expected = (id)@2010; @@ -539,22 +741,22 @@ - (void)testFetch_ShouldNotSetEnd_WhenNonNSStringPassed { builder.end(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: fetch :: limit -- (void)testFetchLimit_ShouldReturnFetchBuilder_WhenCalled { +- (void)testItShouldReturnFetchBuilderWhenLimitSpecifiedInChain { id builder = [self fetchBuilder]; id fetchBuilder = ((PNFetchMembersAPICallBuilder *)builder).limit(20); XCTAssertEqual(fetchBuilder, builder); } -- (void)testFetch_ShouldSetLimit_WhenCalled { +- (void)testItShouldSetLimitWhenFetchLimitSpecifiedInChain { PNFetchMembersAPICallBuilder *builder = [self fetchBuilder]; - NSNumber *expected = @YES; + NSNumber *expected = @35; id builderMock = OCMPartialMock(builder); @@ -562,20 +764,20 @@ - (void)testFetch_ShouldSetLimit_WhenCalled { builder.limit(35); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: fetch :: includeCount -- (void)testFetchIncludeCount_ShouldReturnFetchBuilder_WhenCalled { +- (void)testItShouldReturnFetchBuilderWhenIncludeCountSpecifiedInChain { id builder = [self fetchBuilder]; id fetchBuilder = ((PNFetchMembersAPICallBuilder *)builder).includeCount(YES); XCTAssertEqual(fetchBuilder, builder); } -- (void)testFetch_ShouldSetIncludeCount_WhenCalled { +- (void)testItShouldSetIncludeCountWhenFetchIncludeCountSpecifiedInChain { PNFetchMembersAPICallBuilder *builder = [self fetchBuilder]; NSNumber *expected = @YES; @@ -583,22 +785,22 @@ - (void)testFetch_ShouldSetIncludeCount_WhenCalled { id builderMock = OCMPartialMock(builder); [self expect:YES mock:builderMock toSetValue:expected toParameter:@"includeCount"]; - builder.includeCount(NO); + builder.includeCount(YES); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: fetch :: includeFields -- (void)testFetchIncludeFields_ShouldReturnFetchBuilder_WhenCalled { +- (void)testItShouldReturnFetchBuilderWhenIncludeFieldsSpecifiedInChain { id builder = [self fetchBuilder]; id fetchBuilder = ((PNFetchMembersAPICallBuilder *)builder).includeFields(PNMemberCustomField); XCTAssertEqual(fetchBuilder, builder); } -- (void)testFetch_ShouldSetIncludeFields_WhenCalled { +- (void)testItShouldSetIncludeFieldsWhenFetchIncludeFieldsSpecifiedInChain { PNFetchMembersAPICallBuilder *builder = [self fetchBuilder]; PNMemberFields expected = PNMemberCustomField | PNMemberUserCustomField; @@ -608,7 +810,7 @@ - (void)testFetch_ShouldSetIncludeFields_WhenCalled { builder.includeFields(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } @@ -632,7 +834,7 @@ - (void)expect:(BOOL)shouldCall mock:(id)mockedObject toSetValue:(id)value toPar if (shouldCall) { OCMExpect([mockedObject setValue:value forParameter:parameter]); } else { - OCMExpect([[mockedObject reject] setValue:value forParameter:parameter]); + OCMReject([mockedObject setValue:value forParameter:parameter]); } } @@ -642,5 +844,6 @@ - (NSString *)mockedParameterFrom:(NSString *)parameter { #pragma mark - +#pragma clang diagnostic pop @end diff --git a/Tests/iOS Tests/Tests/Unit/Core/Interfaces/Objects/PNMembershipsObjectsAPICallBuilderTest.m b/Tests/Tests/Unit/Core/Interfaces/Objects/PNMembershipsObjectsAPICallBuilderTest.m similarity index 57% rename from Tests/iOS Tests/Tests/Unit/Core/Interfaces/Objects/PNMembershipsObjectsAPICallBuilderTest.m rename to Tests/Tests/Unit/Core/Interfaces/Objects/PNMembershipsObjectsAPICallBuilderTest.m index 8c726fc8e..27d8517bb 100644 --- a/Tests/iOS Tests/Tests/Unit/Core/Interfaces/Objects/PNMembershipsObjectsAPICallBuilderTest.m +++ b/Tests/Tests/Unit/Core/Interfaces/Objects/PNMembershipsObjectsAPICallBuilderTest.m @@ -1,7 +1,7 @@ /** - * @author Serhii Mamontov - * @copyright © 2010-2019 PubNub, Inc. - */ +* @author Serhii Mamontov +* @copyright © 2010-2020 PubNub, Inc. +*/ #import #import #import @@ -10,7 +10,7 @@ NS_ASSUME_NONNULL_BEGIN -#pragma mark Test interface declaration +#pragma mark Interface declaration @interface PNMembershipsObjectsAPICallBuilderTest : XCTestCase @@ -30,19 +30,25 @@ - (NSString *)mockedParameterFrom:(NSString *)parameter; NS_ASSUME_NONNULL_END + +#pragma mark - Tests + @implementation PNMembershipsObjectsAPICallBuilderTest +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Warc-retain-cycles" + #pragma mark - Tests :: manage :: userId -- (void)testManageUserId_ShouldReturnManageBuilder_WhenCalled { +- (void)testItShouldReturnManageBuilderWhenUserIdSpecifiedInChain { id builder = [self manageBuilder]; id manageBuilder = ((PNManageMembershipsAPICallBuilder *)builder).userId(@"id"); XCTAssertEqual(manageBuilder, builder); } -- (void)testManage_ShouldSetUserId_WhenNSStringPassed { +- (void)testItShouldSetUserIdWhenNSStringPassedAsManageUserId { PNManageMembershipsAPICallBuilder *builder = [self manageBuilder]; NSString *expected = @"OpenID"; @@ -52,10 +58,10 @@ - (void)testManage_ShouldSetUserId_WhenNSStringPassed { builder.userId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testManage_ShouldNotSetUserId_WhenEmptyNSStringPassed { +- (void)testItShouldNotSetUserIdWhenEmptyNSStringPassedAsManageUserId { PNManageMembershipsAPICallBuilder *builder = [self manageBuilder]; NSString *expected = @""; @@ -65,10 +71,10 @@ - (void)testManage_ShouldNotSetUserId_WhenEmptyNSStringPassed { builder.userId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testManage_ShouldNotSetUserId_WhenNonNSStringPassed { +- (void)testItShouldNotSetUserIdWhenNonNSStringPassedAsManageUserId { PNManageMembershipsAPICallBuilder *builder = [self manageBuilder]; NSString *expected = (id)@2010; @@ -78,20 +84,118 @@ - (void)testManage_ShouldNotSetUserId_WhenNonNSStringPassed { builder.userId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); +} + + +#pragma mark - Tests :: manage :: filter + +- (void)testItShouldReturnManageBuilderWhenFilterSpecifiedInChain { + id builder = [self manageBuilder]; + + id manageBuilder = ((PNManageMembershipsAPICallBuilder *)builder).filter(@"custom.name == 'lobby'"); + XCTAssertEqual(manageBuilder, builder); +} + +- (void)testItShouldSetFilterWhenNSStringPassedAsManageFilter { + PNManageMembershipsAPICallBuilder *builder = [self manageBuilder]; + NSString *expected = @"custom.name like 'secret-*'"; + + + id builderMock = OCMPartialMock(builder); + [self expect:YES mock:builderMock toSetValue:expected toParameter:@"filter"]; + + builder.filter(expected); + + OCMVerifyAll(builderMock); +} + +- (void)testItShouldNotSetFilterWhenEmptyNSStringPassedAsManageFilter { + PNManageMembershipsAPICallBuilder *builder = [self manageBuilder]; + NSString *expected = @""; + + + id builderMock = OCMPartialMock(builder); + [self expect:NO mock:builderMock toSetValue:expected toParameter:@"filter"]; + + builder.filter(expected); + + OCMVerifyAll(builderMock); +} + +- (void)testItShouldNotSetFilterWhenNonNSStringPassedAsManageFilter { + PNManageMembershipsAPICallBuilder *builder = [self manageBuilder]; + NSString *expected = (id)@2010; + + + id builderMock = OCMPartialMock(builder); + [self expect:NO mock:builderMock toSetValue:expected toParameter:@"filter"]; + + builder.filter(expected); + + OCMVerifyAll(builderMock); +} + + +#pragma mark - Tests :: manage :: sort + +- (void)testItShouldReturnManageBuilderWhenSortSpecifiedInChain { + id builder = [self manageBuilder]; + + id manageBuilder = ((PNManageMembershipsAPICallBuilder *)builder).sort(@[@"name"]); + XCTAssertEqual(manageBuilder, builder); +} + +- (void)testItShouldSetFilterWhenNSArrayPassedAsManageSort { + PNManageMembershipsAPICallBuilder *builder = [self manageBuilder]; + NSArray *expected = @[@"name", @"created:desc"]; + + + id builderMock = OCMPartialMock(builder); + [self expect:YES mock:builderMock toSetValue:expected toParameter:@"sort"]; + + builder.sort(expected); + + OCMVerifyAll(builderMock); +} + +- (void)testItShouldNotSetFilterWhenEmptyNSArrayPassedAsManageSort { + PNManageMembershipsAPICallBuilder *builder = [self manageBuilder]; + NSArray *expected = @[]; + + + id builderMock = OCMPartialMock(builder); + [self expect:NO mock:builderMock toSetValue:expected toParameter:@"sort"]; + + builder.sort(expected); + + OCMVerifyAll(builderMock); +} + +- (void)testItShouldNotSetFilterWhenNonNSArrayPassedAsManageSort { + PNManageMembershipsAPICallBuilder *builder = [self manageBuilder]; + NSArray *expected = (id)@2010; + + + id builderMock = OCMPartialMock(builder); + [self expect:NO mock:builderMock toSetValue:expected toParameter:@"sort"]; + + builder.sort(expected); + + OCMVerifyAll(builderMock); } #pragma mark - Tests :: manage :: add -- (void)testManageAdd_ShouldReturnManageBuilder_WhenCalled { +- (void)testItShouldReturnManageBuilderWhenAddSpacesSpecifiedInChain { id builder = [self manageBuilder]; id manageBuilder = ((PNManageMembershipsAPICallBuilder *)builder).add(@[@{ @"id": @"identifier" }]); XCTAssertEqual(manageBuilder, builder); } -- (void)testManage_ShouldSetAdd_WhenNSArrayPassed { +- (void)testItShouldSetAddWhenNSArrayPassedAsManageSpaces { PNManageMembershipsAPICallBuilder *builder = [self manageBuilder]; NSArray *expected = @[@{ @"id": @"identifier" }]; @@ -101,10 +205,10 @@ - (void)testManage_ShouldSetAdd_WhenNSArrayPassed { builder.add(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testManage_ShouldNotSetAdd_WhenEmptyNSArrayPassed { +- (void)testItShouldNotSetAddWhenEmptyNSArrayPassedAsManageSpaces { PNManageMembershipsAPICallBuilder *builder = [self manageBuilder]; NSArray *expected = @[]; @@ -114,10 +218,10 @@ - (void)testManage_ShouldNotSetAdd_WhenEmptyNSArrayPassed { builder.add(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testManage_ShouldNotSetAdd_WhenNonNSArrayPassed { +- (void)testItShouldNotSetAddWhenNonNSArrayPassedAsManageSpaces { PNManageMembershipsAPICallBuilder *builder = [self manageBuilder]; NSArray *expected = (id)@2010; @@ -127,20 +231,20 @@ - (void)testManage_ShouldNotSetAdd_WhenNonNSArrayPassed { builder.add(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: manage :: update -- (void)testManageUpdate_ShouldReturnManageBuilder_WhenCalled { +- (void)testItShouldReturnManageBuilderWhenUpdateSpacesSpecifiedInChain { id builder = [self manageBuilder]; id manageBuilder = ((PNManageMembershipsAPICallBuilder *)builder).update(@[@{ @"id": @"identifier" }]); XCTAssertEqual(manageBuilder, builder); } -- (void)testManage_ShouldSetUpdate_WhenNSArrayPassed { +- (void)testItShouldSetUpdateWhenNSArrayPassedAsManageSpaces { PNManageMembershipsAPICallBuilder *builder = [self manageBuilder]; NSArray *expected = @[@{ @"id": @"identifier" }]; @@ -150,10 +254,10 @@ - (void)testManage_ShouldSetUpdate_WhenNSArrayPassed { builder.update(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testManage_ShouldNotSetUpdate_WhenEmptyNSArrayPassed { +- (void)testItShouldNotSetUpdateWhenEmptyNSArrayPassedAsManageSpaces { PNManageMembershipsAPICallBuilder *builder = [self manageBuilder]; NSArray *expected = @[]; @@ -163,10 +267,10 @@ - (void)testManage_ShouldNotSetUpdate_WhenEmptyNSArrayPassed { builder.update(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testManage_ShouldNotSetUpdate_WhenNonNSArrayPassed { +- (void)testItShouldNotSetUpdateWhenNonNSArrayPassedAsManageSpaces { PNManageMembershipsAPICallBuilder *builder = [self manageBuilder]; NSArray *expected = (id)@2010; @@ -176,20 +280,20 @@ - (void)testManage_ShouldNotSetUpdate_WhenNonNSArrayPassed { builder.update(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: manage :: remove -- (void)testManageRemove_ShouldReturnManageBuilder_WhenCalled { +- (void)testItShouldReturnManageBuilderWhenRemoveSpacesSpecifiedInChain { id builder = [self manageBuilder]; id manageBuilder = ((PNManageMembershipsAPICallBuilder *)builder).remove(@[ @"identifier" ]); XCTAssertEqual(manageBuilder, builder); } -- (void)testManage_ShouldSetRemove_WhenNSArrayPassed { +- (void)testItShouldSetRemoveWhenNSArrayPassedAsManageSpaces { PNManageMembershipsAPICallBuilder *builder = [self manageBuilder]; NSArray *expected = @[ @"identifier" ]; @@ -199,10 +303,10 @@ - (void)testManage_ShouldSetRemove_WhenNSArrayPassed { builder.remove(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testManage_ShouldNotSetRemove_WhenEmptyNSArrayPassed { +- (void)testItShouldNotSetRemoveWhenEmptyNSArrayPassedAsManageSpaces { PNManageMembershipsAPICallBuilder *builder = [self manageBuilder]; NSArray *expected = @[]; @@ -212,10 +316,10 @@ - (void)testManage_ShouldNotSetRemove_WhenEmptyNSArrayPassed { builder.remove(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testManage_ShouldNotSetRemove_WhenNonNSArrayPassed { +- (void)testItShouldNotSetRemoveWhenNonNSArrayPassedAsManageSpaces { PNManageMembershipsAPICallBuilder *builder = [self manageBuilder]; NSArray *expected = (id)@2010; @@ -225,20 +329,20 @@ - (void)testManage_ShouldNotSetRemove_WhenNonNSArrayPassed { builder.remove(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: manage :: start -- (void)testManageStart_ShouldReturnManageBuilder_WhenCalled { +- (void)testItShouldReturnManageBuilderWhenStartTokenSpecifiedInChain { id builder = [self manageBuilder]; id fetchBuilder = ((PNManageMembershipsAPICallBuilder *)builder).start(@"NjA"); XCTAssertEqual(fetchBuilder, builder); } -- (void)testManage_ShouldSetStart_WhenNSStringPassed { +- (void)testItShouldSetStartWhenNSStringPassedAsManageStartToken { PNManageMembershipsAPICallBuilder *builder = [self manageBuilder]; NSString *expected = @"NjA"; @@ -248,10 +352,10 @@ - (void)testManage_ShouldSetStart_WhenNSStringPassed { builder.start(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testManage_ShouldNotSetStart_WhenEmptyNSStringPassed { +- (void)testItShouldNotSetStartWhenEmptyNSStringPassedAsManageStartToken { PNManageMembershipsAPICallBuilder *builder = [self manageBuilder]; NSString *expected = @""; @@ -261,10 +365,10 @@ - (void)testManage_ShouldNotSetStart_WhenEmptyNSStringPassed { builder.start(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testManage_ShouldNotSetStart_WhenNonNSStringPassed { +- (void)testItShouldNotSetStartWhenNonNSStringPassedAsManageStartToken { PNManageMembershipsAPICallBuilder *builder = [self manageBuilder]; NSString *expected = (id)@2010; @@ -274,20 +378,20 @@ - (void)testManage_ShouldNotSetStart_WhenNonNSStringPassed { builder.start(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: manage :: end -- (void)testManageEnd_ShouldReturnManageBuilder_WhenCalled { +- (void)testItShouldReturnManageBuilderWhenEndTokenSpecifiedInChain { id builder = [self manageBuilder]; id manageBuilder = ((PNManageMembershipsAPICallBuilder *)builder).end(@"NjA"); XCTAssertEqual(manageBuilder, builder); } -- (void)testManage_ShouldSetEnd_WhenNSStringPassed { +- (void)testItShouldSetEndWhenNSStringPassedAsManageEndToken { PNManageMembershipsAPICallBuilder *builder = [self manageBuilder]; NSString *expected = @"NjA"; @@ -297,10 +401,10 @@ - (void)testManage_ShouldSetEnd_WhenNSStringPassed { builder.end(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testManage_ShouldNotSetEnd_WhenEmptyNSStringPassed { +- (void)testItShouldNotSetEndWhenEmptyNSStringPassedAsManageEndToken { PNManageMembershipsAPICallBuilder *builder = [self manageBuilder]; NSString *expected = @""; @@ -310,10 +414,10 @@ - (void)testManage_ShouldNotSetEnd_WhenEmptyNSStringPassed { builder.end(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testManage_ShouldNotSetEnd_WhenNonNSStringPassed { +- (void)testItShouldNotSetEndWhenNonNSStringPassedAsManageEndToken { PNManageMembershipsAPICallBuilder *builder = [self manageBuilder]; NSString *expected = (id)@2010; @@ -323,22 +427,22 @@ - (void)testManage_ShouldNotSetEnd_WhenNonNSStringPassed { builder.end(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: manage :: limit -- (void)testManageLimit_ShouldReturnManageBuilder_WhenCalled { +- (void)testItShouldReturnManageBuilderWhenLimitSpecifiedInChain { id builder = [self manageBuilder]; id fetchBuilder = ((PNManageMembershipsAPICallBuilder *)builder).limit(20); XCTAssertEqual(fetchBuilder, builder); } -- (void)testManage_ShouldSetLimit_WhenCalled { +- (void)testItShouldSetLimitWhenManageLimitSpecifiedInChain { PNManageMembershipsAPICallBuilder *builder = [self manageBuilder]; - NSNumber *expected = @YES; + NSNumber *expected = @35; id builderMock = OCMPartialMock(builder); @@ -346,20 +450,20 @@ - (void)testManage_ShouldSetLimit_WhenCalled { builder.limit(35); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: manage :: includeCount -- (void)testManageIncludeCount_ShouldReturnManageBuilder_WhenCalled { +- (void)testItShouldReturnManageBuilderWhenIncludeCountSpecifiedInChain { id builder = [self manageBuilder]; id manageBuilder = ((PNManageMembershipsAPICallBuilder *)builder).includeCount(YES); XCTAssertEqual(manageBuilder, builder); } -- (void)testManage_ShouldSetIncludeCount_WhenCalled { +- (void)testItShouldSetIncludeCountWhenManageIncludeCountSpecifiedInChain { PNManageMembershipsAPICallBuilder *builder = [self manageBuilder]; NSNumber *expected = @YES; @@ -367,22 +471,22 @@ - (void)testManage_ShouldSetIncludeCount_WhenCalled { id builderMock = OCMPartialMock(builder); [self expect:YES mock:builderMock toSetValue:expected toParameter:@"includeCount"]; - builder.includeCount(NO); + builder.includeCount(YES); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: manage :: includeFields -- (void)testManageIncludeFields_ShouldReturnManageBuilder_WhenCalled { +- (void)testItShouldReturnManageBuilderWhenIncludeFieldsSpecifiedInChain { id builder = [self manageBuilder]; id manageBuilder = ((PNManageMembershipsAPICallBuilder *)builder).includeFields(PNMembershipCustomField); XCTAssertEqual(manageBuilder, builder); } -- (void)testManage_ShouldSetIncludeFields_WhenCalled { +- (void)testItShouldSetIncludeFieldsWhenManageIncludeFieldsSpecifiedInChain { PNManageMembershipsAPICallBuilder *builder = [self manageBuilder]; PNMembershipFields expected = PNMembershipCustomField | PNMembershipSpaceField; @@ -392,20 +496,20 @@ - (void)testManage_ShouldSetIncludeFields_WhenCalled { builder.includeFields(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: fetch :: userId -- (void)testFetchUserId_ShouldReturnCreateBuilder_WhenCalled { +- (void)testItShouldReturnFetchBuilderWhenUserIdSpecifiedInChain { id builder = [self fetchBuilder]; id fetchBuilder = ((PNFetchMembershipsAPICallBuilder *)builder).userId(@"id"); XCTAssertEqual(fetchBuilder, builder); } -- (void)testFetch_ShouldSetUserId_WhenNSStringPassed { +- (void)testItShouldSetUserIdWhenNSStringPassedAsFetchUserId { PNFetchMembershipsAPICallBuilder *builder = [self fetchBuilder]; NSString *expected = @"OpenID"; @@ -415,10 +519,10 @@ - (void)testFetch_ShouldSetUserId_WhenNSStringPassed { builder.userId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testFetch_ShouldNotSetUserId_WhenEmptyNSStringPassed { +- (void)testItShouldNotSetUserIdWhenEmptyNSStringPassedAsFetchUserId { PNFetchMembershipsAPICallBuilder *builder = [self fetchBuilder]; NSString *expected = @""; @@ -428,10 +532,10 @@ - (void)testFetch_ShouldNotSetUserId_WhenEmptyNSStringPassed { builder.userId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testFetch_ShouldNotSetUserId_WhenNonNSStringPassed { +- (void)testItShouldNotSetUserIdWhenNonNSStringPassedAsFetchUserId { PNFetchMembershipsAPICallBuilder *builder = [self fetchBuilder]; NSString *expected = (id)@2010; @@ -441,20 +545,118 @@ - (void)testFetch_ShouldNotSetUserId_WhenNonNSStringPassed { builder.userId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); +} + + +#pragma mark - Tests :: fetch :: filter + +- (void)testItShouldReturnFetchBuilderWhenFilterSpecifiedInChain { + id builder = [self fetchBuilder]; + + id manageBuilder = ((PNFetchMembershipsAPICallBuilder *)builder).filter(@"custom.name == 'lobby'"); + XCTAssertEqual(manageBuilder, builder); +} + +- (void)testItShouldSetFilterWhenNSStringPassedAsFetchFilter { + PNFetchMembershipsAPICallBuilder *builder = [self fetchBuilder]; + NSString *expected = @"custom.name like 'secret-*'"; + + + id builderMock = OCMPartialMock(builder); + [self expect:YES mock:builderMock toSetValue:expected toParameter:@"filter"]; + + builder.filter(expected); + + OCMVerifyAll(builderMock); +} + +- (void)testItShouldNotSetFilterWhenEmptyNSStringPassedAsFetchFilter { + PNFetchMembershipsAPICallBuilder *builder = [self fetchBuilder]; + NSString *expected = @""; + + + id builderMock = OCMPartialMock(builder); + [self expect:NO mock:builderMock toSetValue:expected toParameter:@"filter"]; + + builder.filter(expected); + + OCMVerifyAll(builderMock); +} + +- (void)testItShouldNotSetFilterWhenNonNSStringPassedAsFetchFilter { + PNFetchMembershipsAPICallBuilder *builder = [self fetchBuilder]; + NSString *expected = (id)@2010; + + + id builderMock = OCMPartialMock(builder); + [self expect:NO mock:builderMock toSetValue:expected toParameter:@"filter"]; + + builder.filter(expected); + + OCMVerifyAll(builderMock); +} + + +#pragma mark - Tests :: fetch :: sort + +- (void)testItShouldReturnFetchBuilderWhenSortSpecifiedInChain { + id builder = [self fetchBuilder]; + + id manageBuilder = ((PNFetchMembershipsAPICallBuilder *)builder).sort(@[@"name"]); + XCTAssertEqual(manageBuilder, builder); +} + +- (void)testItShouldSetSortWhenNSArrayPassedAsFetchSort { + PNFetchMembershipsAPICallBuilder *builder = [self fetchBuilder]; + NSArray *expected = @[@"name", @"created:desc"]; + + + id builderMock = OCMPartialMock(builder); + [self expect:YES mock:builderMock toSetValue:expected toParameter:@"sort"]; + + builder.sort(expected); + + OCMVerifyAll(builderMock); +} + +- (void)testItShouldNotSetSortWhenEmptyNSArrayPassedAsFetchSort { + PNFetchMembershipsAPICallBuilder *builder = [self fetchBuilder]; + NSArray *expected = @[]; + + + id builderMock = OCMPartialMock(builder); + [self expect:NO mock:builderMock toSetValue:expected toParameter:@"sort"]; + + builder.sort(expected); + + OCMVerifyAll(builderMock); +} + +- (void)testItShouldNotSetSortWhenNonNSArrayPassedAsFetchSort { + PNFetchMembershipsAPICallBuilder *builder = [self fetchBuilder]; + NSArray *expected = (id)@2010; + + + id builderMock = OCMPartialMock(builder); + [self expect:NO mock:builderMock toSetValue:expected toParameter:@"sort"]; + + builder.sort(expected); + + OCMVerifyAll(builderMock); } #pragma mark - Tests :: fetch :: start -- (void)testFetchStart_ShouldReturnFetchBuilder_WhenCalled { +- (void)testItShouldReturnFetchBuilderWhenStartTokenSpecifiedInChain { id builder = [self fetchBuilder]; id fetchBuilder = ((PNFetchMembershipsAPICallBuilder *)builder).start(@"NjA"); XCTAssertEqual(fetchBuilder, builder); } -- (void)testFetch_ShouldSetStart_WhenNSStringPassed { +- (void)testItShouldSetStartWhenNSStringPassedAsFetchStartToken { PNFetchMembershipsAPICallBuilder *builder = [self fetchBuilder]; NSString *expected = @"NjA"; @@ -464,10 +666,10 @@ - (void)testFetch_ShouldSetStart_WhenNSStringPassed { builder.start(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testFetch_ShouldNotSetStart_WhenEmptyNSStringPassed { +- (void)testItShouldNotSetStartWhenEmptyNSStringPassedAsFetchStartToken { PNFetchMembershipsAPICallBuilder *builder = [self fetchBuilder]; NSString *expected = @""; @@ -477,10 +679,10 @@ - (void)testFetch_ShouldNotSetStart_WhenEmptyNSStringPassed { builder.start(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testFetch_ShouldNotSetStart_WhenNonNSStringPassed { +- (void)testItShouldNotSetStartWhenNonNSStringPassedAsFetchStartToken { PNFetchMembershipsAPICallBuilder *builder = [self fetchBuilder]; NSString *expected = (id)@2010; @@ -490,20 +692,20 @@ - (void)testFetch_ShouldNotSetStart_WhenNonNSStringPassed { builder.start(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: fetch :: end -- (void)testFetchEnd_ShouldReturnFetchBuilder_WhenCalled { +- (void)testItShouldReturnFetchBuilderWhenEndTokenSpecifiedInChain { id builder = [self fetchBuilder]; id fetchBuilder = ((PNFetchMembershipsAPICallBuilder *)builder).end(@"NjA"); XCTAssertEqual(fetchBuilder, builder); } -- (void)testFetch_ShouldSetEnd_WhenNSStringPassed { +- (void)testItShouldSetEndWhenNSStringPassedAsFetchEndToken { PNFetchMembershipsAPICallBuilder *builder = [self fetchBuilder]; NSString *expected = @"NjA"; @@ -513,10 +715,10 @@ - (void)testFetch_ShouldSetEnd_WhenNSStringPassed { builder.end(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testFetch_ShouldNotSetEnd_WhenEmptyNSStringPassed { +- (void)testItShouldNotSetEndWhenEmptyNSStringPassedAsFetchEndToken { PNFetchMembershipsAPICallBuilder *builder = [self fetchBuilder]; NSString *expected = @""; @@ -526,10 +728,10 @@ - (void)testFetch_ShouldNotSetEnd_WhenEmptyNSStringPassed { builder.end(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testFetch_ShouldNotSetEnd_WhenNonNSStringPassed { +- (void)testItShouldNotSetEndWhenNonNSStringPassedAsFetchEndToken { PNFetchMembershipsAPICallBuilder *builder = [self fetchBuilder]; NSString *expected = (id)@2010; @@ -539,22 +741,22 @@ - (void)testFetch_ShouldNotSetEnd_WhenNonNSStringPassed { builder.end(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: fetch :: limit -- (void)testFetchLimit_ShouldReturnFetchBuilder_WhenCalled { +- (void)testItShouldReturnFetchBuilderWhenLimitTokenSpecifiedInChain { id builder = [self fetchBuilder]; id fetchBuilder = ((PNFetchMembershipsAPICallBuilder *)builder).limit(20); XCTAssertEqual(fetchBuilder, builder); } -- (void)testFetch_ShouldSetLimit_WhenCalled { +- (void)testItShouldSetLimitWhenFetchLimitSpecifiedInChain { PNFetchMembershipsAPICallBuilder *builder = [self fetchBuilder]; - NSNumber *expected = @YES; + NSNumber *expected = @35; id builderMock = OCMPartialMock(builder); @@ -562,20 +764,20 @@ - (void)testFetch_ShouldSetLimit_WhenCalled { builder.limit(35); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: fetch :: includeCount -- (void)testFetchIncludeCount_ShouldReturnFetchBuilder_WhenCalled { +- (void)testItShouldReturnFetchBuilderWhenFetchIncludeCountSpecifiedInChain { id builder = [self fetchBuilder]; id fetchBuilder = ((PNFetchMembershipsAPICallBuilder *)builder).includeCount(YES); XCTAssertEqual(fetchBuilder, builder); } -- (void)testFetch_ShouldSetIncludeCount_WhenCalled { +- (void)testItShouldSetIncludeCountWhenFetchIncludeCountSpecifiedInChain { PNFetchMembershipsAPICallBuilder *builder = [self fetchBuilder]; NSNumber *expected = @YES; @@ -583,22 +785,22 @@ - (void)testFetch_ShouldSetIncludeCount_WhenCalled { id builderMock = OCMPartialMock(builder); [self expect:YES mock:builderMock toSetValue:expected toParameter:@"includeCount"]; - builder.includeCount(NO); + builder.includeCount(YES); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: fetch :: includeFields -- (void)testFetchIncludeFields_ShouldReturnFetchBuilder_WhenCalled { +- (void)testItShouldReturnFetchBuilderWhenFetchIncludeFieldsSpecifiedInChain { id builder = [self fetchBuilder]; id fetchBuilder = ((PNFetchMembershipsAPICallBuilder *)builder).includeFields(PNMembershipCustomField); XCTAssertEqual(fetchBuilder, builder); } -- (void)testFetch_ShouldSetIncludeFields_WhenCalled { +- (void)testItShouldSetIncludeFieldsWhenFetchIncludeFieldsSpecifiedInChain { PNFetchMembershipsAPICallBuilder *builder = [self fetchBuilder]; PNMembershipFields expected = PNMembershipCustomField | PNMembershipSpaceCustomField; @@ -608,7 +810,7 @@ - (void)testFetch_ShouldSetIncludeFields_WhenCalled { builder.includeFields(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } @@ -632,7 +834,7 @@ - (void)expect:(BOOL)shouldCall mock:(id)mockedObject toSetValue:(id)value toPar if (shouldCall) { OCMExpect([mockedObject setValue:value forParameter:parameter]); } else { - OCMExpect([[mockedObject reject] setValue:value forParameter:parameter]); + OCMReject([mockedObject setValue:value forParameter:parameter]); } } @@ -642,5 +844,6 @@ - (NSString *)mockedParameterFrom:(NSString *)parameter { #pragma mark - +#pragma clang diagnostic pop @end diff --git a/Tests/iOS Tests/Tests/Unit/Core/Interfaces/Objects/PNSpaceObjectsAPICallBuilderTest.m b/Tests/Tests/Unit/Core/Interfaces/Objects/PNSpaceObjectsAPICallBuilderTest.m similarity index 67% rename from Tests/iOS Tests/Tests/Unit/Core/Interfaces/Objects/PNSpaceObjectsAPICallBuilderTest.m rename to Tests/Tests/Unit/Core/Interfaces/Objects/PNSpaceObjectsAPICallBuilderTest.m index 8723b6d85..f6f507808 100644 --- a/Tests/iOS Tests/Tests/Unit/Core/Interfaces/Objects/PNSpaceObjectsAPICallBuilderTest.m +++ b/Tests/Tests/Unit/Core/Interfaces/Objects/PNSpaceObjectsAPICallBuilderTest.m @@ -1,7 +1,7 @@ /** - * @author Serhii Mamontov - * @copyright © 2010-2019 PubNub, Inc. - */ +* @author Serhii Mamontov +* @copyright © 2010-2020 PubNub, Inc. +*/ #import #import #import @@ -10,7 +10,7 @@ NS_ASSUME_NONNULL_BEGIN -#pragma mark Test interface declaration +#pragma mark Interface declaration @interface PNSpaceObjectsAPICallBuilderTest : XCTestCase @@ -34,19 +34,24 @@ - (NSString *)mockedParameterFrom:(NSString *)parameter; NS_ASSUME_NONNULL_END +#pragma mark - Tests + @implementation PNSpaceObjectsAPICallBuilderTest +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Warc-retain-cycles" + #pragma mark - Tests :: create :: spaceId -- (void)testCreateSpaceId_ShouldReturnCreateBuilder_WhenCalled { +- (void)testItShouldReturnCreateBuilderWhenSpaceIdSpecifiedInChain { id builder = [self createBuilder]; id createBuilder = ((PNCreateSpaceAPICallBuilder *)builder).spaceId(@"id"); XCTAssertEqual(createBuilder, builder); } -- (void)testCreate_ShouldSetSpaceId_WhenNSStringPassed { +- (void)testItShouldSetSpaceIdWhenNSStringPassedAsCreateSpaceId { PNCreateSpaceAPICallBuilder *builder = [self createBuilder]; NSString *expected = @"OpenID"; @@ -56,10 +61,10 @@ - (void)testCreate_ShouldSetSpaceId_WhenNSStringPassed { builder.spaceId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testCreate_ShouldNotSetSpaceId_WhenEmptyNSStringPassed { +- (void)testItShouldNotSetSpaceIdWhenEmptyNSStringPassedAsCreateSpaceId { PNCreateSpaceAPICallBuilder *builder = [self createBuilder]; NSString *expected = @""; @@ -67,12 +72,12 @@ - (void)testCreate_ShouldNotSetSpaceId_WhenEmptyNSStringPassed { id builderMock = OCMPartialMock(builder); [self expect:NO mock:builderMock toSetValue:expected toParameter:@"spaceId"]; - builder.spaceId(expected); + ((PNCreateSpaceAPICallBuilder *)builderMock).spaceId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testCreate_ShouldNotSetSpaceId_WhenNonNSStringPassed { +- (void)testItShouldNotSetSpaceIdWhenNonNSStringPassedAsCreateSpaceId { PNCreateSpaceAPICallBuilder *builder = [self createBuilder]; NSString *expected = (id)@2010; @@ -82,20 +87,20 @@ - (void)testCreate_ShouldNotSetSpaceId_WhenNonNSStringPassed { builder.spaceId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: create :: information -- (void)testCreateInformation_ShouldReturnCreateBuilder_WhenCalled { +- (void)testItShouldReturnCreateBuilderWhenInformationSpecifiedInChain { id builder = [self createBuilder]; id createBuilder = ((PNCreateSpaceAPICallBuilder *)builder).information(@"Test space"); XCTAssertEqual(createBuilder, builder); } -- (void)testCreate_ShouldSetInformation_WhenNSStringPassed { +- (void)testItShouldSetInformationWhenNSStringPassedAsCreateInformation { PNCreateSpaceAPICallBuilder *builder = [self createBuilder]; NSString *expected = @"Test information"; @@ -105,10 +110,10 @@ - (void)testCreate_ShouldSetInformation_WhenNSStringPassed { builder.information(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testCreate_ShouldNotSetInformation_WhenEmptyNSStringPassed { +- (void)testItShouldNotSetInformationWhenEmptyNSStringPassedAsCreateInformation { PNCreateSpaceAPICallBuilder *builder = [self createBuilder]; NSString *expected = @""; @@ -118,10 +123,10 @@ - (void)testCreate_ShouldNotSetInformation_WhenEmptyNSStringPassed { builder.information(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testCreate_ShouldNotSetInformation_WhenNonNSStringPassed { +- (void)testItShouldNotSetInformationWhenNonNSStringPassedAsCreateInformation { PNCreateSpaceAPICallBuilder *builder = [self createBuilder]; NSString *expected = (id)@2010; @@ -131,20 +136,20 @@ - (void)testCreate_ShouldNotSetInformation_WhenNonNSStringPassed { builder.information(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: create :: custom -- (void)testCreateCustom_ShouldReturnCreateBuilder_WhenCalled { +- (void)testItShouldReturnCreateBuilderWhenCustomSpecifiedInChain { id builder = [self createBuilder]; id createBuilder = ((PNCreateSpaceAPICallBuilder *)builder).custom(@{ @"company": @"PubNub" }); XCTAssertEqual(createBuilder, builder); } -- (void)testCreate_ShouldSetCustom_WhenNSDictionaryPassed { +- (void)testItShouldSetCustomWhenNSDictionaryPassedAsCreateCustom { PNCreateSpaceAPICallBuilder *builder = [self createBuilder]; NSDictionary *expected = @{ @"company": @"PubNub" }; @@ -154,10 +159,10 @@ - (void)testCreate_ShouldSetCustom_WhenNSDictionaryPassed { builder.custom(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testCreate_ShouldNotSetCustom_WhenEmptyNSDictionaryPassed { +- (void)testItShouldNotSetCustomWhenEmptyNSDictionaryPassedAsCreateCustom { PNCreateSpaceAPICallBuilder *builder = [self createBuilder]; NSDictionary *expected = @{}; @@ -167,10 +172,10 @@ - (void)testCreate_ShouldNotSetCustom_WhenEmptyNSDictionaryPassed { builder.custom(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testCreate_ShouldNotSetCustom_WhenNonNSDictionaryPassed { +- (void)testItShouldNotSetCustomWhenNonNSDictionaryPassedAsCreateCustom { PNCreateSpaceAPICallBuilder *builder = [self createBuilder]; NSDictionary *expected = (id)@2010; @@ -180,20 +185,20 @@ - (void)testCreate_ShouldNotSetCustom_WhenNonNSDictionaryPassed { builder.custom(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: create :: includeFields -- (void)testCreateIncludeFields_ShouldReturnCreateBuilder_WhenCalled { +- (void)testItShouldReturnCreateBuilderWhenIncludeFieldsSpecifiedInChain { id builder = [self createBuilder]; id createBuilder = ((PNCreateSpaceAPICallBuilder *)builder).includeFields(PNSpaceCustomField); XCTAssertEqual(createBuilder, builder); } -- (void)testCreate_ShouldSetIncludeFields_WhenCalled { +- (void)testItShouldSetIncludeFieldsWhenCreateIncludeFieldsSpecifiedInChain { PNCreateSpaceAPICallBuilder *builder = [self createBuilder]; PNSpaceFields expected = PNSpaceCustomField; @@ -203,20 +208,20 @@ - (void)testCreate_ShouldSetIncludeFields_WhenCalled { builder.includeFields(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: update :: spaceId -- (void)testUpdateSpaceId_ShouldReturnUpdateBuilder_WhenCalled { +- (void)testItShouldReturnUpdateBuilderWhenSpaceIdSpecifiedInChain { id builder = [self updateBuilder]; id createBuilder = ((PNUpdateSpaceAPICallBuilder *)builder).spaceId(@"id"); XCTAssertEqual(createBuilder, builder); } -- (void)testUpdate_ShouldSetSpaceId_WhenNSStringPassed { +- (void)testItShouldSetSpaceIdWhenNSStringPassedAsUpdateSpaceId { PNUpdateSpaceAPICallBuilder *builder = [self updateBuilder]; NSString *expected = @"OpenID"; @@ -226,10 +231,10 @@ - (void)testUpdate_ShouldSetSpaceId_WhenNSStringPassed { builder.spaceId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testUpdate_ShouldNotSetSpaceId_WhenEmptyNSStringPassed { +- (void)testItShouldNotSetSpaceIdWhenEmptyNSStringPassedAsUpdateSpaceId { PNUpdateSpaceAPICallBuilder *builder = [self updateBuilder]; NSString *expected = @""; @@ -239,10 +244,10 @@ - (void)testUpdate_ShouldNotSetSpaceId_WhenEmptyNSStringPassed { builder.spaceId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testUpdate_ShouldNotSetSpaceId_WhenNonNSStringPassed { +- (void)testItShouldNotSetSpaceIdWhenNonNSStringPassedAsUpdateSpaceId { PNUpdateSpaceAPICallBuilder *builder = [self updateBuilder]; NSString *expected = (id)@2010; @@ -252,20 +257,20 @@ - (void)testUpdate_ShouldNotSetSpaceId_WhenNonNSStringPassed { builder.spaceId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: update :: name -- (void)testUpdateName_ShouldReturnUpdateBuilder_WhenCalled { +- (void)testItShouldReturnUpdateBuilderWhenNameSpecifiedInChain { id builder = [self updateBuilder]; id updateBuilder = ((PNUpdateSpaceAPICallBuilder *)builder).name(@"PubNub"); XCTAssertEqual(updateBuilder, builder); } -- (void)testUpdate_ShouldSetName_WhenNSStringPassed { +- (void)testItShouldSetNameWhenNSStringPassedAsUpdateName { PNUpdateSpaceAPICallBuilder *builder = [self updateBuilder]; NSString *expected = @"PubNub"; @@ -275,10 +280,10 @@ - (void)testUpdate_ShouldSetName_WhenNSStringPassed { builder.name(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testUpdate_ShouldNotName_WhenEmptyNSStringPassed { +- (void)testItShouldNotNameWhenEmptyNSStringPassedAsUpdateName { PNUpdateSpaceAPICallBuilder *builder = [self updateBuilder]; NSString *expected = @""; @@ -288,10 +293,10 @@ - (void)testUpdate_ShouldNotName_WhenEmptyNSStringPassed { builder.name(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testUpdate_ShouldNotName_WhenNonNSStringPassed { +- (void)testItShouldNotNameWhenNonNSStringPassedAsUpdateName { PNUpdateSpaceAPICallBuilder *builder = [self updateBuilder]; NSString *expected = (id)@2010; @@ -301,20 +306,20 @@ - (void)testUpdate_ShouldNotName_WhenNonNSStringPassed { builder.name(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: update :: information -- (void)testUpdateInformation_ShouldReturnUpdateBuilder_WhenCalled { +- (void)testItShouldReturnUpdateBuilderWhenInformationSpecifiedInChain { id builder = [self updateBuilder]; id updateBuilder = ((PNUpdateSpaceAPICallBuilder *)builder).information(@"Test information"); XCTAssertEqual(updateBuilder, builder); } -- (void)testUpdate_ShouldSetInformation_WhenNSStringPassed { +- (void)testItShouldSetInformationWhenNSStringPassedAsUpdateInformation { PNUpdateSpaceAPICallBuilder *builder = [self updateBuilder]; NSString *expected = @"Test information"; @@ -324,10 +329,10 @@ - (void)testUpdate_ShouldSetInformation_WhenNSStringPassed { builder.information(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testUpdate_ShouldNotSetInformation_WhenEmptyNSStringPassed { +- (void)testItShouldNotSetInformationWhenEmptyNSStringPassedAsUpdateInformation { PNUpdateSpaceAPICallBuilder *builder = [self updateBuilder]; NSString *expected = @""; @@ -337,10 +342,10 @@ - (void)testUpdate_ShouldNotSetInformation_WhenEmptyNSStringPassed { builder.information(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testUpdate_ShouldNotSetInformation_WhenNonNSStringPassed { +- (void)testItShouldNotSetInformationWhenNonNSStringPassedAsUpdateInformation { PNUpdateSpaceAPICallBuilder *builder = [self updateBuilder]; NSString *expected = (id)@2010; @@ -350,20 +355,20 @@ - (void)testUpdate_ShouldNotSetInformation_WhenNonNSStringPassed { builder.information(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: update :: custom -- (void)testUpdateCustom_ShouldReturnUpdateBuilder_WhenCalled { +- (void)testItShouldReturnUpdateBuilderWhenCustomSpecifiedInChain { id builder = [self updateBuilder]; id updateBuilder = ((PNUpdateSpaceAPICallBuilder *)builder).custom(@{ @"company": @"PubNub" }); XCTAssertEqual(updateBuilder, builder); } -- (void)testUpdate_ShouldSetCustom_WhenNSDictionaryPassed { +- (void)testItShouldSetCustomWhenNSDictionaryPassedAsUpdateCustom { PNUpdateSpaceAPICallBuilder *builder = [self updateBuilder]; NSDictionary *expected = @{ @"company": @"PubNub" }; @@ -373,10 +378,10 @@ - (void)testUpdate_ShouldSetCustom_WhenNSDictionaryPassed { builder.custom(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testUpdate_ShouldNotSetCustom_WhenEmptyNSDictionaryPassed { +- (void)testItShouldNotSetCustomWhenEmptyNSDictionaryPassedAsUpdateCustom { PNUpdateSpaceAPICallBuilder *builder = [self updateBuilder]; NSDictionary *expected = @{}; @@ -386,10 +391,10 @@ - (void)testUpdate_ShouldNotSetCustom_WhenEmptyNSDictionaryPassed { builder.custom(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testUpdate_ShouldNotSetCustom_WhenNonNSDictionaryPassed { +- (void)testItShouldNotSetCustomWhenNonNSDictionaryPassedAsUpdateCustom { PNUpdateSpaceAPICallBuilder *builder = [self updateBuilder]; NSDictionary *expected = (id)@2010; @@ -399,20 +404,20 @@ - (void)testUpdate_ShouldNotSetCustom_WhenNonNSDictionaryPassed { builder.custom(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: update :: includeFields -- (void)testUpdateIncludeFields_ShouldReturnCreateBuilder_WhenCalled { +- (void)testItShouldReturnUpdateBuilderWhenIncludeFieldsSpecifiedInChain { id builder = [self updateBuilder]; id updateBuilder = ((PNUpdateSpaceAPICallBuilder *)builder).includeFields(PNSpaceCustomField); XCTAssertEqual(updateBuilder, builder); } -- (void)testUpdate_ShouldSetIncludeFields_WhenCalled { +- (void)testItShouldSetIncludeFieldsWhenUpdateIncludeFieldsSpecifiedInChain { PNUpdateSpaceAPICallBuilder *builder = [self updateBuilder]; PNSpaceFields expected = PNSpaceCustomField; @@ -422,20 +427,20 @@ - (void)testUpdate_ShouldSetIncludeFields_WhenCalled { builder.includeFields(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: delete :: spaceId -- (void)testDeleteSpaceId_ShouldReturnUpdateBuilder_WhenCalled { +- (void)testItShouldReturnDeleteBuilderWhenSpaceIdSpecifiedInChain { id builder = [self deleteBuilder]; id createBuilder = ((PNDeleteSpaceAPICallBuilder *)builder).spaceId(@"id"); XCTAssertEqual(createBuilder, builder); } -- (void)testDelete_ShouldSetSpaceId_WhenNSStringPassed { +- (void)testItShouldSetSpaceIdWhenNSStringPassedAsDeleteSpaceId { PNDeleteSpaceAPICallBuilder *builder = [self deleteBuilder]; NSString *expected = @"OpenID"; @@ -445,10 +450,10 @@ - (void)testDelete_ShouldSetSpaceId_WhenNSStringPassed { builder.spaceId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testDelete_ShouldNotSetSpaceId_WhenEmptyNSStringPassed { +- (void)testItShouldNotSetSpaceIdWhenEmptyNSStringPassedAsDeleteSpaceId { PNDeleteSpaceAPICallBuilder *builder = [self deleteBuilder]; NSString *expected = @""; @@ -458,10 +463,10 @@ - (void)testDelete_ShouldNotSetSpaceId_WhenEmptyNSStringPassed { builder.spaceId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testDelete_ShouldNotSetSpaceId_WhenNonNSStringPassed { +- (void)testItShouldNotSetSpaceIdWhenNonNSStringPassedAsDeleteSpaceId { PNDeleteSpaceAPICallBuilder *builder = [self deleteBuilder]; NSString *expected = (id)@2010; @@ -471,20 +476,20 @@ - (void)testDelete_ShouldNotSetSpaceId_WhenNonNSStringPassed { builder.spaceId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: fetch :: spaceId -- (void)testFetchSpaceId_ShouldReturnUpdateBuilder_WhenCalled { +- (void)testItShouldReturnFetchBuilderWhenSpaceIdSpecifiedInChain { id builder = [self fetchBuilder]; id createBuilder = ((PNFetchSpaceAPICallBuilder *)builder).spaceId(@"id"); XCTAssertEqual(createBuilder, builder); } -- (void)testFetch_ShouldSetSpaceId_WhenNSStringPassed { +- (void)testItShouldSetSpaceIdWhenNSStringPassedAsFetchSpaceId { PNFetchSpaceAPICallBuilder *builder = [self fetchBuilder]; NSString *expected = @"OpenID"; @@ -494,10 +499,10 @@ - (void)testFetch_ShouldSetSpaceId_WhenNSStringPassed { builder.spaceId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testFetch_ShouldNotSetSpaceId_WhenEmptyNSStringPassed { +- (void)testItShouldNotSetSpaceIdWhenEmptyNSStringPassedAsFetchSpaceId { PNFetchSpaceAPICallBuilder *builder = [self fetchBuilder]; NSString *expected = @""; @@ -507,10 +512,10 @@ - (void)testFetch_ShouldNotSetSpaceId_WhenEmptyNSStringPassed { builder.spaceId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testFetch_ShouldNotSetSpaceId_WhenNonNSStringPassed { +- (void)testItShouldNotSetSpaceIdWhenNonNSStringPassedAsFetchSpaceId { PNFetchSpaceAPICallBuilder *builder = [self fetchBuilder]; NSString *expected = (id)@2010; @@ -520,20 +525,20 @@ - (void)testFetch_ShouldNotSetSpaceId_WhenNonNSStringPassed { builder.spaceId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: fetch :: includeFields -- (void)testFetchIncludeFields_ShouldReturnCreateBuilder_WhenCalled { +- (void)testItShouldReturnFetchBuilderWhenIncludeFieldsSpecifiedInChain { id builder = [self fetchBuilder]; id fetchBuilder = ((PNFetchSpaceAPICallBuilder *)builder).includeFields(PNSpaceCustomField); XCTAssertEqual(fetchBuilder, builder); } -- (void)testFetch_ShouldSetIncludeFields_WhenCalled { +- (void)testItShouldSetIncludeFieldsWhenFetchIncludeFieldsSpecifiedInChain { PNFetchSpaceAPICallBuilder *builder = [self fetchBuilder]; PNSpaceFields expected = PNSpaceCustomField; @@ -543,20 +548,118 @@ - (void)testFetch_ShouldSetIncludeFields_WhenCalled { builder.includeFields(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); +} + + +#pragma mark - Tests :: fetch all :: filter + +- (void)testItShouldReturnFetchBuilderWhenFilterSpecifiedInChain { + id builder = [self fetchAllBuilder]; + + id manageBuilder = ((PNFetchSpacesAPICallBuilder *)builder).filter(@"name == 'Public'"); + XCTAssertEqual(manageBuilder, builder); +} + +- (void)testItShouldSetFilterWhenNSStringPassedAsFetchAllFilter { + PNFetchSpacesAPICallBuilder *builder = [self fetchAllBuilder]; + NSString *expected = @"name like 'Program*'"; + + + id builderMock = OCMPartialMock(builder); + [self expect:YES mock:builderMock toSetValue:expected toParameter:@"filter"]; + + builder.filter(expected); + + OCMVerifyAll(builderMock); +} + +- (void)testItShouldNotSetFilterWhenEmptyNSStringPassedAsFetchAllFilter { + PNFetchSpacesAPICallBuilder *builder = [self fetchAllBuilder]; + NSString *expected = @""; + + + id builderMock = OCMPartialMock(builder); + [self expect:NO mock:builderMock toSetValue:expected toParameter:@"filter"]; + + builder.filter(expected); + + OCMVerifyAll(builderMock); +} + +- (void)testItShouldNotSetFilterWhenNonNSStringPassedAsFetchAllFilter { + PNFetchSpacesAPICallBuilder *builder = [self fetchAllBuilder]; + NSString *expected = (id)@2010; + + + id builderMock = OCMPartialMock(builder); + [self expect:NO mock:builderMock toSetValue:expected toParameter:@"filter"]; + + builder.filter(expected); + + OCMVerifyAll(builderMock); +} + + +#pragma mark - Tests :: fetch all :: sort + +- (void)testItShouldReturnFetchBuilderWhenSortSpecifiedInChain { + id builder = [self fetchAllBuilder]; + + id manageBuilder = ((PNFetchSpacesAPICallBuilder *)builder).sort(@[@"name"]); + XCTAssertEqual(manageBuilder, builder); +} + +- (void)testItShouldSetSortWhenNSArrayPassedAsFetchAllSort { + PNFetchSpacesAPICallBuilder *builder = [self fetchAllBuilder]; + NSArray *expected = @[@"name", @"created:desc"]; + + + id builderMock = OCMPartialMock(builder); + [self expect:YES mock:builderMock toSetValue:expected toParameter:@"sort"]; + + builder.sort(expected); + + OCMVerifyAll(builderMock); +} + +- (void)testItShouldNotSetSortWhenEmptyNSArrayPassedAsFetchAllSort { + PNFetchSpacesAPICallBuilder *builder = [self fetchAllBuilder]; + NSArray *expected = @[]; + + + id builderMock = OCMPartialMock(builder); + [self expect:NO mock:builderMock toSetValue:expected toParameter:@"sort"]; + + builder.sort(expected); + + OCMVerifyAll(builderMock); +} + +- (void)testItShouldNotSetSortWhenNonNSArrayPassedAsFetchAllSort { + PNFetchSpacesAPICallBuilder *builder = [self fetchAllBuilder]; + NSArray *expected = (id)@2010; + + + id builderMock = OCMPartialMock(builder); + [self expect:NO mock:builderMock toSetValue:expected toParameter:@"sort"]; + + builder.sort(expected); + + OCMVerifyAll(builderMock); } #pragma mark - Tests :: fetch all :: start -- (void)testFetchAllStart_ShouldReturnFetchAllBuilder_WhenCalled { +- (void)testItShouldReturnFetchAllBuilderWhenStartTokenSpecifiedInChain { id builder = [self fetchAllBuilder]; id fetchBuilder = ((PNFetchSpacesAPICallBuilder *)builder).start(@"NjA"); XCTAssertEqual(fetchBuilder, builder); } -- (void)testFetchAll_ShouldSetStart_WhenNSStringPassed { +- (void)testItShouldSetStartWhenNSStringPassedAsFetchAllStartToken { PNFetchSpacesAPICallBuilder *builder = [self fetchAllBuilder]; NSString *expected = @"NjA"; @@ -566,10 +669,10 @@ - (void)testFetchAll_ShouldSetStart_WhenNSStringPassed { builder.start(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testFetchAll_ShouldNotSetStart_WhenEmptyNSStringPassed { +- (void)testItShouldNotSetStartWhenEmptyNSStringPassedAsFetchAllStartToken { PNFetchSpacesAPICallBuilder *builder = [self fetchAllBuilder]; NSString *expected = @""; @@ -579,10 +682,10 @@ - (void)testFetchAll_ShouldNotSetStart_WhenEmptyNSStringPassed { builder.start(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testFetchAll_ShouldNotSetStart_WhenNonNSStringPassed { +- (void)testItShouldNotSetStartWhenNonNSStringPassedAsFetchAllStartToken { PNFetchSpacesAPICallBuilder *builder = [self fetchAllBuilder]; NSString *expected = (id)@2010; @@ -592,20 +695,20 @@ - (void)testFetchAll_ShouldNotSetStart_WhenNonNSStringPassed { builder.start(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: fetch all :: end -- (void)testFetchAllEnd_ShouldReturnFetchAllBuilder_WhenCalled { +- (void)testItShouldReturnFetchAllBuilderWhenEndTokenSpecifiedInChain { id builder = [self fetchAllBuilder]; id fetchBuilder = ((PNFetchSpacesAPICallBuilder *)builder).end(@"NjA"); XCTAssertEqual(fetchBuilder, builder); } -- (void)testFetchAll_ShouldSetEnd_WhenNSStringPassed { +- (void)testItShouldSetEndWhenNSStringPassedAsFetchAllEndToken { PNFetchSpacesAPICallBuilder *builder = [self fetchAllBuilder]; NSString *expected = @"NjA"; @@ -615,10 +718,10 @@ - (void)testFetchAll_ShouldSetEnd_WhenNSStringPassed { builder.end(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testFetchAll_ShouldNotSetEnd_WhenEmptyNSStringPassed { +- (void)testItShouldNotSetEndWhenEmptyNSStringPassedAsFetchAllEndToken { PNFetchSpacesAPICallBuilder *builder = [self fetchAllBuilder]; NSString *expected = @""; @@ -628,10 +731,10 @@ - (void)testFetchAll_ShouldNotSetEnd_WhenEmptyNSStringPassed { builder.end(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testFetchAll_ShouldNotSetEnd_WhenNonNSStringPassed { +- (void)testItShouldNotSetEndWhenNonNSStringPassedAsFetchAllEndToken { PNFetchSpacesAPICallBuilder *builder = [self fetchAllBuilder]; NSString *expected = (id)@2010; @@ -641,22 +744,22 @@ - (void)testFetchAll_ShouldNotSetEnd_WhenNonNSStringPassed { builder.end(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: fetch all :: limit -- (void)testFetchAllLimit_ShouldReturnFetchAllBuilder_WhenCalled { +- (void)testItShouldReturnFetchAllBuilderWhenLimitSpecifiedInChain { id builder = [self fetchAllBuilder]; id fetchBuilder = ((PNFetchSpacesAPICallBuilder *)builder).limit(20); XCTAssertEqual(fetchBuilder, builder); } -- (void)testFetchAll_ShouldSetLimit_WhenCalled { +- (void)testItShouldSetLimitWhenFetchAllLimitSpecifiedInChain { PNFetchSpacesAPICallBuilder *builder = [self fetchAllBuilder]; - NSNumber *expected = @YES; + NSNumber *expected = @35; id builderMock = OCMPartialMock(builder); @@ -664,20 +767,20 @@ - (void)testFetchAll_ShouldSetLimit_WhenCalled { builder.limit(35); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: fetch all :: includeCount -- (void)testFetchAllIncludeCount_ShouldReturnFetchAllBuilder_WhenCalled { +- (void)testItShouldReturnFetchAllBuilderWhenIncludeCountSpecifiedInChain { id builder = [self fetchAllBuilder]; id updateBuilder = ((PNFetchSpacesAPICallBuilder *)builder).includeCount(YES); XCTAssertEqual(updateBuilder, builder); } -- (void)testFetchAll_ShouldSetIncludeCount_WhenCalled { +- (void)testItShouldSetIncludeCountWhenFetchAllIncludeCountSpecifiedInChain { PNFetchSpacesAPICallBuilder *builder = [self fetchAllBuilder]; NSNumber *expected = @YES; @@ -685,22 +788,22 @@ - (void)testFetchAll_ShouldSetIncludeCount_WhenCalled { id builderMock = OCMPartialMock(builder); [self expect:YES mock:builderMock toSetValue:expected toParameter:@"includeCount"]; - builder.includeCount(NO); + builder.includeCount(YES); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: fetch all :: includeFields -- (void)testFetchAllIncludeFields_ShouldReturnCreateBuilder_WhenCalled { +- (void)testItShouldReturnFetchAllBuilderWhenIncludeFieldsSpecifiedInChain { id builder = [self fetchAllBuilder]; id fetchBuilder = ((PNFetchSpacesAPICallBuilder *)builder).includeFields(PNSpaceCustomField); XCTAssertEqual(fetchBuilder, builder); } -- (void)testFetchAll_ShouldSetIncludeFields_WhenCalled { +- (void)testShouldSetIncludeFieldsWhenFetchAllIncludeFieldsSpecifiedInChain { PNFetchSpacesAPICallBuilder *builder = [self fetchAllBuilder]; PNSpaceFields expected = PNSpaceCustomField; @@ -710,7 +813,7 @@ - (void)testFetchAll_ShouldSetIncludeFields_WhenCalled { builder.includeFields(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } @@ -752,7 +855,7 @@ - (void)expect:(BOOL)shouldCall mock:(id)mockedObject toSetValue:(id)value toPar if (shouldCall) { OCMExpect([mockedObject setValue:value forParameter:parameter]); } else { - OCMExpect([[mockedObject reject] setValue:value forParameter:parameter]); + OCMReject([mockedObject setValue:value forParameter:parameter]); } } @@ -762,5 +865,6 @@ - (NSString *)mockedParameterFrom:(NSString *)parameter { #pragma mark - +#pragma clang diagnostic pop @end diff --git a/Tests/iOS Tests/Tests/Unit/Core/Interfaces/Objects/PNUserObjectsAPICallBuilderTest.m b/Tests/Tests/Unit/Core/Interfaces/Objects/PNUserObjectsAPICallBuilderTest.m similarity index 68% rename from Tests/iOS Tests/Tests/Unit/Core/Interfaces/Objects/PNUserObjectsAPICallBuilderTest.m rename to Tests/Tests/Unit/Core/Interfaces/Objects/PNUserObjectsAPICallBuilderTest.m index 5c06be2b0..3d53ac522 100644 --- a/Tests/iOS Tests/Tests/Unit/Core/Interfaces/Objects/PNUserObjectsAPICallBuilderTest.m +++ b/Tests/Tests/Unit/Core/Interfaces/Objects/PNUserObjectsAPICallBuilderTest.m @@ -1,14 +1,16 @@ /** - * @author Serhii Mamontov - * @copyright © 2010-2019 PubNub, Inc. - */ +* @author Serhii Mamontov +* @copyright © 2010-2020 PubNub, Inc. +*/ #import #import #import #import -#pragma mark Test interface declaration +NS_ASSUME_NONNULL_BEGIN + +#pragma mark Interface declaration @interface PNUserObjectsAPICallBuilderTest : XCTestCase @@ -29,22 +31,27 @@ - (NSString *)mockedParameterFrom:(NSString *)parameter; @end +NS_ASSUME_NONNULL_END + #pragma mark - Tests @implementation PNUserObjectsAPICallBuilderTest +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Warc-retain-cycles" + #pragma mark - Tests :: create :: userId -- (void)testCreateUserId_ShouldReturnCreateBuilder_WhenCalled { +- (void)testItShouldReturnCreateBuilderWhenUserIdSpecifiedInChain { id builder = [self createBuilder]; id createBuilder = ((PNCreateUserAPICallBuilder *)builder).userId(@"id"); XCTAssertEqual(createBuilder, builder); } -- (void)testCreate_ShouldSetUserId_WhenNSStringPassed { +- (void)testItShouldSetUserIdWhenNSStringPassedAsCreateUserId { PNCreateUserAPICallBuilder *builder = [self createBuilder]; NSString *expected = @"OpenID"; @@ -54,10 +61,10 @@ - (void)testCreate_ShouldSetUserId_WhenNSStringPassed { builder.userId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testCreate_ShouldNotSetUserId_WhenEmptyNSStringPassed { +- (void)testItShouldNotSetUserIdWhenEmptyNSStringPassedAsCreateUserId { PNCreateUserAPICallBuilder *builder = [self createBuilder]; NSString *expected = @""; @@ -67,10 +74,10 @@ - (void)testCreate_ShouldNotSetUserId_WhenEmptyNSStringPassed { builder.userId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testCreate_ShouldNotSetUserId_WhenNonNSStringPassed { +- (void)testItShouldNotSetUserIdWhenNonNSStringPassedAsCreateUserId { PNCreateUserAPICallBuilder *builder = [self createBuilder]; NSString *expected = (id)@2010; @@ -80,20 +87,20 @@ - (void)testCreate_ShouldNotSetUserId_WhenNonNSStringPassed { builder.userId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: create :: name -- (void)testCreateName_ShouldReturnCreateBuilder_WhenCalled { +- (void)testItShouldReturnCreateBuilderWhenNameSpecifiedInChain { id builder = [self createBuilder]; id createBuilder = ((PNCreateUserAPICallBuilder *)builder).name(@"PubNub"); XCTAssertEqual(createBuilder, builder); } -- (void)testCreate_ShouldSetName_WhenNSStringPassed { +- (void)testItShouldSetNameWhenNSStringPassedAsCreateName { PNCreateUserAPICallBuilder *builder = [self createBuilder]; NSString *expected = @"PubNub"; @@ -103,10 +110,10 @@ - (void)testCreate_ShouldSetName_WhenNSStringPassed { builder.name(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testCreate_ShouldNotSetName_WhenEmptyNSStringPassed { +- (void)testItShouldNotSetNameWhenEmptyNSStringPassedAsCreateName { PNCreateUserAPICallBuilder *builder = [self createBuilder]; NSString *expected = @""; @@ -116,10 +123,10 @@ - (void)testCreate_ShouldNotSetName_WhenEmptyNSStringPassed { builder.name(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testCreate_ShouldNotSetName_WhenNonNSStringPassed { +- (void)testItShouldNotSetNameWhenNonNSStringPassedAsCreateName { PNCreateUserAPICallBuilder *builder = [self createBuilder]; NSString *expected = (id)@2010; @@ -129,20 +136,20 @@ - (void)testCreate_ShouldNotSetName_WhenNonNSStringPassed { builder.name(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: create :: externalId -- (void)testCreateExternalId_ShouldReturnCreateBuilder_WhenCalled { +- (void)testItShouldReturnCreateBuilderWhenExternalIdSpecifiedInChain { id builder = [self createBuilder]; id createBuilder = ((PNCreateUserAPICallBuilder *)builder).externalId(@"id"); XCTAssertEqual(createBuilder, builder); } -- (void)testCreate_ShouldSetExternalId_WhenNSStringPassed { +- (void)testItShouldSetExternalIdWhenNSStringPassedAsCreateExternalId { PNCreateUserAPICallBuilder *builder = [self createBuilder]; NSString *expected = @"OpenID"; @@ -152,10 +159,10 @@ - (void)testCreate_ShouldSetExternalId_WhenNSStringPassed { builder.externalId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testCreate_ShouldNotSetExternalId_WhenEmptyNSStringPassed { +- (void)testItShouldNotSetExternalIdWhenEmptyNSStringPassedAsCreateExternalId { PNCreateUserAPICallBuilder *builder = [self createBuilder]; NSString *expected = @""; @@ -165,10 +172,10 @@ - (void)testCreate_ShouldNotSetExternalId_WhenEmptyNSStringPassed { builder.externalId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testCreate_ShouldNotSetExternalId_WhenNonNSStringPassed { +- (void)testItShouldNotSetExternalIdWhenNonNSStringPassedAsCreateExternalId { PNCreateUserAPICallBuilder *builder = [self createBuilder]; NSString *expected = (id)@2010; @@ -178,20 +185,20 @@ - (void)testCreate_ShouldNotSetExternalId_WhenNonNSStringPassed { builder.externalId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: create :: profileUrl -- (void)testCreateProfileUrl_ShouldReturnCreateBuilder_WhenCalled { +- (void)testItShouldReturnCreateBuilderWhenProfileUrlSpecifiedInChain { id builder = [self createBuilder]; id createBuilder = ((PNCreateUserAPICallBuilder *)builder).profileUrl(@"id"); XCTAssertEqual(createBuilder, builder); } -- (void)testCreate_ShouldSetProfileUrl_WhenNSStringPassed { +- (void)testItShouldSetProfileUrlWhenNSStringPassedAsCreateProfileUrl { PNCreateUserAPICallBuilder *builder = [self createBuilder]; NSString *expected = @"https://pubnub.com"; @@ -201,10 +208,10 @@ - (void)testCreate_ShouldSetProfileUrl_WhenNSStringPassed { builder.profileUrl(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testCreate_ShouldNotSetProfileUrl_WhenEmptyNSStringPassed { +- (void)testItShouldNotSetProfileUrlWhenEmptyNSStringPassedAsCreateProfileUrl { PNCreateUserAPICallBuilder *builder = [self createBuilder]; NSString *expected = @""; @@ -214,10 +221,10 @@ - (void)testCreate_ShouldNotSetProfileUrl_WhenEmptyNSStringPassed { builder.profileUrl(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testCreate_ShouldNotSetProfileUrl_WhenNonNSStringPassed { +- (void)testItShouldNotSetProfileUrlWhenNonNSStringPassedAsCreateProfileUrl { PNCreateUserAPICallBuilder *builder = [self createBuilder]; NSString *expected = (id)@2010; @@ -227,20 +234,20 @@ - (void)testCreate_ShouldNotSetProfileUrl_WhenNonNSStringPassed { builder.profileUrl(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: create :: email -- (void)testCreateEmail_ShouldReturnCreateBuilder_WhenCalled { +- (void)testItShouldReturnCreateBuilderWhenEmailSpecifiedInChain { id builder = [self createBuilder]; id createBuilder = ((PNCreateUserAPICallBuilder *)builder).email(@"support@pubnub.com"); XCTAssertEqual(createBuilder, builder); } -- (void)testCreate_ShouldSetEmail_WhenNSStringPassed { +- (void)testItShouldSetEmailWhenNSStringPassedAsCreateEmail { PNCreateUserAPICallBuilder *builder = [self createBuilder]; NSString *expected = @"support@pubnub.com"; @@ -250,10 +257,10 @@ - (void)testCreate_ShouldSetEmail_WhenNSStringPassed { builder.email(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testCreate_ShouldNotSetEmail_WhenEmptyNSStringPassed { +- (void)testItShouldNotSetEmailWhenEmptyNSStringPassedAsCreateEmail { PNCreateUserAPICallBuilder *builder = [self createBuilder]; NSString *expected = @""; @@ -263,10 +270,10 @@ - (void)testCreate_ShouldNotSetEmail_WhenEmptyNSStringPassed { builder.email(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testCreate_ShouldNotSetEmail_WhenNonNSStringPassed { +- (void)testItShouldNotSetEmailWhenNonNSStringPassedAsCreateEmail { PNCreateUserAPICallBuilder *builder = [self createBuilder]; NSString *expected = (id)@2010; @@ -276,20 +283,20 @@ - (void)testCreate_ShouldNotSetEmail_WhenNonNSStringPassed { builder.email(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: create :: custom -- (void)testCreateCustom_ShouldReturnCreateBuilder_WhenCalled { +- (void)testItShouldReturnCreateBuilderWhenCustomSpecifiedInChain { id builder = [self createBuilder]; id createBuilder = ((PNCreateUserAPICallBuilder *)builder).custom(@{ @"company": @"PubNub" }); XCTAssertEqual(createBuilder, builder); } -- (void)testCreate_ShouldSetCustom_WhenNSDictionaryPassed { +- (void)testItShouldSetCustomWhenNSDictionaryPassedAsCreateCustom { PNCreateUserAPICallBuilder *builder = [self createBuilder]; NSDictionary *expected = @{ @"company": @"PubNub" }; @@ -299,10 +306,10 @@ - (void)testCreate_ShouldSetCustom_WhenNSDictionaryPassed { builder.custom(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testCreate_ShouldNotSetCustom_WhenEmptyNSDictionaryPassed { +- (void)testItShouldNotSetCustomWhenEmptyNSDictionaryPassedAsCreateCustom { PNCreateUserAPICallBuilder *builder = [self createBuilder]; NSDictionary *expected = @{}; @@ -312,10 +319,10 @@ - (void)testCreate_ShouldNotSetCustom_WhenEmptyNSDictionaryPassed { builder.custom(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testCreate_ShouldNotSetCustom_WhenNonNSDictionaryPassed { +- (void)testItShouldNotSetCustomWhenNonNSDictionaryPassedAsCreateCustom { PNCreateUserAPICallBuilder *builder = [self createBuilder]; NSDictionary *expected = (id)@2010; @@ -325,20 +332,20 @@ - (void)testCreate_ShouldNotSetCustom_WhenNonNSDictionaryPassed { builder.custom(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: create :: includeFields -- (void)testCreateIncludeFields_ShouldReturnCreateBuilder_WhenCalled { +- (void)testItShouldReturnCreateBuilderWhenIncludeFieldsSpecifiedInChain { id builder = [self createBuilder]; id createBuilder = ((PNCreateUserAPICallBuilder *)builder).includeFields(PNUserCustomField); XCTAssertEqual(createBuilder, builder); } -- (void)testCreate_ShouldSetIncludeFields_WhenCalled { +- (void)testItShouldSetIncludeFieldsWhenCreateIncludeFieldsSpecifiedInChain { PNCreateUserAPICallBuilder *builder = [self createBuilder]; PNUserFields expected = PNUserCustomField; @@ -348,20 +355,20 @@ - (void)testCreate_ShouldSetIncludeFields_WhenCalled { builder.includeFields(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: update :: userId -- (void)testUpdateUserId_ShouldReturnUpdateBuilder_WhenCalled { +- (void)testItShouldReturnUpdateBuilderWhenUserIdSpecifiedInChain { id builder = [self updateBuilder]; id createBuilder = ((PNUpdateUserAPICallBuilder *)builder).userId(@"id"); XCTAssertEqual(createBuilder, builder); } -- (void)testUpdate_ShouldSetUserId_WhenNSStringPassed { +- (void)testItShouldSetUserIdWhenNSStringPassedAsUpdateUserId { PNUpdateUserAPICallBuilder *builder = [self updateBuilder]; NSString *expected = @"OpenID"; @@ -371,10 +378,10 @@ - (void)testUpdate_ShouldSetUserId_WhenNSStringPassed { builder.userId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testUpdate_ShouldNotSetUserId_WhenEmptyNSStringPassed { +- (void)testItShouldNotSetUserIdWhenEmptyNSStringPassedAsUpdateUserId { PNUpdateUserAPICallBuilder *builder = [self updateBuilder]; NSString *expected = @""; @@ -384,10 +391,10 @@ - (void)testUpdate_ShouldNotSetUserId_WhenEmptyNSStringPassed { builder.userId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testUpdate_ShouldNotSetUserId_WhenNonNSStringPassed { +- (void)testItShouldNotSetUserIdWhenNonNSStringPassedAsUpdateUserId { PNUpdateUserAPICallBuilder *builder = [self updateBuilder]; NSString *expected = (id)@2010; @@ -397,20 +404,20 @@ - (void)testUpdate_ShouldNotSetUserId_WhenNonNSStringPassed { builder.userId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: update :: name -- (void)testUpdateName_ShouldReturnUpdateBuilder_WhenCalled { +- (void)testItShouldReturnUpdateBuilderWhenNameSpecifiedInChain { id builder = [self updateBuilder]; id updateBuilder = ((PNUpdateUserAPICallBuilder *)builder).name(@"PubNub"); XCTAssertEqual(updateBuilder, builder); } -- (void)testUpdate_ShouldSetName_WhenNSStringPassed { +- (void)testItShouldSetNameWhenNSStringPassedAsUpdateName { PNUpdateUserAPICallBuilder *builder = [self updateBuilder]; NSString *expected = @"PubNub"; @@ -420,10 +427,10 @@ - (void)testUpdate_ShouldSetName_WhenNSStringPassed { builder.name(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testUpdate_ShouldNotName_WhenEmptyNSStringPassed { +- (void)testItShouldNotNameWhenEmptyNSStringPassedAsUpdateName { PNUpdateUserAPICallBuilder *builder = [self updateBuilder]; NSString *expected = @""; @@ -433,10 +440,10 @@ - (void)testUpdate_ShouldNotName_WhenEmptyNSStringPassed { builder.name(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testUpdate_ShouldNotName_WhenNonNSStringPassed { +- (void)testItShouldNotNameWhenNonNSStringPassedAsUpdateName { PNUpdateUserAPICallBuilder *builder = [self updateBuilder]; NSString *expected = (id)@2010; @@ -446,20 +453,20 @@ - (void)testUpdate_ShouldNotName_WhenNonNSStringPassed { builder.name(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: update :: externalId -- (void)testUpdateExternalId_ShouldReturnUpdateBuilder_WhenCalled { +- (void)testItShouldReturnUpdateBuilderWhenExternalIdSpecifiedInChain { id builder = [self updateBuilder]; id updateBuilder = ((PNUpdateUserAPICallBuilder *)builder).externalId(@"id"); XCTAssertEqual(updateBuilder, builder); } -- (void)testUpdate_ShouldSetExternalId_WhenNSStringPassed { +- (void)testItShouldSetExternalIdWhenNSStringPassedAsUpdateExternalId { PNUpdateUserAPICallBuilder *builder = [self updateBuilder]; NSString *expected = @"OpenID"; @@ -469,10 +476,10 @@ - (void)testUpdate_ShouldSetExternalId_WhenNSStringPassed { builder.externalId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testUpdate_ShouldNotSetExternalId_WhenEmptyNSStringPassed { +- (void)testItShouldNotSetExternalIdWhenEmptyNSStringPassedAsUpdateExternalId { PNUpdateUserAPICallBuilder *builder = [self updateBuilder]; NSString *expected = @""; @@ -482,10 +489,10 @@ - (void)testUpdate_ShouldNotSetExternalId_WhenEmptyNSStringPassed { builder.externalId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testUpdate_ShouldNotSetExternalId_WhenNonNSStringPassed { +- (void)testItShouldNotSetExternalIdWhenNonNSStringPassedAsUpdateExternalId { PNUpdateUserAPICallBuilder *builder = [self updateBuilder]; NSString *expected = (id)@2010; @@ -495,20 +502,20 @@ - (void)testUpdate_ShouldNotSetExternalId_WhenNonNSStringPassed { builder.externalId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: update :: profileUrl -- (void)testUpdateProfileUrl_ShouldReturnUpdateBuilder_WhenCalled { +- (void)testItShouldReturnUpdateBuilderWhenProfileUrlSpecifiedInChain { id builder = [self updateBuilder]; id updateBuilder = ((PNUpdateUserAPICallBuilder *)builder).profileUrl(@"id"); XCTAssertEqual(updateBuilder, builder); } -- (void)testUpdate_ShouldSetProfileUrl_WhenNSStringPassed { +- (void)testItShouldSetProfileUrlWhenNSStringPassedAsUpdateProfileUrl { PNUpdateUserAPICallBuilder *builder = [self updateBuilder]; NSString *expected = @"https://pubnub.com"; @@ -518,10 +525,10 @@ - (void)testUpdate_ShouldSetProfileUrl_WhenNSStringPassed { builder.profileUrl(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testUpdate_ShouldNotSetProfileUrl_WhenEmptyNSStringPassed { +- (void)testItShouldNotSetProfileUrlWhenEmptyNSStringPassedAsUpdateProfileUrl { PNUpdateUserAPICallBuilder *builder = [self updateBuilder]; NSString *expected = @""; @@ -531,10 +538,10 @@ - (void)testUpdate_ShouldNotSetProfileUrl_WhenEmptyNSStringPassed { builder.profileUrl(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testUpdate_ShouldNotSetProfileUrl_WhenNonNSStringPassed { +- (void)testItShouldNotSetProfileUrlWhenNonNSStringPassedAsUpdateProfileUrl { PNUpdateUserAPICallBuilder *builder = [self updateBuilder]; NSString *expected = (id)@2010; @@ -544,20 +551,20 @@ - (void)testUpdate_ShouldNotSetProfileUrl_WhenNonNSStringPassed { builder.profileUrl(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: update :: email -- (void)testUpdateEmail_ShouldReturnUpdateBuilder_WhenCalled { +- (void)testItShouldReturnUpdateBuilderWhenEmailSpecifiedInChain { id builder = [self updateBuilder]; id updateBuilder = ((PNUpdateUserAPICallBuilder *)builder).email(@"support@pubnub.com"); XCTAssertEqual(updateBuilder, builder); } -- (void)testUpdate_ShouldSetEmail_WhenNSStringPassed { +- (void)testItShouldSetEmailWhenNSStringPassedAsUpdateEmail { PNUpdateUserAPICallBuilder *builder = [self updateBuilder]; NSString *expected = @"support@pubnub.com"; @@ -567,10 +574,10 @@ - (void)testUpdate_ShouldSetEmail_WhenNSStringPassed { builder.email(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testUpdate_ShouldNotSetEmail_WhenEmptyNSStringPassed { +- (void)testItShouldNotSetEmailWhenEmptyNSStringPassedAsUpdateEmail { PNUpdateUserAPICallBuilder *builder = [self updateBuilder]; NSString *expected = @""; @@ -580,10 +587,10 @@ - (void)testUpdate_ShouldNotSetEmail_WhenEmptyNSStringPassed { builder.email(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testUpdate_ShouldNotSetEmail_WhenNonNSStringPassed { +- (void)testItShouldNotSetEmailWhenNonNSStringPassedAsUpdateEmail { PNUpdateUserAPICallBuilder *builder = [self updateBuilder]; NSString *expected = (id)@2010; @@ -593,20 +600,20 @@ - (void)testUpdate_ShouldNotSetEmail_WhenNonNSStringPassed { builder.email(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: update :: custom -- (void)testUpdateCustom_ShouldReturnUpdateBuilder_WhenCalled { +- (void)testItShouldReturnUpdateBuilderWhenCustomSpecifiedInChain { id builder = [self updateBuilder]; id updateBuilder = ((PNUpdateUserAPICallBuilder *)builder).custom(@{ @"company": @"PubNub" }); XCTAssertEqual(updateBuilder, builder); } -- (void)testUpdate_ShouldSetCustom_WhenNSDictionaryPassed { +- (void)testItShouldSetCustomWhenNSDictionaryPassedAsUpdateCustom { PNUpdateUserAPICallBuilder *builder = [self updateBuilder]; NSDictionary *expected = @{ @"company": @"PubNub" }; @@ -616,10 +623,10 @@ - (void)testUpdate_ShouldSetCustom_WhenNSDictionaryPassed { builder.custom(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testUpdate_ShouldNotSetCustom_WhenEmptyNSDictionaryPassed { +- (void)testItShouldNotSetCustomWhenEmptyNSDictionaryPassedAsUpdateCustom { PNUpdateUserAPICallBuilder *builder = [self updateBuilder]; NSDictionary *expected = @{}; @@ -629,10 +636,10 @@ - (void)testUpdate_ShouldNotSetCustom_WhenEmptyNSDictionaryPassed { builder.custom(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testUpdate_ShouldNotSetCustom_WhenNonNSDictionaryPassed { +- (void)testItShouldNotSetCustomWhenNonNSDictionaryPassedAsUpdateCustom { PNUpdateUserAPICallBuilder *builder = [self updateBuilder]; NSDictionary *expected = (id)@2010; @@ -642,20 +649,20 @@ - (void)testUpdate_ShouldNotSetCustom_WhenNonNSDictionaryPassed { builder.custom(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: update :: includeFields -- (void)testUpdateIncludeFields_ShouldReturnCreateBuilder_WhenCalled { +- (void)testItShouldReturnUpdateBuilderWhenIncludeFieldsSpecifiedInChain { id builder = [self updateBuilder]; id updateBuilder = ((PNUpdateUserAPICallBuilder *)builder).includeFields(PNUserCustomField); XCTAssertEqual(updateBuilder, builder); } -- (void)testUpdate_ShouldSetIncludeFields_WhenCalled { +- (void)testItShouldSetIncludeFieldsWhenUpdateIncludeFieldsSpecifiedInChain { PNUpdateUserAPICallBuilder *builder = [self updateBuilder]; PNUserFields expected = PNUserCustomField; @@ -665,20 +672,20 @@ - (void)testUpdate_ShouldSetIncludeFields_WhenCalled { builder.includeFields(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: delete :: userId -- (void)testDeleteUserId_ShouldReturnDeleteBuilder_WhenCalled { +- (void)testItShouldReturnDeleteBuilderWhenUserIdSpecifiedInChain { id builder = [self deleteBuilder]; id createBuilder = ((PNDeleteUserAPICallBuilder *)builder).userId(@"id"); XCTAssertEqual(createBuilder, builder); } -- (void)testDelete_ShouldSetUserId_WhenNSStringPassed { +- (void)testItShouldSetUserIdWhenNSStringPassedAsDeleteUserId { PNDeleteUserAPICallBuilder *builder = [self deleteBuilder]; NSString *expected = @"OpenID"; @@ -688,10 +695,10 @@ - (void)testDelete_ShouldSetUserId_WhenNSStringPassed { builder.userId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testDelete_ShouldNotSetUserId_WhenEmptyNSStringPassed { +- (void)testItShouldNotSetUserIdWhenEmptyNSStringPassedAsDeleteUserId { PNDeleteUserAPICallBuilder *builder = [self deleteBuilder]; NSString *expected = @""; @@ -701,10 +708,10 @@ - (void)testDelete_ShouldNotSetUserId_WhenEmptyNSStringPassed { builder.userId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testDelete_ShouldNotSetUserId_WhenNonNSStringPassed { +- (void)testItShouldNotSetUserIdWhenNonNSStringPassedAsDeleteUserId { PNDeleteUserAPICallBuilder *builder = [self deleteBuilder]; NSString *expected = (id)@2010; @@ -714,20 +721,20 @@ - (void)testDelete_ShouldNotSetUserId_WhenNonNSStringPassed { builder.userId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: fetch :: userId -- (void)testFetchUserId_ShouldReturnFetchBuilder_WhenCalled { +- (void)testItShouldReturnFetchBuilderWhenUserIdSpecifiedInChain { id builder = [self fetchBuilder]; id createBuilder = ((PNFetchUserAPICallBuilder *)builder).userId(@"id"); XCTAssertEqual(createBuilder, builder); } -- (void)testFetch_ShouldSetUserId_WhenNSStringPassed { +- (void)testItShouldSetUserIdWhenNSStringPassedAsFetchUserId { PNFetchUserAPICallBuilder *builder = [self fetchBuilder]; NSString *expected = @"OpenID"; @@ -737,10 +744,10 @@ - (void)testFetch_ShouldSetUserId_WhenNSStringPassed { builder.userId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testFetch_ShouldNotSetUserId_WhenEmptyNSStringPassed { +- (void)testItShouldNotSetUserIdWhenEmptyNSStringPassedAsFetchUserId { PNFetchUserAPICallBuilder *builder = [self fetchBuilder]; NSString *expected = @""; @@ -750,10 +757,10 @@ - (void)testFetch_ShouldNotSetUserId_WhenEmptyNSStringPassed { builder.userId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testFetch_ShouldNotSetUserId_WhenNonNSStringPassed { +- (void)testItShouldNotSetUserIdWhenNonNSStringPassedAsFetchUserId { PNFetchUserAPICallBuilder *builder = [self fetchBuilder]; NSString *expected = (id)@2010; @@ -763,20 +770,20 @@ - (void)testFetch_ShouldNotSetUserId_WhenNonNSStringPassed { builder.userId(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: fetch :: includeFields -- (void)testFetchIncludeFields_ShouldReturnCreateBuilder_WhenCalled { +- (void)testItShouldReturnFetchBuilderWhenIncludeFieldsSpecifiedInChain { id builder = [self fetchBuilder]; id fetchBuilder = ((PNFetchUserAPICallBuilder *)builder).includeFields(PNUserCustomField); XCTAssertEqual(fetchBuilder, builder); } -- (void)testFetch_ShouldSetIncludeFields_WhenCalled { +- (void)testItShouldSetIncludeFieldsWhenFetchIncludeFieldsSpecifiedInChain { PNFetchUserAPICallBuilder *builder = [self fetchBuilder]; PNUserFields expected = PNUserCustomField; @@ -786,20 +793,118 @@ - (void)testFetch_ShouldSetIncludeFields_WhenCalled { builder.includeFields(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); +} + + +#pragma mark - Tests :: fetch all :: filter + +- (void)testItShouldReturnFetchBuilderWhenFilterSpecifiedInChain { + id builder = [self fetchAllBuilder]; + + id manageBuilder = ((PNFetchUsersAPICallBuilder *)builder).filter(@"name == 'Bob'"); + XCTAssertEqual(manageBuilder, builder); +} + +- (void)testItShouldSetFilterWhenNSStringPassedAsFetchAllFilter { + PNFetchUsersAPICallBuilder *builder = [self fetchAllBuilder]; + NSString *expected = @"name like 'General*'"; + + + id builderMock = OCMPartialMock(builder); + [self expect:YES mock:builderMock toSetValue:expected toParameter:@"filter"]; + + builder.filter(expected); + + OCMVerifyAll(builderMock); +} + +- (void)testItShouldNotSetFilterWhenEmptyNSStringPassedAsFetchAllFilter { + PNFetchUsersAPICallBuilder *builder = [self fetchAllBuilder]; + NSString *expected = @""; + + + id builderMock = OCMPartialMock(builder); + [self expect:NO mock:builderMock toSetValue:expected toParameter:@"filter"]; + + builder.filter(expected); + + OCMVerifyAll(builderMock); +} + +- (void)testItShouldNotSetFilterWhenNonNSStringPassedAsFetchAllFilter { + PNFetchUsersAPICallBuilder *builder = [self fetchAllBuilder]; + NSString *expected = (id)@2010; + + + id builderMock = OCMPartialMock(builder); + [self expect:NO mock:builderMock toSetValue:expected toParameter:@"filter"]; + + builder.filter(expected); + + OCMVerifyAll(builderMock); +} + + +#pragma mark - Tests :: fetch all :: sort + +- (void)testItShouldReturnFetchBuilderWhenSortSpecifiedInChain { + id builder = [self fetchAllBuilder]; + + id manageBuilder = ((PNFetchUsersAPICallBuilder *)builder).sort(@[@"name"]); + XCTAssertEqual(manageBuilder, builder); +} + +- (void)testItShouldSetSortWhenNSArrayPassedAsFetchAllSort { + PNFetchUsersAPICallBuilder *builder = [self fetchAllBuilder]; + NSArray *expected =@[@"name", @"created:desc"]; + + + id builderMock = OCMPartialMock(builder); + [self expect:YES mock:builderMock toSetValue:expected toParameter:@"sort"]; + + builder.sort(@[@"name", @"created:desc"]); + + OCMVerifyAll(builderMock); +} + +- (void)testItShouldNotSetSortWhenEmptyNSArrayPassedAsFetchAllSort { + PNFetchUsersAPICallBuilder *builder = [self fetchAllBuilder]; + NSArray *expected = @[]; + + + id builderMock = OCMPartialMock(builder); + [self expect:NO mock:builderMock toSetValue:expected toParameter:@"sort"]; + + builder.sort(expected); + + OCMVerifyAll(builderMock); +} + +- (void)testItShouldNotSetSortWhenNonNSArrayPassedAsFetchAllSort { + PNFetchUsersAPICallBuilder *builder = [self fetchAllBuilder]; + NSArray *expected = (id)@2010; + + + id builderMock = OCMPartialMock(builder); + [self expect:NO mock:builderMock toSetValue:expected toParameter:@"sort"]; + + builder.sort(expected); + + OCMVerifyAll(builderMock); } #pragma mark - Tests :: fetch all :: start -- (void)testFetchAllStart_ShouldReturnFetchAllBuilder_WhenCalled { +- (void)testItShouldReturnFetchAllBuilderWhenStartTokenSpecifiedInChain { id builder = [self fetchAllBuilder]; id fetchBuilder = ((PNFetchUsersAPICallBuilder *)builder).start(@"NjA"); XCTAssertEqual(fetchBuilder, builder); } -- (void)testFetchAll_ShouldSetStart_WhenNSStringPassed { +- (void)testItShouldSetStartWhenNSStringPassedAsFetchAllStartToken { PNFetchUsersAPICallBuilder *builder = [self fetchAllBuilder]; NSString *expected = @"NjA"; @@ -809,10 +914,10 @@ - (void)testFetchAll_ShouldSetStart_WhenNSStringPassed { builder.start(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testFetchAll_ShouldNotSetStart_WhenEmptyNSStringPassed { +- (void)testItShouldNotSetStartWhenEmptyNSStringPassedAsFetchAllStartToken { PNFetchUsersAPICallBuilder *builder = [self fetchAllBuilder]; NSString *expected = @""; @@ -822,10 +927,10 @@ - (void)testFetchAll_ShouldNotSetStart_WhenEmptyNSStringPassed { builder.start(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testFetchAll_ShouldNotSetStart_WhenNonNSStringPassed { +- (void)testItShouldNotSetStartWhenNonNSStringPassedAsFetchAllStartToken { PNFetchUsersAPICallBuilder *builder = [self fetchAllBuilder]; NSString *expected = (id)@2010; @@ -835,20 +940,20 @@ - (void)testFetchAll_ShouldNotSetStart_WhenNonNSStringPassed { builder.start(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: fetch all :: end -- (void)testFetchAllEnd_ShouldReturnFetchAllBuilder_WhenCalled { +- (void)testItShouldReturnFetchAllBuilderWhenEndTokenSpecifiedInChain { id builder = [self fetchAllBuilder]; id fetchBuilder = ((PNFetchUsersAPICallBuilder *)builder).end(@"NjA"); XCTAssertEqual(fetchBuilder, builder); } -- (void)testFetchAll_ShouldSetEnd_WhenNSStringPassed { +- (void)testItShouldSetEndWhenNSStringPassedAsFetchAllEndToken { PNFetchUsersAPICallBuilder *builder = [self fetchAllBuilder]; NSString *expected = @"NjA"; @@ -858,10 +963,10 @@ - (void)testFetchAll_ShouldSetEnd_WhenNSStringPassed { builder.end(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testFetchAll_ShouldNotSetEnd_WhenEmptyNSStringPassed { +- (void)testItShouldNotSetEndWhenEmptyNSStringPassedAsFetchAllEndToken { PNFetchUsersAPICallBuilder *builder = [self fetchAllBuilder]; NSString *expected = @""; @@ -871,10 +976,10 @@ - (void)testFetchAll_ShouldNotSetEnd_WhenEmptyNSStringPassed { builder.end(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testFetchAll_ShouldNotSetEnd_WhenNonNSStringPassed { +- (void)testItShouldNotSetEndWhenNonNSStringPassedAsFetchAllEndToken { PNFetchUsersAPICallBuilder *builder = [self fetchAllBuilder]; NSString *expected = (id)@2010; @@ -884,22 +989,22 @@ - (void)testFetchAll_ShouldNotSetEnd_WhenNonNSStringPassed { builder.end(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: fetch all :: limit -- (void)testFetchAllLimit_ShouldReturnFetchAllBuilder_WhenCalled { +- (void)testItShouldReturnFetchAllBuilderWhenLimitSpecifiedInChain { id builder = [self fetchAllBuilder]; id fetchBuilder = ((PNFetchUsersAPICallBuilder *)builder).limit(20); XCTAssertEqual(fetchBuilder, builder); } -- (void)testFetchAll_ShouldSetLimit_WhenCalled { +- (void)testItShouldSetLimitWhenFetchAllLimitSpecifiedInChain { PNFetchUsersAPICallBuilder *builder = [self fetchAllBuilder]; - NSNumber *expected = @YES; + NSNumber *expected = @35; id builderMock = OCMPartialMock(builder); @@ -907,20 +1012,20 @@ - (void)testFetchAll_ShouldSetLimit_WhenCalled { builder.limit(35); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: fetch all :: includeCount -- (void)testFetchAllIncludeCount_ShouldReturnFetchAllBuilder_WhenCalled { +- (void)testItShouldReturnFetchAllBuilderWhenIncludeCountSpecifiedInChain { id builder = [self fetchAllBuilder]; id updateBuilder = ((PNFetchUsersAPICallBuilder *)builder).includeCount(YES); XCTAssertEqual(updateBuilder, builder); } -- (void)testFetchAll_ShouldSetIncludeCount_WhenCalled { +- (void)testItShouldSetIncludeCountWhenFetchAllIncludeCountSpecifiedInChain { PNFetchUsersAPICallBuilder *builder = [self fetchAllBuilder]; NSNumber *expected = @YES; @@ -928,22 +1033,22 @@ - (void)testFetchAll_ShouldSetIncludeCount_WhenCalled { id builderMock = OCMPartialMock(builder); [self expect:YES mock:builderMock toSetValue:expected toParameter:@"includeCount"]; - builder.includeCount(NO); + builder.includeCount(YES); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: fetch all :: includeFields -- (void)testFetchAllIncludeFields_ShouldReturnCreateBuilder_WhenCalled { +- (void)testItShouldReturnFetchAllBuilderWhenIncludeFieldsSpecifiedInChain { id builder = [self fetchAllBuilder]; id fetchBuilder = ((PNFetchUsersAPICallBuilder *)builder).includeFields(PNUserCustomField); XCTAssertEqual(fetchBuilder, builder); } -- (void)testFetchAll_ShouldSetIncludeFields_WhenCalled { +- (void)testItShouldSetIncludeFieldsWhenFetchAllIncludeFieldsSpecifiedInChain { PNFetchUsersAPICallBuilder *builder = [self fetchAllBuilder]; PNUserFields expected = PNUserCustomField; @@ -953,7 +1058,7 @@ - (void)testFetchAll_ShouldSetIncludeFields_WhenCalled { builder.includeFields(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } @@ -995,7 +1100,7 @@ - (void)expect:(BOOL)shouldCall mock:(id)mockedObject toSetValue:(id)value toPar if (shouldCall) { OCMExpect([mockedObject setValue:value forParameter:parameter]); } else { - OCMExpect([[mockedObject reject] setValue:value forParameter:parameter]); + OCMReject([mockedObject setValue:value forParameter:parameter]); } } @@ -1005,5 +1110,6 @@ - (NSString *)mockedParameterFrom:(NSString *)parameter { #pragma mark - +#pragma clang diagnostic pop @end diff --git a/Tests/iOS Tests/Tests/Unit/Core/Interfaces/Publish/PNSignalAPIBuilderTest.m b/Tests/Tests/Unit/Core/Interfaces/Publish/PNSignalAPIBuilderTest.m similarity index 73% rename from Tests/iOS Tests/Tests/Unit/Core/Interfaces/Publish/PNSignalAPIBuilderTest.m rename to Tests/Tests/Unit/Core/Interfaces/Publish/PNSignalAPIBuilderTest.m index 85f2a5b3d..651689b43 100644 --- a/Tests/iOS Tests/Tests/Unit/Core/Interfaces/Publish/PNSignalAPIBuilderTest.m +++ b/Tests/Tests/Unit/Core/Interfaces/Publish/PNSignalAPIBuilderTest.m @@ -1,10 +1,16 @@ -#import +/** +* @author Serhii Mamontov +* @copyright © 2010-2020 PubNub, Inc. +*/ #import +#import #import #import -#pragma mark Test interface declaration +NS_ASSUME_NONNULL_BEGIN + +#pragma mark Interface declaration @interface PNSignalAPIBuilderTest : XCTestCase @@ -18,15 +24,20 @@ - (PNSignalAPICallBuilder *)builder; @end +NS_ASSUME_NONNULL_END + #pragma mark - Tests @implementation PNSignalAPIBuilderTest +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Warc-retain-cycles" + #pragma mark - Tests :: channel -- (void)testChannel_ShouldReturnReferenceOnBuilder_WhenCalled { +- (void)testItShouldReturnSignalBuilderWhenChannelSpecifiedInChain { PNSignalAPICallBuilder *builder = [self builder]; @@ -34,7 +45,7 @@ - (void)testChannel_ShouldReturnReferenceOnBuilder_WhenCalled { XCTAssertEqualObjects(builder.channel(@"PubNub"), builder); } -- (void)testChannel_ShouldSetChannel_WhenNSStringPassed { +- (void)testItShouldSetChannelWhenNSStringPassedAsChannel { PNSignalAPICallBuilder *builder = [self builder]; NSString *parameter = @"channel"; @@ -47,10 +58,10 @@ - (void)testChannel_ShouldSetChannel_WhenNSStringPassed { builder.channel(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } -- (void)testChannel_ShouldNotSetChannel_WhenNonNSStringPassed { +- (void)testItShouldNotSetChannelWhenNonNSStringPassedAsChannel { PNSignalAPICallBuilder *builder = [self builder]; NSString *parameter = @"channel"; @@ -59,17 +70,17 @@ - (void)testChannel_ShouldNotSetChannel_WhenNonNSStringPassed { id builderMock = OCMPartialMock(builder); - OCMExpect([[builderMock reject] setValue:expected forParameter:mockedParameter]); + OCMReject([builderMock setValue:expected forParameter:mockedParameter]); builder.channel(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } #pragma mark - Tests :: message -- (void)testMessage_ShouldReturnReferenceOnBuilder_WhenCalled { +- (void)testItShouldReturnSignalBuilderWhenMessageSpecifiedInChain { PNSignalAPICallBuilder *builder = [self builder]; @@ -77,7 +88,7 @@ - (void)testMessage_ShouldReturnReferenceOnBuilder_WhenCalled { XCTAssertEqualObjects(builder.message(@[@1234567890]), builder); } -- (void)testMessage_ShouldSetMessage_WhenDataPassed { +- (void)testItShouldSetMessageWhenDataPassedAsMessage { PNSignalAPICallBuilder *builder = [self builder]; NSString *parameter = @"message"; @@ -90,7 +101,7 @@ - (void)testMessage_ShouldSetMessage_WhenDataPassed { builder.message(expected); - OCMVerify(builderMock); + OCMVerifyAll(builderMock); } @@ -107,5 +118,6 @@ - (PNSignalAPICallBuilder *)builder { #pragma mark - +#pragma clang diagnostic pop @end diff --git a/Tests/iOS Tests/Tests/Unit/Core/Objects/PNMemberObjectsTest.m b/Tests/Tests/Unit/Core/Objects/PNMemberObjectsTest.m similarity index 77% rename from Tests/iOS Tests/Tests/Unit/Core/Objects/PNMemberObjectsTest.m rename to Tests/Tests/Unit/Core/Objects/PNMemberObjectsTest.m index 048323851..ca5e478e5 100644 --- a/Tests/iOS Tests/Tests/Unit/Core/Objects/PNMemberObjectsTest.m +++ b/Tests/Tests/Unit/Core/Objects/PNMemberObjectsTest.m @@ -1,58 +1,55 @@ /** - * @author Serhii Mamontov - * @copyright © 2010-2019 PubNub, Inc. - */ +* @author Serhii Mamontov +* @copyright © 2010-2020 PubNub, Inc. +*/ #import #import +#import "PNRecordableTestCase.h" +#import #import #import -#import "PNTestCase.h" -#pragma mark Test interface declaration +NS_ASSUME_NONNULL_BEGIN -@interface PNMemberObjectsTest : PNTestCase +#pragma mark Interface declaration - -#pragma mark - Information - -@property (nonatomic, strong) PubNub *client; +@interface PNMemberObjectsTest : PNRecordableTestCase #pragma mark - @end +NS_ASSUME_NONNULL_END + #pragma mark - Tests @implementation PNMemberObjectsTest +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Warc-retain-cycles" -#pragma mark - Setup / Tear down -- (void)setUp { - [super setUp]; - - - dispatch_queue_t callbackQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); - PNConfiguration *configuration = [PNConfiguration configurationWithPublishKey:self.publishKey - subscribeKey:self.subscribeKey]; - - self.client = [PubNub clientWithConfiguration:configuration callbackQueue:callbackQueue]; +#pragma mark - VCR configuration + +- (BOOL)shouldSetupVCR { + return NO; } #pragma mark - Tests :: Manage -- (void)testManageMembers_ShouldReturnBuilder { +- (void)testItShouldReturnManageMembersBuilder { XCTAssertTrue([self.client.manageMembers() isKindOfClass:[PNManageMembersAPICallBuilder class]]); } #pragma mark - Tests :: Manage :: Call -- (void)testManageMembers_ShouldProcessOperation_WhenCalled { +- (void)testItShouldManageMembersWhenCalled { + NSString *filterExpression = @"updated >= '2019-08-31T00:00:00Z'"; NSString *expectedId = [NSUUID UUID].UUIDString; NSArray *addMembers = @[ @{ @"userId": [NSUUID UUID].UUIDString, @"custom": @{ @"user": [NSUUID UUID].UUIDString } } @@ -69,6 +66,7 @@ - (void)testManageMembers_ShouldProcessOperation_WhenCalled { NSData *expectedPayload = [NSJSONSerialization dataWithJSONObject:expectedBody options:(NSJSONWritingOptions)0 error:nil]; + NSString *expectedFilterExpression = [PNString percentEscapedString:filterExpression]; id clientMock = [self mockForObject:self.client]; @@ -79,9 +77,13 @@ - (void)testManageMembers_ShouldProcessOperation_WhenCalled { .andDo(^(NSInvocation *invocation) { PNRequestParameters *parameters = [self objectForInvocation:invocation argumentAtIndex:2]; NSData *sentData = [self objectForInvocation:invocation argumentAtIndex:3]; + NSArray *includeFields = [parameters.query[@"include"] componentsSeparatedByString:@","]; + SEL sortSelector = @selector(caseInsensitiveCompare:); + NSString *includeQuery = [[includeFields sortedArrayUsingSelector:sortSelector] componentsJoinedByString:@","]; XCTAssertEqualObjects(parameters.pathComponents[@"{space-id}"], expectedId); - XCTAssertEqualObjects(parameters.query[@"include"], @"custom,user.custom"); + XCTAssertEqualObjects(includeQuery, @"custom,user.custom"); + XCTAssertEqualObjects(parameters.query[@"filter"], expectedFilterExpression); XCTAssertEqualObjects(sentData, expectedPayload); }); @@ -89,12 +91,13 @@ - (void)testManageMembers_ShouldProcessOperation_WhenCalled { self.client.manageMembers() .spaceId(expectedId) .add(addMembers).update(updateMembers).remove(removeMembers) + .filter(filterExpression) .includeFields(PNMemberCustomField|PNMemberUserCustomField) .performWithCompletion(^(PNManageMembersStatus *status) {}); }]; } -- (void)testManageMembers_ShouldReturnError_WhenSpaceIdIsMissing { +- (void)testItShouldNotManageMembersWhenSpaceIdIsMissing { [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { self.client.manageMembers().includeFields(PNMemberCustomField) .performWithCompletion(^(PNManageMembersStatus *status) { @@ -107,7 +110,7 @@ - (void)testManageMembers_ShouldReturnError_WhenSpaceIdIsMissing { }]; } -- (void)testManageMembers_ShouldReturnError_WhenUnsupportedDataTypeInCustom { +- (void)testItShouldNotManageMembersWhenUnsupportedDataTypeInCustom { NSString *expectedId = [NSUUID UUID].UUIDString; NSArray *updateSpaces = @[ @{ @"userId": [NSUUID UUID].UUIDString, @"custom": @{ @"user": [NSDate date] } } @@ -133,14 +136,16 @@ - (void)testManageMembers_ShouldReturnError_WhenUnsupportedDataTypeInCustom { #pragma mark - Tests :: Fetch -- (void)testFetchMembers_ShouldReturnBuilder { +- (void)testItShouldReturnFetchMembersBuilder { XCTAssertTrue([self.client.fetchMembers() isKindOfClass:[PNFetchMembersAPICallBuilder class]]); } #pragma mark - Tests :: Fetch :: Call -- (void)testFetchMembers_ShouldProcessOperation_WhenCalled { +- (void)testItShouldFetchMembersWhenCalled { + NSString *filterExpression = @"updated >= '2019-08-31T00:00:00Z'"; + NSString *expectedFilterExpression = [PNString percentEscapedString:filterExpression]; NSString *expectedStart = [NSUUID UUID].UUIDString; NSString *expectedEnd = [NSUUID UUID].UUIDString; NSString *expectedId = [NSUUID UUID].UUIDString; @@ -160,6 +165,7 @@ - (void)testFetchMembers_ShouldProcessOperation_WhenCalled { XCTAssertEqualObjects(parameters.query[@"start"], expectedStart); XCTAssertEqualObjects(parameters.query[@"end"], expectedEnd); XCTAssertEqualObjects(parameters.query[@"limit"], expectedLimit.stringValue); + XCTAssertEqualObjects(parameters.query[@"filter"], expectedFilterExpression); XCTAssertNil(parameters.query[@"count"]); }); @@ -169,12 +175,13 @@ - (void)testFetchMembers_ShouldProcessOperation_WhenCalled { .start(expectedStart) .end(expectedEnd) .limit(expectedLimit.unsignedIntegerValue) + .filter(filterExpression) .includeFields(PNMemberCustomField) .performWithCompletion(^(PNFetchMembersResult *result, PNErrorStatus *status) {}); }]; } -- (void)testFetchMembers_ShouldReturnError_WhenSpaceIdIsMissing { +- (void)testItShouldNotFetchMembersWhenSpaceIdIsMissing { [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { self.client.fetchMembers() .performWithCompletion(^(PNFetchMembersResult *result, PNErrorStatus *status) { @@ -189,5 +196,6 @@ - (void)testFetchMembers_ShouldReturnError_WhenSpaceIdIsMissing { #pragma mark - +#pragma clang diagnostic pop @end diff --git a/Tests/iOS Tests/Tests/Unit/Core/Objects/PNMembershipObjectsTest.m b/Tests/Tests/Unit/Core/Objects/PNMembershipObjectsTest.m similarity index 66% rename from Tests/iOS Tests/Tests/Unit/Core/Objects/PNMembershipObjectsTest.m rename to Tests/Tests/Unit/Core/Objects/PNMembershipObjectsTest.m index 4a33c7b2a..f89064622 100644 --- a/Tests/iOS Tests/Tests/Unit/Core/Objects/PNMembershipObjectsTest.m +++ b/Tests/Tests/Unit/Core/Objects/PNMembershipObjectsTest.m @@ -1,58 +1,55 @@ /** - * @author Serhii Mamontov - * @copyright © 2010-2019 PubNub, Inc. - */ +* @author Serhii Mamontov +* @copyright © 2010-2020 PubNub, Inc. +*/ #import #import +#import "PNRecordableTestCase.h" +#import #import #import -#import "PNTestCase.h" -#pragma mark Test interface declaration +NS_ASSUME_NONNULL_BEGIN -@interface PNMembershipObjectsTest : PNTestCase +#pragma mark Interface declaration - -#pragma mark - Information - -@property (nonatomic, strong) PubNub *client; +@interface PNMembershipObjectsTest : PNRecordableTestCase #pragma mark - @end +NS_ASSUME_NONNULL_END + #pragma mark - Tests @implementation PNMembershipObjectsTest +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Warc-retain-cycles" -#pragma mark - Setup / Tear down -- (void)setUp { - [super setUp]; - - - dispatch_queue_t callbackQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); - PNConfiguration *configuration = [PNConfiguration configurationWithPublishKey:self.publishKey - subscribeKey:self.subscribeKey]; - - self.client = [PubNub clientWithConfiguration:configuration callbackQueue:callbackQueue]; +#pragma mark - VCR configuration + +- (BOOL)shouldSetupVCR { + return NO; } #pragma mark - Tests :: Manage -- (void)testManageMemberships_ShouldReturnBuilder { +- (void)testItShouldReturnManageBuilder { XCTAssertTrue([self.client.manageMemberships() isKindOfClass:[PNManageMembershipsAPICallBuilder class]]); } #pragma mark - Tests :: Manage :: Call -- (void)testManageMemberships_ShouldProcessOperation_WhenCalled { +- (void)testItShouldManageMembershipsWhenCalled { + NSString *filterExpression = @"updated >= '2019-08-31T00:00:00Z'"; NSString *expectedId = [NSUUID UUID].UUIDString; NSArray *addSpaces = @[ @{ @"spaceId": [NSUUID UUID].UUIDString, @"custom": @{ @"space": [NSUUID UUID].UUIDString } } @@ -69,6 +66,7 @@ - (void)testManageMemberships_ShouldProcessOperation_WhenCalled { NSData *expectedPayload = [NSJSONSerialization dataWithJSONObject:expectedBody options:(NSJSONWritingOptions)0 error:nil]; + NSString *expectedFilterExpression = [PNString percentEscapedString:filterExpression]; id clientMock = [self mockForObject:self.client]; @@ -76,27 +74,33 @@ - (void)testManageMemberships_ShouldProcessOperation_WhenCalled { withParameters:[OCMArg any] data:[OCMArg any] completionBlock:[OCMArg any]]) - .andDo(^(NSInvocation *invocation) { - PNRequestParameters *parameters = [self objectForInvocation:invocation argumentAtIndex:2]; - NSData *sentData = [self objectForInvocation:invocation argumentAtIndex:3]; - - XCTAssertEqualObjects(parameters.pathComponents[@"{user-id}"], expectedId); - XCTAssertEqualObjects(parameters.query[@"include"], @"custom,space.custom"); - XCTAssertEqualObjects(sentData, expectedPayload); - }); + .andDo(^(NSInvocation *invocation) { + PNRequestParameters *parameters = [self objectForInvocation:invocation argumentAtIndex:2]; + NSData *sentData = [self objectForInvocation:invocation argumentAtIndex:3]; + NSArray *includeFields = [parameters.query[@"include"] componentsSeparatedByString:@","]; + SEL sortSelector = @selector(caseInsensitiveCompare:); + NSString *includeQuery = [[includeFields sortedArrayUsingSelector:sortSelector] componentsJoinedByString:@","]; + + XCTAssertEqualObjects(parameters.pathComponents[@"{user-id}"], expectedId); + XCTAssertEqualObjects(includeQuery, @"custom,space.custom"); + XCTAssertEqualObjects(parameters.query[@"filter"], expectedFilterExpression); + XCTAssertEqualObjects(sentData, expectedPayload); + }); [self waitForObject:clientMock recordedInvocationCall:recorded afterBlock:^{ self.client.manageMemberships() .userId(expectedId) .add(addSpaces).update(updateSpaces).remove(removeSpaces) + .filter(filterExpression) .includeFields(PNMembershipCustomField|PNMembershipSpaceCustomField) .performWithCompletion(^(PNManageMembershipsStatus *status) {}); }]; } -- (void)testManageMemberships_ShouldReturnError_WhenUserIdIsMissing { +- (void)testItShouldNotManageMembershipsWhenUserIdIsMissing { [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.manageMemberships().includeFields(PNMembershipCustomField) + self.client.manageMemberships() + .includeFields(PNMembershipCustomField) .performWithCompletion(^(PNManageMembershipsStatus *status) { XCTAssertTrue(status.isError); XCTAssertNotEqual([status.errorData.information rangeOfString:@"'user-id'"].location, @@ -107,7 +111,7 @@ - (void)testManageMemberships_ShouldReturnError_WhenUserIdIsMissing { }]; } -- (void)testManageMemberships_ShouldReturnError_WhenUnsupportedDataTypeInCustom { +- (void)testItShouldNotManageMembershipsWhenUnsupportedDataTypeInCustom { NSString *expectedId = [NSUUID UUID].UUIDString; NSArray *updateSpaces = @[ @{ @"spaceId": [NSUUID UUID].UUIDString, @"custom": @{ @"space": [NSDate date] } } @@ -118,29 +122,31 @@ - (void)testManageMemberships_ShouldReturnError_WhenUnsupportedDataTypeInCustom .userId(expectedId) .update(updateSpaces) .includeFields(PNMembershipCustomField) - .performWithCompletion(^(PNManageMembershipsStatus *status) { - XCTAssertTrue(status.isError); - XCTAssertNotEqual([status.errorData.information rangeOfString:@"'custom'"].location, - NSNotFound); - XCTAssertNotEqual([status.errorData.information rangeOfString:updateSpaces[0][@"spaceId"]].location, - NSNotFound); - - handler(); - }); + .performWithCompletion(^(PNManageMembershipsStatus *status) { + XCTAssertTrue(status.isError); + XCTAssertNotEqual([status.errorData.information rangeOfString:@"'custom'"].location, + NSNotFound); + XCTAssertNotEqual([status.errorData.information rangeOfString:updateSpaces[0][@"spaceId"]].location, + NSNotFound); + + handler(); + }); }]; } #pragma mark - Tests :: Fetch -- (void)testFetchMemberships_ShouldReturnBuilder { +- (void)testItShouldReturnFetchBuilder { XCTAssertTrue([self.client.fetchMemberships() isKindOfClass:[PNFetchMembershipsAPICallBuilder class]]); } #pragma mark - Tests :: Fetch :: Call -- (void)testFetchMemberships_ShouldProcessOperation_WhenCalled { +- (void)testItShouldFetchMembershipsWhenCalled { + NSString *filterExpression = @"updated >= '2019-08-31T00:00:00Z'"; + NSString *expectedFilterExpression = [PNString percentEscapedString:filterExpression]; NSString *expectedStart = [NSUUID UUID].UUIDString; NSString *expectedEnd = [NSUUID UUID].UUIDString; NSString *expectedId = [NSUUID UUID].UUIDString; @@ -160,6 +166,7 @@ - (void)testFetchMemberships_ShouldProcessOperation_WhenCalled { XCTAssertEqualObjects(parameters.query[@"start"], expectedStart); XCTAssertEqualObjects(parameters.query[@"end"], expectedEnd); XCTAssertEqualObjects(parameters.query[@"limit"], expectedLimit.stringValue); + XCTAssertEqualObjects(parameters.query[@"filter"], expectedFilterExpression); XCTAssertNil(parameters.query[@"count"]); }); @@ -169,12 +176,13 @@ - (void)testFetchMemberships_ShouldProcessOperation_WhenCalled { .start(expectedStart) .end(expectedEnd) .limit(expectedLimit.unsignedIntegerValue) + .filter(filterExpression) .includeFields(PNMembershipCustomField) .performWithCompletion(^(PNFetchMembershipsResult *result, PNErrorStatus *status) {}); }]; } -- (void)testFetchMemberships_ShouldReturnError_WhenUserIdIsMissing { +- (void)testItShouldNotFetchMembershipsWhenUserIdIsMissing { [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { self.client.fetchMemberships() .performWithCompletion(^(PNFetchMembershipsResult *result, PNErrorStatus *status) { @@ -189,5 +197,6 @@ - (void)testFetchMemberships_ShouldReturnError_WhenUserIdIsMissing { #pragma mark - +#pragma clang diagnostic pop @end diff --git a/Tests/iOS Tests/Tests/Unit/Core/Objects/PNSpaceObjectsTest.m b/Tests/Tests/Unit/Core/Objects/PNSpaceObjectsTest.m similarity index 87% rename from Tests/iOS Tests/Tests/Unit/Core/Objects/PNSpaceObjectsTest.m rename to Tests/Tests/Unit/Core/Objects/PNSpaceObjectsTest.m index 2ab7ec377..ffa2faa9e 100644 --- a/Tests/iOS Tests/Tests/Unit/Core/Objects/PNSpaceObjectsTest.m +++ b/Tests/Tests/Unit/Core/Objects/PNSpaceObjectsTest.m @@ -1,55 +1,51 @@ /** - * @author Serhii Mamontov - * @copyright © 2010-2019 PubNub, Inc. - */ +* @author Serhii Mamontov +* @copyright © 2010-2020 PubNub, Inc. +*/ #import #import +#import "PNRecordableTestCase.h" +#import #import #import -#import "PNTestCase.h" -#pragma mark Test interface declaration +NS_ASSUME_NONNULL_BEGIN -@interface PNSpaceObjectsTest : PNTestCase +#pragma mark Interface declaration - -#pragma mark - Information - -@property (nonatomic, strong) PubNub *client; +@interface PNSpaceObjectsTest : PNRecordableTestCase #pragma mark - @end +NS_ASSUME_NONNULL_END + #pragma mark - Tests @implementation PNSpaceObjectsTest +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Warc-retain-cycles" -#pragma mark - Setup / Tear down -- (void)setUp { - [super setUp]; - - - dispatch_queue_t callbackQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); - PNConfiguration *configuration = [PNConfiguration configurationWithPublishKey:self.publishKey - subscribeKey:self.subscribeKey]; - - self.client = [PubNub clientWithConfiguration:configuration callbackQueue:callbackQueue]; +#pragma mark - VCR configuration + +- (BOOL)shouldSetupVCR { + return NO; } #pragma mark - Tests :: Create -- (void)testCreateSpace_ShouldReturnBuilder { +- (void)testItShouldReturnCreateSpaceBuilder { XCTAssertTrue([self.client.createSpace() isKindOfClass:[PNCreateSpaceAPICallBuilder class]]); } -- (void)testCreateSpace_ShouldSetDefaultIncludeFields { +- (void)testItShouldSetDefaultCreateSpaceIncludeFields { PNCreateSpaceRequest *request = [PNCreateSpaceRequest requestWithSpaceID:[NSUUID UUID].UUIDString name:[NSUUID UUID].UUIDString]; @@ -60,7 +56,7 @@ - (void)testCreateSpace_ShouldSetDefaultIncludeFields { #pragma mark - Tests :: Create :: Call -- (void)testCreateSpace_ShouldProcessOperation_WhenCalled { +- (void)testItShouldCreateSpaceWhenCalled { NSString *expectedInformation = [NSUUID UUID].UUIDString; NSString *expectedSpaceData = [NSUUID UUID].UUIDString; NSString *expectedName = [NSUUID UUID].UUIDString; @@ -98,7 +94,7 @@ - (void)testCreateSpace_ShouldProcessOperation_WhenCalled { }]; } -- (void)testCreateSpace_ShouldNotSetDefaultIncludeFields_WhenCalledWithOutIncludeFields { +- (void)testItShouldNotSetDefaultIncludeFieldsWhenCalledWithOutCreateSpaceIncludeFields { id clientMock = [self mockForObject:self.client]; id recorded = OCMExpect([clientMock processOperation:PNCreateSpaceOperation withParameters:[OCMArg any] @@ -116,7 +112,7 @@ - (void)testCreateSpace_ShouldNotSetDefaultIncludeFields_WhenCalledWithOutInclud }]; } -- (void)testCreateSpace_ShouldReturnError_WhenSpaceIdIsMissing { +- (void)testItShouldNotCreateSpaceWhenSpaceIdIsMissing { NSString *expectedName = [NSUUID UUID].UUIDString; @@ -132,7 +128,7 @@ - (void)testCreateSpace_ShouldReturnError_WhenSpaceIdIsMissing { }]; } -- (void)testCreateSpace_ShouldReturnError_WhenSpaceIdIsTooLong { +- (void)testItShouldNotCreateSpaceWhenSpaceIdIsTooLong { NSString *expectedName = [NSUUID UUID].UUIDString; NSString *expectedId = [@[ [NSUUID UUID].UUIDString, [NSUUID UUID].UUIDString, [NSUUID UUID].UUIDString, @@ -154,7 +150,7 @@ - (void)testCreateSpace_ShouldReturnError_WhenSpaceIdIsTooLong { }]; } -- (void)testCreateSpace_ShouldReturnError_WhenNameIsMissing { +- (void)testItShouldNotCreateSpaceWhenNameIsMissing { NSString *expectedId = [NSUUID UUID].UUIDString; @@ -170,7 +166,7 @@ - (void)testCreateSpace_ShouldReturnError_WhenNameIsMissing { }]; } -- (void)testCreateSpace_ShouldReturnError_WhenUnsupportedDataTypeInCustom { +- (void)testItShouldNotCreateSpaceWhenUnsupportedDataTypeInCustom { NSString *expectedName = [NSUUID UUID].UUIDString; NSString *expectedId = [NSUUID UUID].UUIDString; @@ -190,11 +186,11 @@ - (void)testCreateSpace_ShouldReturnError_WhenUnsupportedDataTypeInCustom { #pragma mark - Tests :: Update -- (void)testUpdateSpace_ShouldReturnBuilder { +- (void)testItShouldReturnUpdateSpaceBuilder { XCTAssertTrue([self.client.updateSpace() isKindOfClass:[PNUpdateSpaceAPICallBuilder class]]); } -- (void)testUpdateSpace_ShouldNotSetDefaultIncludeFields { +- (void)testItShouldNotSetDefaultUpdateSpaceIncludeFields { PNUpdateSpaceRequest *request = [PNUpdateSpaceRequest requestWithSpaceID:[NSUUID UUID].UUIDString]; @@ -204,7 +200,7 @@ - (void)testUpdateSpace_ShouldNotSetDefaultIncludeFields { #pragma mark - Tests :: Update :: Call -- (void)testUpdateSpace_ShouldProcessOperation_WhenCalled { +- (void)testItShouldUpdateSpaceWhenCalled { NSString *expectedInformation = [NSUUID UUID].UUIDString; NSString *expectedUserData = [NSUUID UUID].UUIDString; NSString *expectedName = [NSUUID UUID].UUIDString; @@ -241,7 +237,7 @@ - (void)testUpdateSpace_ShouldProcessOperation_WhenCalled { }]; } -- (void)testUpdateSpace_ShouldNotSetDefaultIncludeFields_WhenCalledWithOutIncludeFields { +- (void)testItShouldNotSetDefaultIncludeFieldsWhenCalledWithOutUpdateSpaceIncludeFields { id clientMock = [self mockForObject:self.client]; id recorded = OCMExpect([clientMock processOperation:PNUpdateSpaceOperation withParameters:[OCMArg any] @@ -259,7 +255,7 @@ - (void)testUpdateSpace_ShouldNotSetDefaultIncludeFields_WhenCalledWithOutInclud }]; } -- (void)testUpdateSpace_ShouldReturnError_WhenSpaceIdIsMissing { +- (void)testItShouldNotUpdateSpaceWhenSpaceIdIsMissing { NSString *expectedName = [NSUUID UUID].UUIDString; @@ -275,7 +271,7 @@ - (void)testUpdateSpace_ShouldReturnError_WhenSpaceIdIsMissing { }]; } -- (void)testUpdateSpace_ShouldNotReturnError_WhenNameIsMissing { +- (void)testItShouldNotUpdateSpaceWhenNameIsMissing { NSString *expectedId = [NSUUID UUID].UUIDString; id clientMock = [self mockForObject:self.client]; @@ -289,7 +285,7 @@ - (void)testUpdateSpace_ShouldNotReturnError_WhenNameIsMissing { }]; } -- (void)testUpdateUser_ShouldReturnError_WhenUnsupportedDataTypeInCustom { +- (void)testItShouldNotUpdateSpaceWhenUnsupportedDataTypeInCustom { NSString *expectedName = [NSUUID UUID].UUIDString; NSString *expectedId = [NSUUID UUID].UUIDString; @@ -309,14 +305,14 @@ - (void)testUpdateUser_ShouldReturnError_WhenUnsupportedDataTypeInCustom { #pragma mark - Tests :: Delete -- (void)testDeleteSpace_ShouldReturnBuilder { +- (void)testItShouldReturnDeleteSpaceBuilder { XCTAssertTrue([self.client.deleteSpace() isKindOfClass:[PNDeleteSpaceAPICallBuilder class]]); } #pragma mark - Tests :: Delete :: Call -- (void)testDeleteSpace_ShouldProcessOperation_WhenCalled { +- (void)testItShouldDeleteSpaceWhenCalled { NSString *expectedId = [NSUUID UUID].UUIDString; @@ -337,7 +333,7 @@ - (void)testDeleteSpace_ShouldProcessOperation_WhenCalled { }]; } -- (void)testDeleteSpace_ShouldReturnError_WhenSpaceIdIsMissing { +- (void)testItShouldNotDeleteSpaceWhenSpaceIdIsMissing { [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { self.client.deleteSpace().performWithCompletion(^(PNAcknowledgmentStatus *status) { XCTAssertTrue(status.isError); @@ -352,11 +348,11 @@ - (void)testDeleteSpace_ShouldReturnError_WhenSpaceIdIsMissing { #pragma mark - Tests :: Fetch -- (void)testFetchSpace_ShouldReturnBuilder { +- (void)testItShouldReturnFetchSpaceBuilder { XCTAssertTrue([self.client.fetchSpace() isKindOfClass:[PNFetchSpaceAPICallBuilder class]]); } -- (void)testFetchSpace_ShouldNotSetDefaultIncludeFields { +- (void)testItShouldNotSetDefaultFetchSpaceIncludeFields { PNFetchSpaceRequest *request = [PNFetchSpaceRequest requestWithSpaceID:[NSUUID UUID].UUIDString]; @@ -366,7 +362,7 @@ - (void)testFetchSpace_ShouldNotSetDefaultIncludeFields { #pragma mark - Tests :: Fetch :: Call -- (void)testFetchSpace_ShouldProcessOperation_WhenCalled { +- (void)testItShouldFetchSpaceWhenCalled { NSString *expectedId = [NSUUID UUID].UUIDString; @@ -388,7 +384,7 @@ - (void)testFetchSpace_ShouldProcessOperation_WhenCalled { }]; } -- (void)testFetchSpace_ShouldNotSetDefaultIncludeFields_WhenCalledWithOutIncludeFields { +- (void)testItShouldNotSetDefaultIncludeFieldsWhenCalledWithOutFetchSpaceIncludeFields { id clientMock = [self mockForObject:self.client]; id recorded = OCMExpect([clientMock processOperation:PNFetchSpaceOperation withParameters:[OCMArg any] @@ -406,7 +402,7 @@ - (void)testFetchSpace_ShouldNotSetDefaultIncludeFields_WhenCalledWithOutInclude }]; } -- (void)testFetchSpace_ShouldReturnError_WhenSpaceIdIsMissing { +- (void)testItShouldNotFetchSpaceWhenSpaceIdIsMissing { [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { self.client.fetchSpace() .performWithCompletion(^(PNFetchSpaceResult *result, PNErrorStatus *status) { @@ -422,11 +418,11 @@ - (void)testFetchSpace_ShouldReturnError_WhenSpaceIdIsMissing { #pragma mark - Tests :: Fetch all -- (void)testFetchSpaces_ShouldReturnBuilder { +- (void)testItShouldReturnFetchSpacesBuilder { XCTAssertTrue([self.client.fetchSpaces() isKindOfClass:[PNFetchSpacesAPICallBuilder class]]); } -- (void)testFetchSpaces_ShouldNotSetDefaultIncludeFields { +- (void)testItShouldNotSetDefaultFetchSpacesIncludeFields { PNFetchSpacesRequest *request = [PNFetchSpacesRequest new]; @@ -436,7 +432,9 @@ - (void)testFetchSpaces_ShouldNotSetDefaultIncludeFields { #pragma mark - Tests :: Fetch all :: Call -- (void)testFetchAllSpaces_ShouldProcessOperation_WhenCalled { +- (void)testItShouldFetchAllSpacesWhenCalled { + NSString *filterExpression = @"updated >= '2019-08-31T00:00:00Z'"; + NSString *expectedFilterExpression = [PNString percentEscapedString:filterExpression]; NSString *expectedStart = [NSUUID UUID].UUIDString; NSString *expectedEnd = [NSUUID UUID].UUIDString; NSNumber *expectedLimit = @(56); @@ -454,18 +452,20 @@ - (void)testFetchAllSpaces_ShouldProcessOperation_WhenCalled { XCTAssertEqualObjects(parameters.query[@"end"], expectedEnd); XCTAssertEqualObjects(parameters.query[@"include"], @"custom"); XCTAssertEqualObjects(parameters.query[@"limit"], expectedLimit.stringValue); + XCTAssertEqualObjects(parameters.query[@"filter"], expectedFilterExpression); XCTAssertNil(parameters.query[@"count"]); }); [self waitForObject:clientMock recordedInvocationCall:recorded afterBlock:^{ self.client.fetchSpaces() .start(expectedStart).end(expectedEnd).limit(expectedLimit.unsignedIntegerValue) + .filter(filterExpression) .includeFields(PNSpaceCustomField) .performWithCompletion(^(PNFetchSpacesResult *result, PNErrorStatus *status) {}); }]; } -- (void)testFetchSpaces_ShouldNotSetDefaultIncludeFields_WhenCalledWithOutIncludeFields { +- (void)testItShouldNotSetDefaultIncludeFieldsWhenCalledWithOutFetchAllSpacesIncludeFields { id clientMock = [self mockForObject:self.client]; id recorded = OCMExpect([clientMock processOperation:PNFetchSpacesOperation withParameters:[OCMArg any] @@ -485,5 +485,6 @@ - (void)testFetchSpaces_ShouldNotSetDefaultIncludeFields_WhenCalledWithOutInclud #pragma mark - +#pragma clang diagnostic pop @end diff --git a/Tests/iOS Tests/Tests/Unit/Core/Objects/PNUserObjectsTest.m b/Tests/Tests/Unit/Core/Objects/PNUserObjectsTest.m similarity index 87% rename from Tests/iOS Tests/Tests/Unit/Core/Objects/PNUserObjectsTest.m rename to Tests/Tests/Unit/Core/Objects/PNUserObjectsTest.m index 368995397..1554f1df7 100644 --- a/Tests/iOS Tests/Tests/Unit/Core/Objects/PNUserObjectsTest.m +++ b/Tests/Tests/Unit/Core/Objects/PNUserObjectsTest.m @@ -1,55 +1,51 @@ /** - * @author Serhii Mamontov - * @copyright © 2010-2019 PubNub, Inc. - */ +* @author Serhii Mamontov +* @copyright © 2010-2020 PubNub, Inc. +*/ #import #import +#import "PNRecordableTestCase.h" +#import #import #import -#import "PNTestCase.h" -#pragma mark Test interface declaration +NS_ASSUME_NONNULL_BEGIN -@interface PNUserObjectsTest : PNTestCase +#pragma mark Interface declaration - -#pragma mark - Information - -@property (nonatomic, strong) PubNub *client; +@interface PNUserObjectsTest : PNRecordableTestCase #pragma mark - @end +NS_ASSUME_NONNULL_END + #pragma mark - Tests @implementation PNUserObjectsTest +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Warc-retain-cycles" -#pragma mark - Setup / Tear down -- (void)setUp { - [super setUp]; - - - dispatch_queue_t callbackQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); - PNConfiguration *configuration = [PNConfiguration configurationWithPublishKey:self.publishKey - subscribeKey:self.subscribeKey]; - - self.client = [PubNub clientWithConfiguration:configuration callbackQueue:callbackQueue]; +#pragma mark - VCR configuration + +- (BOOL)shouldSetupVCR { + return NO; } #pragma mark - Tests :: Create -- (void)testCreateUser_ShouldReturnBuilder { +- (void)testItShouldReturnCreateUserBuilder { XCTAssertTrue([self.client.createUser() isKindOfClass:[PNCreateUserAPICallBuilder class]]); } -- (void)testCreateUser_ShouldSetDefaultIncludeFields { +- (void)testItShouldSetDefaultCreateUserIncludeFields { PNCreateUserRequest *request = [PNCreateUserRequest requestWithUserID:[NSUUID UUID].UUIDString name:[NSUUID UUID].UUIDString]; @@ -60,7 +56,7 @@ - (void)testCreateUser_ShouldSetDefaultIncludeFields { #pragma mark - Tests :: Create :: Call -- (void)testCreateUser_ShouldProcessOperation_WhenCalled { +- (void)testItShouldCreateUserWhenCalled { NSString *expectedUserData = [NSUUID UUID].UUIDString; NSString *expectedName = [NSUUID UUID].UUIDString; NSString *expectedId = [NSUUID UUID].UUIDString; @@ -95,7 +91,7 @@ - (void)testCreateUser_ShouldProcessOperation_WhenCalled { }]; } -- (void)testCreateUser_ShouldNotSetDefaultIncludeFields_WhenCalledWithOutIncludeFields { +- (void)testItShouldNotSetDefaultIncludeFieldsWhenCalledWithOutCreateUserIncludeFields { id clientMock = [self mockForObject:self.client]; id recorded = OCMExpect([clientMock processOperation:PNCreateUserOperation withParameters:[OCMArg any] @@ -113,7 +109,7 @@ - (void)testCreateUser_ShouldNotSetDefaultIncludeFields_WhenCalledWithOutInclude }]; } -- (void)testCreateUser_ShouldReturnError_WhenUserIdIsMissing { +- (void)testItShouldNotCreateUserWhenUserIdIsMissing { NSString *expectedName = [NSUUID UUID].UUIDString; @@ -129,7 +125,7 @@ - (void)testCreateUser_ShouldReturnError_WhenUserIdIsMissing { }]; } -- (void)testCreateUser_ShouldReturnError_WhenUserIdIsTooLong { +- (void)testItShouldNotCreateUserWhenUserIdIsTooLong { NSString *expectedName = [NSUUID UUID].UUIDString; NSString *expectedId = [@[ [NSUUID UUID].UUIDString, [NSUUID UUID].UUIDString, [NSUUID UUID].UUIDString, @@ -151,7 +147,7 @@ - (void)testCreateUser_ShouldReturnError_WhenUserIdIsTooLong { }]; } -- (void)testCreateUser_ShouldReturnError_WhenUserNameIsMissing { +- (void)testItShouldNotCreateUserWhenUserNameIsMissing { NSString *expectedId = [NSUUID UUID].UUIDString; @@ -167,7 +163,7 @@ - (void)testCreateUser_ShouldReturnError_WhenUserNameIsMissing { }]; } -- (void)testCreateUser_ShouldReturnError_WhenUnsupportedDataTypeInCustom { +- (void)testItShouldNotCreateUserWhenUnsupportedDataTypeInCustom { NSString *expectedName = [NSUUID UUID].UUIDString; NSString *expectedId = [NSUUID UUID].UUIDString; @@ -187,11 +183,11 @@ - (void)testCreateUser_ShouldReturnError_WhenUnsupportedDataTypeInCustom { #pragma mark - Tests :: Update -- (void)testUpdateUser_ShouldReturnBuilder { +- (void)testItShouldReturnUpdateUserBuilder { XCTAssertTrue([self.client.updateUser() isKindOfClass:[PNUpdateUserAPICallBuilder class]]); } -- (void)testUpdateUser_ShouldNotSetDefaultIncludeFields { +- (void)testItShouldNotSetDefaultUpdateUserIncludeFields { PNUpdateUserRequest *request = [PNUpdateUserRequest requestWithUserID:[NSUUID UUID].UUIDString]; @@ -201,7 +197,7 @@ - (void)testUpdateUser_ShouldNotSetDefaultIncludeFields { #pragma mark - Tests :: Update :: Call -- (void)testUpdateUser_ShouldProcessOperation_WhenCalled { +- (void)testItShouldUpdateUserWhenCalled { NSString *expectedUserData = [NSUUID UUID].UUIDString; NSString *expectedName = [NSUUID UUID].UUIDString; NSString *expectedId = [NSUUID UUID].UUIDString; @@ -236,7 +232,7 @@ - (void)testUpdateUser_ShouldProcessOperation_WhenCalled { }]; } -- (void)testUpdateUser_ShouldNotSetDefaultIncludeFields_WhenCalledWithOutIncludeFields { +- (void)testItShouldNotSetDefaultIncludeFieldsWhenCalledWithOutUpdateUserIncludeFields { id clientMock = [self mockForObject:self.client]; id recorded = OCMExpect([clientMock processOperation:PNUpdateUserOperation withParameters:[OCMArg any] @@ -254,7 +250,7 @@ - (void)testUpdateUser_ShouldNotSetDefaultIncludeFields_WhenCalledWithOutInclude }]; } -- (void)testUpdateUser_ShouldReturnError_WhenUserIdIsMissing { +- (void)testItShouldNotUpdateUserWhenUserIdIsMissing { NSString *expectedName = [NSUUID UUID].UUIDString; @@ -270,7 +266,7 @@ - (void)testUpdateUser_ShouldReturnError_WhenUserIdIsMissing { }]; } -- (void)testUpdateUser_ShouldNotReturnError_WhenUserNameIsMissing { +- (void)testItShouldNotUpdateUserWhenUserNameIsMissing { NSString *expectedId = [NSUUID UUID].UUIDString; @@ -285,7 +281,7 @@ - (void)testUpdateUser_ShouldNotReturnError_WhenUserNameIsMissing { }]; } -- (void)testUpdateUser_ShouldReturnError_WhenUnsupportedDataTypeInCustom { +- (void)testItShouldNotUpdateUserWhenUnsupportedDataTypeInCustom { NSString *expectedName = [NSUUID UUID].UUIDString; NSString *expectedId = [NSUUID UUID].UUIDString; @@ -305,14 +301,14 @@ - (void)testUpdateUser_ShouldReturnError_WhenUnsupportedDataTypeInCustom { #pragma mark - Tests :: Delete -- (void)testDeleteUser_ShouldReturnBuilder { +- (void)testItShouldReturnDeleteUserBuilder { XCTAssertTrue([self.client.deleteUser() isKindOfClass:[PNDeleteUserAPICallBuilder class]]); } #pragma mark - Tests :: Delete :: Call -- (void)testDeleteUser_ShouldProcessOperation_WhenCalled { +- (void)testItShouldDeleteUserWhenCalled { NSString *expectedId = [NSUUID UUID].UUIDString; @@ -333,7 +329,7 @@ - (void)testDeleteUser_ShouldProcessOperation_WhenCalled { }]; } -- (void)testDeleteUser_ShouldReturnError_WhenUserIdIsMissing { +- (void)testItShouldNotDeleteUserWhenUserIdIsMissing { [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { self.client.updateUser().performWithCompletion(^(PNAcknowledgmentStatus *status) { XCTAssertTrue(status.isError); @@ -348,11 +344,11 @@ - (void)testDeleteUser_ShouldReturnError_WhenUserIdIsMissing { #pragma mark - Tests :: Fetch -- (void)testFetchUser_ShouldReturnBuilder { +- (void)testItShouldReturnFetchUserBuilder { XCTAssertTrue([self.client.fetchUser() isKindOfClass:[PNFetchUserAPICallBuilder class]]); } -- (void)testFetchUser_ShouldNotSetDefaultIncludeFields { +- (void)testItShouldNotSetDefaultFetchUserIncludeFields { PNFetchUserRequest *request = [PNFetchUserRequest requestWithUserID:[NSUUID UUID].UUIDString]; @@ -362,7 +358,7 @@ - (void)testFetchUser_ShouldNotSetDefaultIncludeFields { #pragma mark - Tests :: Fetch :: Call -- (void)testFetchUser_ShouldProcessOperation_WhenCalled { +- (void)testItShouldFetchUserWhenCalled { NSString *expectedId = [NSUUID UUID].UUIDString; @@ -384,7 +380,7 @@ - (void)testFetchUser_ShouldProcessOperation_WhenCalled { }]; } -- (void)testFetchUser_ShouldNotSetDefaultIncludeFields_WhenCalledWithOutIncludeFields { +- (void)testItShouldNotSetDefaultIncludeFieldsWhenCalledWithOutFetchUserIncludeFields { id clientMock = [self mockForObject:self.client]; id recorded = OCMExpect([clientMock processOperation:PNFetchUserOperation withParameters:[OCMArg any] @@ -402,7 +398,7 @@ - (void)testFetchUser_ShouldNotSetDefaultIncludeFields_WhenCalledWithOutIncludeF }]; } -- (void)testFetchUser_ShouldReturnError_WhenUserIdIsMissing { +- (void)testItShouldNotFetchUserWhenUserIdIsMissing { [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { self.client.fetchUser() .performWithCompletion(^(PNFetchUserResult *result, PNErrorStatus *status) { @@ -418,11 +414,11 @@ - (void)testFetchUser_ShouldReturnError_WhenUserIdIsMissing { #pragma mark - Tests :: Fetch all -- (void)testFetchUsers_ShouldReturnBuilder { +- (void)testItShouldReturnFetchUsersBuilder { XCTAssertTrue([self.client.fetchUsers() isKindOfClass:[PNFetchUsersAPICallBuilder class]]); } -- (void)testFetchUserS_ShouldNotSetDefaultIncludeFields { +- (void)testItShouldNotSetDefaultFetchUsersIncludeFields { PNFetchUsersRequest *request = [PNFetchUsersRequest new]; @@ -432,7 +428,9 @@ - (void)testFetchUserS_ShouldNotSetDefaultIncludeFields { #pragma mark - Tests :: Fetch all :: Call -- (void)testFetchAllUsers_ShouldProcessOperation_WhenCalled { +- (void)testItShouldFetchAllUsersWhenCalled { + NSString *filterExpression = @"updated >= '2019-08-31T00:00:00Z'"; + NSString *expectedFilterExpression = [PNString percentEscapedString:filterExpression]; NSString *expectedStart = [NSUUID UUID].UUIDString; NSString *expectedEnd = [NSUUID UUID].UUIDString; NSNumber *expectedLimit = @(56); @@ -450,18 +448,20 @@ - (void)testFetchAllUsers_ShouldProcessOperation_WhenCalled { XCTAssertEqualObjects(parameters.query[@"end"], expectedEnd); XCTAssertEqualObjects(parameters.query[@"include"], @"custom"); XCTAssertEqualObjects(parameters.query[@"limit"], expectedLimit.stringValue); + XCTAssertEqualObjects(parameters.query[@"filter"], expectedFilterExpression); XCTAssertNil(parameters.query[@"count"]); }); [self waitForObject:clientMock recordedInvocationCall:recorded afterBlock:^{ self.client.fetchUsers() .start(expectedStart).end(expectedEnd).limit(expectedLimit.unsignedIntegerValue) + .filter(filterExpression) .includeFields(PNUserCustomField) .performWithCompletion(^(PNFetchUsersResult *result, PNErrorStatus *status) {}); }]; } -- (void)testFetchUsers_ShouldNotSetDefaultIncludeFields_WhenCalledWithOutIncludeFields { +- (void)testItShouldNotSetDefaultIncludeFieldsWhenCalledWithOutFetchUsersIncludeFields { id clientMock = [self mockForObject:self.client]; id recorded = OCMExpect([clientMock processOperation:PNFetchUsersOperation withParameters:[OCMArg any] @@ -481,5 +481,6 @@ - (void)testFetchUsers_ShouldNotSetDefaultIncludeFields_WhenCalledWithOutInclude #pragma mark - +#pragma clang diagnostic pop @end diff --git a/Tests/iOS Tests/Tests/Unit/Core/Publish/PNSignalTest.m b/Tests/Tests/Unit/Core/Publish/PNSignalTest.m similarity index 54% rename from Tests/iOS Tests/Tests/Unit/Core/Publish/PNSignalTest.m rename to Tests/Tests/Unit/Core/Publish/PNSignalTest.m index 3199dc96b..3a3b884d3 100644 --- a/Tests/iOS Tests/Tests/Unit/Core/Publish/PNSignalTest.m +++ b/Tests/Tests/Unit/Core/Publish/PNSignalTest.m @@ -4,20 +4,22 @@ */ #import #import +#import "PNRecordableTestCase.h" #import -#import #import -#import "PNTestCase.h" -#pragma mark Test interface declaration +#pragma mark Interface declaration -@interface PNSignalTest : PNTestCase +@interface PNSignalTest : PNRecordableTestCase #pragma mark - Information -@property (nonatomic, strong) PubNub *client; +/** + * @brief Signal encryption / decryption key. + */ +@property (nonatomic, copy) NSString *cipherKey; #pragma mark - @@ -29,65 +31,77 @@ @interface PNSignalTest : PNTestCase @implementation PNSignalTest +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Warc-retain-cycles" + #pragma mark - Setup / Tear down +- (PNConfiguration *)configurationForTestCaseWithName:(NSString *)name { + PNConfiguration *configuration = [super configurationForTestCaseWithName:name]; + + if ([self.name rangeOfString:@"Encrypt"].location != NSNotFound) { + configuration.cipherKey = self.cipherKey; + } + + return configuration; +} + +- (BOOL)hasMockedObjectsInTestCaseWithName:(NSString *)__unused name { + return YES; +} + - (void)setUp { [super setUp]; - dispatch_queue_t callbackQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); - PNConfiguration *configuration = [PNConfiguration configurationWithPublishKey:self.publishKey - subscribeKey:self.subscribeKey]; + self.cipherKey = @"enigma"; - if ([self.name rangeOfString:@"Encrypt"].location != NSNotFound) { - configuration.cipherKey = @"myCipherKey"; - } - - self.client = [PubNub clientWithConfiguration:configuration callbackQueue:callbackQueue]; + [self completePubNubConfiguration:self.client]; } #pragma mark - Tests :: Builder -- (void)testSignal_ShouldReturnBuilder { +- (void)testItShouldCreateSignalBuilder { XCTAssertTrue([self.client.signal() isKindOfClass:[PNSignalAPICallBuilder class]]); } #pragma mark - Tests :: Call -- (void)testSignal_ShouldProcessOperation_WhenCalled { +- (void)testItShouldProcessOperation { id message = @"Hello real-time world!"; NSString *expectedMessage = [PNString percentEscapedString:[NSString stringWithFormat:@"\"%@\"", message]]; NSString *expectedChannel = [NSUUID UUID].UUIDString; - id clientMock = [self mockForObject:self.client]; - id recorded = OCMExpect([clientMock processOperation:PNSignalOperation withParameters:[OCMArg any] - data:[OCMArg any] completionBlock:[OCMArg any]]) + id recorded = OCMExpect([(id)self.client processOperation:PNSignalOperation withParameters:[OCMArg any] + data:[OCMArg any] completionBlock:[OCMArg any]]) .andDo(^(NSInvocation *invocation) { PNRequestParameters *parameters = [self objectForInvocation:invocation argumentAtIndex:2]; - + XCTAssertEqualObjects(parameters.pathComponents[@"{channel}"], expectedChannel); XCTAssertEqualObjects(parameters.pathComponents[@"{message}"], expectedMessage); }); - [self waitForObject:clientMock recordedInvocationCall:recorded afterBlock:^{ - self.client.signal().channel(expectedChannel).message(message) - .performWithCompletion(^(PNSignalStatus * status) { }); + + [self waitForObject:self.client recordedInvocationCall:recorded afterBlock:^{ + self.client.signal() + .channel(expectedChannel) + .message(message) + .performWithCompletion(^(PNSignalStatus * status) { }); }]; } -- (void)testSignal_ShouldNotEncrypt_WhenCalledWithCipherKey { - id message = @{ @"such": @"object" }; +- (void)testItShouldNotEncryptWhenCipherKeyIsSet { NSString *expectedMessage = [PNString percentEscapedString:@"{\"such\":\"object\"}"]; NSString *expectedChannel = [NSUUID UUID].UUIDString; + id message = @{ @"such": @"object" }; - id clientMock = [self mockForObject:self.client]; - id recorded = OCMExpect([clientMock processOperation:PNSignalOperation withParameters:[OCMArg any] - data:[OCMArg any] completionBlock:[OCMArg any]]) + id recorded = OCMExpect([(id)self.client processOperation:PNSignalOperation withParameters:[OCMArg any] + data:[OCMArg any] completionBlock:[OCMArg any]]) .andDo(^(NSInvocation *invocation) { PNRequestParameters *parameters = [self objectForInvocation:invocation argumentAtIndex:2]; @@ -95,7 +109,7 @@ - (void)testSignal_ShouldNotEncrypt_WhenCalledWithCipherKey { XCTAssertEqualObjects(parameters.pathComponents[@"{message}"], expectedMessage); }); - [self waitForObject:clientMock recordedInvocationCall:recorded afterBlock:^{ + [self waitForObject:self.client recordedInvocationCall:recorded afterBlock:^{ self.client.signal().channel(expectedChannel).message(message) .performWithCompletion(^(PNSignalStatus * status) { }); }]; @@ -104,7 +118,7 @@ - (void)testSignal_ShouldNotEncrypt_WhenCalledWithCipherKey { #pragma mark - Tests :: Retry -- (void)testMessageCounts_ShouldCallMethodAgain_WhenRetryOnFailureCalled { +- (void)testItShouldRetryWhenPreviousCallFails { __block PNErrorStatus *errorStatus = nil; id message = @"Hello real-time world!"; @@ -117,16 +131,16 @@ - (void)testMessageCounts_ShouldCallMethodAgain_WhenRetryOnFailureCalled { }); }]; - id clientMock = [self mockForObject:self.client]; - id recorded = OCMExpect([clientMock processOperation:PNSignalOperation withParameters:[OCMArg any] - data:[OCMArg any] completionBlock:[OCMArg any]]); + id recorded = OCMExpect([(id)self.client processOperation:PNSignalOperation withParameters:[OCMArg any] + data:[OCMArg any] completionBlock:[OCMArg any]]); - [self waitForObject:clientMock recordedInvocationCall:recorded afterBlock:^{ + [self waitForObject:self.client recordedInvocationCall:recorded afterBlock:^{ [errorStatus retry]; }]; } #pragma mark - +#pragma clang diagnostic pop @end diff --git a/Tests/iOS Tests/Tests/Unit/Helpers/PNNotificationPayloadBuilderTest.m b/Tests/Tests/Unit/Helpers/PNNotificationPayloadBuilderTest.m similarity index 88% rename from Tests/iOS Tests/Tests/Unit/Helpers/PNNotificationPayloadBuilderTest.m rename to Tests/Tests/Unit/Helpers/PNNotificationPayloadBuilderTest.m index 2173df67c..531c802b7 100644 --- a/Tests/iOS Tests/Tests/Unit/Helpers/PNNotificationPayloadBuilderTest.m +++ b/Tests/Tests/Unit/Helpers/PNNotificationPayloadBuilderTest.m @@ -1,6 +1,6 @@ /** * @author Serhii Mamontov -* @copyright © 2010-2019 PubNub, Inc. +* @copyright © 2010-2020 PubNub, Inc. */ #import #import @@ -13,7 +13,7 @@ NS_ASSUME_NONNULL_BEGIN -#pragma mark Test interface declaration +#pragma mark Interface declaration @interface PNNotificationPayloadBuilderTest : XCTestCase @@ -33,10 +33,13 @@ @interface PNNotificationPayloadBuilderTest : XCTestCase NS_ASSUME_NONNULL_END -#pragma mark - Interface implementation +#pragma mark - Tests @implementation PNNotificationPayloadBuilderTest +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Warc-retain-cycles" + #pragma mark - Setup / Tear down @@ -50,7 +53,7 @@ - (void)setUp { #pragma mark - Tests :: Notifications builder -- (void)testNotificationBuilderConstructor_ShouldPreparePlatformSpecificBuilders_WhenCalled { +- (void)testItShouldPreparePlatformSpecificBuildersWhenCalled { NSString *expectedTitle = [NSUUID UUID].UUIDString; NSString *expectedBody = [NSUUID UUID].UUIDString; @@ -63,7 +66,7 @@ - (void)testNotificationBuilderConstructor_ShouldPreparePlatformSpecificBuilders XCTAssertNotNil(builder.fcm); } -- (void)testNotificationBuilderConstructor_ShouldPassTitleAndBodyToBuilders_WhenValuesPassed { +- (void)testItShouldPassTitleAndBodyToBuildersWhenValuesPassed { NSString *expectedTitle = [NSUUID UUID].UUIDString; NSString *expectedBody = [NSUUID UUID].UUIDString; @@ -79,7 +82,7 @@ - (void)testNotificationBuilderConstructor_ShouldPassTitleAndBodyToBuilders_When XCTAssertEqualObjects([[builder.fcm dictionaryRepresentation] valueForKeyPath:@"notification.body"], expectedBody); } -- (void)testNotificationSubtitle_ShouldPassToBuilders_WhenValueIsSet { +- (void)testItShouldPassSubtitleToBuildersWhenValueIsSet { NSString *expectedSubtitle = [NSUUID UUID].UUIDString; @@ -92,7 +95,7 @@ - (void)testNotificationSubtitle_ShouldPassToBuilders_WhenValueIsSet { XCTAssertEqual(builder.fcm.notification.count, 2); } -- (void)testNotificationBadge_ShouldPassToBuilders_WhenValueIsSet { +- (void)testItShouldPassBadgeToBuildersWhenValueIsSet { NSNumber *expectedBadge = @11; @@ -105,7 +108,7 @@ - (void)testNotificationBadge_ShouldPassToBuilders_WhenValueIsSet { XCTAssertEqual(builder.fcm.notification.count, 2); } -- (void)testNotificationSound_ShouldPassToBuilders_WhenValueIsSet { +- (void)testItShouldPassSoundToBuildersWhenValueIsSet { NSString *expectedSound = [NSUUID UUID].UUIDString; @@ -118,7 +121,7 @@ - (void)testNotificationSound_ShouldPassToBuilders_WhenValueIsSet { XCTAssertEqualObjects([[builder.fcm dictionaryRepresentation] valueForKeyPath:@"notification.sound"], expectedSound); } -- (void)testNotificationDebugging_ShouldSetDebugFlag_WhenDebuggingSetToYES { +- (void)testItShouldSetDebugFlagWhenDebuggingSetToYES { PNNotificationsPayload *builder = [PNNotificationsPayload payloadsWithNotificationTitle:[NSUUID UUID].UUIDString body:[NSUUID UUID].UUIDString]; builder.debugging = YES; @@ -126,7 +129,7 @@ - (void)testNotificationDebugging_ShouldSetDebugFlag_WhenDebuggingSetToYES { XCTAssertEqualObjects([builder dictionaryRepresentationFor:PNAPNSPush][@"pn_debug"], @YES); } -- (void)testNotificationDictionaryRepresentation_ShouldProvidePayloadForAPNSAndFCM_WhenCalledWithAPNSAndFCMPushTypes { +- (void)testItShouldProvidePayloadForAPNSAndFCMWhenCalledWithAPNSAndFCMPushTypes { NSString *expectedTitle = [NSUUID UUID].UUIDString; NSString *expectedBody = [NSUUID UUID].UUIDString; NSDictionary *expectedPayload = @{ @@ -152,7 +155,7 @@ - (void)testNotificationDictionaryRepresentation_ShouldProvidePayloadForAPNSAndF XCTAssertEqualObjects([builder dictionaryRepresentationFor:PNAPNSPush|PNFCMPush], expectedPayload); } -- (void)testNotificationDictionaryRepresentation_ShouldProvidePayloadForAPNS2AndFCM_WhenCalledWithAPNSAndFCMPushTypes { +- (void)testItShouldProvidePayloadForAPNS2AndFCMWhenCalledWithAPNSAndFCMPushTypes { NSString *expectedTitle = [NSUUID UUID].UUIDString; NSString *expectedBody = [NSUUID UUID].UUIDString; NSDictionary *expectedPayload = @{ @@ -193,7 +196,7 @@ - (void)testNotificationDictionaryRepresentation_ShouldProvidePayloadForAPNS2And #pragma mark - Tests :: APNS builder -- (void)testAPNSConstructor_ShouldSetDefaultStructure_WhenCalledOnlyWithStorage { +- (void)testItShouldSetDefaultAPNSStructureWhenCalledAPNSBuilderOnlyWithStorage { PNAPNSNotificationPayload *builder = [PNAPNSNotificationPayload payloadWithStorage:self.platformPayloadStorage notificationTitle:nil body:nil]; @@ -205,7 +208,7 @@ - (void)testAPNSConstructor_ShouldSetDefaultStructure_WhenCalledOnlyWithStorage XCTAssertEqual(((NSDictionary *)self.platformPayloadStorage[@"aps"][@"alert"]).count, 0); } -- (void)testAPNSConstructor_ShouldSetNotificationTitleBody_WhenCalledWithAllFieldsSet { +- (void)testItShouldSetTitleAndBodyWhenCalledAPNSBuilderWithAllFieldsSet { NSString *expectedTitle = [NSUUID UUID].UUIDString; NSString *expectedBody = [NSUUID UUID].UUIDString; @@ -218,7 +221,7 @@ - (void)testAPNSConstructor_ShouldSetNotificationTitleBody_WhenCalledWithAllFiel XCTAssertEqualObjects(self.platformPayloadStorage[@"aps"][@"alert"][@"body"], expectedBody); } -- (void)testAPNSSubtitle_ShouldSet_WhenSubtitlePassedToBuilder { +- (void)testItShouldSetSubtitleWhenSubtitlePassedToAPNSBuilder { NSString *expectedSubtitle = [NSUUID UUID].UUIDString; @@ -230,7 +233,7 @@ - (void)testAPNSSubtitle_ShouldSet_WhenSubtitlePassedToBuilder { XCTAssertEqualObjects(self.platformPayloadStorage[@"aps"][@"alert"][@"subtitle"], expectedSubtitle); } -- (void)testAPNSSubtitle_ShouldNotSet_WhenNilPassedToBuilder { +- (void)testItShouldNotSetSubtitleWhenNilPassedToAPNSBuilder { PNAPNSNotificationPayload *builder = [PNAPNSNotificationPayload payloadWithStorage:self.platformPayloadStorage notificationTitle:nil body:nil]; @@ -239,7 +242,7 @@ - (void)testAPNSSubtitle_ShouldNotSet_WhenNilPassedToBuilder { XCTAssertNil(self.platformPayloadStorage[@"aps"][@"alert"][@"subtitle"]); } -- (void)testAPNSBody_ShouldSet_WhenBodyPassedToBuilder { +- (void)testItShouldSetBodyWhenBodyPassedToAPNSBuilder { NSString *expectedBody = [NSUUID UUID].UUIDString; @@ -251,7 +254,7 @@ - (void)testAPNSBody_ShouldSet_WhenBodyPassedToBuilder { XCTAssertEqualObjects(self.platformPayloadStorage[@"aps"][@"alert"][@"body"], expectedBody); } -- (void)testAPNSBody_ShouldNotSet_WhenNilPassedToBuilder { +- (void)testItShouldNotSetBodyWhenNilPassedToAPNSBuilder { PNAPNSNotificationPayload *builder = [PNAPNSNotificationPayload payloadWithStorage:self.platformPayloadStorage notificationTitle:nil body:nil]; @@ -260,7 +263,7 @@ - (void)testAPNSBody_ShouldNotSet_WhenNilPassedToBuilder { XCTAssertNil(self.platformPayloadStorage[@"aps"][@"alert"][@"body"]); } -- (void)testAPNSBadge_ShouldSet_WhenBadgePassedToBuilder { +- (void)testItShouldSetBadgeWhenBadgePassedToAPNSBuilder { NSNumber *expectedBadge = @26; @@ -272,7 +275,7 @@ - (void)testAPNSBadge_ShouldSet_WhenBadgePassedToBuilder { XCTAssertEqualObjects(self.platformPayloadStorage[@"aps"][@"badge"], expectedBadge); } -- (void)testAPNSBadge_ShouldNotSet_WhenNilPassedToBuilder { +- (void)testItShouldNotSetBadgeWhenNilPassedToAPNSBuilder { PNAPNSNotificationPayload *builder = [PNAPNSNotificationPayload payloadWithStorage:self.platformPayloadStorage notificationTitle:nil body:nil]; @@ -281,7 +284,7 @@ - (void)testAPNSBadge_ShouldNotSet_WhenNilPassedToBuilder { XCTAssertNil(self.platformPayloadStorage[@"aps"][@"badge"]); } -- (void)testAPNSSound_ShouldSet_WhenSoundPassedToBuilder { +- (void)testItShouldSetSoundWhenSoundPassedToAPNSBuilder { NSString *expectedSound = [NSUUID UUID].UUIDString; @@ -293,7 +296,7 @@ - (void)testAPNSSound_ShouldSet_WhenSoundPassedToBuilder { XCTAssertEqualObjects(self.platformPayloadStorage[@"aps"][@"sound"], expectedSound); } -- (void)testAPNSSound_ShouldNotSet_WhenNilPassedToBuilder { +- (void)testItShouldNotSetSoundWhenNilPassedToAPNSBuilder { PNAPNSNotificationPayload *builder = [PNAPNSNotificationPayload payloadWithStorage:self.platformPayloadStorage notificationTitle:nil body:nil]; @@ -302,7 +305,7 @@ - (void)testAPNSSound_ShouldNotSet_WhenNilPassedToBuilder { XCTAssertNil(self.platformPayloadStorage[@"aps"][@"sound"]); } -- (void)testAPNSDictionaryRepresentation_ShouldBeNil_WhenNoInformationPassed { +- (void)testItShouldNotProvidePayloadWhenNoInformationPassedToAPNSBuilder { PNAPNSNotificationPayload *builder = [PNAPNSNotificationPayload payloadWithStorage:self.platformPayloadStorage notificationTitle:nil body:nil]; @@ -310,7 +313,7 @@ - (void)testAPNSDictionaryRepresentation_ShouldBeNil_WhenNoInformationPassed { XCTAssertNil([builder dictionaryRepresentation]); } -- (void)testAPNSDictionaryRepresentation_ShouldSetContentAvailable_WhenSilentSetToYES { +- (void)testItShouldSetContentAvailableWhenSilentSetToYESForAPNSBuilder { PNAPNSNotificationPayload *builder = [PNAPNSNotificationPayload payloadWithStorage:self.platformPayloadStorage notificationTitle:[NSUUID UUID].UUIDString body:[NSUUID UUID].UUIDString]; @@ -324,7 +327,7 @@ - (void)testAPNSDictionaryRepresentation_ShouldSetContentAvailable_WhenSilentSet XCTAssertNil([builder dictionaryRepresentation][@"aps"][@"alert"]); } -- (void)testAPNSDictionaryRepresentation_ShouldBeValid_WhenAllInformationPassed { +- (void)testItShouldProvidePayloadWhenAllInformationPassedToAPNSBuilder { NSString *expectedSubtitle = [NSUUID UUID].UUIDString; NSString *expectedTitle = [NSUUID UUID].UUIDString; NSString *expectedSound = [NSUUID UUID].UUIDString; @@ -356,7 +359,7 @@ - (void)testAPNSDictionaryRepresentation_ShouldBeValid_WhenAllInformationPassed #pragma mark - Tests :: APNS over HTTP/2 builder -- (void)testAPNS2DictionaryRepresentation_ShouldSetDefaultConfiguration_WhenCalledForAPNS2PushTypeWithOutConfiguration { +- (void)testItShouldSetDefaultWhenCalledAPNSBuilderForAPNS2PushTypeWithOutConfiguration { NSString *expectedSubtitle = [NSUUID UUID].UUIDString; NSString *expectedTitle = [NSUUID UUID].UUIDString; NSString *expectedSound = [NSUUID UUID].UUIDString; @@ -401,7 +404,7 @@ - (void)testAPNS2DictionaryRepresentation_ShouldSetDefaultConfiguration_WhenCall #pragma mark - Tests :: APNS over HTTP/2 builder :: Configuration -- (void)testAPNSConfigurationConstructor_ShouldCreateWithDefaultTarget_WhenCalledDefault { +- (void)testItShouldCreateConfigurationWithDefaultTargetWhenCalledDefault { NSDictionary *expectedConfiguration = @{ @"auth_method": @"token", @"targets": @[ @@ -419,7 +422,7 @@ - (void)testAPNSConfigurationConstructor_ShouldCreateWithDefaultTarget_WhenCalle XCTAssertEqualObjects([configuration dictionaryRepresentation], expectedConfiguration); } -- (void)testAPNSConfigurationConstructor_ShouldCreateWithDefaultTarget_WhenCalledWithEmptyTargetsList { +- (void)testItShouldCreateConfigurationWithDefaultTargetWhenCalledWithEmptyTargetsList { NSDictionary *expectedConfiguration = @{ @"auth_method": @"token", @"targets": @[ @@ -439,7 +442,7 @@ - (void)testAPNSConfigurationConstructor_ShouldCreateWithDefaultTarget_WhenCalle XCTAssertEqualObjects([configuration dictionaryRepresentation], expectedConfiguration); } -- (void)testAPNSConfigurationConstructor_ShouldCreateForTarget_WhenCalledWithSpecificTarget { +- (void)testItShouldCreateConfigurationForTargetWhenCalledWithSpecificTarget { NSString *expectedTopic = [NSUUID UUID].UUIDString; PNAPNSNotificationTarget *target = [PNAPNSNotificationTarget targetForTopic:expectedTopic]; NSDictionary *expectedConfiguration = @{ @@ -459,7 +462,7 @@ - (void)testAPNSConfigurationConstructor_ShouldCreateForTarget_WhenCalledWithSpe XCTAssertEqualObjects([configuration dictionaryRepresentation], expectedConfiguration); } -- (void)testAPNSConfigurationConstructor_ShouldCreateSpecific_WhenCalledCollapseIDExpirationAndTargets { +- (void)testItShouldCreateSpecificConfiurationWhenCalledWithCollapseIDExpirationAndTargets { PNAPNSNotificationTarget *target = [PNAPNSNotificationTarget defaultTarget]; NSDate *expectedExpirationDate = [NSDate dateWithTimeIntervalSince1970:1574892507]; NSString *expectedCollapseID = [NSUUID UUID].UUIDString; @@ -486,7 +489,7 @@ - (void)testAPNSConfigurationConstructor_ShouldCreateSpecific_WhenCalledCollapse #pragma mark - Tests :: APNS over HTTP/2 builder :: Target -- (void)testAPNSTarget_ShouldCreateForDevelopmentEnvironmentAndBundleIdentifier_WhenCalledDefault { +- (void)testItShouldCreateTargetForDevelopmentEnvironmentAndBundleIdentifierWhenCalledDefault { NSDictionary *expectedTarget = @{ @"environment": @"development", @"topic": NSBundle.mainBundle.bundleIdentifier @@ -498,7 +501,7 @@ - (void)testAPNSTarget_ShouldCreateForDevelopmentEnvironmentAndBundleIdentifier_ XCTAssertEqualObjects([target dictionaryRepresentation], expectedTarget); } -- (void)testAPNSTarget_ShouldCreateForDevelopmentEnvironment_WhenCalledWithTopic { +- (void)testItShouldCreateTargetForDevelopmentEnvironmentWhenCalledWithTopic { NSString *expectedTopic = [NSUUID UUID].UUIDString; NSDictionary *expectedTarget = @{ @"environment": @"development", @"topic": expectedTopic }; @@ -508,7 +511,7 @@ - (void)testAPNSTarget_ShouldCreateForDevelopmentEnvironment_WhenCalledWithTopic XCTAssertEqualObjects([target dictionaryRepresentation], expectedTarget); } -- (void)testAPNSTarget_ShouldCreateSpecific_WhenCalledWithTopicAndEnvironment { +- (void)testItShouldCreateSpecificTargetWhenCalledWithTopicAndEnvironment { NSData *excludedDevice = [@"000000000000000000000000000000" dataUsingEncoding:NSUTF8StringEncoding]; NSString *expectedTopic = [NSUUID UUID].UUIDString; NSDictionary *expectedTarget = @{ @@ -528,7 +531,7 @@ - (void)testAPNSTarget_ShouldCreateSpecific_WhenCalledWithTopicAndEnvironment { #pragma mark - Tests :: MPNS builder -- (void)testMPNSConstructor_ShouldSetNotificationTitleBody_WhenCalledWithAllFieldsSet { +- (void)testItShouldSetNotificationTitleBodyWhenCalledMPNSBuilderWithAllFieldsSet { NSString *expectedTitle = [NSUUID UUID].UUIDString; NSString *expectedBody = [NSUUID UUID].UUIDString; @@ -541,7 +544,7 @@ - (void)testMPNSConstructor_ShouldSetNotificationTitleBody_WhenCalledWithAllFiel XCTAssertEqualObjects(self.platformPayloadStorage[@"back_content"], expectedBody); } -- (void)testMPNSBackTitle_ShouldSet_WhenSubtitlePassedToBuilder { +- (void)testItShouldSetTitleWhenSubtitlePassedToMPNSBuilder { NSString *expectedSubtitle = [NSUUID UUID].UUIDString; @@ -553,7 +556,7 @@ - (void)testMPNSBackTitle_ShouldSet_WhenSubtitlePassedToBuilder { XCTAssertEqualObjects(self.platformPayloadStorage[@"back_title"], expectedSubtitle); } -- (void)testMPNSBackTitle_ShouldSet_WhenBackTitlePassedToBuilder { +- (void)testItShouldSetBackTitleWhenBackTitlePassedToMPNSBuilder { NSString *expectedSubtitle = [NSUUID UUID].UUIDString; @@ -565,7 +568,7 @@ - (void)testMPNSBackTitle_ShouldSet_WhenBackTitlePassedToBuilder { XCTAssertEqualObjects(self.platformPayloadStorage[@"back_title"], expectedSubtitle); } -- (void)testMPNSBackContent_ShouldSet_WhenBodyPassedToBuilder { +- (void)testItShouldSetBackContentWhenBodyPassedToMPNSBuilder { NSString *expectedBody = [NSUUID UUID].UUIDString; @@ -577,7 +580,7 @@ - (void)testMPNSBackContent_ShouldSet_WhenBodyPassedToBuilder { XCTAssertEqualObjects(self.platformPayloadStorage[@"back_content"], expectedBody); } -- (void)testMPNSBackContent_ShouldSet_WhenBackContentPassedToBuilder { +- (void)testItShouldSetBackContentWhenBackContentPassedToMPNSBuilder { NSString *expectedBody = [NSUUID UUID].UUIDString; @@ -589,7 +592,7 @@ - (void)testMPNSBackContent_ShouldSet_WhenBackContentPassedToBuilder { XCTAssertEqualObjects(self.platformPayloadStorage[@"back_content"], expectedBody); } -- (void)testMPNSCount_ShouldSet_WhenBadgePassedToBuilder { +- (void)testItShouldSetCountWhenBadgePassedToMPNSBuilder { NSNumber *expectedBadge = @26; @@ -601,7 +604,7 @@ - (void)testMPNSCount_ShouldSet_WhenBadgePassedToBuilder { XCTAssertEqualObjects(self.platformPayloadStorage[@"count"], expectedBadge); } -- (void)testMPNSCount_ShouldSet_WhenCountPassedToBuilder { +- (void)testItShouldSetCountWhenCountPassedToMPNSBuilder { NSNumber *expectedBadge = @26; @@ -613,7 +616,7 @@ - (void)testMPNSCount_ShouldSet_WhenCountPassedToBuilder { XCTAssertEqualObjects(self.platformPayloadStorage[@"count"], expectedBadge); } -- (void)testMPNSDictionaryRepresentation_ShouldBeNil_WhenNoInformationPassed { +- (void)testItShouldNotProvidePayloadWhenNoInformationPassedToMPNSBuilder { PNMPNSNotificationPayload *builder = [PNMPNSNotificationPayload payloadWithStorage:self.platformPayloadStorage notificationTitle:nil body:nil]; @@ -621,7 +624,7 @@ - (void)testMPNSDictionaryRepresentation_ShouldBeNil_WhenNoInformationPassed { XCTAssertNil([builder dictionaryRepresentation]); } -- (void)testMPNSDictionaryRepresentation_ShouldBeValid_WhenAllInformationPassed { +- (void)testItShouldProvidePayloadWhenAllInformationPassedToMPNSBuilder { NSString *expectedSubtitle = [NSUUID UUID].UUIDString; NSString *expectedTitle = [NSUUID UUID].UUIDString; NSString *expectedBody = [NSUUID UUID].UUIDString; @@ -648,7 +651,7 @@ - (void)testMPNSDictionaryRepresentation_ShouldBeValid_WhenAllInformationPassed #pragma mark - Tests :: FCM builder -- (void)testFCMConstructor_ShouldSetDefaultStructure_WhenCalledOnlyWithStorage { +- (void)testItShouldSetDefaultFCMStructureWhenCalledFCMBuilderOnlyWithStorage { PNFCMNotificationPayload *builder = [PNFCMNotificationPayload payloadWithStorage:self.platformPayloadStorage notificationTitle:nil body:nil]; @@ -658,7 +661,7 @@ - (void)testFCMConstructor_ShouldSetDefaultStructure_WhenCalledOnlyWithStorage { XCTAssertTrue([self.platformPayloadStorage[@"data"] isKindOfClass:[NSMutableDictionary class]]); } -- (void)testFCMSConstructor_ShouldSetNotificationTitleBody_WhenCalledWithAllFieldsSet { +- (void)testItShouldSetTitleAndBodyWhenCalledFCMBuilderWithAllFieldsSet { NSString *expectedTitle = [NSUUID UUID].UUIDString; NSString *expectedBody = [NSUUID UUID].UUIDString; @@ -671,7 +674,7 @@ - (void)testFCMSConstructor_ShouldSetNotificationTitleBody_WhenCalledWithAllFiel XCTAssertEqualObjects(self.platformPayloadStorage[@"notification"][@"body"], expectedBody); } -- (void)testFCMSubtitle_ShouldNotSet_WhenPassedToBuilderBecauseNotSupported { +- (void)testItShouldNotSetSubtitleWhenPassedToFCMBuilderBecauseNotSupported { PNFCMNotificationPayload *builder = [PNFCMNotificationPayload payloadWithStorage:self.platformPayloadStorage notificationTitle:nil body:nil]; @@ -680,7 +683,7 @@ - (void)testFCMSubtitle_ShouldNotSet_WhenPassedToBuilderBecauseNotSupported { XCTAssertEqual(builder.notification.count, 0); } -- (void)testFCMBody_ShouldSet_WhenBodyPassedToBuilder { +- (void)testItShouldSetBodyWhenBodyPassedToFCMBuilder { NSString *expectedBody = [NSUUID UUID].UUIDString; @@ -692,7 +695,7 @@ - (void)testFCMBody_ShouldSet_WhenBodyPassedToBuilder { XCTAssertEqualObjects(self.platformPayloadStorage[@"notification"][@"body"], expectedBody); } -- (void)testFCMBody_ShouldNotSet_WhenNilPassedToBuilder { +- (void)testItShouldNotSetBodyWhenNilPassedToFCMBuilder { PNFCMNotificationPayload *builder = [PNFCMNotificationPayload payloadWithStorage:self.platformPayloadStorage notificationTitle:nil body:nil]; @@ -701,7 +704,7 @@ - (void)testFCMBody_ShouldNotSet_WhenNilPassedToBuilder { XCTAssertNil(self.platformPayloadStorage[@"notification"][@"body"]); } -- (void)testFCMSBadge_ShouldNotSet_WhenPassedToBuilderBecauseNotSupported { +- (void)testItShouldNotSetBadgeWhenPassedToFCMBuilderBecauseNotSupported { PNFCMNotificationPayload *builder = [PNFCMNotificationPayload payloadWithStorage:self.platformPayloadStorage notificationTitle:nil body:nil]; @@ -710,7 +713,7 @@ - (void)testFCMSBadge_ShouldNotSet_WhenPassedToBuilderBecauseNotSupported { XCTAssertEqual(builder.notification.count, 0); } -- (void)testFCMSSound_ShouldSet_WhenSoundPassedToBuilder { +- (void)testItShouldSetSoundWhenSoundPassedToFCMBuilder { NSString *expectedSound = [NSUUID UUID].UUIDString; @@ -722,7 +725,7 @@ - (void)testFCMSSound_ShouldSet_WhenSoundPassedToBuilder { XCTAssertEqualObjects(self.platformPayloadStorage[@"notification"][@"sound"], expectedSound); } -- (void)testFCMSSound_ShouldNotSet_WhenNilPassedToBuilder { +- (void)testItShouldNotSetSoundWhenNilPassedToFCMBuilder { PNFCMNotificationPayload *builder = [PNFCMNotificationPayload payloadWithStorage:self.platformPayloadStorage notificationTitle:nil body:nil]; @@ -731,7 +734,7 @@ - (void)testFCMSSound_ShouldNotSet_WhenNilPassedToBuilder { XCTAssertNil(self.platformPayloadStorage[@"notification"][@"sound"]); } -- (void)testFCMSIcon_ShouldSet_WhenSoundPassedToBuilder { +- (void)testItShouldSetIconWhenSoundPassedToFCMBuilder { NSString *expectedIcon = [NSUUID UUID].UUIDString; @@ -743,7 +746,7 @@ - (void)testFCMSIcon_ShouldSet_WhenSoundPassedToBuilder { XCTAssertEqualObjects(self.platformPayloadStorage[@"notification"][@"icon"], expectedIcon); } -- (void)testFCMSIcon_ShouldNotSet_WhenNilPassedToBuilder { +- (void)testItShouldNotSetIconWhenNilPassedToFCMBuilder { PNFCMNotificationPayload *builder = [PNFCMNotificationPayload payloadWithStorage:self.platformPayloadStorage notificationTitle:nil body:nil]; @@ -752,7 +755,7 @@ - (void)testFCMSIcon_ShouldNotSet_WhenNilPassedToBuilder { XCTAssertNil(self.platformPayloadStorage[@"notification"][@"icon"]); } -- (void)testFCMSTag_ShouldSet_WhenSoundPassedToBuilder { +- (void)testItShouldSetTagWhenSoundPassedToFCMBuilder { NSString *expectedTag = [NSUUID UUID].UUIDString; @@ -764,7 +767,7 @@ - (void)testFCMSTag_ShouldSet_WhenSoundPassedToBuilder { XCTAssertEqualObjects(self.platformPayloadStorage[@"notification"][@"tag"], expectedTag); } -- (void)testFCMSTag_ShouldNotSet_WhenNilPassedToBuilder { +- (void)testItShouldNotSetTagWhenNilPassedToFCMBuilder { PNFCMNotificationPayload *builder = [PNFCMNotificationPayload payloadWithStorage:self.platformPayloadStorage notificationTitle:nil body:nil]; @@ -773,7 +776,7 @@ - (void)testFCMSTag_ShouldNotSet_WhenNilPassedToBuilder { XCTAssertNil(self.platformPayloadStorage[@"notification"][@"tag"]); } -- (void)testFCMDictionaryRepresentation_ShouldBeNil_WhenNoInformationPassed { +- (void)testItShouldNotProvidePayloadWhenNoInformationPassedToFCMBuilder { PNFCMNotificationPayload *builder = [PNFCMNotificationPayload payloadWithStorage:self.platformPayloadStorage notificationTitle:nil body:nil]; @@ -781,7 +784,7 @@ - (void)testFCMDictionaryRepresentation_ShouldBeNil_WhenNoInformationPassed { XCTAssertNil([builder dictionaryRepresentation]); } -- (void)testFCMDictionaryRepresentation_ShouldMoveNotificationToData_WhenSilentSetToYES { +- (void)testItShouldMoveNotificationToDataWhenSilentSetToYESForFCMBuilder { NSString *expectedSound = [NSUUID UUID].UUIDString; NSString *expectedTitle = [NSUUID UUID].UUIDString; NSString *expectedBody = [NSUUID UUID].UUIDString; @@ -801,7 +804,7 @@ - (void)testFCMDictionaryRepresentation_ShouldMoveNotificationToData_WhenSilentS XCTAssertEqualObjects([builder dictionaryRepresentation][@"data"][@"notification"], expectedNotification); } -- (void)testFCMDictionaryRepresentation_ShouldBeValid_WhenAllInformationPassed { +- (void)testItShouldProvidePayloadWhenAllInformationPassedToFCMBuilder { NSString *expectedSound = [NSUUID UUID].UUIDString; NSString *expectedTitle = [NSUUID UUID].UUIDString; NSString *expectedBody = [NSUUID UUID].UUIDString; @@ -824,5 +827,6 @@ - (void)testFCMDictionaryRepresentation_ShouldBeValid_WhenAllInformationPassed { #pragma mark - +#pragma clang diagnostic pop @end diff --git a/Tests/iOS Tests-Swift-Bridging-Header.h b/Tests/iOS Tests-Swift-Bridging-Header.h deleted file mode 100644 index 562d0ba8d..000000000 --- a/Tests/iOS Tests-Swift-Bridging-Header.h +++ /dev/null @@ -1,7 +0,0 @@ -// -// Use this file to import your target's public headers that you would like to expose to Swift. -// - -#import "PNDeviceIndependentMatcher.h" -#import -#import diff --git a/Tests/iOS Tests-Swift/PNBasicClientCryptTestCase.swift b/Tests/iOS Tests-Swift/PNBasicClientCryptTestCase.swift deleted file mode 100644 index 2799ec9d7..000000000 --- a/Tests/iOS Tests-Swift/PNBasicClientCryptTestCase.swift +++ /dev/null @@ -1,25 +0,0 @@ -// -// PNBasicClientCryptTestCase.swift -// PubNub Tests -// -// Created by Jordan Zucker on 3/23/16. -// -// - -import Foundation -import UIKit -import XCTest - -class PNBasicClientCryptTestCase: PNBasicClientTestCase { - - lazy var cryptedConfiguration: PNConfiguration = { - let lazyConfig = PNConfiguration(publishKey: "demo", subscribeKey: "demo") - lazyConfig.uuid = "322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C" - lazyConfig.cipherKey = "chiper key"; - return lazyConfig - }() - - lazy var cryptedClient: PubNub = { - return PubNub.clientWithConfiguration(self.cryptedConfiguration) - }() -} diff --git a/Tests/iOS Tests-Swift/PNBasicClientTestCase.swift b/Tests/iOS Tests-Swift/PNBasicClientTestCase.swift deleted file mode 100644 index 6c60cd01a..000000000 --- a/Tests/iOS Tests-Swift/PNBasicClientTestCase.swift +++ /dev/null @@ -1,48 +0,0 @@ -// -// PNBasicClientTestCase.swift -// PubNub Tests -// -// Created by Jordan Zucker on 7/27/15. -// -// - -import Foundation -import UIKit -import XCTest -import PubNub - -class PNBasicClientTestCase: JSZVCRTestCase { - - lazy var configuration: PNConfiguration = { - let lazyConfig = PNConfiguration(publishKey: "demo", subscribeKey: "demo") - lazyConfig.uuid = "322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C" - return self.overrideClientConfiguration(lazyConfig) - }() - - lazy var client: PubNub = { - return PubNub.clientWithConfiguration(self.configuration) - }() - - func overrideClientConfiguration(configuration: PNConfiguration) -> PNConfiguration! { - - return configuration - } - - override func matcherClass() -> AnyObject.Type! { - return PNDeviceIndependentMatcher.self - } - - override func setUp() { - super.setUp() - - self.client.logger.setLogLevel(PNLogLevel.PNVerboseLogLevel) - // Put setup code here. This method is called before the invocation of each test method in the class. - - } - - override func tearDown() { - // Put teardown code here. This method is called after the invocation of each test method in the class. - super.tearDown() - } - -} diff --git a/Tests/iOS Tests-Swift/PNBasicSubscribeTestCase.swift b/Tests/iOS Tests-Swift/PNBasicSubscribeTestCase.swift deleted file mode 100644 index b1351040e..000000000 --- a/Tests/iOS Tests-Swift/PNBasicSubscribeTestCase.swift +++ /dev/null @@ -1,63 +0,0 @@ -// -// PNBasicSubscribeTestCase.swift -// PubNub Tests -// -// Created by Jordan Zucker on 7/28/15. -// -// - -import Foundation - -typealias PNClientDidReceivePresenceEventAssertions = (client: PubNub, event: PNPresenceEventResult) -> Void -typealias PNClientDidReceiveStatusAssertions = (client: PubNub, status: PNStatus) -> Void - -class PNBasicSubscribeTestCase: PNBasicClientTestCase, PNObjectEventListener { - - var testExpectation: XCTestExpectation? = nil - var presenceEventExpectation: XCTestExpectation? = nil - var subscribeExpectation: XCTestExpectation? = nil - - var assertDidReceivePresenceEvent: PNClientDidReceivePresenceEventAssertions? - var didReceiveStatusAssertions: PNClientDidReceiveStatusAssertions? - - override func setUp() { - super.setUp() - self.client.addListener(self) - } - - override func tearDown() { - self.client.removeListener(self) - super.tearDown() - } - - func PNTest_subscribeToChannels(channels: [String]!, presence: Bool!) { - if (presence == true) { - self.presenceEventExpectation = self.expectationWithDescription("subscribePresenceEvent"); - self.client.subscribeToPresenceChannels(channels) - } else { - self.subscribeExpectation = self.expectationWithDescription("subscribeStatus") - self.client.subscribeToChannels(channels, withPresence: presence) - } - - self.waitForExpectationsWithTimeout(10, handler: { (error) -> Void in - XCTAssertNil(error, "Encountered error with subscribe call") - }) - } - - func client(client: PubNub, didReceivePresenceEvent event: PNPresenceEventResult) { - - if self.assertDidReceivePresenceEvent != nil { - - self.assertDidReceivePresenceEvent!(client: self.client, event: event) - self.presenceEventExpectation?.fulfill() - } - } - - func client(client: PubNub, didReceiveStatus status: PNStatus) { - - if self.didReceiveStatusAssertions != nil { - - self.didReceiveStatusAssertions!(client: client, status: status) - } - } -} diff --git a/Tests/iOS Tests-Swift/PNConfigurationChiperKeyTests.swift b/Tests/iOS Tests-Swift/PNConfigurationChiperKeyTests.swift deleted file mode 100644 index a8ea49b38..000000000 --- a/Tests/iOS Tests-Swift/PNConfigurationChiperKeyTests.swift +++ /dev/null @@ -1,72 +0,0 @@ -// -// PNConfigurationChiperKeyTests.swift -// PubNub Tests -// -// Created by Jordan Zucker on 3/23/16. -// -// - -import Foundation -import XCTest - -class PNConfigurationChiperKeyTests: PNBasicClientCryptTestCase { - - let channelString = "9BA810C6-985D-4797-926F-CC81749CC774" - let cryptedChannelName = "9FA810C6-985D-4797-926F-CC81749CC774" - - override func isRecording() -> Bool { - return false - } - - func testHistoryWithChiperKey() { - - let testExpectation = self.expectationWithDescription("history") - - self.cryptedClient.historyForChannel(self.channelString) { (result, status) -> Void in - XCTAssertNotNil(status, "Status shouldn't be nil") - XCTAssertNil(result, "Results should be nil.") - - XCTAssertEqual(status!.statusCode, 400, "Status codes are not equal.") - XCTAssertEqual(status!.category, PNStatusCategory.PNDecryptionErrorCategory, "Categories are not equal.") - XCTAssertEqual(status!.operation, PNOperationType.HistoryOperation, "Operations are not equal."); - - testExpectation.fulfill() - } - waitForExpectationsWithTimeout(5, handler: { (error) -> Void in - XCTAssertNil(error, "Encountered error with publish call") - }) - } - - func testHistoryWithChiperKeyOnlyCryptedMessages() { - - let testExpectation = self.expectationWithDescription("history") - - self.cryptedClient.historyForChannel(self.cryptedChannelName, withCompletion: { (result, status) -> Void in - XCTAssertNotNil(result, "Result shouldn't be nil") - XCTAssertNil(status, "Status should be nil.") - - XCTAssertEqual(result!.statusCode, 200, "Status codes are not equal.") - XCTAssertEqual(result!.operation, PNOperationType.HistoryOperation, "Operations are not equal."); - - let messages = [ - "Test 2", - "Test 3", - "Test 1", - ] - - let resultMessages: [String] = result!.data.messages as! [String] - - XCTAssertTrue(messages == resultMessages, "Messages are not equal.") - XCTAssertEqual(NSDecimalNumber(string:"14422371436802799"), result!.data.end, "Messages are not equal.") - XCTAssertEqual(NSDecimalNumber(string:"14422371428544005"), result!.data.start, "Messages are not equal.") - - testExpectation.fulfill() - }) - - waitForExpectationsWithTimeout(5, handler: { (error) -> Void in - XCTAssertNil(error, "Encountered error with publish call") - }) - } - -} - diff --git a/Tests/iOS Tests-Swift/PNHeartbeatTests.swift b/Tests/iOS Tests-Swift/PNHeartbeatTests.swift deleted file mode 100644 index 1fe6cdda0..000000000 --- a/Tests/iOS Tests-Swift/PNHeartbeatTests.swift +++ /dev/null @@ -1,43 +0,0 @@ -// -// PNHeartbeatTests.swift -// PubNub Tests -// -// Created by Sergey Mamontov on 10/14/15. -// -// - -import XCTest - -class PNHeartbeatTests: PNBasicSubscribeTestCase { - - override func isRecording() -> Bool { - - return false - } - - override func overrideClientConfiguration(configuration: PNConfiguration) -> PNConfiguration! { - - configuration.presenceHeartbeatInterval = 5 - configuration.presenceHeartbeatValue = 60 - return configuration - } - - func testHeartbeatCallbackFail() { - - let heartbeatExpectation = self.expectationWithDescription("heartbeatFailure"); - self.didReceiveStatusAssertions = { (client: PubNub!, status: PNStatus!) -> Void in - - if status.operation == .SubscribeOperation { - - XCTAssertFalse(status.error, "Subscription should be successful to test heartbeat."); - self.subscribeExpectation?.fulfill() - } - else if status!.operation == .HeartbeatOperation { - - XCTAssertTrue(status.error, "Only failed heartbeat status should be passed."); - heartbeatExpectation.fulfill() - } - } - self.PNTest_subscribeToChannels(["heartbeat-test"], presence: false) - } -} diff --git a/Tests/iOS Tests-Swift/PNPresenceEventTests.swift b/Tests/iOS Tests-Swift/PNPresenceEventTests.swift deleted file mode 100644 index 2c581016e..000000000 --- a/Tests/iOS Tests-Swift/PNPresenceEventTests.swift +++ /dev/null @@ -1,123 +0,0 @@ -// -// PNPresenceEventTests.swift -// PubNub Tests -// -// Created by Jordan Zucker on 3/23/16. -// -// - -import UIKit -import XCTest - -class PNPresenceEventTests: PNBasicSubscribeTestCase { - - let channels = ["2EC925F0-B996-47A4-AF54-A605E1A9AEBA"] - - override func isRecording() -> Bool { - return false - } - - func testJoinEvent() { - - self.assertDidReceivePresenceEvent = { (client: PubNub!, didReceivePresenceEvent: PNPresenceEventResult!) -> Void in - XCTAssertEqual(self.client, client) - XCTAssertNotNil(didReceivePresenceEvent) - XCTAssertTrue(didReceivePresenceEvent.statusCode == 200, "Status code is not right") - - XCTAssertEqual(didReceivePresenceEvent.operation, PNOperationType.SubscribeOperation) - - XCTAssertEqual(didReceivePresenceEvent.data.presence.occupancy, 1, "Occupancy is not equal") - XCTAssertEqual(didReceivePresenceEvent.data.presence.uuid, "affcb408-f5c1-4e97-923a-143701f3b083", "Occupancy is not equal") - XCTAssertEqual(didReceivePresenceEvent.data.presence.timetoken, NSDecimalNumber(string: "1440754948"), "Timetoken is not the same.") - XCTAssertEqual(didReceivePresenceEvent.data.presenceEvent, "join"); - XCTAssertEqual(didReceivePresenceEvent.data.subscribedChannel, "2EC925F0-B996-47A4-AF54-A605E1A9AEBA", "Subscribed channel are not equal.") - XCTAssertEqual(didReceivePresenceEvent.data.timetoken, NSDecimalNumber(string: "14407549482844872"), "Timetoken is not the same.") - } - - self.PNTest_subscribeToChannels(channels, presence: true) - } - - func testLeaveEvent() { - - self.assertDidReceivePresenceEvent = { (client: PubNub!, didReceivePresenceEvent: PNPresenceEventResult!) -> Void in - XCTAssertEqual(self.client, client) - XCTAssertNotNil(didReceivePresenceEvent) - XCTAssertTrue(didReceivePresenceEvent.statusCode == 200, "Status code is not right") - - XCTAssertEqual(didReceivePresenceEvent.operation, PNOperationType.SubscribeOperation) - - XCTAssertEqual(didReceivePresenceEvent.data.presence.occupancy, 0, "Occupancy is not equal") - XCTAssertEqual(didReceivePresenceEvent.data.presence.uuid, "affcb408-f5c1-4e97-923a-143701f3b083", "Occupancy is not equal") - XCTAssertEqual(didReceivePresenceEvent.data.presence.timetoken, NSDecimalNumber(string: "1440773488"), "Timetoken is not the same.") - XCTAssertEqual(didReceivePresenceEvent.data.presenceEvent, "leave"); - XCTAssertEqual(didReceivePresenceEvent.data.subscribedChannel, "2EC925F0-B996-47A4-AF54-A605E1A9AEBA", "Subscribed channel are not equal.") - XCTAssertEqual(didReceivePresenceEvent.data.timetoken, NSDecimalNumber(string: "14407734890045162"), "Timetoken is not the same.") - } - - self.PNTest_subscribeToChannels(channels, presence: true) - } - - func testTimeoutEvent() { - - self.assertDidReceivePresenceEvent = { (client: PubNub!, didReceivePresenceEvent: PNPresenceEventResult!) -> Void in - XCTAssertEqual(self.client, client) - XCTAssertNotNil(didReceivePresenceEvent) - XCTAssertTrue(didReceivePresenceEvent.statusCode == 200, "Status code is not right") - - XCTAssertEqual(didReceivePresenceEvent.operation, PNOperationType.SubscribeOperation) - - XCTAssertEqual(didReceivePresenceEvent.data.presence.occupancy, 1, "Occupancy are not equal") - XCTAssertEqual(didReceivePresenceEvent.data.presence.uuid, "29624e62-59e4-48f1-9f80-46bbac8fbc2e", "UUIDs are not equal") - XCTAssertEqual(didReceivePresenceEvent.data.presence.timetoken, NSDecimalNumber(string: "1440776740"), "Timetoken is not the same.") - XCTAssertEqual(didReceivePresenceEvent.data.presenceEvent, "timeout") - XCTAssertEqual(didReceivePresenceEvent.data.subscribedChannel, "2EC925F0-B996-47A4-AF54-A605E1A9AEBA", "Subscribed channel are not equal.") - XCTAssertEqual(didReceivePresenceEvent.data.timetoken, NSDecimalNumber(string: "14407767410944227"), "Timetoken is not the same.") - } - - self.PNTest_subscribeToChannels(channels, presence: true) - } - - func testStateChangeEvent() { - - self.assertDidReceivePresenceEvent = { (client: PubNub!, didReceivePresenceEvent: PNPresenceEventResult!) -> Void in - XCTAssertEqual(self.client, client) - XCTAssertNotNil(didReceivePresenceEvent) - XCTAssertTrue(didReceivePresenceEvent.statusCode == 200, "Status code is not right") - - XCTAssertEqual(didReceivePresenceEvent.operation, PNOperationType.SubscribeOperation) - - XCTAssertEqual(didReceivePresenceEvent.data.presence.uuid, "29624e62-59e4-48f1-9f80-46bbac8fbc2e", "UUIDs are not equal") - XCTAssertEqual(didReceivePresenceEvent.data.presence.timetoken, NSDecimalNumber(string: "1440778413"), "Timetoken is not the same."); - XCTAssertEqual(didReceivePresenceEvent.data.presenceEvent, "state-change"); - XCTAssertEqual(didReceivePresenceEvent.data.subscribedChannel, "2EC925F0-B996-47A4-AF54-A605E1A9AEBA", "Subscribed channel are not equal.") - - let expectedValue: [String : String] = (didReceivePresenceEvent.data.presence.state as? [String : String])! - - XCTAssertTrue(expectedValue == ["test" : "test"], "State are not equal") - - XCTAssertEqual(didReceivePresenceEvent.data.timetoken, NSDecimalNumber(string: "14407784131674496"), "Timetoken is not the same.") - } - - self.PNTest_subscribeToChannels(channels, presence: true) - } - - func testIntervalEvent() { - - self.assertDidReceivePresenceEvent = { (client: PubNub!, didReceivePresenceEvent: PNPresenceEventResult!) -> Void in - XCTAssertEqual(self.client, client) - XCTAssertNotNil(didReceivePresenceEvent) - XCTAssertTrue(didReceivePresenceEvent.statusCode == 200, "Status code is not right") - - XCTAssertEqual(didReceivePresenceEvent.operation, PNOperationType.SubscribeOperation) - - XCTAssertNil(didReceivePresenceEvent.data.presence.uuid, "UUI should be nil") - XCTAssertEqual(didReceivePresenceEvent.data.presenceEvent, "interval"); - XCTAssertEqual(didReceivePresenceEvent.data.subscribedChannel, "2EC925F0-B996-47A4-AF54-A605E1A9AEBA", "Subscribed channel are not equal.") - - XCTAssertEqual(didReceivePresenceEvent.data.timetoken, NSDecimalNumber(string: "14411068884747343"), "Timetoken is not the same.") - } - - self.PNTest_subscribeToChannels(channels, presence: true) - } - -} diff --git a/Tests/iOS Tests-Swift/PNPresenceTests.swift b/Tests/iOS Tests-Swift/PNPresenceTests.swift deleted file mode 100644 index 16e42f94a..000000000 --- a/Tests/iOS Tests-Swift/PNPresenceTests.swift +++ /dev/null @@ -1,361 +0,0 @@ -// -// PNPresenceTests.swift -// PubNub Tests -// -// Created by Jordan Zucker on 3/23/16. -// -// - -import UIKit -import XCTest - -class PNPresenceTests: PNBasicClientTestCase { - - override func isRecording() -> Bool { - return false - } - - let uniqueChannelName = "2EC925F0-B996-47A4-AF54-A605E1A9AEBA" - let uniqueGroupName = "2EC925F0-B996-47A4-AF54-A605E1A9AEBA" - - func testHereNow() { - let testExpectation = self.expectationWithDescription("network") - - self.client.hereNowWithCompletion { (result, status) -> Void in - XCTAssertNil(status) - XCTAssertEqual(result!.operation, PNOperationType.HereNowGlobalOperation, "Wrong operation") - XCTAssertNotNil(result!.data) - XCTAssertEqual(result!.statusCode, 200) - - let expectedChannels: ([String: NSDictionary]) = [ - "0_5098427633369088" : [ - "occupancy" : 1, - "uuids" : - [[ - "uuid" : "JejuFan--79001" - ]] - ], - "0_5650661106515968" : [ - "occupancy" : 1, - "uuids" : - [[ - "uuid" : "JejuFan--79001" - ]] - ], - "all_activity" : [ - "occupancy" : 1, - "uuids" : - [[ - "uuid" : "JejuFan--79001" - ]] - ] - ] - - let resultChannels = result!.data.channels - - XCTAssert(resultChannels == expectedChannels, "Result and expected channels are not equal.") - - testExpectation.fulfill() - } - - waitForExpectationsWithTimeout(5, handler: { (error) -> Void in - XCTAssertNil(error, "Encountered error with publish call") - }) - } - - func testHereNowWithVerbosityNowUUID() { - let testExpectation = self.expectationWithDescription("network") - - self.client.hereNowWithVerbosity(PNHereNowVerbosityLevel.UUID, completion: { (result, status) -> Void in - - XCTAssertNil(status) - XCTAssertEqual(result!.operation, PNOperationType.HereNowGlobalOperation, "Wrong operation") - XCTAssertNotNil(result!.data) - XCTAssertEqual(result!.statusCode, 200); - - let expectedChannels: ([String: NSDictionary]) = [ - "0_5098427633369088" : [ - "occupancy" : 1, - "uuids" : ["JejuFan--79001"] - ], - "0_5650661106515968" : [ - "occupancy" : 1, - "uuids" : [ - "JejuFan--79001" - ] - ], - "all_activity" : [ - "occupancy" : 1, - "uuids" : [ - "JejuFan--79001" - ] - ]] - - let resultChannels = result!.data.channels - - XCTAssert(resultChannels == expectedChannels, "Result and expected channels are not equal.") - - testExpectation.fulfill() - }) - - waitForExpectationsWithTimeout(5, handler: { (error) -> Void in - XCTAssertNil(error, "Encountered error with publish call") - }) - } - - func testHereNowWithVerbosityNowState() { - let testExpectation = self.expectationWithDescription("network") - - self.client.hereNowWithVerbosity(PNHereNowVerbosityLevel.State, completion: { (result, status) -> Void in - - XCTAssertNil(status) - XCTAssertEqual(result!.operation, PNOperationType.HereNowGlobalOperation, "Wrong operation") - XCTAssertNotNil(result!.data) - XCTAssertEqual(result!.statusCode, 200); - - let expectedChannels: ([String: NSDictionary]) = [ - "0_5098427633369088" : [ - "uuids" : [ - [ - "uuid" : "JejuFan--79001" - ] - ], - "occupancy" : 1 - ], - "0_5650661106515968" : [ - "uuids" : [ - [ - "uuid" : "JejuFan--79001" - ] - ], - "occupancy" : 1 - ], - "all_activity" : [ - "uuids" : [ - [ - "uuid" : "JejuFan--79001" - ] - ], - "occupancy" : 1 - ] - ] - let resultChannels = result!.data.channels - - XCTAssert(resultChannels == expectedChannels, "Result and expected channels are not equal.") - - testExpectation.fulfill() - }) - - waitForExpectationsWithTimeout(5, handler: { (error) -> Void in - XCTAssertNil(error, "Encountered error with publish call") - }) - } - - func testHereNowWithVerbosityNowOccupancy() { - let testExpectation = self.expectationWithDescription("network") - - self.client.hereNowWithVerbosity(PNHereNowVerbosityLevel.Occupancy, completion: { (result, status) -> Void in - - XCTAssertNil(status) - XCTAssertEqual(result!.operation, PNOperationType.HereNowGlobalOperation, "Wrong operation") - XCTAssertNotNil(result!.data) - XCTAssertEqual(result!.statusCode, 200); - - let expectedChannels: ([String: NSDictionary]) = [ - "0_5098427633369088" : [ - "occupancy" : 1 - ], - "0_5650661106515968" : [ - "occupancy" : 1 - ], - "all_activity" : [ - "occupancy" : 1 - ]] - - let resultChannels = result!.data.channels - - XCTAssert(resultChannels == expectedChannels, "Result and expected channels are not equal.") - - testExpectation.fulfill() - }) - - waitForExpectationsWithTimeout(5, handler: { (error) -> Void in - XCTAssertNil(error, "Encountered error with publish call") - }) - } - - func testHereNowForChannel() { - let testExpectation = self.expectationWithDescription("network") - - self.client.hereNowForChannel(uniqueChannelName, withCompletion: { (result, status) -> Void in - - XCTAssertNil(status) - XCTAssertEqual(result!.operation, PNOperationType.HereNowForChannelOperation, "Wrong operation") - XCTAssertNotNil(result!.data) - XCTAssertEqual(result!.statusCode, 200); - - XCTAssertEqual(result!.data.occupancy, 0, "Result and expected channels are not equal.") - XCTAssert(result!.data.uuids as! NSArray == [], "Result and expected channels are not equal.") - - testExpectation.fulfill() - }) - - waitForExpectationsWithTimeout(5, handler: { (error) -> Void in - XCTAssertNil(error, "Encountered error with publish call") - }) - } - - func testHereNowForChannelWithVerbosityOccupancy() { - let testExpectation = self.expectationWithDescription("network") - - self.client.hereNowForChannel(uniqueChannelName, withVerbosity: PNHereNowVerbosityLevel.Occupancy) { (result, status) -> Void in - XCTAssertNil(status) - XCTAssertEqual(result!.operation, PNOperationType.HereNowForChannelOperation, "Wrong operation") - XCTAssertNotNil(result!.data) - XCTAssertEqual(result!.statusCode, 200); - - XCTAssertEqual(result!.data.occupancy, 0, "Result and expected channels are not equal.") - - testExpectation.fulfill() - } - - waitForExpectationsWithTimeout(5, handler: { (error) -> Void in - XCTAssertNil(error, "Encountered error with publish call") - }) - } - - func testHereNowForChannelWithVerbosityState() { - let testExpectation = self.expectationWithDescription("network") - - self.client.hereNowForChannel(uniqueChannelName, withVerbosity: PNHereNowVerbosityLevel.State) { (result, status) -> Void in - XCTAssertNil(status) - XCTAssertEqual(result!.operation, PNOperationType.HereNowForChannelOperation, "Wrong operation") - XCTAssertNotNil(result!.data) - XCTAssertEqual(result!.statusCode, 200); - - XCTAssertEqual(result!.data.occupancy, 0, "Result and expected channels are not equal.") - XCTAssert(result!.data.uuids as! NSArray == [], "Result and expected channels are not equal.") - - testExpectation.fulfill() - } - - waitForExpectationsWithTimeout(5, handler: { (error) -> Void in - XCTAssertNil(error, "Encountered error with publish call") - }) - } - - func testHereNowForChannelWithVerbosityUUID() { - let testExpectation = self.expectationWithDescription("network") - - self.client.hereNowForChannel(uniqueChannelName, withVerbosity: PNHereNowVerbosityLevel.UUID) { (result, status) -> Void in - XCTAssertNil(status) - XCTAssertEqual(result!.operation, PNOperationType.HereNowForChannelOperation, "Wrong operation") - XCTAssertNotNil(result!.data) - XCTAssertEqual(result!.statusCode, 200); - - XCTAssertEqual(result!.data.occupancy, 0, "Result and expected channels are not equal.") - XCTAssert(result!.data.uuids as! NSArray == [], "Result and expected channels are not equal.") - - testExpectation.fulfill() - } - - waitForExpectationsWithTimeout(5, handler: { (error) -> Void in - XCTAssertNil(error, "Encountered error with publish call") - }) - } - - func testHereNowForChannelGroup() { - let testExpectation = self.expectationWithDescription("network") - - self.client.hereNowForChannelGroup(uniqueGroupName, withCompletion: { (result, status) -> Void in - XCTAssertNil(status) - XCTAssertEqual(result!.operation, PNOperationType.HereNowForChannelGroupOperation, "Wrong operation") - XCTAssertNotNil(result!.data) - XCTAssertEqual(result!.statusCode, 200); - - XCTAssert(result!.data.channels as NSDictionary == [:], "Result and expected channels are not equal.") - - testExpectation.fulfill() - }) - - waitForExpectationsWithTimeout(5, handler: { (error) -> Void in - XCTAssertNil(error, "Encountered error with publish call") - }) - } - - func testHereNowForChannelGroupWithVerbosityOccupancy() { - let testExpectation = self.expectationWithDescription("network") - - self.client.hereNowForChannelGroup(uniqueGroupName, withVerbosity: PNHereNowVerbosityLevel.Occupancy) { (result, status) -> Void in - XCTAssertNil(status) - XCTAssertEqual(result!.operation, PNOperationType.HereNowForChannelGroupOperation, "Wrong operation") - XCTAssertNotNil(result!.data) - XCTAssertEqual(result!.statusCode, 200); - - XCTAssert(result!.data.channels as NSDictionary == [:], "Result and expected channels are not equal.") - testExpectation.fulfill() - } - - waitForExpectationsWithTimeout(5, handler: { (error) -> Void in - XCTAssertNil(error, "Encountered error with publish call") - }) - } - - func testHereNowForChannelGroupWithVerbosityState() { - let testExpectation = self.expectationWithDescription("network") - - self.client.hereNowForChannelGroup(uniqueGroupName, withVerbosity: PNHereNowVerbosityLevel.State) { (result, status) -> Void in - XCTAssertNil(status) - XCTAssertEqual(result!.operation, PNOperationType.HereNowForChannelGroupOperation, "Wrong operation") - XCTAssertNotNil(result!.data) - XCTAssertEqual(result!.statusCode, 200); - - XCTAssert(result!.data.channels as NSDictionary == [:], "Result and expected channels are not equal.") - testExpectation.fulfill() - } - - waitForExpectationsWithTimeout(5, handler: { (error) -> Void in - XCTAssertNil(error, "Encountered error with publish call") - }) - } - - func testHereNowForChannelGroupWithVerbosityUUID() { - let testExpectation = self.expectationWithDescription("network") - - self.client.hereNowForChannelGroup(uniqueGroupName, withVerbosity: PNHereNowVerbosityLevel.UUID) { (result, status) -> Void in - XCTAssertNil(status) - XCTAssertEqual(result!.operation, PNOperationType.HereNowForChannelGroupOperation, "Wrong operation") - XCTAssertNotNil(result!.data) - XCTAssertEqual(result!.statusCode, 200); - - XCTAssert(result!.data.channels as NSDictionary == [:], "Result and expected channels are not equal.") - testExpectation.fulfill() - } - - waitForExpectationsWithTimeout(5, handler: { (error) -> Void in - XCTAssertNil(error, "Encountered error with publish call") - }) - } - - - func testWhereNowUDID() { - let testExpectation = self.expectationWithDescription("network") - - let uuid = NSUUID().UUIDString - - self.client.whereNowUUID(uuid, withCompletion: { (result, status) -> Void in - XCTAssertNil(status) - XCTAssertEqual(result!.operation, PNOperationType.WhereNowOperation, "Wrong operation") - XCTAssertNotNil(result!.data) - XCTAssertEqual(result!.statusCode, 200); - - XCTAssert(result!.data.channels as NSArray == [], "Result and expected channels are not equal.") - testExpectation.fulfill() - }) - - waitForExpectationsWithTimeout(5, handler: { (error) -> Void in - XCTAssertNil(error, "Encountered error with publish call") - }) - } - -} \ No newline at end of file diff --git a/Tests/iOS Tests-Swift/PNPublishTests.swift b/Tests/iOS Tests-Swift/PNPublishTests.swift deleted file mode 100644 index 67aee59e7..000000000 --- a/Tests/iOS Tests-Swift/PNPublishTests.swift +++ /dev/null @@ -1,57 +0,0 @@ -// -// PNPublishTests.swift -// PubNub Tests -// -// Created by Jordan Zucker on 7/28/15. -// -// - -import UIKit -import XCTest - -class PNPublishTests: PNBasicClientTestCase { - - override func isRecording() -> Bool { - return false - } - - let publishTestsChannelName = "2EC925F0-B996-47A4-AF54-A605E1A9AEBA" - - func testSimplePublish() { - self.performVerifiedPublish("test", onChannel: publishTestsChannelName) { (status) -> Void in - XCTAssertNotNil(status) - XCTAssertEqual(status.category, PNStatusCategory.PNAcknowledgmentCategory) - XCTAssertEqual(status.operation, PNOperationType.PublishOperation) - XCTAssertEqual(status.statusCode, 200) - XCTAssertFalse(status.error) - XCTAssertEqual(status.data.information, "Sent") - XCTAssertEqual(status.data.timetoken, NSDecimalNumber(string: "14355311066264140")) - } - } - - func testPublishDictionary() { - self.performVerifiedPublish(["test" : "test"], onChannel: publishTestsChannelName) { (status) -> Void in - XCTAssertNotNil(status) - XCTAssertEqual(status.category, PNStatusCategory.PNAcknowledgmentCategory) - XCTAssertEqual(status.operation, PNOperationType.PublishOperation) - XCTAssertEqual(status.statusCode, 200) - XCTAssertFalse(status.error) - XCTAssertEqual(status.data.information, "Sent") - XCTAssertEqual(status.data.timetoken, NSDecimalNumber(string: "14355311062532489")) - } - } - -} - -extension PNPublishTests { - func performVerifiedPublish(message: AnyObject, onChannel:String, withAssertions: PNPublishCompletionBlock) { - let networkExpectation = self.expectationWithDescription("network") - client.publish(message, toChannel: onChannel) { (status) -> Void in - withAssertions(status) - networkExpectation.fulfill() - } - waitForExpectationsWithTimeout(5, handler: { (error) -> Void in - XCTAssertNil(error, "Encountered error with publish call") - }) - } -} diff --git a/Tests/iOS Tests-Swift/PNTimeTokenTests.swift b/Tests/iOS Tests-Swift/PNTimeTokenTests.swift deleted file mode 100644 index 88d7f689e..000000000 --- a/Tests/iOS Tests-Swift/PNTimeTokenTests.swift +++ /dev/null @@ -1,32 +0,0 @@ -// -// PNTimeTokenTests.swift -// PubNub Tests -// -// Created by Jordan Zucker on 7/28/15. -// -// - -import UIKit -import XCTest - -class PNTimeTokenTests: PNBasicSubscribeTestCase { - override func isRecording() -> Bool { - return false - } - - func testTimeToken() { - // This is an example of a functional test case. - let testTokenExpectation = self.expectationWithDescription("timeToken") - self.client.timeWithCompletion { (result, status) -> Void in - XCTAssertNil(status) - XCTAssertNotNil(result) - XCTAssertEqual(result!.operation, PNOperationType.TimeOperation) - XCTAssertEqual(result!.statusCode, 200) - XCTAssertEqual(result!.data.timetoken, NSNumber(longLong: 14355553745683928)) - testTokenExpectation.fulfill() - } - self.waitForExpectationsWithTimeout(5, handler: { (error) -> Void in - XCTAssertNil(error, "Encountered error with time token test") - }) - } -} diff --git a/Tests/iOS Tests/Fixtures/PNAPNSTests.bundle/testAddPushOnChannels.plist b/Tests/iOS Tests/Fixtures/PNAPNSTests.bundle/testAddPushOnChannels.plist deleted file mode 100644 index d6610533c..000000000 --- a/Tests/iOS Tests/Fixtures/PNAPNSTests.bundle/testAddPushOnChannels.plist +++ /dev/null @@ -1,131 +0,0 @@ - - - - - creationDate - 2019-06-21T08:48:34Z - scenes - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/push/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/devices/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&add=1,2,3&type=apns&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&pnsdk=PubNub-ObjC-iOS%2F4.8.9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.2.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1561106914.682342 - timeoutInterval - 60 - uniqueIdentifier - 0322C015-F510-4CB7-A312-39E35F959B4C - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/push/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/devices/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&add=1,2,3&type=apns&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&pnsdk=PubNub-ObjC-iOS%2F4.8.9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.2.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1561106914.683235 - timeoutInterval - 60 - uniqueIdentifier - 0322C015-F510-4CB7-A312-39E35F959B4C - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/push/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/devices/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&add=1,2,3&type=apns&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&pnsdk=PubNub-ObjC-iOS%2F4.8.9 - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET, DELETE, OPTIONS - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 24 - Content-Type - text/javascript; charset="UTF-8" - Date - Fri, 21 Jun 2019 08:48:35 GMT - Server - Pubnub - - class - BKRResponseFrame - creationDate - 1561106915.727996 - statusCode - 200 - uniqueIdentifier - 0322C015-F510-4CB7-A312-39E35F959B4C - - - class - BKRDataFrame - creationDate - 1561106915.72813 - data - WzEsICJNb2RpZmllZCBDaGFubmVscyJd - uniqueIdentifier - 0322C015-F510-4CB7-A312-39E35F959B4C - - - uniqueIdentifier - 0322C015-F510-4CB7-A312-39E35F959B4C - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNAPNSTests.bundle/testAddPushOnChannelsWithNilPushToken.plist b/Tests/iOS Tests/Fixtures/PNAPNSTests.bundle/testAddPushOnChannelsWithNilPushToken.plist deleted file mode 100644 index 9e44890c8..000000000 --- a/Tests/iOS Tests/Fixtures/PNAPNSTests.bundle/testAddPushOnChannelsWithNilPushToken.plist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - creationDate - 2019-06-21T08:48:35Z - scenes - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNAPNSTests.bundle/testAddPushOnNilChannels.plist b/Tests/iOS Tests/Fixtures/PNAPNSTests.bundle/testAddPushOnNilChannels.plist deleted file mode 100644 index 9e44890c8..000000000 --- a/Tests/iOS Tests/Fixtures/PNAPNSTests.bundle/testAddPushOnNilChannels.plist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - creationDate - 2019-06-21T08:48:35Z - scenes - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNAPNSTests.bundle/testAuditPushNotificationStatus.plist b/Tests/iOS Tests/Fixtures/PNAPNSTests.bundle/testAuditPushNotificationStatus.plist deleted file mode 100644 index e4c94e8e1..000000000 --- a/Tests/iOS Tests/Fixtures/PNAPNSTests.bundle/testAuditPushNotificationStatus.plist +++ /dev/null @@ -1,162 +0,0 @@ - - - - - creationDate - 2019-06-21T08:48:35Z - scenes - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/push/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/devices/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&type=apns&pnsdk=PubNub-ObjC-iOS%2F4.8.9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.2.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1561106915.893078 - timeoutInterval - 60 - uniqueIdentifier - 1928D191-2754-4EFC-B22D-ECF95F6993C7 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/push/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/devices/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&type=apns&pnsdk=PubNub-ObjC-iOS%2F4.8.9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.2.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1561106915.89315 - timeoutInterval - 60 - uniqueIdentifier - 1928D191-2754-4EFC-B22D-ECF95F6993C7 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/push/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/devices/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&type=apns&pnsdk=PubNub-ObjC-iOS%2F4.8.9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.2.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1561106915.893543 - timeoutInterval - 60 - uniqueIdentifier - 1928D191-2754-4EFC-B22D-ECF95F6993C7 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/push/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/devices/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&type=apns&pnsdk=PubNub-ObjC-iOS%2F4.8.9 - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET, DELETE, OPTIONS - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 15 - Content-Type - text/javascript; charset="UTF-8" - Date - Fri, 21 Jun 2019 08:48:36 GMT - Server - Pubnub - - class - BKRResponseFrame - creationDate - 1561106916.853613 - statusCode - 200 - uniqueIdentifier - 1928D191-2754-4EFC-B22D-ECF95F6993C7 - - - class - BKRDataFrame - creationDate - 1561106916.853642 - data - WyIxIiwgIjMiLCAiMiJd - uniqueIdentifier - 1928D191-2754-4EFC-B22D-ECF95F6993C7 - - - uniqueIdentifier - 1928D191-2754-4EFC-B22D-ECF95F6993C7 - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNAPNSTests.bundle/testAuditPushNotificationStatusWithNilPushToken.plist b/Tests/iOS Tests/Fixtures/PNAPNSTests.bundle/testAuditPushNotificationStatusWithNilPushToken.plist deleted file mode 100644 index f2b2eafa7..000000000 --- a/Tests/iOS Tests/Fixtures/PNAPNSTests.bundle/testAuditPushNotificationStatusWithNilPushToken.plist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - creationDate - 2019-06-21T08:48:36Z - scenes - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNAPNSTests.bundle/testRemoveAllPushNotificationFromDevice.plist b/Tests/iOS Tests/Fixtures/PNAPNSTests.bundle/testRemoveAllPushNotificationFromDevice.plist deleted file mode 100644 index 84ae64302..000000000 --- a/Tests/iOS Tests/Fixtures/PNAPNSTests.bundle/testRemoveAllPushNotificationFromDevice.plist +++ /dev/null @@ -1,131 +0,0 @@ - - - - - creationDate - 2019-06-21T08:48:36Z - scenes - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/push/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/devices/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091/remove?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&type=apns&pnsdk=PubNub-ObjC-iOS%2F4.8.9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.2.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1561106916.882332 - timeoutInterval - 60 - uniqueIdentifier - F514BAB8-26EC-4E1B-A0EE-86065AC5320C - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/push/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/devices/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091/remove?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&type=apns&pnsdk=PubNub-ObjC-iOS%2F4.8.9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.2.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1561106916.882649 - timeoutInterval - 60 - uniqueIdentifier - F514BAB8-26EC-4E1B-A0EE-86065AC5320C - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/push/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/devices/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091/remove?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&type=apns&pnsdk=PubNub-ObjC-iOS%2F4.8.9 - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET, DELETE, OPTIONS - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 21 - Content-Type - text/javascript; charset="UTF-8" - Date - Fri, 21 Jun 2019 08:48:37 GMT - Server - Pubnub - - class - BKRResponseFrame - creationDate - 1561106917.8787 - statusCode - 200 - uniqueIdentifier - F514BAB8-26EC-4E1B-A0EE-86065AC5320C - - - class - BKRDataFrame - creationDate - 1561106917.878746 - data - WzEsICJSZW1vdmVkIERldmljZSJd - uniqueIdentifier - F514BAB8-26EC-4E1B-A0EE-86065AC5320C - - - uniqueIdentifier - F514BAB8-26EC-4E1B-A0EE-86065AC5320C - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNAPNSTests.bundle/testRemoveAllPushNotificationFromDeviceWithNilToken.plist b/Tests/iOS Tests/Fixtures/PNAPNSTests.bundle/testRemoveAllPushNotificationFromDeviceWithNilToken.plist deleted file mode 100644 index 516818446..000000000 --- a/Tests/iOS Tests/Fixtures/PNAPNSTests.bundle/testRemoveAllPushNotificationFromDeviceWithNilToken.plist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - creationDate - 2019-06-21T08:48:37Z - scenes - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNAPNSTests.bundle/testRemovePushNotificationFromChannel.plist b/Tests/iOS Tests/Fixtures/PNAPNSTests.bundle/testRemovePushNotificationFromChannel.plist deleted file mode 100644 index a4e4f356f..000000000 --- a/Tests/iOS Tests/Fixtures/PNAPNSTests.bundle/testRemovePushNotificationFromChannel.plist +++ /dev/null @@ -1,162 +0,0 @@ - - - - - creationDate - 2019-06-21T08:48:37Z - scenes - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/push/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/devices/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS%2F4.8.9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&type=apns&remove=1,2,3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.2.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1561106917.913481 - timeoutInterval - 60 - uniqueIdentifier - 006F24C5-61E4-4E66-8EA0-7582DFBDDEC4 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/push/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/devices/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS%2F4.8.9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&type=apns&remove=1,2,3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.2.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1561106917.913515 - timeoutInterval - 60 - uniqueIdentifier - 006F24C5-61E4-4E66-8EA0-7582DFBDDEC4 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/push/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/devices/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS%2F4.8.9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&type=apns&remove=1,2,3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.2.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1561106917.91413 - timeoutInterval - 60 - uniqueIdentifier - 006F24C5-61E4-4E66-8EA0-7582DFBDDEC4 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/push/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/devices/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091?pnsdk=PubNub-ObjC-iOS%2F4.8.9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&type=apns&remove=1,2,3 - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET, DELETE, OPTIONS - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 24 - Content-Type - text/javascript; charset="UTF-8" - Date - Fri, 21 Jun 2019 08:48:38 GMT - Server - Pubnub - - class - BKRResponseFrame - creationDate - 1561106918.902308 - statusCode - 200 - uniqueIdentifier - 006F24C5-61E4-4E66-8EA0-7582DFBDDEC4 - - - class - BKRDataFrame - creationDate - 1561106918.902373 - data - WzEsICJNb2RpZmllZCBDaGFubmVscyJd - uniqueIdentifier - 006F24C5-61E4-4E66-8EA0-7582DFBDDEC4 - - - uniqueIdentifier - 006F24C5-61E4-4E66-8EA0-7582DFBDDEC4 - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNAPNSTests.bundle/testRemovePushNotificationFromChannelWithNilDevicePushToken.plist b/Tests/iOS Tests/Fixtures/PNAPNSTests.bundle/testRemovePushNotificationFromChannelWithNilDevicePushToken.plist deleted file mode 100644 index 3b23b8612..000000000 --- a/Tests/iOS Tests/Fixtures/PNAPNSTests.bundle/testRemovePushNotificationFromChannelWithNilDevicePushToken.plist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - creationDate - 2019-06-21T08:48:38Z - scenes - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNAPNSTests.bundle/testRemovePushNotificationFromNilChannel.plist b/Tests/iOS Tests/Fixtures/PNAPNSTests.bundle/testRemovePushNotificationFromNilChannel.plist deleted file mode 100644 index 2232130fd..000000000 --- a/Tests/iOS Tests/Fixtures/PNAPNSTests.bundle/testRemovePushNotificationFromNilChannel.plist +++ /dev/null @@ -1,131 +0,0 @@ - - - - - creationDate - 2019-06-21T08:48:38Z - scenes - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/push/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/devices/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091/remove?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&type=apns&pnsdk=PubNub-ObjC-iOS%2F4.8.9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.2.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1561106918.936164 - timeoutInterval - 60 - uniqueIdentifier - 0061DAAD-7D53-4235-83D0-B89000CA8009 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/push/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/devices/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091/remove?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&type=apns&pnsdk=PubNub-ObjC-iOS%2F4.8.9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.2.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1561106918.936449 - timeoutInterval - 60 - uniqueIdentifier - 0061DAAD-7D53-4235-83D0-B89000CA8009 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/push/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/devices/6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091/remove?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&type=apns&pnsdk=PubNub-ObjC-iOS%2F4.8.9 - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET, DELETE, OPTIONS - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 21 - Content-Type - text/javascript; charset="UTF-8" - Date - Fri, 21 Jun 2019 08:48:39 GMT - Server - Pubnub - - class - BKRResponseFrame - creationDate - 1561106919.904523 - statusCode - 200 - uniqueIdentifier - 0061DAAD-7D53-4235-83D0-B89000CA8009 - - - class - BKRDataFrame - creationDate - 1561106919.904554 - data - WzEsICJSZW1vdmVkIERldmljZSJd - uniqueIdentifier - 0061DAAD-7D53-4235-83D0-B89000CA8009 - - - uniqueIdentifier - 0061DAAD-7D53-4235-83D0-B89000CA8009 - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNAPNSTests.bundle/testRemovePushNotificationFromNilChannelWithNilDevicePushToken.plist b/Tests/iOS Tests/Fixtures/PNAPNSTests.bundle/testRemovePushNotificationFromNilChannelWithNilDevicePushToken.plist deleted file mode 100644 index ffcce9b70..000000000 --- a/Tests/iOS Tests/Fixtures/PNAPNSTests.bundle/testRemovePushNotificationFromNilChannelWithNilDevicePushToken.plist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - creationDate - 2019-06-21T08:48:39Z - scenes - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNChannelGroupFilteringSubscribeTests.bundle/testPublishWithMetadataAndNoReceivedMessageForSubscribeWithDifferentFiltering.plist b/Tests/iOS Tests/Fixtures/PNChannelGroupFilteringSubscribeTests.bundle/testPublishWithMetadataAndNoReceivedMessageForSubscribeWithDifferentFiltering.plist deleted file mode 100755 index dd6f18266..000000000 --- a/Tests/iOS Tests/Fixtures/PNChannelGroupFilteringSubscribeTests.bundle/testPublishWithMetadataAndNoReceivedMessageForSubscribeWithDifferentFiltering.plist +++ /dev/null @@ -1,514 +0,0 @@ - - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - json - - error - - message - OK - service - channel-registry - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupFilterSubscribeTests?add=PNFilterSubscribeTests%2CPNOtherTestChannelName&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupFilterSubscribeTests?add=PNFilterSubscribeTests%2CPNOtherTestChannelName&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupFilterSubscribeTests?pnsdk=PubNub-ObjC-iOS%2F4.2.3&add=PNFilterSubscribeTests,PNOtherTestChannelName&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 23 Dec 2015 00:25:01 GMT - Server - Pubnub - - expectedContentLength - 79 - statusCode - 200 - suggestedFileName - PNChannelGroupFilterSubscribeTests.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODMwMTE1NTc1NTY0OCIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508301155755648 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28a+%3D%3D+%27b%27%29&tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupFilterSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28a+%3D%3D+%27b%27%29&tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupFilterSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=PNChannelGroupFilterSubscribeTests&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&filter-expr=%28a%20%3D%3D%20'b'%29&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 23 Dec 2015 00:25:01 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - WzEsIlNlbnQiLCIxNDUwODMwMzAyMDA3OTQ1NSJd - json - - 1 - Sent - 14508303020079455 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&meta=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&meta=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.2.3&meta=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 23 Dec 2015 00:25:02 GMT - - expectedContentLength - 30 - statusCode - 200 - suggestedFileName - "message".js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJhY3Rpb24iOiAibGVhdmUiLCAibWVzc2FnZSI6ICJPSyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - action - leave - message - OK - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNChannelGroupFilterSubscribeTests/leave?channel-group=PNChannelGroupFilterSubscribeTests&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNChannelGroupFilterSubscribeTests/leave?channel-group=PNChannelGroupFilterSubscribeTests&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNChannelGroupFilterSubscribeTests/leave?channel-group=PNChannelGroupFilterSubscribeTests&pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 74 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 23 Dec 2015 00:25:12 GMT - Server - Pubnub Presence - - expectedContentLength - 74 - statusCode - 200 - suggestedFileName - leave.js - textEncodingName - "utf-8" - - - - - cancelled - - error - - code - -999 - description - The operation couldn’t be completed. (NSURLErrorDomain error -999.) - domain - NSURLErrorDomain - userInfo - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28a+%3D%3D+%27b%27%29&tt=14508301155755648&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupFilterSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28a+%3D%3D+%27b%27%29&tt=14508301155755648&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupFilterSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNChannelGroupFilteringSubscribeTests.bundle/testPublishWithMetadataAndNoReceivedMessageForSubscribeWithFilteringWithSameKeyAndDifferentValue.plist b/Tests/iOS Tests/Fixtures/PNChannelGroupFilteringSubscribeTests.bundle/testPublishWithMetadataAndNoReceivedMessageForSubscribeWithFilteringWithSameKeyAndDifferentValue.plist deleted file mode 100755 index 1e251d9df..000000000 --- a/Tests/iOS Tests/Fixtures/PNChannelGroupFilteringSubscribeTests.bundle/testPublishWithMetadataAndNoReceivedMessageForSubscribeWithFilteringWithSameKeyAndDifferentValue.plist +++ /dev/null @@ -1,514 +0,0 @@ - - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODMwMzAyMDA4MDQ2MyIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508303020080463 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28foo+%3D%3D+%27b%27%29&tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupFilterSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28foo+%3D%3D+%27b%27%29&tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupFilterSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo/,/0?channel-group=PNChannelGroupFilterSubscribeTests&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&filter-expr=%28foo%20%3D%3D%20'b'%29&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 23 Dec 2015 00:25:13 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - WzEsIlNlbnQiLCIxNDUwODMwMzEzNzg4NDgzMyJd - json - - 1 - Sent - 14508303137884833 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&meta=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&meta=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.2.3&meta=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 23 Dec 2015 00:25:13 GMT - - expectedContentLength - 30 - statusCode - 200 - suggestedFileName - "message".js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJhY3Rpb24iOiAibGVhdmUiLCAibWVzc2FnZSI6ICJPSyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - action - leave - message - OK - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNChannelGroupFilterSubscribeTests/leave?channel-group=PNChannelGroupFilterSubscribeTests&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNChannelGroupFilterSubscribeTests/leave?channel-group=PNChannelGroupFilterSubscribeTests&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNChannelGroupFilterSubscribeTests/leave?channel-group=PNChannelGroupFilterSubscribeTests&pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 74 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 23 Dec 2015 00:25:24 GMT - Server - Pubnub Presence - - expectedContentLength - 74 - statusCode - 200 - suggestedFileName - leave.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - json - - error - - message - OK - service - channel-registry - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupFilterSubscribeTests?add=PNFilterSubscribeTests%2CPNOtherTestChannelName&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupFilterSubscribeTests?add=PNFilterSubscribeTests%2CPNOtherTestChannelName&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupFilterSubscribeTests?pnsdk=PubNub-ObjC-iOS%2F4.2.3&add=PNFilterSubscribeTests,PNOtherTestChannelName&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 23 Dec 2015 00:25:13 GMT - Server - Pubnub - - expectedContentLength - 79 - statusCode - 200 - suggestedFileName - PNChannelGroupFilterSubscribeTests.js - textEncodingName - "utf-8" - - - - - cancelled - - error - - code - -999 - description - The operation couldn’t be completed. (NSURLErrorDomain error -999.) - domain - NSURLErrorDomain - userInfo - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28foo+%3D%3D+%27b%27%29&tt=14508303020080463&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupFilterSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28foo+%3D%3D+%27b%27%29&tt=14508303020080463&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupFilterSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNChannelGroupFilteringSubscribeTests.bundle/testPublishWithMetadataAndNoReceivedMessageForSubscribeWithFilteringWithSwitchedKeysAndValues.plist b/Tests/iOS Tests/Fixtures/PNChannelGroupFilteringSubscribeTests.bundle/testPublishWithMetadataAndNoReceivedMessageForSubscribeWithFilteringWithSwitchedKeysAndValues.plist deleted file mode 100755 index 5955e7b49..000000000 --- a/Tests/iOS Tests/Fixtures/PNChannelGroupFilteringSubscribeTests.bundle/testPublishWithMetadataAndNoReceivedMessageForSubscribeWithFilteringWithSwitchedKeysAndValues.plist +++ /dev/null @@ -1,623 +0,0 @@ - - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - json - - error - - message - OK - service - channel-registry - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupFilterSubscribeTests?add=PNFilterSubscribeTests%2CPNOtherTestChannelName&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupFilterSubscribeTests?add=PNFilterSubscribeTests%2CPNOtherTestChannelName&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupFilterSubscribeTests?pnsdk=PubNub-ObjC-iOS%2F4.2.3&add=PNFilterSubscribeTests,PNOtherTestChannelName&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 23 Dec 2015 00:25:24 GMT - Server - Pubnub - - expectedContentLength - 79 - statusCode - 200 - suggestedFileName - PNChannelGroupFilterSubscribeTests.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJhY3Rpb24iOiAibGVhdmUiLCAibWVzc2FnZSI6ICJPSyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - action - leave - message - OK - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNChannelGroupFilterSubscribeTests/leave?channel-group=PNChannelGroupFilterSubscribeTests&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNChannelGroupFilterSubscribeTests/leave?channel-group=PNChannelGroupFilterSubscribeTests&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNChannelGroupFilterSubscribeTests/leave?channel-group=PNChannelGroupFilterSubscribeTests&pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 74 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 23 Dec 2015 00:25:35 GMT - Server - Pubnub Presence - - expectedContentLength - 74 - statusCode - 200 - suggestedFileName - leave.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - WzEsIlNlbnQiLCIxNDUwODMwMzI0NTQxOTMwNSJd - json - - 1 - Sent - 14508303245419305 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&meta=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&meta=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.2.3&meta=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 23 Dec 2015 00:25:24 GMT - - expectedContentLength - 30 - statusCode - 200 - suggestedFileName - "message".js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODMwMzEzNzg4NTc0MSIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508303137885741 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28bar+%3D%3D+%27foo%27%29&tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupFilterSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28bar+%3D%3D+%27foo%27%29&tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupFilterSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=PNChannelGroupFilterSubscribeTests&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&filter-expr=%28bar%20%3D%3D%20'foo'%29&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 23 Dec 2015 00:25:24 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODMwMzI0NTQyMDAxMCIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508303245420010 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28bar+%3D%3D+%27foo%27%29&tt=14508303137885741&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupFilterSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28bar+%3D%3D+%27foo%27%29&tt=14508303137885741&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupFilterSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&channel-group=PNChannelGroupFilterSubscribeTests&pnsdk=PubNub-ObjC-iOS%2F4.2.3&tt=14508303137885741&filter-expr=%28bar%20%3D%3D%20'foo'%29&tr=56 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 23 Dec 2015 00:25:31 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - error - - code - -999 - description - The operation couldn’t be completed. (NSURLErrorDomain error -999.) - domain - NSURLErrorDomain - userInfo - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28bar+%3D%3D+%27foo%27%29&tt=14508303245420010&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupFilterSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28bar+%3D%3D+%27foo%27%29&tt=14508303245420010&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupFilterSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNChannelGroupFilteringSubscribeTests.bundle/testPublishWithMetadataAndReceiveMessageForSubscribeWithMatchingFiltering.plist b/Tests/iOS Tests/Fixtures/PNChannelGroupFilteringSubscribeTests.bundle/testPublishWithMetadataAndReceiveMessageForSubscribeWithMatchingFiltering.plist deleted file mode 100755 index b47c5b472..000000000 --- a/Tests/iOS Tests/Fixtures/PNChannelGroupFilteringSubscribeTests.bundle/testPublishWithMetadataAndReceiveMessageForSubscribeWithMatchingFiltering.plist +++ /dev/null @@ -1,652 +0,0 @@ - - - - - - cancelled - - data - - data - WzEsIlNlbnQiLCIxNDUwODMwMzM1NzkzNDU1NiJd - json - - 1 - Sent - 14508303357934556 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&meta=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&meta=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.2.3&meta=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 23 Dec 2015 00:25:35 GMT - - expectedContentLength - 30 - statusCode - 200 - suggestedFileName - "message".js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJhY3Rpb24iOiAibGVhdmUiLCAibWVzc2FnZSI6ICJPSyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - action - leave - message - OK - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo/channel/PNChannelGroupFilterSubscribeTests/leave?channel-group=PNChannelGroupFilterSubscribeTests&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNChannelGroupFilterSubscribeTests/leave?channel-group=PNChannelGroupFilterSubscribeTests&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNChannelGroupFilterSubscribeTests/leave?channel-group=PNChannelGroupFilterSubscribeTests&pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 1 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 74 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 23 Dec 2015 00:25:35 GMT - Server - Pubnub Presence - - expectedContentLength - 74 - statusCode - 200 - suggestedFileName - leave.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODMwMzM1NzkzNTQzMyIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsImkiOiIzMjJBNzBCMy1GMEVBLTQ4Q0QtOUJCMC1EM0YwRjVERTk5NkMiLCJwIjp7InQiOiIxNDUwODMwMzM1NzkzNDU1NiIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiUE5GaWx0ZXJTdWJzY3JpYmVUZXN0cyIsInUiOnsiZm9vIjoiYmFyIn0sImQiOiJtZXNzYWdlIiwiYiI6IlBOQ2hhbm5lbEdyb3VwRmlsdGVyU3Vic2NyaWJlVGVzdHMifV19 - json - - m - - - a - 4 - b - PNChannelGroupFilterSubscribeTests - c - PNFilterSubscribeTests - d - message - f - 512 - i - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - k - demo-36 - p - - r - 56 - t - 14508303357934556 - - u - - foo - bar - - - - t - - r - 56 - t - 14508303357935433 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28foo%3D%3D%27bar%27%29&tt=14508303245420010&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupFilterSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28foo%3D%3D%27bar%27%29&tt=14508303245420010&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupFilterSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&channel-group=PNChannelGroupFilterSubscribeTests&pnsdk=PubNub-ObjC-iOS%2F4.2.3&tt=14508303245420010&filter-expr=%28foo%3D%3D'bar'%29&tr=56 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 258 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 23 Dec 2015 00:25:35 GMT - - expectedContentLength - 258 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - json - - error - - message - OK - service - channel-registry - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupFilterSubscribeTests?add=PNFilterSubscribeTests%2CPNOtherTestChannelName&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupFilterSubscribeTests?add=PNFilterSubscribeTests%2CPNOtherTestChannelName&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupFilterSubscribeTests?pnsdk=PubNub-ObjC-iOS%2F4.2.3&add=PNFilterSubscribeTests,PNOtherTestChannelName&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 23 Dec 2015 00:25:35 GMT - Server - Pubnub - - expectedContentLength - 79 - statusCode - 200 - suggestedFileName - PNChannelGroupFilterSubscribeTests.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODMwMzI0NTQyMDAxMCIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508303245420010 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28foo%3D%3D%27bar%27%29&tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupFilterSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28foo%3D%3D%27bar%27%29&tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupFilterSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=PNChannelGroupFilterSubscribeTests&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&filter-expr=%28foo%3D%3D'bar'%29&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 23 Dec 2015 00:25:35 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - error - - code - -999 - description - The operation couldn’t be completed. (NSURLErrorDomain error -999.) - domain - NSURLErrorDomain - userInfo - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28foo%3D%3D%27bar%27%29&tt=14508303357935433&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupFilterSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28foo%3D%3D%27bar%27%29&tt=14508303357935433&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupFilterSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNChannelGroupFilteringSubscribeTests.bundle/testPublishWithMetadataAndReceiveMultipleMessagesForSubscribeWithMatchingFiltering.plist b/Tests/iOS Tests/Fixtures/PNChannelGroupFilteringSubscribeTests.bundle/testPublishWithMetadataAndReceiveMultipleMessagesForSubscribeWithMatchingFiltering.plist deleted file mode 100755 index fc6c14675..000000000 --- a/Tests/iOS Tests/Fixtures/PNChannelGroupFilteringSubscribeTests.bundle/testPublishWithMetadataAndReceiveMultipleMessagesForSubscribeWithMatchingFiltering.plist +++ /dev/null @@ -1,783 +0,0 @@ - - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUyMTkxOTkwNDc4NTg5MSIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsImkiOiIzMjJBNzBCMy1GMEVBLTQ4Q0QtOUJCMC1EM0YwRjVERTk5NkMiLCJwIjp7InQiOiIxNDUyMTkxOTkwMzYzMzEyOSIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiUE5GaWx0ZXJTdWJzY3JpYmVUZXN0cyIsInUiOnsiZm9vIjoiYmFyIn0sImQiOiJtZXNzYWdlIiwiYiI6IlBOQ2hhbm5lbEdyb3VwRmlsdGVyU3Vic2NyaWJlVGVzdHMifSx7ImEiOiI0IiwiZiI6NTEyLCJpIjoiMzIyQTcwQjMtRjBFQS00OENELTlCQjAtRDNGMEY1REU5OTZDIiwicCI6eyJ0IjoiMTQ1MjE5MTk5MDQ3ODUxODUiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6IlBORmlsdGVyU3Vic2NyaWJlVGVzdHMiLCJ1Ijp7ImZvbyI6ImJhciJ9LCJkIjoibWVzc2FnZTEiLCJiIjoiUE5DaGFubmVsR3JvdXBGaWx0ZXJTdWJzY3JpYmVUZXN0cyJ9XX0= - json - - m - - - a - 4 - b - PNChannelGroupFilterSubscribeTests - c - PNFilterSubscribeTests - d - message - f - 512 - i - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - k - demo-36 - p - - r - 56 - t - 14521919903633129 - - u - - foo - bar - - - - a - 4 - b - PNChannelGroupFilterSubscribeTests - c - PNFilterSubscribeTests - d - message1 - f - 512 - i - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - k - demo-36 - p - - r - 56 - t - 14521919904785185 - - u - - foo - bar - - - - t - - r - 56 - t - 14521919904785891 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28foo%3D%3D%27bar%27%29&tt=14521919903633129&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupFilterSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28foo%3D%3D%27bar%27%29&tt=14521919903633129&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupFilterSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&channel-group=PNChannelGroupFilterSubscribeTests&pnsdk=PubNub-ObjC-iOS%2F4.2.3&tt=14521919903633129&filter-expr=%28foo%3D%3D'bar'%29&tr=56 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 473 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 07 Jan 2016 18:39:50 GMT - - expectedContentLength - 473 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - WzEsIlNlbnQiLCIxNDUyMTkxOTkwNDc4NTE4NSJd - json - - 1 - Sent - 14521919904785185 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message1%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&meta=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message1%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&meta=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message1%22?pnsdk=PubNub-ObjC-iOS%2F4.2.3&meta=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 07 Jan 2016 18:39:50 GMT - - expectedContentLength - 30 - statusCode - 200 - suggestedFileName - "message1".js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - json - - error - - message - OK - service - channel-registry - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupFilterSubscribeTests?add=PNFilterSubscribeTests%2CPNOtherTestChannelName&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupFilterSubscribeTests?add=PNFilterSubscribeTests%2CPNOtherTestChannelName&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupFilterSubscribeTests?pnsdk=PubNub-ObjC-iOS%2F4.2.3&add=PNFilterSubscribeTests,PNOtherTestChannelName&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 07 Jan 2016 18:39:50 GMT - Server - Pubnub - - expectedContentLength - 79 - statusCode - 200 - suggestedFileName - PNChannelGroupFilterSubscribeTests.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUyMTkxOTkwNDc4NTg5MSIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14521919904785891 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28foo%3D%3D%27bar%27%29&tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupFilterSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28foo%3D%3D%27bar%27%29&tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupFilterSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=PNChannelGroupFilterSubscribeTests&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&filter-expr=%28foo%3D%3D'bar'%29&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 07 Jan 2016 18:39:50 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - error - - code - -999 - description - The operation couldn’t be completed. (NSURLErrorDomain error -999.) - domain - NSURLErrorDomain - userInfo - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28foo%3D%3D%27bar%27%29&tt=14521919904785891&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupFilterSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28foo%3D%3D%27bar%27%29&tt=14521919904785891&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupFilterSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJhY3Rpb24iOiAibGVhdmUiLCAibWVzc2FnZSI6ICJPSyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - action - leave - message - OK - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNChannelGroupFilterSubscribeTests/leave?channel-group=PNChannelGroupFilterSubscribeTests&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNChannelGroupFilterSubscribeTests/leave?channel-group=PNChannelGroupFilterSubscribeTests&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNChannelGroupFilterSubscribeTests/leave?channel-group=PNChannelGroupFilterSubscribeTests&pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 74 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 07 Jan 2016 18:39:50 GMT - Server - Pubnub Presence - - expectedContentLength - 74 - statusCode - 200 - suggestedFileName - leave.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - WzEsIlNlbnQiLCIxNDUyMTkxOTkwMzYzMzEyOSJd - json - - 1 - Sent - 14521919903633129 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&meta=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&meta=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.2.3&meta=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 07 Jan 2016 18:39:50 GMT - - expectedContentLength - 30 - statusCode - 200 - suggestedFileName - "message".js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNChannelGroupFilteringSubscribeTests.bundle/testPublishWithNoMetadataAndNoReceivedMessageForSubscribeWithFiltering.plist b/Tests/iOS Tests/Fixtures/PNChannelGroupFilteringSubscribeTests.bundle/testPublishWithNoMetadataAndNoReceivedMessageForSubscribeWithFiltering.plist deleted file mode 100755 index 235b17c14..000000000 --- a/Tests/iOS Tests/Fixtures/PNChannelGroupFilteringSubscribeTests.bundle/testPublishWithNoMetadataAndNoReceivedMessageForSubscribeWithFiltering.plist +++ /dev/null @@ -1,514 +0,0 @@ - - - - - - cancelled - - data - - data - WzEsIlNlbnQiLCIxNDUwODMwMzM2MzEyNTE4MSJd - json - - 1 - Sent - 14508303363125181 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 23 Dec 2015 00:25:36 GMT - - expectedContentLength - 30 - statusCode - 200 - suggestedFileName - "message".js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - json - - error - - message - OK - service - channel-registry - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupFilterSubscribeTests?add=PNFilterSubscribeTests%2CPNOtherTestChannelName&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupFilterSubscribeTests?add=PNFilterSubscribeTests%2CPNOtherTestChannelName&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupFilterSubscribeTests?pnsdk=PubNub-ObjC-iOS%2F4.2.3&add=PNFilterSubscribeTests,PNOtherTestChannelName&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 1 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 23 Dec 2015 00:25:36 GMT - Server - Pubnub - - expectedContentLength - 79 - statusCode - 200 - suggestedFileName - PNChannelGroupFilterSubscribeTests.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODMwMzM1NzkzNTQzMyIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508303357935433 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28foo%3D%3D%27bar%27%29&tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupFilterSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28foo%3D%3D%27bar%27%29&tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupFilterSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=PNChannelGroupFilterSubscribeTests&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&filter-expr=%28foo%3D%3D'bar'%29&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 23 Dec 2015 00:25:36 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - error - - code - -999 - description - The operation couldn’t be completed. (NSURLErrorDomain error -999.) - domain - NSURLErrorDomain - userInfo - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28foo%3D%3D%27bar%27%29&tt=14508303357935433&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupFilterSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28foo%3D%3D%27bar%27%29&tt=14508303357935433&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupFilterSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJhY3Rpb24iOiAibGVhdmUiLCAibWVzc2FnZSI6ICJPSyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - action - leave - message - OK - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNChannelGroupFilterSubscribeTests/leave?channel-group=PNChannelGroupFilterSubscribeTests&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNChannelGroupFilterSubscribeTests/leave?channel-group=PNChannelGroupFilterSubscribeTests&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNChannelGroupFilterSubscribeTests/leave?channel-group=PNChannelGroupFilterSubscribeTests&pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 74 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 23 Dec 2015 00:25:47 GMT - Server - Pubnub Presence - - expectedContentLength - 74 - statusCode - 200 - suggestedFileName - leave.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNChannelGroupFilteringSubscribeTests.bundle/testPublishWithNoMetadataAndReceiveMultipleMessagesForSubscribeWithNoFiltering.plist b/Tests/iOS Tests/Fixtures/PNChannelGroupFilteringSubscribeTests.bundle/testPublishWithNoMetadataAndReceiveMultipleMessagesForSubscribeWithNoFiltering.plist deleted file mode 100755 index 1f8099df4..000000000 --- a/Tests/iOS Tests/Fixtures/PNChannelGroupFilteringSubscribeTests.bundle/testPublishWithNoMetadataAndReceiveMultipleMessagesForSubscribeWithNoFiltering.plist +++ /dev/null @@ -1,773 +0,0 @@ - - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUyMTkwNzU1OTg3NjMyNSIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14521907559876325 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&channel-group=PNChannelGroupFilterSubscribeTests&tt=0&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&channel-group=PNChannelGroupFilterSubscribeTests&tt=0&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=PNChannelGroupFilterSubscribeTests&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 07 Jan 2016 18:19:16 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - error - - code - -999 - description - The operation couldn’t be completed. (NSURLErrorDomain error -999.) - domain - NSURLErrorDomain - userInfo - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14521907559876325&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupFilterSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14521907559876325&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupFilterSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJhY3Rpb24iOiAibGVhdmUiLCAibWVzc2FnZSI6ICJPSyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - action - leave - message - OK - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNChannelGroupFilterSubscribeTests/leave?channel-group=PNChannelGroupFilterSubscribeTests&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNChannelGroupFilterSubscribeTests/leave?channel-group=PNChannelGroupFilterSubscribeTests&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNChannelGroupFilterSubscribeTests/leave?channel-group=PNChannelGroupFilterSubscribeTests&pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 74 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 07 Jan 2016 18:19:16 GMT - Server - Pubnub Presence - - expectedContentLength - 74 - statusCode - 200 - suggestedFileName - leave.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - WzEsIlNlbnQiLCIxNDUyMTkwNzU1ODAxODU2OSJd - json - - 1 - Sent - 14521907558018569 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 07 Jan 2016 18:19:15 GMT - - expectedContentLength - 30 - statusCode - 200 - suggestedFileName - "message".js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - WzEsIlNlbnQiLCIxNDUyMTkwNzU1OTg3NTYxNiJd - json - - 1 - Sent - 14521907559875616 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message1%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo/demo-36/0/PNFilterSubscribeTests/0/%22message1%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message1%22?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 07 Jan 2016 18:19:15 GMT - - expectedContentLength - 30 - statusCode - 200 - suggestedFileName - "message1".js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUyMTkwNzU1OTg3NjMyNSIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsImkiOiIzMjJBNzBCMy1GMEVBLTQ4Q0QtOUJCMC1EM0YwRjVERTk5NkMiLCJwIjp7InQiOiIxNDUyMTkwNzU1ODAxODU2OSIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiUE5GaWx0ZXJTdWJzY3JpYmVUZXN0cyIsImQiOiJtZXNzYWdlIiwiYiI6IlBOQ2hhbm5lbEdyb3VwRmlsdGVyU3Vic2NyaWJlVGVzdHMifSx7ImEiOiI0IiwiZiI6NTEyLCJpIjoiMzIyQTcwQjMtRjBFQS00OENELTlCQjAtRDNGMEY1REU5OTZDIiwicCI6eyJ0IjoiMTQ1MjE5MDc1NTk4NzU2MTYiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6IlBORmlsdGVyU3Vic2NyaWJlVGVzdHMiLCJkIjoibWVzc2FnZTEiLCJiIjoiUE5DaGFubmVsR3JvdXBGaWx0ZXJTdWJzY3JpYmVUZXN0cyJ9XX0= - json - - m - - - a - 4 - b - PNChannelGroupFilterSubscribeTests - c - PNFilterSubscribeTests - d - message - f - 512 - i - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - k - demo-36 - p - - r - 56 - t - 14521907558018569 - - - - a - 4 - b - PNChannelGroupFilterSubscribeTests - c - PNFilterSubscribeTests - d - message1 - f - 512 - i - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - k - demo-36 - p - - r - 56 - t - 14521907559875616 - - - - t - - r - 56 - t - 14521907559876325 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14521907558018569&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupFilterSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14521907558018569&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupFilterSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=PNChannelGroupFilterSubscribeTests&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14521907558018569&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 437 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 07 Jan 2016 18:19:16 GMT - - expectedContentLength - 437 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - json - - error - - message - OK - service - channel-registry - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupFilterSubscribeTests?add=PNFilterSubscribeTests%2CPNOtherTestChannelName&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupFilterSubscribeTests?add=PNFilterSubscribeTests%2CPNOtherTestChannelName&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupFilterSubscribeTests?pnsdk=PubNub-ObjC-iOS%2F4.2.3&add=PNFilterSubscribeTests,PNOtherTestChannelName&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 07 Jan 2016 18:19:15 GMT - Server - Pubnub - - expectedContentLength - 79 - statusCode - 200 - suggestedFileName - PNChannelGroupFilterSubscribeTests.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNChannelGroupFilteringSubscribeTests.bundle/testPublishWithNoMetadataAndReceivedMessageForSubscribeWithNoFiltering.plist b/Tests/iOS Tests/Fixtures/PNChannelGroupFilteringSubscribeTests.bundle/testPublishWithNoMetadataAndReceivedMessageForSubscribeWithNoFiltering.plist deleted file mode 100755 index 7daee7e98..000000000 --- a/Tests/iOS Tests/Fixtures/PNChannelGroupFilteringSubscribeTests.bundle/testPublishWithNoMetadataAndReceivedMessageForSubscribeWithNoFiltering.plist +++ /dev/null @@ -1,647 +0,0 @@ - - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUxMzM0OTgxNDE1MjY3NiIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsImkiOiIzMjJBNzBCMy1GMEVBLTQ4Q0QtOUJCMC1EM0YwRjVERTk5NkMiLCJwIjp7InQiOiIxNDUxMzM0OTgxNDE1MTgwNiIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiUE5GaWx0ZXJTdWJzY3JpYmVUZXN0cyIsImQiOiJtZXNzYWdlIiwiYiI6IlBOQ2hhbm5lbEdyb3VwRmlsdGVyU3Vic2NyaWJlVGVzdHMifV19 - json - - m - - - a - 4 - b - PNChannelGroupFilterSubscribeTests - c - PNFilterSubscribeTests - d - message - f - 512 - i - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - k - demo-36 - p - - r - 56 - t - 14513349814151806 - - - - t - - r - 56 - t - 14513349814152676 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14513349812779095&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupFilterSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14513349812779095&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupFilterSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=PNChannelGroupFilterSubscribeTests&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14513349812779095&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 240 - Content-Type - text/javascript; charset="UTF-8" - Date - Mon, 28 Dec 2015 20:36:21 GMT - - expectedContentLength - 240 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUxMzM0OTgxMjc3OTA5NSIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14513349812779095 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&channel-group=PNChannelGroupFilterSubscribeTests&tt=0&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&channel-group=PNChannelGroupFilterSubscribeTests&tt=0&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=PNChannelGroupFilterSubscribeTests&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Mon, 28 Dec 2015 20:36:21 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - json - - error - - message - OK - service - channel-registry - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupFilterSubscribeTests?add=PNFilterSubscribeTests%2CPNOtherTestChannelName&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupFilterSubscribeTests?add=PNFilterSubscribeTests%2CPNOtherTestChannelName&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupFilterSubscribeTests?pnsdk=PubNub-ObjC-iOS%2F4.2.3&add=PNFilterSubscribeTests,PNOtherTestChannelName&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Mon, 28 Dec 2015 20:36:21 GMT - Server - Pubnub - - expectedContentLength - 79 - statusCode - 200 - suggestedFileName - PNChannelGroupFilterSubscribeTests.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - WzEsIlNlbnQiLCIxNDUxMzM0OTgxNDE1MTgwNiJd - json - - 1 - Sent - 14513349814151806 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Mon, 28 Dec 2015 20:36:21 GMT - - expectedContentLength - 30 - statusCode - 200 - suggestedFileName - "message".js - textEncodingName - "utf-8" - - - - - cancelled - - error - - code - -999 - description - The operation couldn’t be completed. (NSURLErrorDomain error -999.) - domain - NSURLErrorDomain - userInfo - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14513349814152676&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupFilterSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14513349814152676&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupFilterSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJhY3Rpb24iOiAibGVhdmUiLCAibWVzc2FnZSI6ICJPSyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - action - leave - message - OK - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNChannelGroupFilterSubscribeTests/leave?channel-group=PNChannelGroupFilterSubscribeTests&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNChannelGroupFilterSubscribeTests/leave?channel-group=PNChannelGroupFilterSubscribeTests&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNChannelGroupFilterSubscribeTests/leave?channel-group=PNChannelGroupFilterSubscribeTests&pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 74 - Content-Type - text/javascript; charset="UTF-8" - Date - Mon, 28 Dec 2015 20:36:21 GMT - Server - Pubnub Presence - - expectedContentLength - 74 - statusCode - 200 - suggestedFileName - leave.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNChannelGroupPresenceEventTests.bundle/testJoinEvent.plist b/Tests/iOS Tests/Fixtures/PNChannelGroupPresenceEventTests.bundle/testJoinEvent.plist deleted file mode 100755 index f2692aa74..000000000 --- a/Tests/iOS Tests/Fixtures/PNChannelGroupPresenceEventTests.bundle/testJoinEvent.plist +++ /dev/null @@ -1,9503 +0,0 @@ - - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4MzgxMDE3OTYxMSIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzODEwMTc4NDQ4IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAiam9pbiIsICJ0aW1lc3RhbXAiOiAxNDUwODI4MzgxLCAidXVpZCI6ICIzMjJBNzBCMy1GMEVBLTQ4Q0QtOUJCMC1EM0YwRjVERTk5NkMiLCAib2NjdXBhbmN5IjogM30sImIiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIn1dfQ== - json - - m - - - a - 4 - b - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - join - occupancy - 3 - timestamp - 1450828381 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283810178448 - - - - t - - r - 56 - t - 14508283810179611 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?tt=14508283596061232&pnsdk=PubNub-ObjC-iOS%2F4.3.3&tr=56&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?tt=14508283596061232&pnsdk=PubNub-ObjC-iOS%2F4.3.3&tr=56&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508283596061232&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 325 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:53:01 GMT - - expectedContentLength - 325 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJhY3Rpb24iOiAibGVhdmUiLCAibWVzc2FnZSI6ICJPSyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - action - leave - message - OK - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/leave?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 74 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:52:39 GMT - Server - Pubnub Presence - - expectedContentLength - 74 - statusCode - 200 - suggestedFileName - leave.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4MzgwNzYxNDM3MiIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNTk2MDYwMjkzIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAibGVhdmUiLCAidGltZXN0YW1wIjogMTQ1MDgyODM1OSwgInV1aWQiOiAiMzIyQTcwQjMtRjBFQS00OENELTlCQjAtRDNGMEY1REU5OTZDIiwgIm9jY3VwYW5jeSI6IDJ9LCJiIjoidGVzdEdyb3VwLXBucHJlcyJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNTk2NjkyNDA2IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqLi4uLiA1ODMzIC0gMjAxNS0xMi0yMiAxNTo1MjozOSIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzYwODM0NjQ3MyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKioqKiouLi4gNTgzNCAtIDIwMTUtMTItMjIgMTU6NTI6NDAiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2MjAwODM5OTAiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKioqKioqKioqKi4uIDU4MzUgLSAyMDE1LTEyLTIyIDE1OjUyOjQxIiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNjMxNjkyMjAwIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqKioqLiA1ODM2IC0gMjAxNS0xMi0yMiAxNTo1Mjo0MyIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzY0MzMyMDczOSIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKioqKioqKiogNTgzNyAtIDIwMTUtMTItMjIgMTU6NTI6NDQiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2NTQ5NTM1OTEiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKi4uLi4uLi4uLi4uLi4uIDU4MzggLSAyMDE1LTEyLTIyIDE1OjUyOjQ1IiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNjY2NzE1NjEwIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqLi4uLi4uLi4uLi4uLiA1ODM5IC0gMjAxNS0xMi0yMiAxNTo1Mjo0NiIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzY3ODUyMzg5NyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKiouLi4uLi4uLi4uLi4gNTg0MCAtIDIwMTUtMTItMjIgMTU6NTI6NDciLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2OTAzMTYzMTgiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKi4uLi4uLi4uLi4uIDU4NDEgLSAyMDE1LTEyLTIyIDE1OjUyOjQ4IiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNzAxOTM2ODI5IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqLi4uLi4uLi4uLiA1ODQyIC0gMjAxNS0xMi0yMiAxNTo1Mjo1MCIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzcxMzU3NjU3MiIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKiouLi4uLi4uLi4gNTg0MyAtIDIwMTUtMTItMjIgMTU6NTI6NTEiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM3MjUyOTE0NDQiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKioqKi4uLi4uLi4uIDU4NDQgLSAyMDE1LTEyLTIyIDE1OjUyOjUyIiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNzM3MTg4MDA3IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqLi4uLi4uLiA1ODQ1IC0gMjAxNS0xMi0yMiAxNTo1Mjo1MyIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4Mzc0ODgzMzI2NiIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKiouLi4uLi4gNTg0NiAtIDIwMTUtMTItMjIgMTU6NTI6NTQiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM3NjA0ODc0MzkiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKioqKioqKi4uLi4uIDU4NDcgLSAyMDE1LTEyLTIyIDE1OjUyOjU1IiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNzcyMzA5NTEyIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqLi4uLiA1ODQ4IC0gMjAxNS0xMi0yMiAxNTo1Mjo1NyIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4Mzc4Mzk4Mzc1OCIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKioqKiouLi4gNTg0OSAtIDIwMTUtMTItMjIgMTU6NTI6NTgiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM3OTU3MjI3OTkiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKioqKioqKioqKi4uIDU4NTAgLSAyMDE1LTEyLTIyIDE1OjUyOjU5IiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzODA3NjEzMjUwIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqKioqLiA1ODUxIC0gMjAxNS0xMi0yMiAxNTo1MzowMCIsImIiOiJ0ZXN0R3JvdXAifV19 - json - - m - - - a - 4 - b - testGroup-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - leave - occupancy - 2 - timestamp - 1450828359 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283596060293 - - - - a - 4 - b - testGroup - c - a - d - ***********.... 5833 - 2015-12-22 15:52:39 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283596692406 - - - - a - 4 - b - testGroup - c - a - d - ************... 5834 - 2015-12-22 15:52:40 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283608346473 - - - - a - 4 - b - testGroup - c - a - d - *************.. 5835 - 2015-12-22 15:52:41 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283620083990 - - - - a - 4 - b - testGroup - c - a - d - **************. 5836 - 2015-12-22 15:52:43 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283631692200 - - - - a - 4 - b - testGroup - c - a - d - *************** 5837 - 2015-12-22 15:52:44 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283643320739 - - - - a - 4 - b - testGroup - c - a - d - *.............. 5838 - 2015-12-22 15:52:45 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283654953591 - - - - a - 4 - b - testGroup - c - a - d - **............. 5839 - 2015-12-22 15:52:46 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283666715610 - - - - a - 4 - b - testGroup - c - a - d - ***............ 5840 - 2015-12-22 15:52:47 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283678523897 - - - - a - 4 - b - testGroup - c - a - d - ****........... 5841 - 2015-12-22 15:52:48 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283690316318 - - - - a - 4 - b - testGroup - c - a - d - *****.......... 5842 - 2015-12-22 15:52:50 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283701936829 - - - - a - 4 - b - testGroup - c - a - d - ******......... 5843 - 2015-12-22 15:52:51 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283713576572 - - - - a - 4 - b - testGroup - c - a - d - *******........ 5844 - 2015-12-22 15:52:52 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283725291444 - - - - a - 4 - b - testGroup - c - a - d - ********....... 5845 - 2015-12-22 15:52:53 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283737188007 - - - - a - 4 - b - testGroup - c - a - d - *********...... 5846 - 2015-12-22 15:52:54 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283748833266 - - - - a - 4 - b - testGroup - c - a - d - **********..... 5847 - 2015-12-22 15:52:55 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283760487439 - - - - a - 4 - b - testGroup - c - a - d - ***********.... 5848 - 2015-12-22 15:52:57 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283772309512 - - - - a - 4 - b - testGroup - c - a - d - ************... 5849 - 2015-12-22 15:52:58 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283783983758 - - - - a - 4 - b - testGroup - c - a - d - *************.. 5850 - 2015-12-22 15:52:59 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283795722799 - - - - a - 4 - b - testGroup - c - a - d - **************. 5851 - 2015-12-22 15:53:00 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283807613250 - - - - t - - r - 56 - t - 14508283807614372 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Encoding - gzip - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:53:00 GMT - Transfer-Encoding - Identity - - expectedContentLength - 2997 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4MzY1NDk1NDcwOSIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNTk2MDYwMjkzIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAibGVhdmUiLCAidGltZXN0YW1wIjogMTQ1MDgyODM1OSwgInV1aWQiOiAiMzIyQTcwQjMtRjBFQS00OENELTlCQjAtRDNGMEY1REU5OTZDIiwgIm9jY3VwYW5jeSI6IDJ9LCJiIjoidGVzdEdyb3VwLXBucHJlcyJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNTk2NjkyNDA2IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqLi4uLiA1ODMzIC0gMjAxNS0xMi0yMiAxNTo1MjozOSIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzYwODM0NjQ3MyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKioqKiouLi4gNTgzNCAtIDIwMTUtMTItMjIgMTU6NTI6NDAiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2MjAwODM5OTAiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKioqKioqKioqKi4uIDU4MzUgLSAyMDE1LTEyLTIyIDE1OjUyOjQxIiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNjMxNjkyMjAwIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqKioqLiA1ODM2IC0gMjAxNS0xMi0yMiAxNTo1Mjo0MyIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzY0MzMyMDczOSIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKioqKioqKiogNTgzNyAtIDIwMTUtMTItMjIgMTU6NTI6NDQiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2NTQ5NTM1OTEiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKi4uLi4uLi4uLi4uLi4uIDU4MzggLSAyMDE1LTEyLTIyIDE1OjUyOjQ1IiwiYiI6InRlc3RHcm91cCJ9XX0= - json - - m - - - a - 4 - b - testGroup-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - leave - occupancy - 2 - timestamp - 1450828359 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283596060293 - - - - a - 4 - b - testGroup - c - a - d - ***********.... 5833 - 2015-12-22 15:52:39 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283596692406 - - - - a - 4 - b - testGroup - c - a - d - ************... 5834 - 2015-12-22 15:52:40 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283608346473 - - - - a - 4 - b - testGroup - c - a - d - *************.. 5835 - 2015-12-22 15:52:41 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283620083990 - - - - a - 4 - b - testGroup - c - a - d - **************. 5836 - 2015-12-22 15:52:43 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283631692200 - - - - a - 4 - b - testGroup - c - a - d - *************** 5837 - 2015-12-22 15:52:44 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283643320739 - - - - a - 4 - b - testGroup - c - a - d - *.............. 5838 - 2015-12-22 15:52:45 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283654953591 - - - - t - - r - 56 - t - 14508283654954709 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Encoding - gzip - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:52:45 GMT - Transfer-Encoding - Identity - - expectedContentLength - 1151 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4MzU5NjA2MTIzMiIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNTk2MDYwMjkzIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAibGVhdmUiLCAidGltZXN0YW1wIjogMTQ1MDgyODM1OSwgInV1aWQiOiAiMzIyQTcwQjMtRjBFQS00OENELTlCQjAtRDNGMEY1REU5OTZDIiwgIm9jY3VwYW5jeSI6IDJ9LCJiIjoidGVzdEdyb3VwLXBucHJlcyJ9XX0= - json - - m - - - a - 4 - b - testGroup-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - leave - occupancy - 2 - timestamp - 1450828359 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283596060293 - - - - t - - r - 56 - t - 14508283596061232 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 299 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:52:39 GMT - - expectedContentLength - 299 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4Mzc5NTcyMzg5MSIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNzk1NzIyNzk5IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqKiouLiA1ODUwIC0gMjAxNS0xMi0yMiAxNTo1Mjo1OSIsImIiOiJ0ZXN0R3JvdXAifV19 - json - - m - - - a - 4 - b - testGroup - c - a - d - *************.. 5850 - 2015-12-22 15:52:59 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283795722799 - - - - t - - r - 56 - t - 14508283795723891 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283783984524&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283783984524&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283783984524&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 186 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:52:59 GMT - - expectedContentLength - 186 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4Mzc4Mzk4NDUyNCIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNzgzOTgzNzU4IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqKi4uLiA1ODQ5IC0gMjAxNS0xMi0yMiAxNTo1Mjo1OCIsImIiOiJ0ZXN0R3JvdXAifV19 - json - - m - - - a - 4 - b - testGroup - c - a - d - ************... 5849 - 2015-12-22 15:52:58 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283783983758 - - - - t - - r - 56 - t - 14508283783984524 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283772310489&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283772310489&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283772310489&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 186 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:52:58 GMT - - expectedContentLength - 186 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - json - - error - - message - OK - service - channel-registry - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/testGroup?add=2EC925F0-B996-47A4-AF54-A605E1A9AEBA%2Ca&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/testGroup?add=2EC925F0-B996-47A4-AF54-A605E1A9AEBA%2Ca&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/testGroup?pnsdk=PubNub-ObjC-iOS%2F4.2.3&add=2EC925F0-B996-47A4-AF54-A605E1A9AEBA,a&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:52:39 GMT - Server - Pubnub - - expectedContentLength - 79 - statusCode - 200 - suggestedFileName - testGroup.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4MzYwODM0NzIzNCIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNjA4MzQ2NDczIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqKi4uLiA1ODM0IC0gMjAxNS0xMi0yMiAxNTo1Mjo0MCIsImIiOiJ0ZXN0R3JvdXAifV19 - json - - m - - - a - 4 - b - testGroup - c - a - d - ************... 5834 - 2015-12-22 15:52:40 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283608346473 - - - - t - - r - 56 - t - 14508283608347234 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283596693168&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283596693168&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283596693168&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 186 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:52:40 GMT - - expectedContentLength - 186 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4MzcxMzU3NzM0NyIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNzEzNTc2NTcyIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKi4uLi4uLi4uLiA1ODQzIC0gMjAxNS0xMi0yMiAxNTo1Mjo1MSIsImIiOiJ0ZXN0R3JvdXAifV19 - json - - m - - - a - 4 - b - testGroup - c - a - d - ******......... 5843 - 2015-12-22 15:52:51 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283713576572 - - - - t - - r - 56 - t - 14508283713577347 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283701937887&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283701937887&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283701937887&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 186 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:52:51 GMT - - expectedContentLength - 186 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4MzY2NjcxNjY5NSIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNjY2NzE1NjEwIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqLi4uLi4uLi4uLi4uLiA1ODM5IC0gMjAxNS0xMi0yMiAxNTo1Mjo0NiIsImIiOiJ0ZXN0R3JvdXAifV19 - json - - m - - - a - 4 - b - testGroup - c - a - d - **............. 5839 - 2015-12-22 15:52:46 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283666715610 - - - - t - - r - 56 - t - 14508283666716695 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283654954709&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283654954709&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283654954709&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 186 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:52:46 GMT - - expectedContentLength - 186 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4MzgxMDE3OTYxMSIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzODEwMTc4NDQ4IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAiam9pbiIsICJ0aW1lc3RhbXAiOiAxNDUwODI4MzgxLCAidXVpZCI6ICIzMjJBNzBCMy1GMEVBLTQ4Q0QtOUJCMC1EM0YwRjVERTk5NkMiLCAib2NjdXBhbmN5IjogM30sImIiOiJ0ZXN0R3JvdXAtcG5wcmVzIn1dfQ== - json - - m - - - a - 4 - b - testGroup-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - join - occupancy - 3 - timestamp - 1450828381 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283810178448 - - - - t - - r - 56 - t - 14508283810179611 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283807614372&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283807614372&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283807614372&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 298 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:53:01 GMT - - expectedContentLength - 298 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4MzU5NjY5MzE2OCIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNTk2NjkyNDA2IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqLi4uLiA1ODMzIC0gMjAxNS0xMi0yMiAxNTo1MjozOSIsImIiOiJ0ZXN0R3JvdXAifV19 - json - - m - - - a - 4 - b - testGroup - c - a - d - ***********.... 5833 - 2015-12-22 15:52:39 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283596692406 - - - - t - - r - 56 - t - 14508283596693168 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283596061232&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283596061232&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283596061232&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 186 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:52:39 GMT - - expectedContentLength - 186 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4MzY0MzMyMTU2NiIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNTk2MDYwMjkzIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAibGVhdmUiLCAidGltZXN0YW1wIjogMTQ1MDgyODM1OSwgInV1aWQiOiAiMzIyQTcwQjMtRjBFQS00OENELTlCQjAtRDNGMEY1REU5OTZDIiwgIm9jY3VwYW5jeSI6IDJ9LCJiIjoidGVzdEdyb3VwLXBucHJlcyJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNTk2NjkyNDA2IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqLi4uLiA1ODMzIC0gMjAxNS0xMi0yMiAxNTo1MjozOSIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzYwODM0NjQ3MyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKioqKiouLi4gNTgzNCAtIDIwMTUtMTItMjIgMTU6NTI6NDAiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2MjAwODM5OTAiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKioqKioqKioqKi4uIDU4MzUgLSAyMDE1LTEyLTIyIDE1OjUyOjQxIiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNjMxNjkyMjAwIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqKioqLiA1ODM2IC0gMjAxNS0xMi0yMiAxNTo1Mjo0MyIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzY0MzMyMDczOSIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKioqKioqKiogNTgzNyAtIDIwMTUtMTItMjIgMTU6NTI6NDQiLCJiIjoidGVzdEdyb3VwIn1dfQ== - json - - m - - - a - 4 - b - testGroup-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - leave - occupancy - 2 - timestamp - 1450828359 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283596060293 - - - - a - 4 - b - testGroup - c - a - d - ***********.... 5833 - 2015-12-22 15:52:39 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283596692406 - - - - a - 4 - b - testGroup - c - a - d - ************... 5834 - 2015-12-22 15:52:40 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283608346473 - - - - a - 4 - b - testGroup - c - a - d - *************.. 5835 - 2015-12-22 15:52:41 - f - 512 - k - demo - p - - r - 56 - t - 14508283620083990 - - - - a - 4 - b - testGroup - c - a - d - **************. 5836 - 2015-12-22 15:52:43 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283631692200 - - - - a - 4 - b - testGroup - c - a - d - *************** 5837 - 2015-12-22 15:52:44 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283643320739 - - - - t - - r - 56 - t - 14508283643321566 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Encoding - gzip - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:52:44 GMT - Transfer-Encoding - Identity - - expectedContentLength - 1009 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4MzY3ODUyNDYyNCIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNjc4NTIzODk3IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKi4uLi4uLi4uLi4uLiA1ODQwIC0gMjAxNS0xMi0yMiAxNTo1Mjo0NyIsImIiOiJ0ZXN0R3JvdXAifV19 - json - - m - - - a - 4 - b - testGroup - c - a - d - ***............ 5840 - 2015-12-22 15:52:47 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283678523897 - - - - t - - r - 56 - t - 14508283678524624 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283666716695&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283666716695&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283666716695&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 186 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:52:47 GMT - - expectedContentLength - 186 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4Mzc0ODgzNDE5NCIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNTk2MDYwMjkzIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAibGVhdmUiLCAidGltZXN0YW1wIjogMTQ1MDgyODM1OSwgInV1aWQiOiAiMzIyQTcwQjMtRjBFQS00OENELTlCQjAtRDNGMEY1REU5OTZDIiwgIm9jY3VwYW5jeSI6IDJ9LCJiIjoidGVzdEdyb3VwLXBucHJlcyJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNTk2NjkyNDA2IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqLi4uLiA1ODMzIC0gMjAxNS0xMi0yMiAxNTo1MjozOSIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzYwODM0NjQ3MyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKioqKiouLi4gNTgzNCAtIDIwMTUtMTItMjIgMTU6NTI6NDAiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2MjAwODM5OTAiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKioqKioqKioqKi4uIDU4MzUgLSAyMDE1LTEyLTIyIDE1OjUyOjQxIiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNjMxNjkyMjAwIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqKioqLiA1ODM2IC0gMjAxNS0xMi0yMiAxNTo1Mjo0MyIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzY0MzMyMDczOSIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKioqKioqKiogNTgzNyAtIDIwMTUtMTItMjIgMTU6NTI6NDQiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2NTQ5NTM1OTEiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKi4uLi4uLi4uLi4uLi4uIDU4MzggLSAyMDE1LTEyLTIyIDE1OjUyOjQ1IiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNjY2NzE1NjEwIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqLi4uLi4uLi4uLi4uLiA1ODM5IC0gMjAxNS0xMi0yMiAxNTo1Mjo0NiIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzY3ODUyMzg5NyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKiouLi4uLi4uLi4uLi4gNTg0MCAtIDIwMTUtMTItMjIgMTU6NTI6NDciLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2OTAzMTYzMTgiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKi4uLi4uLi4uLi4uIDU4NDEgLSAyMDE1LTEyLTIyIDE1OjUyOjQ4IiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNzAxOTM2ODI5IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqLi4uLi4uLi4uLiA1ODQyIC0gMjAxNS0xMi0yMiAxNTo1Mjo1MCIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzcxMzU3NjU3MiIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKiouLi4uLi4uLi4gNTg0MyAtIDIwMTUtMTItMjIgMTU6NTI6NTEiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM3MjUyOTE0NDQiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKioqKi4uLi4uLi4uIDU4NDQgLSAyMDE1LTEyLTIyIDE1OjUyOjUyIiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNzM3MTg4MDA3IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqLi4uLi4uLiA1ODQ1IC0gMjAxNS0xMi0yMiAxNTo1Mjo1MyIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4Mzc0ODgzMzI2NiIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKiouLi4uLi4gNTg0NiAtIDIwMTUtMTItMjIgMTU6NTI6NTQiLCJiIjoidGVzdEdyb3VwIn1dfQ== - json - - m - - - a - 4 - b - testGroup-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - leave - occupancy - 2 - timestamp - 1450828359 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283596060293 - - - - a - 4 - b - testGroup - c - a - d - ***********.... 5833 - 2015-12-22 15:52:39 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283596692406 - - - - a - 4 - b - testGroup - c - a - d - ************... 5834 - 2015-12-22 15:52:40 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283608346473 - - - - a - 4 - b - testGroup - c - a - d - *************.. 5835 - 2015-12-22 15:52:41 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283620083990 - - - - a - 4 - b - testGroup - c - a - d - **************. 5836 - 2015-12-22 15:52:43 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283631692200 - - - - a - 4 - b - testGroup - c - a - d - *************** 5837 - 2015-12-22 15:52:44 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283643320739 - - - - a - 4 - b - testGroup - c - a - d - *.............. 5838 - 2015-12-22 15:52:45 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283654953591 - - - - a - 4 - b - testGroup - c - a - d - **............. 5839 - 2015-12-22 15:52:46 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283666715610 - - - - a - 4 - b - testGroup - c - a - d - ***............ 5840 - 2015-12-22 15:52:47 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283678523897 - - - - a - 4 - b - testGroup - c - a - d - ****........... 5841 - 2015-12-22 15:52:48 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283690316318 - - - - a - 4 - b - testGroup - c - a - d - *****.......... 5842 - 2015-12-22 15:52:50 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283701936829 - - - - a - 4 - b - testGroup - c - a - d - ******......... 5843 - 2015-12-22 15:52:51 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283713576572 - - - - a - 4 - b - testGroup - c - a - d - *******........ 5844 - 2015-12-22 15:52:52 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283725291444 - - - - a - 4 - b - testGroup - c - a - d - ********....... 5845 - 2015-12-22 15:52:53 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283737188007 - - - - a - 4 - b - testGroup - c - a - d - *********...... 5846 - 2015-12-22 15:52:54 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283748833266 - - - - t - - r - 56 - t - 14508283748834194 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Encoding - gzip - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:52:55 GMT - Transfer-Encoding - Identity - - expectedContentLength - 2287 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4MzcwMTkzNzg4NyIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNTk2MDYwMjkzIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAibGVhdmUiLCAidGltZXN0YW1wIjogMTQ1MDgyODM1OSwgInV1aWQiOiAiMzIyQTcwQjMtRjBFQS00OENELTlCQjAtRDNGMEY1REU5OTZDIiwgIm9jY3VwYW5jeSI6IDJ9LCJiIjoidGVzdEdyb3VwLXBucHJlcyJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNTk2NjkyNDA2IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqLi4uLiA1ODMzIC0gMjAxNS0xMi0yMiAxNTo1MjozOSIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzYwODM0NjQ3MyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKioqKiouLi4gNTgzNCAtIDIwMTUtMTItMjIgMTU6NTI6NDAiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2MjAwODM5OTAiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKioqKioqKioqKi4uIDU4MzUgLSAyMDE1LTEyLTIyIDE1OjUyOjQxIiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNjMxNjkyMjAwIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqKioqLiA1ODM2IC0gMjAxNS0xMi0yMiAxNTo1Mjo0MyIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzY0MzMyMDczOSIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKioqKioqKiogNTgzNyAtIDIwMTUtMTItMjIgMTU6NTI6NDQiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2NTQ5NTM1OTEiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKi4uLi4uLi4uLi4uLi4uIDU4MzggLSAyMDE1LTEyLTIyIDE1OjUyOjQ1IiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNjY2NzE1NjEwIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqLi4uLi4uLi4uLi4uLiA1ODM5IC0gMjAxNS0xMi0yMiAxNTo1Mjo0NiIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzY3ODUyMzg5NyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKiouLi4uLi4uLi4uLi4gNTg0MCAtIDIwMTUtMTItMjIgMTU6NTI6NDciLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2OTAzMTYzMTgiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKi4uLi4uLi4uLi4uIDU4NDEgLSAyMDE1LTEyLTIyIDE1OjUyOjQ4IiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNzAxOTM2ODI5IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqLi4uLi4uLi4uLiA1ODQyIC0gMjAxNS0xMi0yMiAxNTo1Mjo1MCIsImIiOiJ0ZXN0R3JvdXAifV19 - json - - m - - - a - 4 - b - testGroup-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - leave - occupancy - 2 - timestamp - 1450828359 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283596060293 - - - - a - 4 - b - testGroup - c - a - d - ***********.... 5833 - 2015-12-22 15:52:39 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283596692406 - - - - a - 4 - b - testGroup - c - a - d - ************... 5834 - 2015-12-22 15:52:40 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283608346473 - - - - a - 4 - b - testGroup - c - a - d - *************.. 5835 - 2015-12-22 15:52:41 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283620083990 - - - - a - 4 - b - testGroup - c - a - d - **************. 5836 - 2015-12-22 15:52:43 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283631692200 - - - - a - 4 - b - testGroup - c - a - d - *************** 5837 - 2015-12-22 15:52:44 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283643320739 - - - - a - 4 - b - testGroup - c - a - d - *.............. 5838 - 2015-12-22 15:52:45 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283654953591 - - - - a - 4 - b - testGroup - c - a - d - **............. 5839 - 2015-12-22 15:52:46 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283666715610 - - - - a - 4 - b - testGroup - c - a - d - ***............ 5840 - 2015-12-22 15:52:47 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283678523897 - - - - a - 4 - b - testGroup - c - a - d - ****........... 5841 - 2015-12-22 15:52:48 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283690316318 - - - - a - 4 - b - testGroup - c - a - d - *****.......... 5842 - 2015-12-22 15:52:50 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283701936829 - - - - t - - r - 56 - t - 14508283701937887 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Encoding - gzip - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:52:50 GMT - Transfer-Encoding - Identity - - expectedContentLength - 1719 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4MzY5MDMxNzQ4MCIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNTk2MDYwMjkzIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAibGVhdmUiLCAidGltZXN0YW1wIjogMTQ1MDgyODM1OSwgInV1aWQiOiAiMzIyQTcwQjMtRjBFQS00OENELTlCQjAtRDNGMEY1REU5OTZDIiwgIm9jY3VwYW5jeSI6IDJ9LCJiIjoidGVzdEdyb3VwLXBucHJlcyJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNTk2NjkyNDA2IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqLi4uLiA1ODMzIC0gMjAxNS0xMi0yMiAxNTo1MjozOSIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzYwODM0NjQ3MyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKioqKiouLi4gNTgzNCAtIDIwMTUtMTItMjIgMTU6NTI6NDAiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2MjAwODM5OTAiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKioqKioqKioqKi4uIDU4MzUgLSAyMDE1LTEyLTIyIDE1OjUyOjQxIiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNjMxNjkyMjAwIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqKioqLiA1ODM2IC0gMjAxNS0xMi0yMiAxNTo1Mjo0MyIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzY0MzMyMDczOSIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKioqKioqKiogNTgzNyAtIDIwMTUtMTItMjIgMTU6NTI6NDQiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2NTQ5NTM1OTEiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKi4uLi4uLi4uLi4uLi4uIDU4MzggLSAyMDE1LTEyLTIyIDE1OjUyOjQ1IiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNjY2NzE1NjEwIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqLi4uLi4uLi4uLi4uLiA1ODM5IC0gMjAxNS0xMi0yMiAxNTo1Mjo0NiIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzY3ODUyMzg5NyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKiouLi4uLi4uLi4uLi4gNTg0MCAtIDIwMTUtMTItMjIgMTU6NTI6NDciLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2OTAzMTYzMTgiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKi4uLi4uLi4uLi4uIDU4NDEgLSAyMDE1LTEyLTIyIDE1OjUyOjQ4IiwiYiI6InRlc3RHcm91cCJ9XX0= - json - - m - - - a - 4 - b - testGroup-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - leave - occupancy - 2 - timestamp - 1450828359 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283596060293 - - - - a - 4 - b - testGroup - c - a - d - ***********.... 5833 - 2015-12-22 15:52:39 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283596692406 - - - - a - 4 - b - testGroup - c - a - d - ************... 5834 - 2015-12-22 15:52:40 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283608346473 - - - - a - 4 - b - testGroup - c - a - d - *************.. 5835 - 2015-12-22 15:52:41 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283620083990 - - - - a - 4 - b - testGroup - c - a - d - **************. 5836 - 2015-12-22 15:52:43 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283631692200 - - - - a - 4 - b - testGroup - c - a - d - *************** 5837 - 2015-12-22 15:52:44 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283643320739 - - - - a - 4 - b - testGroup - c - a - d - *.............. 5838 - 2015-12-22 15:52:45 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283654953591 - - - - a - 4 - b - testGroup - c - a - d - **............. 5839 - 2015-12-22 15:52:46 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283666715610 - - - - a - 4 - b - testGroup - c - a - d - ***............ 5840 - 2015-12-22 15:52:47 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283678523897 - - - - a - 4 - b - testGroup - c - a - d - ****........... 5841 - 2015-12-22 15:52:48 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283690316318 - - - - t - - r - 56 - t - 14508283690317480 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Encoding - gzip - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:52:49 GMT - Transfer-Encoding - Identity - - expectedContentLength - 1577 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4Mzc5NTcyMzg5MSIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNTk2MDYwMjkzIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAibGVhdmUiLCAidGltZXN0YW1wIjogMTQ1MDgyODM1OSwgInV1aWQiOiAiMzIyQTcwQjMtRjBFQS00OENELTlCQjAtRDNGMEY1REU5OTZDIiwgIm9jY3VwYW5jeSI6IDJ9LCJiIjoidGVzdEdyb3VwLXBucHJlcyJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNTk2NjkyNDA2IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqLi4uLiA1ODMzIC0gMjAxNS0xMi0yMiAxNTo1MjozOSIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzYwODM0NjQ3MyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKioqKiouLi4gNTgzNCAtIDIwMTUtMTItMjIgMTU6NTI6NDAiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2MjAwODM5OTAiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKioqKioqKioqKi4uIDU4MzUgLSAyMDE1LTEyLTIyIDE1OjUyOjQxIiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNjMxNjkyMjAwIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqKioqLiA1ODM2IC0gMjAxNS0xMi0yMiAxNTo1Mjo0MyIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzY0MzMyMDczOSIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKioqKioqKiogNTgzNyAtIDIwMTUtMTItMjIgMTU6NTI6NDQiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2NTQ5NTM1OTEiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKi4uLi4uLi4uLi4uLi4uIDU4MzggLSAyMDE1LTEyLTIyIDE1OjUyOjQ1IiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNjY2NzE1NjEwIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqLi4uLi4uLi4uLi4uLiA1ODM5IC0gMjAxNS0xMi0yMiAxNTo1Mjo0NiIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzY3ODUyMzg5NyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKiouLi4uLi4uLi4uLi4gNTg0MCAtIDIwMTUtMTItMjIgMTU6NTI6NDciLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2OTAzMTYzMTgiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKi4uLi4uLi4uLi4uIDU4NDEgLSAyMDE1LTEyLTIyIDE1OjUyOjQ4IiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNzAxOTM2ODI5IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqLi4uLi4uLi4uLiA1ODQyIC0gMjAxNS0xMi0yMiAxNTo1Mjo1MCIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzcxMzU3NjU3MiIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKiouLi4uLi4uLi4gNTg0MyAtIDIwMTUtMTItMjIgMTU6NTI6NTEiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM3MjUyOTE0NDQiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKioqKi4uLi4uLi4uIDU4NDQgLSAyMDE1LTEyLTIyIDE1OjUyOjUyIiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNzM3MTg4MDA3IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqLi4uLi4uLiA1ODQ1IC0gMjAxNS0xMi0yMiAxNTo1Mjo1MyIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4Mzc0ODgzMzI2NiIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKiouLi4uLi4gNTg0NiAtIDIwMTUtMTItMjIgMTU6NTI6NTQiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM3NjA0ODc0MzkiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKioqKioqKi4uLi4uIDU4NDcgLSAyMDE1LTEyLTIyIDE1OjUyOjU1IiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNzcyMzA5NTEyIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqLi4uLiA1ODQ4IC0gMjAxNS0xMi0yMiAxNTo1Mjo1NyIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4Mzc4Mzk4Mzc1OCIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKioqKiouLi4gNTg0OSAtIDIwMTUtMTItMjIgMTU6NTI6NTgiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM3OTU3MjI3OTkiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKioqKioqKioqKi4uIDU4NTAgLSAyMDE1LTEyLTIyIDE1OjUyOjU5IiwiYiI6InRlc3RHcm91cCJ9XX0= - json - - m - - - a - 4 - b - testGroup-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - leave - occupancy - 2 - timestamp - 1450828359 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283596060293 - - - - a - 4 - b - testGroup - c - a - d - ***********.... 5833 - 2015-12-22 15:52:39 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283596692406 - - - - a - 4 - b - testGroup - c - a - d - ************... 5834 - 2015-12-22 15:52:40 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283608346473 - - - - a - 4 - b - testGroup - c - a - d - *************.. 5835 - 2015-12-22 15:52:41 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283620083990 - - - - a - 4 - b - testGroup - c - a - d - **************. 5836 - 2015-12-22 15:52:43 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283631692200 - - - - a - 4 - b - testGroup - c - a - d - *************** 5837 - 2015-12-22 15:52:44 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283643320739 - - - - a - 4 - b - testGroup - c - a - d - *.............. 5838 - 2015-12-22 15:52:45 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283654953591 - - - - a - 4 - b - testGroup - c - a - d - **............. 5839 - 2015-12-22 15:52:46 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283666715610 - - - - a - 4 - b - testGroup - c - a - d - ***............ 5840 - 2015-12-22 15:52:47 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283678523897 - - - - a - 4 - b - testGroup - c - a - d - ****........... 5841 - 2015-12-22 15:52:48 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283690316318 - - - - a - 4 - b - testGroup - c - a - d - *****.......... 5842 - 2015-12-22 15:52:50 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283701936829 - - - - a - 4 - b - testGroup - c - a - d - ******......... 5843 - 2015-12-22 15:52:51 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283713576572 - - - - a - 4 - b - testGroup - c - a - d - *******........ 5844 - 2015-12-22 15:52:52 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283725291444 - - - - a - 4 - b - testGroup - c - a - d - ********....... 5845 - 2015-12-22 15:52:53 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283737188007 - - - - a - 4 - b - testGroup - c - a - d - *********...... 5846 - 2015-12-22 15:52:54 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283748833266 - - - - a - 4 - b - testGroup - c - a - d - **********..... 5847 - 2015-12-22 15:52:55 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283760487439 - - - - a - 4 - b - testGroup - c - a - d - ***********.... 5848 - 2015-12-22 15:52:57 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283772309512 - - - - a - 4 - b - testGroup - c - a - d - ************... 5849 - 2015-12-22 15:52:58 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283783983758 - - - - a - 4 - b - testGroup - c - a - d - *************.. 5850 - 2015-12-22 15:52:59 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283795722799 - - - - t - - r - 56 - t - 14508283795723891 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Encoding - gzip - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:52:59 GMT - Transfer-Encoding - Identity - - expectedContentLength - 2855 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4Mzc3MjMxMDQ4OSIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNTk2MDYwMjkzIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAibGVhdmUiLCAidGltZXN0YW1wIjogMTQ1MDgyODM1OSwgInV1aWQiOiAiMzIyQTcwQjMtRjBFQS00OENELTlCQjAtRDNGMEY1REU5OTZDIiwgIm9jY3VwYW5jeSI6IDJ9LCJiIjoidGVzdEdyb3VwLXBucHJlcyJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNTk2NjkyNDA2IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqLi4uLiA1ODMzIC0gMjAxNS0xMi0yMiAxNTo1MjozOSIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzYwODM0NjQ3MyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKioqKiouLi4gNTgzNCAtIDIwMTUtMTItMjIgMTU6NTI6NDAiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2MjAwODM5OTAiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKioqKioqKioqKi4uIDU4MzUgLSAyMDE1LTEyLTIyIDE1OjUyOjQxIiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNjMxNjkyMjAwIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqKioqLiA1ODM2IC0gMjAxNS0xMi0yMiAxNTo1Mjo0MyIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzY0MzMyMDczOSIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKioqKioqKiogNTgzNyAtIDIwMTUtMTItMjIgMTU6NTI6NDQiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2NTQ5NTM1OTEiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKi4uLi4uLi4uLi4uLi4uIDU4MzggLSAyMDE1LTEyLTIyIDE1OjUyOjQ1IiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNjY2NzE1NjEwIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqLi4uLi4uLi4uLi4uLiA1ODM5IC0gMjAxNS0xMi0yMiAxNTo1Mjo0NiIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzY3ODUyMzg5NyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKiouLi4uLi4uLi4uLi4gNTg0MCAtIDIwMTUtMTItMjIgMTU6NTI6NDciLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2OTAzMTYzMTgiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKi4uLi4uLi4uLi4uIDU4NDEgLSAyMDE1LTEyLTIyIDE1OjUyOjQ4IiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNzAxOTM2ODI5IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqLi4uLi4uLi4uLiA1ODQyIC0gMjAxNS0xMi0yMiAxNTo1Mjo1MCIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzcxMzU3NjU3MiIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKiouLi4uLi4uLi4gNTg0MyAtIDIwMTUtMTItMjIgMTU6NTI6NTEiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM3MjUyOTE0NDQiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKioqKi4uLi4uLi4uIDU4NDQgLSAyMDE1LTEyLTIyIDE1OjUyOjUyIiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNzM3MTg4MDA3IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqLi4uLi4uLiA1ODQ1IC0gMjAxNS0xMi0yMiAxNTo1Mjo1MyIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4Mzc0ODgzMzI2NiIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKiouLi4uLi4gNTg0NiAtIDIwMTUtMTItMjIgMTU6NTI6NTQiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM3NjA0ODc0MzkiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKioqKioqKi4uLi4uIDU4NDcgLSAyMDE1LTEyLTIyIDE1OjUyOjU1IiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNzcyMzA5NTEyIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqLi4uLiA1ODQ4IC0gMjAxNS0xMi0yMiAxNTo1Mjo1NyIsImIiOiJ0ZXN0R3JvdXAifV19 - json - - m - - - a - 4 - b - testGroup-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - leave - occupancy - 2 - timestamp - 1450828359 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283596060293 - - - - a - 4 - b - testGroup - c - a - d - ***********.... 5833 - 2015-12-22 15:52:39 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283596692406 - - - - a - 4 - b - testGroup - c - a - d - ************... 5834 - 2015-12-22 15:52:40 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283608346473 - - - - a - 4 - b - testGroup - c - a - d - *************.. 5835 - 2015-12-22 15:52:41 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283620083990 - - - - a - 4 - b - testGroup - c - a - d - **************. 5836 - 2015-12-22 15:52:43 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283631692200 - - - - a - 4 - b - testGroup - c - a - d - *************** 5837 - 2015-12-22 15:52:44 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283643320739 - - - - a - 4 - b - testGroup - c - a - d - *.............. 5838 - 2015-12-22 15:52:45 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283654953591 - - - - a - 4 - b - testGroup - c - a - d - **............. 5839 - 2015-12-22 15:52:46 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283666715610 - - - - a - 4 - b - testGroup - c - a - d - ***............ 5840 - 2015-12-22 15:52:47 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283678523897 - - - - a - 4 - b - testGroup - c - a - d - ****........... 5841 - 2015-12-22 15:52:48 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283690316318 - - - - a - 4 - b - testGroup - c - a - d - *****.......... 5842 - 2015-12-22 15:52:50 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283701936829 - - - - a - 4 - b - testGroup - c - a - d - ******......... 5843 - 2015-12-22 15:52:51 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283713576572 - - - - a - 4 - b - testGroup - c - a - d - *******........ 5844 - 2015-12-22 15:52:52 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283725291444 - - - - a - 4 - b - testGroup - c - a - d - ********....... 5845 - 2015-12-22 15:52:53 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283737188007 - - - - a - 4 - b - testGroup - c - a - d - *********...... 5846 - 2015-12-22 15:52:54 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283748833266 - - - - a - 4 - b - testGroup - c - a - d - **********..... 5847 - 2015-12-22 15:52:55 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283760487439 - - - - a - 4 - b - testGroup - c - a - d - ***********.... 5848 - 2015-12-22 15:52:57 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283772309512 - - - - t - - r - 56 - t - 14508283772310489 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Encoding - gzip - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:52:57 GMT - Transfer-Encoding - Identity - - expectedContentLength - 2571 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4MzU4NTAwOTU2NSIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508283585009565 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&channel-group=testGroup%2CtestGroup-pnpres&tt=0&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&channel-group=testGroup%2CtestGroup-pnpres&tt=0&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:52:39 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4Mzc3MjMxMDQ4OSIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNzcyMzA5NTEyIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqLi4uLiA1ODQ4IC0gMjAxNS0xMi0yMiAxNTo1Mjo1NyIsImIiOiJ0ZXN0R3JvdXAifV19 - json - - m - - - a - 4 - b - testGroup - c - a - d - ***********.... 5848 - 2015-12-22 15:52:57 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283772309512 - - - - t - - r - 56 - t - 14508283772310489 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283760488563&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283760488563&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283760488563&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 186 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:52:57 GMT - - expectedContentLength - 186 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4MzY2NjcxNjY5NSIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNTk2MDYwMjkzIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAibGVhdmUiLCAidGltZXN0YW1wIjogMTQ1MDgyODM1OSwgInV1aWQiOiAiMzIyQTcwQjMtRjBFQS00OENELTlCQjAtRDNGMEY1REU5OTZDIiwgIm9jY3VwYW5jeSI6IDJ9LCJiIjoidGVzdEdyb3VwLXBucHJlcyJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNTk2NjkyNDA2IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqLi4uLiA1ODMzIC0gMjAxNS0xMi0yMiAxNTo1MjozOSIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzYwODM0NjQ3MyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKioqKiouLi4gNTgzNCAtIDIwMTUtMTItMjIgMTU6NTI6NDAiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2MjAwODM5OTAiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKioqKioqKioqKi4uIDU4MzUgLSAyMDE1LTEyLTIyIDE1OjUyOjQxIiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNjMxNjkyMjAwIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqKioqLiA1ODM2IC0gMjAxNS0xMi0yMiAxNTo1Mjo0MyIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzY0MzMyMDczOSIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKioqKioqKiogNTgzNyAtIDIwMTUtMTItMjIgMTU6NTI6NDQiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2NTQ5NTM1OTEiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKi4uLi4uLi4uLi4uLi4uIDU4MzggLSAyMDE1LTEyLTIyIDE1OjUyOjQ1IiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNjY2NzE1NjEwIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqLi4uLi4uLi4uLi4uLiA1ODM5IC0gMjAxNS0xMi0yMiAxNTo1Mjo0NiIsImIiOiJ0ZXN0R3JvdXAifV19 - json - - m - - - a - 4 - b - testGroup-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - leave - occupancy - 2 - timestamp - 1450828359 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283596060293 - - - - a - 4 - b - testGroup - c - a - d - ***********.... 5833 - 2015-12-22 15:52:39 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283596692406 - - - - a - 4 - b - testGroup - c - a - d - ************... 5834 - 2015-12-22 15:52:40 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283608346473 - - - - a - 4 - b - testGroup - c - a - d - *************.. 5835 - 2015-12-22 15:52:41 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283620083990 - - - - a - 4 - b - testGroup - c - a - d - **************. 5836 - 2015-12-22 15:52:43 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283631692200 - - - - a - 4 - b - testGroup - c - a - d - *************** 5837 - 2015-12-22 15:52:44 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283643320739 - - - - a - 4 - b - testGroup - c - a - d - *.............. 5838 - 2015-12-22 15:52:45 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283654953591 - - - - a - 4 - b - testGroup - c - a - d - **............. 5839 - 2015-12-22 15:52:46 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283666715610 - - - - t - - r - 56 - t - 14508283666716695 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Encoding - gzip - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:52:46 GMT - Transfer-Encoding - Identity - - expectedContentLength - 1293 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4MzYzMTY5MzI3MyIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNTk2MDYwMjkzIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAibGVhdmUiLCAidGltZXN0YW1wIjogMTQ1MDgyODM1OSwgInV1aWQiOiAiMzIyQTcwQjMtRjBFQS00OENELTlCQjAtRDNGMEY1REU5OTZDIiwgIm9jY3VwYW5jeSI6IDJ9LCJiIjoidGVzdEdyb3VwLXBucHJlcyJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNTk2NjkyNDA2IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqLi4uLiA1ODMzIC0gMjAxNS0xMi0yMiAxNTo1MjozOSIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzYwODM0NjQ3MyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKioqKiouLi4gNTgzNCAtIDIwMTUtMTItMjIgMTU6NTI6NDAiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2MjAwODM5OTAiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKioqKioqKioqKi4uIDU4MzUgLSAyMDE1LTEyLTIyIDE1OjUyOjQxIiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNjMxNjkyMjAwIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqKioqLiA1ODM2IC0gMjAxNS0xMi0yMiAxNTo1Mjo0MyIsImIiOiJ0ZXN0R3JvdXAifV19 - json - - m - - - a - 4 - b - testGroup-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - leave - occupancy - 2 - timestamp - 1450828359 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283596060293 - - - - a - 4 - b - testGroup - c - a - d - ***********.... 5833 - 2015-12-22 15:52:39 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283596692406 - - - - a - 4 - b - testGroup - c - a - d - ************... 5834 - 2015-12-22 15:52:40 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283608346473 - - - - a - 4 - b - testGroup - c - a - d - *************.. 5835 - 2015-12-22 15:52:41 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283620083990 - - - - a - 4 - b - testGroup - c - a - d - **************. 5836 - 2015-12-22 15:52:43 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283631692200 - - - - t - - r - 56 - t - 14508283631693273 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 867 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:52:43 GMT - - expectedContentLength - 867 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4MzY3ODUyNDYyNCIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNTk2MDYwMjkzIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAibGVhdmUiLCAidGltZXN0YW1wIjogMTQ1MDgyODM1OSwgInV1aWQiOiAiMzIyQTcwQjMtRjBFQS00OENELTlCQjAtRDNGMEY1REU5OTZDIiwgIm9jY3VwYW5jeSI6IDJ9LCJiIjoidGVzdEdyb3VwLXBucHJlcyJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNTk2NjkyNDA2IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqLi4uLiA1ODMzIC0gMjAxNS0xMi0yMiAxNTo1MjozOSIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzYwODM0NjQ3MyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKioqKiouLi4gNTgzNCAtIDIwMTUtMTItMjIgMTU6NTI6NDAiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2MjAwODM5OTAiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKioqKioqKioqKi4uIDU4MzUgLSAyMDE1LTEyLTIyIDE1OjUyOjQxIiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNjMxNjkyMjAwIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqKioqLiA1ODM2IC0gMjAxNS0xMi0yMiAxNTo1Mjo0MyIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzY0MzMyMDczOSIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKioqKioqKiogNTgzNyAtIDIwMTUtMTItMjIgMTU6NTI6NDQiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2NTQ5NTM1OTEiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKi4uLi4uLi4uLi4uLi4uIDU4MzggLSAyMDE1LTEyLTIyIDE1OjUyOjQ1IiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNjY2NzE1NjEwIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqLi4uLi4uLi4uLi4uLiA1ODM5IC0gMjAxNS0xMi0yMiAxNTo1Mjo0NiIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzY3ODUyMzg5NyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKiouLi4uLi4uLi4uLi4gNTg0MCAtIDIwMTUtMTItMjIgMTU6NTI6NDciLCJiIjoidGVzdEdyb3VwIn1dfQ== - json - - m - - - a - 4 - b - testGroup-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - leave - occupancy - 2 - timestamp - 1450828359 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283596060293 - - - - a - 4 - b - testGroup - c - a - d - ***********.... 5833 - 2015-12-22 15:52:39 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283596692406 - - - - a - 4 - b - testGroup - c - a - d - ************... 5834 - 2015-12-22 15:52:40 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283608346473 - - - - a - 4 - b - testGroup - c - a - d - *************.. 5835 - 2015-12-22 15:52:41 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283620083990 - - - - a - 4 - b - testGroup - c - a - d - **************. 5836 - 2015-12-22 15:52:43 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283631692200 - - - - a - 4 - b - testGroup - c - a - d - *************** 5837 - 2015-12-22 15:52:44 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283643320739 - - - - a - 4 - b - testGroup - c - a - d - *.............. 5838 - 2015-12-22 15:52:45 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283654953591 - - - - a - 4 - b - testGroup - c - a - d - **............. 5839 - 2015-12-22 15:52:46 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283666715610 - - - - a - 4 - b - testGroup - c - a - d - ***............ 5840 - 2015-12-22 15:52:47 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283678523897 - - - - t - - r - 56 - t - 14508283678524624 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Encoding - gzip - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:52:47 GMT - Transfer-Encoding - Identity - - expectedContentLength - 1435 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4MzcwMTkzNzg4NyIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNzAxOTM2ODI5IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqLi4uLi4uLi4uLiA1ODQyIC0gMjAxNS0xMi0yMiAxNTo1Mjo1MCIsImIiOiJ0ZXN0R3JvdXAifV19 - json - - m - - - a - 4 - b - testGroup - c - a - d - *****.......... 5842 - 2015-12-22 15:52:50 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283701936829 - - - - t - - r - 56 - t - 14508283701937887 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283690317480&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283690317480&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283690317480&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 186 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:52:50 GMT - - expectedContentLength - 186 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4MzU5NjA2MTIzMiIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508283596061232 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?tt=14508283596061232&pnsdk=PubNub-ObjC-iOS%2F4.3.3&tr=56&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?tt=14508283596061232&pnsdk=PubNub-ObjC-iOS%2F4.3.3&tr=56&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508283596061232&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:53:00 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4Mzc2MDQ4ODU2MyIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNTk2MDYwMjkzIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAibGVhdmUiLCAidGltZXN0YW1wIjogMTQ1MDgyODM1OSwgInV1aWQiOiAiMzIyQTcwQjMtRjBFQS00OENELTlCQjAtRDNGMEY1REU5OTZDIiwgIm9jY3VwYW5jeSI6IDJ9LCJiIjoidGVzdEdyb3VwLXBucHJlcyJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNTk2NjkyNDA2IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqLi4uLiA1ODMzIC0gMjAxNS0xMi0yMiAxNTo1MjozOSIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzYwODM0NjQ3MyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKioqKiouLi4gNTgzNCAtIDIwMTUtMTItMjIgMTU6NTI6NDAiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2MjAwODM5OTAiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKioqKioqKioqKi4uIDU4MzUgLSAyMDE1LTEyLTIyIDE1OjUyOjQxIiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNjMxNjkyMjAwIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqKioqLiA1ODM2IC0gMjAxNS0xMi0yMiAxNTo1Mjo0MyIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzY0MzMyMDczOSIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKioqKioqKiogNTgzNyAtIDIwMTUtMTItMjIgMTU6NTI6NDQiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2NTQ5NTM1OTEiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKi4uLi4uLi4uLi4uLi4uIDU4MzggLSAyMDE1LTEyLTIyIDE1OjUyOjQ1IiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNjY2NzE1NjEwIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqLi4uLi4uLi4uLi4uLiA1ODM5IC0gMjAxNS0xMi0yMiAxNTo1Mjo0NiIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzY3ODUyMzg5NyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKiouLi4uLi4uLi4uLi4gNTg0MCAtIDIwMTUtMTItMjIgMTU6NTI6NDciLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2OTAzMTYzMTgiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKi4uLi4uLi4uLi4uIDU4NDEgLSAyMDE1LTEyLTIyIDE1OjUyOjQ4IiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNzAxOTM2ODI5IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqLi4uLi4uLi4uLiA1ODQyIC0gMjAxNS0xMi0yMiAxNTo1Mjo1MCIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzcxMzU3NjU3MiIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKiouLi4uLi4uLi4gNTg0MyAtIDIwMTUtMTItMjIgMTU6NTI6NTEiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM3MjUyOTE0NDQiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKioqKi4uLi4uLi4uIDU4NDQgLSAyMDE1LTEyLTIyIDE1OjUyOjUyIiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNzM3MTg4MDA3IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqLi4uLi4uLiA1ODQ1IC0gMjAxNS0xMi0yMiAxNTo1Mjo1MyIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4Mzc0ODgzMzI2NiIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKiouLi4uLi4gNTg0NiAtIDIwMTUtMTItMjIgMTU6NTI6NTQiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM3NjA0ODc0MzkiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKioqKioqKi4uLi4uIDU4NDcgLSAyMDE1LTEyLTIyIDE1OjUyOjU1IiwiYiI6InRlc3RHcm91cCJ9XX0= - json - - m - - - a - 4 - b - testGroup-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - leave - occupancy - 2 - timestamp - 1450828359 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283596060293 - - - - a - 4 - b - testGroup - c - a - d - ***********.... 5833 - 2015-12-22 15:52:39 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283596692406 - - - - a - 4 - b - testGroup - c - a - d - ************... 5834 - 2015-12-22 15:52:40 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283608346473 - - - - a - 4 - b - testGroup - c - a - d - *************.. 5835 - 2015-12-22 15:52:41 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283620083990 - - - - a - 4 - b - testGroup - c - a - d - **************. 5836 - 2015-12-22 15:52:43 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283631692200 - - - - a - 4 - b - testGroup - c - a - d - *************** 5837 - 2015-12-22 15:52:44 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283643320739 - - - - a - 4 - b - testGroup - c - a - d - *.............. 5838 - 2015-12-22 15:52:45 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283654953591 - - - - a - 4 - b - testGroup - c - a - d - **............. 5839 - 2015-12-22 15:52:46 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283666715610 - - - - a - 4 - b - testGroup - c - a - d - ***............ 5840 - 2015-12-22 15:52:47 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283678523897 - - - - a - 4 - b - testGroup - c - a - d - ****........... 5841 - 2015-12-22 15:52:48 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283690316318 - - - - a - 4 - b - testGroup - c - a - d - *****.......... 5842 - 2015-12-22 15:52:50 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283701936829 - - - - a - 4 - b - testGroup - c - a - d - ******......... 5843 - 2015-12-22 15:52:51 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283713576572 - - - - a - 4 - b - testGroup - c - a - d - *******........ 5844 - 2015-12-22 15:52:52 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283725291444 - - - - a - 4 - b - testGroup - c - a - d - ********....... 5845 - 2015-12-22 15:52:53 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283737188007 - - - - a - 4 - b - testGroup - c - a - d - *********...... 5846 - 2015-12-22 15:52:54 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283748833266 - - - - a - 4 - b - testGroup - c - a - d - **********..... 5847 - 2015-12-22 15:52:55 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283760487439 - - - - t - - r - 56 - t - 14508283760488563 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Encoding - gzip - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:52:56 GMT - Transfer-Encoding - Identity - - expectedContentLength - 2429 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4MzczNzE4OTA5NiIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNzM3MTg4MDA3IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqLi4uLi4uLiA1ODQ1IC0gMjAxNS0xMi0yMiAxNTo1Mjo1MyIsImIiOiJ0ZXN0R3JvdXAifV19 - json - - m - - - a - 4 - b - testGroup - c - a - d - ********....... 5845 - 2015-12-22 15:52:53 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283737188007 - - - - t - - r - 56 - t - 14508283737189096 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283725292612&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283725292612&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283725292612&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 186 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:52:53 GMT - - expectedContentLength - 186 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4MzU5NjY5MzE2OCIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNTk2MDYwMjkzIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAibGVhdmUiLCAidGltZXN0YW1wIjogMTQ1MDgyODM1OSwgInV1aWQiOiAiMzIyQTcwQjMtRjBFQS00OENELTlCQjAtRDNGMEY1REU5OTZDIiwgIm9jY3VwYW5jeSI6IDJ9LCJiIjoidGVzdEdyb3VwLXBucHJlcyJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNTk2NjkyNDA2IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqLi4uLiA1ODMzIC0gMjAxNS0xMi0yMiAxNTo1MjozOSIsImIiOiJ0ZXN0R3JvdXAifV19 - json - - m - - - a - 4 - b - testGroup-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - leave - occupancy - 2 - timestamp - 1450828359 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283596060293 - - - - a - 4 - b - testGroup - c - a - d - ***********.... 5833 - 2015-12-22 15:52:39 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283596692406 - - - - t - - r - 56 - t - 14508283596693168 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 441 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:52:39 GMT - - expectedContentLength - 441 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4MzY5MDMxNzQ4MCIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNjkwMzE2MzE4IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKiouLi4uLi4uLi4uLiA1ODQxIC0gMjAxNS0xMi0yMiAxNTo1Mjo0OCIsImIiOiJ0ZXN0R3JvdXAifV19 - json - - m - - - a - 4 - b - testGroup - c - a - d - ****........... 5841 - 2015-12-22 15:52:48 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283690316318 - - - - t - - r - 56 - t - 14508283690317480 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283678524624&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283678524624&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283678524624&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 186 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:52:49 GMT - - expectedContentLength - 186 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4MzY0MzMyMTU2NiIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNjQzMzIwNzM5IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqKioqKiA1ODM3IC0gMjAxNS0xMi0yMiAxNTo1Mjo0NCIsImIiOiJ0ZXN0R3JvdXAifV19 - json - - m - - - a - 4 - b - testGroup - c - a - d - *************** 5837 - 2015-12-22 15:52:44 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283643320739 - - - - t - - r - 56 - t - 14508283643321566 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283631693273&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283631693273&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283631693273&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 186 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:52:44 GMT - - expectedContentLength - 186 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4MzcxMzU3NzM0NyIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNTk2MDYwMjkzIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAibGVhdmUiLCAidGltZXN0YW1wIjogMTQ1MDgyODM1OSwgInV1aWQiOiAiMzIyQTcwQjMtRjBFQS00OENELTlCQjAtRDNGMEY1REU5OTZDIiwgIm9jY3VwYW5jeSI6IDJ9LCJiIjoidGVzdEdyb3VwLXBucHJlcyJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNTk2NjkyNDA2IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqLi4uLiA1ODMzIC0gMjAxNS0xMi0yMiAxNTo1MjozOSIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzYwODM0NjQ3MyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKioqKiouLi4gNTgzNCAtIDIwMTUtMTItMjIgMTU6NTI6NDAiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2MjAwODM5OTAiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKioqKioqKioqKi4uIDU4MzUgLSAyMDE1LTEyLTIyIDE1OjUyOjQxIiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNjMxNjkyMjAwIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqKioqLiA1ODM2IC0gMjAxNS0xMi0yMiAxNTo1Mjo0MyIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzY0MzMyMDczOSIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKioqKioqKiogNTgzNyAtIDIwMTUtMTItMjIgMTU6NTI6NDQiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2NTQ5NTM1OTEiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKi4uLi4uLi4uLi4uLi4uIDU4MzggLSAyMDE1LTEyLTIyIDE1OjUyOjQ1IiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNjY2NzE1NjEwIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqLi4uLi4uLi4uLi4uLiA1ODM5IC0gMjAxNS0xMi0yMiAxNTo1Mjo0NiIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzY3ODUyMzg5NyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKiouLi4uLi4uLi4uLi4gNTg0MCAtIDIwMTUtMTItMjIgMTU6NTI6NDciLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2OTAzMTYzMTgiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKi4uLi4uLi4uLi4uIDU4NDEgLSAyMDE1LTEyLTIyIDE1OjUyOjQ4IiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNzAxOTM2ODI5IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqLi4uLi4uLi4uLiA1ODQyIC0gMjAxNS0xMi0yMiAxNTo1Mjo1MCIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzcxMzU3NjU3MiIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKiouLi4uLi4uLi4gNTg0MyAtIDIwMTUtMTItMjIgMTU6NTI6NTEiLCJiIjoidGVzdEdyb3VwIn1dfQ== - json - - m - - - a - 4 - b - testGroup-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - leave - occupancy - 2 - timestamp - 1450828359 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283596060293 - - - - a - 4 - b - testGroup - c - a - d - ***********.... 5833 - 2015-12-22 15:52:39 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283596692406 - - - - a - 4 - b - testGroup - c - a - d - ************... 5834 - 2015-12-22 15:52:40 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283608346473 - - - - a - 4 - b - testGroup - c - a - d - *************.. 5835 - 2015-12-22 15:52:41 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283620083990 - - - - a - 4 - b - testGroup - c - a - d - **************. 5836 - 2015-12-22 15:52:43 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283631692200 - - - - a - 4 - b - testGroup - c - a - d - *************** 5837 - 2015-12-22 15:52:44 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283643320739 - - - - a - 4 - b - testGroup - c - a - d - *.............. 5838 - 2015-12-22 15:52:45 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283654953591 - - - - a - 4 - b - testGroup - c - a - d - **............. 5839 - 2015-12-22 15:52:46 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283666715610 - - - - a - 4 - b - testGroup - c - a - d - ***............ 5840 - 2015-12-22 15:52:47 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283678523897 - - - - a - 4 - b - testGroup - c - a - d - ****........... 5841 - 2015-12-22 15:52:48 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283690316318 - - - - a - 4 - b - testGroup - c - a - d - *****.......... 5842 - 2015-12-22 15:52:50 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283701936829 - - - - a - 4 - b - testGroup - c - a - d - ******......... 5843 - 2015-12-22 15:52:51 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283713576572 - - - - t - - r - 56 - t - 14508283713577347 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Encoding - gzip - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:52:51 GMT - Transfer-Encoding - Identity - - expectedContentLength - 1861 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4Mzc0ODgzNDE5NCIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNzQ4ODMzMjY2IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKi4uLi4uLiA1ODQ2IC0gMjAxNS0xMi0yMiAxNTo1Mjo1NCIsImIiOiJ0ZXN0R3JvdXAifV19 - json - - m - - - a - 4 - b - testGroup - c - a - d - *********...... 5846 - 2015-12-22 15:52:54 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283748833266 - - - - t - - r - 56 - t - 14508283748834194 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283737189096&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283737189096&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283737189096&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 186 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:52:54 GMT - - expectedContentLength - 186 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4MzczNzE4OTA5NiIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNTk2MDYwMjkzIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAibGVhdmUiLCAidGltZXN0YW1wIjogMTQ1MDgyODM1OSwgInV1aWQiOiAiMzIyQTcwQjMtRjBFQS00OENELTlCQjAtRDNGMEY1REU5OTZDIiwgIm9jY3VwYW5jeSI6IDJ9LCJiIjoidGVzdEdyb3VwLXBucHJlcyJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNTk2NjkyNDA2IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqLi4uLiA1ODMzIC0gMjAxNS0xMi0yMiAxNTo1MjozOSIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzYwODM0NjQ3MyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKioqKiouLi4gNTgzNCAtIDIwMTUtMTItMjIgMTU6NTI6NDAiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2MjAwODM5OTAiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKioqKioqKioqKi4uIDU4MzUgLSAyMDE1LTEyLTIyIDE1OjUyOjQxIiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNjMxNjkyMjAwIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqKioqLiA1ODM2IC0gMjAxNS0xMi0yMiAxNTo1Mjo0MyIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzY0MzMyMDczOSIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKioqKioqKiogNTgzNyAtIDIwMTUtMTItMjIgMTU6NTI6NDQiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2NTQ5NTM1OTEiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKi4uLi4uLi4uLi4uLi4uIDU4MzggLSAyMDE1LTEyLTIyIDE1OjUyOjQ1IiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNjY2NzE1NjEwIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqLi4uLi4uLi4uLi4uLiA1ODM5IC0gMjAxNS0xMi0yMiAxNTo1Mjo0NiIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzY3ODUyMzg5NyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKiouLi4uLi4uLi4uLi4gNTg0MCAtIDIwMTUtMTItMjIgMTU6NTI6NDciLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2OTAzMTYzMTgiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKi4uLi4uLi4uLi4uIDU4NDEgLSAyMDE1LTEyLTIyIDE1OjUyOjQ4IiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNzAxOTM2ODI5IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqLi4uLi4uLi4uLiA1ODQyIC0gMjAxNS0xMi0yMiAxNTo1Mjo1MCIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzcxMzU3NjU3MiIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKiouLi4uLi4uLi4gNTg0MyAtIDIwMTUtMTItMjIgMTU6NTI6NTEiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM3MjUyOTE0NDQiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKioqKi4uLi4uLi4uIDU4NDQgLSAyMDE1LTEyLTIyIDE1OjUyOjUyIiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNzM3MTg4MDA3IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqLi4uLi4uLiA1ODQ1IC0gMjAxNS0xMi0yMiAxNTo1Mjo1MyIsImIiOiJ0ZXN0R3JvdXAifV19 - json - - m - - - a - 4 - b - testGroup-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - leave - occupancy - 2 - timestamp - 1450828359 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283596060293 - - - - a - 4 - b - testGroup - c - a - d - ***********.... 5833 - 2015-12-22 15:52:39 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283596692406 - - - - a - 4 - b - testGroup - c - a - d - ************... 5834 - 2015-12-22 15:52:40 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283608346473 - - - - a - 4 - b - testGroup - c - a - d - *************.. 5835 - 2015-12-22 15:52:41 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283620083990 - - - - a - 4 - b - testGroup - c - a - d - **************. 5836 - 2015-12-22 15:52:43 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283631692200 - - - - a - 4 - b - testGroup - c - a - d - *************** 5837 - 2015-12-22 15:52:44 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283643320739 - - - - a - 4 - b - testGroup - c - a - d - *.............. 5838 - 2015-12-22 15:52:45 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283654953591 - - - - a - 4 - b - testGroup - c - a - d - **............. 5839 - 2015-12-22 15:52:46 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283666715610 - - - - a - 4 - b - testGroup - c - a - d - ***............ 5840 - 2015-12-22 15:52:47 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283678523897 - - - - a - 4 - b - testGroup - c - a - d - ****........... 5841 - 2015-12-22 15:52:48 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283690316318 - - - - a - 4 - b - testGroup - c - a - d - *****.......... 5842 - 2015-12-22 15:52:50 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283701936829 - - - - a - 4 - b - testGroup - c - a - d - ******......... 5843 - 2015-12-22 15:52:51 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283713576572 - - - - a - 4 - b - testGroup - c - a - d - *******........ 5844 - 2015-12-22 15:52:52 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283725291444 - - - - a - 4 - b - testGroup - c - a - d - ********....... 5845 - 2015-12-22 15:52:53 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283737188007 - - - - t - - r - 56 - t - 14508283737189096 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Encoding - gzip - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:52:53 GMT - Transfer-Encoding - Identity - - expectedContentLength - 2145 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4MzY1NDk1NDcwOSIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNjU0OTUzNTkxIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IiouLi4uLi4uLi4uLi4uLiA1ODM4IC0gMjAxNS0xMi0yMiAxNTo1Mjo0NSIsImIiOiJ0ZXN0R3JvdXAifV19 - json - - m - - - a - 4 - b - testGroup - c - a - d - *.............. 5838 - 2015-12-22 15:52:45 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283654953591 - - - - t - - r - 56 - t - 14508283654954709 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283643321566&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283643321566&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283643321566&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 186 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:52:45 GMT - - expectedContentLength - 186 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4Mzc4Mzk4NDUyNCIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNTk2MDYwMjkzIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAibGVhdmUiLCAidGltZXN0YW1wIjogMTQ1MDgyODM1OSwgInV1aWQiOiAiMzIyQTcwQjMtRjBFQS00OENELTlCQjAtRDNGMEY1REU5OTZDIiwgIm9jY3VwYW5jeSI6IDJ9LCJiIjoidGVzdEdyb3VwLXBucHJlcyJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNTk2NjkyNDA2IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqLi4uLiA1ODMzIC0gMjAxNS0xMi0yMiAxNTo1MjozOSIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzYwODM0NjQ3MyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKioqKiouLi4gNTgzNCAtIDIwMTUtMTItMjIgMTU6NTI6NDAiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2MjAwODM5OTAiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKioqKioqKioqKi4uIDU4MzUgLSAyMDE1LTEyLTIyIDE1OjUyOjQxIiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNjMxNjkyMjAwIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqKioqLiA1ODM2IC0gMjAxNS0xMi0yMiAxNTo1Mjo0MyIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzY0MzMyMDczOSIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKioqKioqKiogNTgzNyAtIDIwMTUtMTItMjIgMTU6NTI6NDQiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2NTQ5NTM1OTEiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKi4uLi4uLi4uLi4uLi4uIDU4MzggLSAyMDE1LTEyLTIyIDE1OjUyOjQ1IiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNjY2NzE1NjEwIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqLi4uLi4uLi4uLi4uLiA1ODM5IC0gMjAxNS0xMi0yMiAxNTo1Mjo0NiIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzY3ODUyMzg5NyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKiouLi4uLi4uLi4uLi4gNTg0MCAtIDIwMTUtMTItMjIgMTU6NTI6NDciLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2OTAzMTYzMTgiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKi4uLi4uLi4uLi4uIDU4NDEgLSAyMDE1LTEyLTIyIDE1OjUyOjQ4IiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNzAxOTM2ODI5IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqLi4uLi4uLi4uLiA1ODQyIC0gMjAxNS0xMi0yMiAxNTo1Mjo1MCIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzcxMzU3NjU3MiIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKiouLi4uLi4uLi4gNTg0MyAtIDIwMTUtMTItMjIgMTU6NTI6NTEiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM3MjUyOTE0NDQiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKioqKi4uLi4uLi4uIDU4NDQgLSAyMDE1LTEyLTIyIDE1OjUyOjUyIiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNzM3MTg4MDA3IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqLi4uLi4uLiA1ODQ1IC0gMjAxNS0xMi0yMiAxNTo1Mjo1MyIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4Mzc0ODgzMzI2NiIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKiouLi4uLi4gNTg0NiAtIDIwMTUtMTItMjIgMTU6NTI6NTQiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM3NjA0ODc0MzkiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKioqKioqKi4uLi4uIDU4NDcgLSAyMDE1LTEyLTIyIDE1OjUyOjU1IiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNzcyMzA5NTEyIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqLi4uLiA1ODQ4IC0gMjAxNS0xMi0yMiAxNTo1Mjo1NyIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4Mzc4Mzk4Mzc1OCIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKioqKiouLi4gNTg0OSAtIDIwMTUtMTItMjIgMTU6NTI6NTgiLCJiIjoidGVzdEdyb3VwIn1dfQ== - json - - m - - - a - 4 - b - testGroup-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - leave - occupancy - 2 - timestamp - 1450828359 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283596060293 - - - - a - 4 - b - testGroup - c - a - d - ***********.... 5833 - 2015-12-22 15:52:39 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283596692406 - - - - a - 4 - b - testGroup - c - a - d - ************... 5834 - 2015-12-22 15:52:40 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283608346473 - - - - a - 4 - b - testGroup - c - a - d - *************.. 5835 - 2015-12-22 15:52:41 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283620083990 - - - - a - 4 - b - testGroup - c - a - d - **************. 5836 - 2015-12-22 15:52:43 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283631692200 - - - - a - 4 - b - testGroup - c - a - d - *************** 5837 - 2015-12-22 15:52:44 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283643320739 - - - - a - 4 - b - testGroup - c - a - d - *.............. 5838 - 2015-12-22 15:52:45 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283654953591 - - - - a - 4 - b - testGroup - c - a - d - **............. 5839 - 2015-12-22 15:52:46 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283666715610 - - - - a - 4 - b - testGroup - c - a - d - ***............ 5840 - 2015-12-22 15:52:47 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283678523897 - - - - a - 4 - b - testGroup - c - a - d - ****........... 5841 - 2015-12-22 15:52:48 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283690316318 - - - - a - 4 - b - testGroup - c - a - d - *****.......... 5842 - 2015-12-22 15:52:50 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283701936829 - - - - a - 4 - b - testGroup - c - a - d - ******......... 5843 - 2015-12-22 15:52:51 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283713576572 - - - - a - 4 - b - testGroup - c - a - d - *******........ 5844 - 2015-12-22 15:52:52 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283725291444 - - - - a - 4 - b - testGroup - c - a - d - ********....... 5845 - 2015-12-22 15:52:53 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283737188007 - - - - a - 4 - b - testGroup - c - a - d - *********...... 5846 - 2015-12-22 15:52:54 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283748833266 - - - - a - 4 - b - testGroup - c - a - d - **********..... 5847 - 2015-12-22 15:52:55 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283760487439 - - - - a - 4 - b - testGroup - c - a - d - ***********.... 5848 - 2015-12-22 15:52:57 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283772309512 - - - - a - 4 - b - testGroup - c - a - d - ************... 5849 - 2015-12-22 15:52:58 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283783983758 - - - - t - - r - 56 - t - 14508283783984524 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Encoding - gzip - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:52:58 GMT - Transfer-Encoding - Identity - - expectedContentLength - 2713 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4MzU5NjA2MTIzMiIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508283596061232 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:52:39 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4Mzc2MDQ4ODU2MyIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNzYwNDg3NDM5IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKiouLi4uLiA1ODQ3IC0gMjAxNS0xMi0yMiAxNTo1Mjo1NSIsImIiOiJ0ZXN0R3JvdXAifV19 - json - - m - - - a - 4 - b - testGroup - c - a - d - **********..... 5847 - 2015-12-22 15:52:55 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283760487439 - - - - t - - r - 56 - t - 14508283760488563 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283748834194&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283748834194&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283748834194&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 186 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:52:56 GMT - - expectedContentLength - 186 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4MzcyNTI5MjYxMiIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNzI1MjkxNDQ0IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKiouLi4uLi4uLiA1ODQ0IC0gMjAxNS0xMi0yMiAxNTo1Mjo1MiIsImIiOiJ0ZXN0R3JvdXAifV19 - json - - m - - - a - 4 - b - testGroup - c - a - d - *******........ 5844 - 2015-12-22 15:52:52 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283725291444 - - - - t - - r - 56 - t - 14508283725292612 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283713577347&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283713577347&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283713577347&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 186 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:52:52 GMT - - expectedContentLength - 186 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4MzcyNTI5MjYxMiIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNTk2MDYwMjkzIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAibGVhdmUiLCAidGltZXN0YW1wIjogMTQ1MDgyODM1OSwgInV1aWQiOiAiMzIyQTcwQjMtRjBFQS00OENELTlCQjAtRDNGMEY1REU5OTZDIiwgIm9jY3VwYW5jeSI6IDJ9LCJiIjoidGVzdEdyb3VwLXBucHJlcyJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNTk2NjkyNDA2IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqLi4uLiA1ODMzIC0gMjAxNS0xMi0yMiAxNTo1MjozOSIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzYwODM0NjQ3MyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKioqKiouLi4gNTgzNCAtIDIwMTUtMTItMjIgMTU6NTI6NDAiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2MjAwODM5OTAiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKioqKioqKioqKi4uIDU4MzUgLSAyMDE1LTEyLTIyIDE1OjUyOjQxIiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNjMxNjkyMjAwIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqKioqLiA1ODM2IC0gMjAxNS0xMi0yMiAxNTo1Mjo0MyIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzY0MzMyMDczOSIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKioqKioqKiogNTgzNyAtIDIwMTUtMTItMjIgMTU6NTI6NDQiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2NTQ5NTM1OTEiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKi4uLi4uLi4uLi4uLi4uIDU4MzggLSAyMDE1LTEyLTIyIDE1OjUyOjQ1IiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNjY2NzE1NjEwIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqLi4uLi4uLi4uLi4uLiA1ODM5IC0gMjAxNS0xMi0yMiAxNTo1Mjo0NiIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzY3ODUyMzg5NyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKiouLi4uLi4uLi4uLi4gNTg0MCAtIDIwMTUtMTItMjIgMTU6NTI6NDciLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM2OTAzMTYzMTgiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKi4uLi4uLi4uLi4uIDU4NDEgLSAyMDE1LTEyLTIyIDE1OjUyOjQ4IiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzNzAxOTM2ODI5IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqLi4uLi4uLi4uLiA1ODQyIC0gMjAxNS0xMi0yMiAxNTo1Mjo1MCIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4MzcxMzU3NjU3MiIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKiouLi4uLi4uLi4gNTg0MyAtIDIwMTUtMTItMjIgMTU6NTI6NTEiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODM3MjUyOTE0NDQiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKioqKi4uLi4uLi4uIDU4NDQgLSAyMDE1LTEyLTIyIDE1OjUyOjUyIiwiYiI6InRlc3RHcm91cCJ9XX0= - json - - m - - - a - 4 - b - testGroup-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - leave - occupancy - 2 - timestamp - 1450828359 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283596060293 - - - - a - 4 - b - testGroup - c - a - d - ***********.... 5833 - 2015-12-22 15:52:39 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283596692406 - - - - a - 4 - b - testGroup - c - a - d - ************... 5834 - 2015-12-22 15:52:40 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283608346473 - - - - a - 4 - b - testGroup - c - a - d - *************.. 5835 - 2015-12-22 15:52:41 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283620083990 - - - - a - 4 - b - testGroup - c - a - d - **************. 5836 - 2015-12-22 15:52:43 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283631692200 - - - - a - 4 - b - testGroup - c - a - d - *************** 5837 - 2015-12-22 15:52:44 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283643320739 - - - - a - 4 - b - testGroup - c - a - d - *.............. 5838 - 2015-12-22 15:52:45 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283654953591 - - - - a - 4 - b - testGroup - c - a - d - **............. 5839 - 2015-12-22 15:52:46 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283666715610 - - - - a - 4 - b - testGroup - c - a - d - ***............ 5840 - 2015-12-22 15:52:47 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283678523897 - - - - a - 4 - b - testGroup - c - a - d - ****........... 5841 - 2015-12-22 15:52:48 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283690316318 - - - - a - 4 - b - testGroup - c - a - d - *****.......... 5842 - 2015-12-22 15:52:50 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283701936829 - - - - a - 4 - b - testGroup - c - a - d - ******......... 5843 - 2015-12-22 15:52:51 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283713576572 - - - - a - 4 - b - testGroup - c - a - d - *******........ 5844 - 2015-12-22 15:52:52 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283725291444 - - - - t - - r - 56 - t - 14508283725292612 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283585009565&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Encoding - gzip - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:52:52 GMT - Transfer-Encoding - Identity - - expectedContentLength - 2003 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4MzgwNzYxNDM3MiIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjgzODA3NjEzMjUwIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqKioqLiA1ODUxIC0gMjAxNS0xMi0yMiAxNTo1MzowMCIsImIiOiJ0ZXN0R3JvdXAifV19 - json - - m - - - a - 4 - b - testGroup - c - a - d - **************. 5851 - 2015-12-22 15:53:00 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508283807613250 - - - - t - - r - 56 - t - 14508283807614372 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283795723891&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283795723891&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508283795723891&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 186 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:53:00 GMT - - expectedContentLength - 186 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNChannelGroupPresenceEventTests.bundle/testLeaveEvent.plist b/Tests/iOS Tests/Fixtures/PNChannelGroupPresenceEventTests.bundle/testLeaveEvent.plist deleted file mode 100755 index 803c6f461..000000000 --- a/Tests/iOS Tests/Fixtures/PNChannelGroupPresenceEventTests.bundle/testLeaveEvent.plist +++ /dev/null @@ -1,483 +0,0 @@ - - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - json - - error - - message - OK - service - channel-registry - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/testGroup?add=2EC925F0-B996-47A4-AF54-A605E1A9AEBA%2Ca&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/testGroup?add=2EC925F0-B996-47A4-AF54-A605E1A9AEBA%2Ca&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo/channel-group/testGroup?pnsdk=PubNub-ObjC-iOS%2F4.2.3&add=2EC925F0-B996-47A4-AF54-A605E1A9AEBA,a&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:54:09 GMT - Server - Pubnub - - expectedContentLength - 79 - statusCode - 200 - suggestedFileName - testGroup.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJhY3Rpb24iOiAibGVhdmUiLCAibWVzc2FnZSI6ICJPSyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - action - leave - message - OK - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/leave?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 74 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:54:10 GMT - Server - Pubnub Presence - - expectedContentLength - 74 - statusCode - 200 - suggestedFileName - leave.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4NDQ5ODA4ODEwOSIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508284498088109 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&channel-group=testGroup%2CtestGroup-pnpres&tt=0&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&channel-group=testGroup%2CtestGroup-pnpres&tt=0&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:54:10 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4NDUwMjQyMTI0MyIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4Mjg0NTAyNDIwMjY5IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAibGVhdmUiLCAidGltZXN0YW1wIjogMTQ1MDgyODQ1MCwgInV1aWQiOiAiMzIyQTcwQjMtRjBFQS00OENELTlCQjAtRDNGMEY1REU5OTZDIiwgIm9jY3VwYW5jeSI6IDJ9LCJiIjoidGVzdEdyb3VwLXBucHJlcyJ9XX0= - json - - m - - - a - 4 - b - testGroup-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - leave - occupancy - 2 - timestamp - 1450828450 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508284502420269 - - - - t - - r - 56 - t - 14508284502421243 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508284498088109&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508284498088109&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508284498088109&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 299 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:54:10 GMT - - expectedContentLength - 299 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNChannelGroupPresenceEventTests.bundle/testStateChangeEvent.plist b/Tests/iOS Tests/Fixtures/PNChannelGroupPresenceEventTests.bundle/testStateChangeEvent.plist deleted file mode 100755 index 631b037aa..000000000 --- a/Tests/iOS Tests/Fixtures/PNChannelGroupPresenceEventTests.bundle/testStateChangeEvent.plist +++ /dev/null @@ -1,491 +0,0 @@ - - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4NjcxODI4OTMzOSIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4Mjg2NzE4Mjg4NTYxIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAic3RhdGUtY2hhbmdlIiwgInRpbWVzdGFtcCI6IDE0NTA4Mjg2NzEsICJkYXRhIjogeyJmb28iOiAiYmFyIn0sICJ1dWlkIjogIjMyMkE3MEIzLUYwRUEtNDhDRC05QkIwLUQzRjBGNURFOTk2QyIsICJvY2N1cGFuY3kiOiAyfSwiYiI6InRlc3RHcm91cC1wbnByZXMifV19 - json - - m - - - a - 4 - b - testGroup-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - state-change - data - - foo - bar - - occupancy - 2 - timestamp - 1450828671 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508286718288561 - - - - t - - r - 56 - t - 14508286718289339 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508286715039278&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508286715039278&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508286715039278&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 330 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:57:51 GMT - - expectedContentLength - 330 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - json - - error - - message - OK - service - channel-registry - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/testGroup?add=2EC925F0-B996-47A4-AF54-A605E1A9AEBA%2Ca&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/testGroup?add=2EC925F0-B996-47A4-AF54-A605E1A9AEBA%2Ca&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/testGroup?pnsdk=PubNub-ObjC-iOS%2F4.2.3&add=2EC925F0-B996-47A4-AF54-A605E1A9AEBA,a&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:57:51 GMT - Server - Pubnub - - expectedContentLength - 79 - statusCode - 200 - suggestedFileName - testGroup.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImZvbyI6ICJiYXIifSwgInNlcnZpY2UiOiAiUHJlc2VuY2UifQ== - json - - message - OK - payload - - foo - bar - - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/uuid/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/data?state=%7B%22foo%22%3A%22bar%22%7D&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo/channel/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/uuid/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/data?state=%7B%22foo%22%3A%22bar%22%7D&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/uuid/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/data?pnsdk=PubNub-ObjC-iOS%2F4.2.3&state=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 82 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:57:51 GMT - Server - Pubnub Presence - - expectedContentLength - 82 - statusCode - 200 - suggestedFileName - data.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4NjcxNTAzOTI3OCIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508286715039278 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&channel-group=testGroup%2CtestGroup-pnpres&tt=0&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&channel-group=testGroup%2CtestGroup-pnpres&tt=0&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:57:51 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNChannelGroupPresenceEventTests.bundle/testTimeoutEvent.plist b/Tests/iOS Tests/Fixtures/PNChannelGroupPresenceEventTests.bundle/testTimeoutEvent.plist deleted file mode 100755 index fa371cc10..000000000 --- a/Tests/iOS Tests/Fixtures/PNChannelGroupPresenceEventTests.bundle/testTimeoutEvent.plist +++ /dev/null @@ -1,3638 +0,0 @@ - - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4NTY3MzgyMDI5MyIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4Mjg1NjAzNjM5MzcxIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqLi4uLi4uLi4uLi4uLiA2MDA0IC0gMjAxNS0xMi0yMiAxNTo1NjowMCIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4NTYwOTk5OTUwMyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiMkVDOTI1RjAtQjk5Ni00N0E0LUFGNTQtQTYwNUUxQTlBRUJBLXBucHJlcyIsImQiOnsiYWN0aW9uIjogImpvaW4iLCAidGltZXN0YW1wIjogMTQ1MDgyODU2MSwgInV1aWQiOiAiMzIyQTcwQjMtRjBFQS00OENELTlCQjAtRDNGMEY1REU5OTZDIiwgIm9jY3VwYW5jeSI6IDN9LCJiIjoidGVzdEdyb3VwLXBucHJlcyJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4Mjg1NjE1MzkxMzg2IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKi4uLi4uLi4uLi4uLiA2MDA1IC0gMjAxNS0xMi0yMiAxNTo1NjowMSIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4NTYyNzExMTYxMyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqLi4uLi4uLi4uLi4gNjAwNiAtIDIwMTUtMTItMjIgMTU6NTY6MDIiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODU2Mzg3ODYyNDYiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKiouLi4uLi4uLi4uIDYwMDcgLSAyMDE1LTEyLTIyIDE1OjU2OjAzIiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4Mjg1NjUwNDUxMzM1IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKi4uLi4uLi4uLiA2MDA4IC0gMjAxNS0xMi0yMiAxNTo1NjowNCIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4NTY2MjE0MzM3NSIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqLi4uLi4uLi4gNjAwOSAtIDIwMTUtMTItMjIgMTU6NTY6MDYiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODU2NzM4MTkzNjAiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKioqKiouLi4uLi4uIDYwMTAgLSAyMDE1LTEyLTIyIDE1OjU2OjA3IiwiYiI6InRlc3RHcm91cCJ9XX0= - json - - m - - - a - 4 - b - testGroup - c - a - d - **............. 6004 - 2015-12-22 15:56:00 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285603639371 - - - - a - 4 - b - testGroup-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - join - occupancy - 3 - timestamp - 1450828561 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285609999503 - - - - a - 4 - b - testGroup - c - a - d - ***............ 6005 - 2015-12-22 15:56:01 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285615391386 - - - - a - 4 - b - testGroup - c - a - d - ****........... 6006 - 2015-12-22 15:56:02 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285627111613 - - - - a - 4 - b - testGroup - c - a - d - *****.......... 6007 - 2015-12-22 15:56:03 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285638786246 - - - - a - 4 - b - testGroup - c - a - d - ******......... 6008 - 2015-12-22 15:56:04 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285650451335 - - - - a - 4 - b - testGroup - c - a - d - *******........ 6009 - 2015-12-22 15:56:06 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285662143375 - - - - a - 4 - b - testGroup - c - a - d - ********....... 6010 - 2015-12-22 15:56:07 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285673819360 - - - - t - - r - 56 - t - 14508285673820293 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285591939406&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285591939406&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285591939406&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Encoding - gzip - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:56:07 GMT - Transfer-Encoding - Identity - - expectedContentLength - 1292 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4NTY3MzgyMDI5MyIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4Mjg1NjczODE5MzYwIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqLi4uLi4uLiA2MDEwIC0gMjAxNS0xMi0yMiAxNTo1NjowNyIsImIiOiJ0ZXN0R3JvdXAifV19 - json - - m - - - a - 4 - b - testGroup - c - a - d - ********....... 6010 - 2015-12-22 15:56:07 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285673819360 - - - - t - - r - 56 - t - 14508285673820293 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285662144368&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285662144368&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285662144368&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 186 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:56:07 GMT - - expectedContentLength - 186 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4NTYzODc4NzE3MiIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4Mjg1NjAzNjM5MzcxIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqLi4uLi4uLi4uLi4uLiA2MDA0IC0gMjAxNS0xMi0yMiAxNTo1NjowMCIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4NTYwOTk5OTUwMyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiMkVDOTI1RjAtQjk5Ni00N0E0LUFGNTQtQTYwNUUxQTlBRUJBLXBucHJlcyIsImQiOnsiYWN0aW9uIjogImpvaW4iLCAidGltZXN0YW1wIjogMTQ1MDgyODU2MSwgInV1aWQiOiAiMzIyQTcwQjMtRjBFQS00OENELTlCQjAtRDNGMEY1REU5OTZDIiwgIm9jY3VwYW5jeSI6IDN9LCJiIjoidGVzdEdyb3VwLXBucHJlcyJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4Mjg1NjE1MzkxMzg2IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKi4uLi4uLi4uLi4uLiA2MDA1IC0gMjAxNS0xMi0yMiAxNTo1NjowMSIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4NTYyNzExMTYxMyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqLi4uLi4uLi4uLi4gNjAwNiAtIDIwMTUtMTItMjIgMTU6NTY6MDIiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODU2Mzg3ODYyNDYiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKiouLi4uLi4uLi4uIDYwMDcgLSAyMDE1LTEyLTIyIDE1OjU2OjAzIiwiYiI6InRlc3RHcm91cCJ9XX0= - json - - m - - - a - 4 - b - testGroup - c - a - d - **............. 6004 - 2015-12-22 15:56:00 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285603639371 - - - - a - 4 - b - testGroup-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - join - occupancy - 3 - timestamp - 1450828561 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285609999503 - - - - a - 4 - b - testGroup - c - a - d - ***............ 6005 - 2015-12-22 15:56:01 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285615391386 - - - - a - 4 - b - testGroup - c - a - d - ****........... 6006 - 2015-12-22 15:56:02 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285627111613 - - - - a - 4 - b - testGroup - c - a - d - *****.......... 6007 - 2015-12-22 15:56:03 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285638786246 - - - - t - - r - 56 - t - 14508285638787172 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285591939406&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285591939406&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285591939406&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 866 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:56:03 GMT - - expectedContentLength - 866 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4NTYyNzExMjUwMiIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4Mjg1NjAzNjM5MzcxIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqLi4uLi4uLi4uLi4uLiA2MDA0IC0gMjAxNS0xMi0yMiAxNTo1NjowMCIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4NTYwOTk5OTUwMyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiMkVDOTI1RjAtQjk5Ni00N0E0LUFGNTQtQTYwNUUxQTlBRUJBLXBucHJlcyIsImQiOnsiYWN0aW9uIjogImpvaW4iLCAidGltZXN0YW1wIjogMTQ1MDgyODU2MSwgInV1aWQiOiAiMzIyQTcwQjMtRjBFQS00OENELTlCQjAtRDNGMEY1REU5OTZDIiwgIm9jY3VwYW5jeSI6IDN9LCJiIjoidGVzdEdyb3VwLXBucHJlcyJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4Mjg1NjE1MzkxMzg2IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKi4uLi4uLi4uLi4uLiA2MDA1IC0gMjAxNS0xMi0yMiAxNTo1NjowMSIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4NTYyNzExMTYxMyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqLi4uLi4uLi4uLi4gNjAwNiAtIDIwMTUtMTItMjIgMTU6NTY6MDIiLCJiIjoidGVzdEdyb3VwIn1dfQ== - json - - m - - - a - 4 - b - testGroup - c - a - d - **............. 6004 - 2015-12-22 15:56:00 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285603639371 - - - - a - 4 - b - testGroup-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - join - occupancy - 3 - timestamp - 1450828561 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285609999503 - - - - a - 4 - b - testGroup - c - a - d - ***............ 6005 - 2015-12-22 15:56:01 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285615391386 - - - - a - 4 - b - testGroup - c - a - d - ****........... 6006 - 2015-12-22 15:56:02 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285627111613 - - - - t - - r - 56 - t - 14508285627112502 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285591939406&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285591939406&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285591939406&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 724 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:56:02 GMT - - expectedContentLength - 724 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4NTY2MjE0NDM2OCIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4Mjg1NjYyMTQzMzc1IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKiouLi4uLi4uLiA2MDA5IC0gMjAxNS0xMi0yMiAxNTo1NjowNiIsImIiOiJ0ZXN0R3JvdXAifV19 - json - - m - - - a - 4 - b - testGroup - c - a - d - *******........ 6009 - 2015-12-22 15:56:06 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285662143375 - - - - t - - r - 56 - t - 14508285662144368 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285650452109&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285650452109&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285650452109&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 186 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:56:06 GMT - - expectedContentLength - 186 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4NTYxNTM5MjMxMCIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4Mjg1NjAzNjM5MzcxIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqLi4uLi4uLi4uLi4uLiA2MDA0IC0gMjAxNS0xMi0yMiAxNTo1NjowMCIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4NTYwOTk5OTUwMyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiMkVDOTI1RjAtQjk5Ni00N0E0LUFGNTQtQTYwNUUxQTlBRUJBLXBucHJlcyIsImQiOnsiYWN0aW9uIjogImpvaW4iLCAidGltZXN0YW1wIjogMTQ1MDgyODU2MSwgInV1aWQiOiAiMzIyQTcwQjMtRjBFQS00OENELTlCQjAtRDNGMEY1REU5OTZDIiwgIm9jY3VwYW5jeSI6IDN9LCJiIjoidGVzdEdyb3VwLXBucHJlcyJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4Mjg1NjE1MzkxMzg2IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKi4uLi4uLi4uLi4uLiA2MDA1IC0gMjAxNS0xMi0yMiAxNTo1NjowMSIsImIiOiJ0ZXN0R3JvdXAifV19 - json - - m - - - a - 4 - b - testGroup - c - a - d - **............. 6004 - 2015-12-22 15:56:00 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285603639371 - - - - a - 4 - b - testGroup-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - join - occupancy - 3 - timestamp - 1450828561 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285609999503 - - - - a - 4 - b - testGroup - c - a - d - ***............ 6005 - 2015-12-22 15:56:01 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285615391386 - - - - t - - r - 56 - t - 14508285615392310 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285591939406&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285591939406&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285591939406&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 582 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:56:01 GMT - - expectedContentLength - 582 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4NTY1MDQ1MjEwOSIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4Mjg1NjUwNDUxMzM1IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKi4uLi4uLi4uLiA2MDA4IC0gMjAxNS0xMi0yMiAxNTo1NjowNCIsImIiOiJ0ZXN0R3JvdXAifV19 - json - - m - - - a - 4 - b - testGroup - c - a - d - ******......... 6008 - 2015-12-22 15:56:04 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285650451335 - - - - t - - r - 56 - t - 14508285650452109 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285638787172&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285638787172&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285638787172&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 186 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:56:05 GMT - - expectedContentLength - 186 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4NTYwMzY0MDI3NSIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4Mjg1NjAzNjM5MzcxIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqLi4uLi4uLi4uLi4uLiA2MDA0IC0gMjAxNS0xMi0yMiAxNTo1NjowMCIsImIiOiJ0ZXN0R3JvdXAifV19 - json - - m - - - a - 4 - b - testGroup - c - a - d - **............. 6004 - 2015-12-22 15:56:00 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285603639371 - - - - t - - r - 56 - t - 14508285603640275 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285591939406&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285591939406&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285591939406&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 186 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:56:00 GMT - - expectedContentLength - 186 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4NTYzODc4NzE3MiIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4Mjg1NjM4Nzg2MjQ2IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqLi4uLi4uLi4uLiA2MDA3IC0gMjAxNS0xMi0yMiAxNTo1NjowMyIsImIiOiJ0ZXN0R3JvdXAifV19 - json - - m - - - a - 4 - b - testGroup - c - a - d - *****.......... 6007 - 2015-12-22 15:56:03 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285638786246 - - - - t - - r - 56 - t - 14508285638787172 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285627112502&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285627112502&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285627112502&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 186 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:56:03 GMT - - expectedContentLength - 186 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4NTYxMDAwMDQ3MiIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4Mjg1NjA5OTk5NTAzIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAiam9pbiIsICJ0aW1lc3RhbXAiOiAxNDUwODI4NTYxLCAidXVpZCI6ICIzMjJBNzBCMy1GMEVBLTQ4Q0QtOUJCMC1EM0YwRjVERTk5NkMiLCAib2NjdXBhbmN5IjogM30sImIiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIn1dfQ== - json - - m - - - a - 4 - b - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - join - occupancy - 3 - timestamp - 1450828561 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285609999503 - - - - t - - r - 56 - t - 14508285610000472 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508285077558202&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&heartbeat=5 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508285077558202&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&heartbeat=5 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508285077558202&heartbeat=5&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 325 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:56:01 GMT - - expectedContentLength - 325 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4NTYxMDAwMDQ3MiIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4Mjg1NjA5OTk5NTAzIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAiam9pbiIsICJ0aW1lc3RhbXAiOiAxNDUwODI4NTYxLCAidXVpZCI6ICIzMjJBNzBCMy1GMEVBLTQ4Q0QtOUJCMC1EM0YwRjVERTk5NkMiLCAib2NjdXBhbmN5IjogM30sImIiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIn1dfQ== - json - - m - - - a - 4 - b - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - join - occupancy - 3 - timestamp - 1450828561 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo - p - - r - 56 - t - 14508285609999503 - - - - t - - r - 56 - t - 14508285610000472 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508285077558202&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&heartbeat=5 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508285077558202&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&heartbeat=5 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508285077558202&heartbeat=5&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 325 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:56:02 GMT - - expectedContentLength - 325 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4NTYxNTM5MjMxMCIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4Mjg1NjE1MzkxMzg2IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKi4uLi4uLi4uLi4uLiA2MDA1IC0gMjAxNS0xMi0yMiAxNTo1NjowMSIsImIiOiJ0ZXN0R3JvdXAifV19 - json - - m - - - a - 4 - b - testGroup - c - a - d - ***............ 6005 - 2015-12-22 15:56:01 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285615391386 - - - - t - - r - 56 - t - 14508285615392310 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285610000472&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285610000472&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285610000472&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 186 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:56:01 GMT - - expectedContentLength - 186 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4NTYxMDAwMDQ3MiIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508285610000472 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508285610000472&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&heartbeat=5 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508285610000472&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&heartbeat=5 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508285610000472&heartbeat=5&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:56:02 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4NTY2MjE0NDM2OCIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4Mjg1NjAzNjM5MzcxIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqLi4uLi4uLi4uLi4uLiA2MDA0IC0gMjAxNS0xMi0yMiAxNTo1NjowMCIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4NTYwOTk5OTUwMyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiMkVDOTI1RjAtQjk5Ni00N0E0LUFGNTQtQTYwNUUxQTlBRUJBLXBucHJlcyIsImQiOnsiYWN0aW9uIjogImpvaW4iLCAidGltZXN0YW1wIjogMTQ1MDgyODU2MSwgInV1aWQiOiAiMzIyQTcwQjMtRjBFQS00OENELTlCQjAtRDNGMEY1REU5OTZDIiwgIm9jY3VwYW5jeSI6IDN9LCJiIjoidGVzdEdyb3VwLXBucHJlcyJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4Mjg1NjE1MzkxMzg2IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKi4uLi4uLi4uLi4uLiA2MDA1IC0gMjAxNS0xMi0yMiAxNTo1NjowMSIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4NTYyNzExMTYxMyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqLi4uLi4uLi4uLi4gNjAwNiAtIDIwMTUtMTItMjIgMTU6NTY6MDIiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODU2Mzg3ODYyNDYiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKiouLi4uLi4uLi4uIDYwMDcgLSAyMDE1LTEyLTIyIDE1OjU2OjAzIiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4Mjg1NjUwNDUxMzM1IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKi4uLi4uLi4uLiA2MDA4IC0gMjAxNS0xMi0yMiAxNTo1NjowNCIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4NTY2MjE0MzM3NSIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqLi4uLi4uLi4gNjAwOSAtIDIwMTUtMTItMjIgMTU6NTY6MDYiLCJiIjoidGVzdEdyb3VwIn1dfQ== - json - - m - - - a - 4 - b - testGroup - c - a - d - **............. 6004 - 2015-12-22 15:56:00 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285603639371 - - - - a - 4 - b - testGroup-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - join - occupancy - 3 - timestamp - 1450828561 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285609999503 - - - - a - 4 - b - testGroup - c - a - d - ***............ 6005 - 2015-12-22 15:56:01 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285615391386 - - - - a - 4 - b - testGroup - c - a - d - ****........... 6006 - 2015-12-22 15:56:02 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285627111613 - - - - a - 4 - b - testGroup - c - a - d - *****.......... 6007 - 2015-12-22 15:56:03 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285638786246 - - - - a - 4 - b - testGroup - c - a - d - ******......... 6008 - 2015-12-22 15:56:04 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285650451335 - - - - a - 4 - b - testGroup - c - a - d - *******........ 6009 - 2015-12-22 15:56:06 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285662143375 - - - - t - - r - 56 - t - 14508285662144368 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285591939406&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285591939406&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285591939406&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Encoding - gzip - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:56:06 GMT - Transfer-Encoding - Identity - - expectedContentLength - 1150 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - json - - error - - message - OK - service - channel-registry - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/testGroup?add=2EC925F0-B996-47A4-AF54-A605E1A9AEBA%2Ca&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/testGroup?add=2EC925F0-B996-47A4-AF54-A605E1A9AEBA%2Ca&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/testGroup?pnsdk=PubNub-ObjC-iOS%2F4.2.3&add=2EC925F0-B996-47A4-AF54-A605E1A9AEBA,a&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:56:00 GMT - Server - Pubnub - - expectedContentLength - 79 - statusCode - 200 - suggestedFileName - testGroup.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4NTYyNzExMjUwMiIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4Mjg1NjI3MTExNjEzIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKiouLi4uLi4uLi4uLiA2MDA2IC0gMjAxNS0xMi0yMiAxNTo1NjowMiIsImIiOiJ0ZXN0R3JvdXAifV19 - json - - m - - - a - 4 - b - testGroup - c - a - d - ****........... 6006 - 2015-12-22 15:56:02 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285627111613 - - - - t - - r - 56 - t - 14508285627112502 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285615392310&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285615392310&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285615392310&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 186 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:56:02 GMT - - expectedContentLength - 186 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4NTY1MDQ1MjEwOSIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4Mjg1NjAzNjM5MzcxIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqLi4uLi4uLi4uLi4uLiA2MDA0IC0gMjAxNS0xMi0yMiAxNTo1NjowMCIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4NTYwOTk5OTUwMyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiMkVDOTI1RjAtQjk5Ni00N0E0LUFGNTQtQTYwNUUxQTlBRUJBLXBucHJlcyIsImQiOnsiYWN0aW9uIjogImpvaW4iLCAidGltZXN0YW1wIjogMTQ1MDgyODU2MSwgInV1aWQiOiAiMzIyQTcwQjMtRjBFQS00OENELTlCQjAtRDNGMEY1REU5OTZDIiwgIm9jY3VwYW5jeSI6IDN9LCJiIjoidGVzdEdyb3VwLXBucHJlcyJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4Mjg1NjE1MzkxMzg2IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKi4uLi4uLi4uLi4uLiA2MDA1IC0gMjAxNS0xMi0yMiAxNTo1NjowMSIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4NTYyNzExMTYxMyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqLi4uLi4uLi4uLi4gNjAwNiAtIDIwMTUtMTItMjIgMTU6NTY6MDIiLCJiIjoidGVzdEdyb3VwIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyODU2Mzg3ODYyNDYiLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6ImEiLCJkIjoiKioqKiouLi4uLi4uLi4uIDYwMDcgLSAyMDE1LTEyLTIyIDE1OjU2OjAzIiwiYiI6InRlc3RHcm91cCJ9LHsiYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4Mjg1NjUwNDUxMzM1IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKi4uLi4uLi4uLiA2MDA4IC0gMjAxNS0xMi0yMiAxNTo1NjowNCIsImIiOiJ0ZXN0R3JvdXAifV19 - json - - m - - - a - 4 - b - testGroup - c - a - d - **............. 6004 - 2015-12-22 15:56:00 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285603639371 - - - - a - 4 - b - testGroup-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - join - occupancy - 3 - timestamp - 1450828561 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285609999503 - - - - a - 4 - b - testGroup - c - a - d - ***............ 6005 - 2015-12-22 15:56:01 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285615391386 - - - - a - 4 - b - testGroup - c - a - d - ****........... 6006 - 2015-12-22 15:56:02 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285627111613 - - - - a - 4 - b - testGroup - c - a - d - *****.......... 6007 - 2015-12-22 15:56:03 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285638786246 - - - - a - 4 - b - testGroup - c - a - d - ******......... 6008 - 2015-12-22 15:56:04 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285650451335 - - - - t - - r - 56 - t - 14508285650452109 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285591939406&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285591939406&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285591939406&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Encoding - gzip - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:56:05 GMT - Transfer-Encoding - Identity - - expectedContentLength - 1008 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4NTY4MjU0MjE3NCIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4Mjg1NjgyNTQxMjU1IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAidGltZW91dCIsICJ0aW1lc3RhbXAiOiAxNDUwODI4NTY4LCAidXVpZCI6ICIzMjJBNzBCMy1GMEVBLTQ4Q0QtOUJCMC1EM0YwRjVERTk5NkMiLCAib2NjdXBhbmN5IjogMn0sImIiOiJ0ZXN0R3JvdXAtcG5wcmVzIn1dfQ== - json - - m - - - a - 4 - b - testGroup-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - timeout - occupancy - 2 - timestamp - 1450828568 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285682541255 - - - - t - - r - 56 - t - 14508285682542174 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285673820293&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285673820293&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285673820293&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 301 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:56:08 GMT - - expectedContentLength - 301 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4NTY4MjU0MjE3NCIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4Mjg1NjgyNTQxMjU1IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAidGltZW91dCIsICJ0aW1lc3RhbXAiOiAxNDUwODI4NTY4LCAidXVpZCI6ICIzMjJBNzBCMy1GMEVBLTQ4Q0QtOUJCMC1EM0YwRjVERTk5NkMiLCAib2NjdXBhbmN5IjogMn0sImIiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIn1dfQ== - json - - m - - - a - 4 - b - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - timeout - occupancy - 2 - timestamp - 1450828568 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285682541255 - - - - t - - r - 56 - t - 14508285682542174 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508285610000472&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&heartbeat=5 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508285610000472&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&heartbeat=5 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508285610000472&heartbeat=5&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 328 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:56:08 GMT - - expectedContentLength - 328 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4NTYxMDAwMDQ3MiIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4Mjg1NjAzNjM5MzcxIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqLi4uLi4uLi4uLi4uLiA2MDA0IC0gMjAxNS0xMi0yMiAxNTo1NjowMCIsImIiOiJ0ZXN0R3JvdXAifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI4NTYwOTk5OTUwMyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiMkVDOTI1RjAtQjk5Ni00N0E0LUFGNTQtQTYwNUUxQTlBRUJBLXBucHJlcyIsImQiOnsiYWN0aW9uIjogImpvaW4iLCAidGltZXN0YW1wIjogMTQ1MDgyODU2MSwgInV1aWQiOiAiMzIyQTcwQjMtRjBFQS00OENELTlCQjAtRDNGMEY1REU5OTZDIiwgIm9jY3VwYW5jeSI6IDN9LCJiIjoidGVzdEdyb3VwLXBucHJlcyJ9XX0= - json - - m - - - a - 4 - b - testGroup - c - a - d - **............. 6004 - 2015-12-22 15:56:00 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285603639371 - - - - a - 4 - b - testGroup-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - join - occupancy - 3 - timestamp - 1450828561 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285609999503 - - - - t - - r - 56 - t - 14508285610000472 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285591939406&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285591939406&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285591939406&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 440 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:56:01 GMT - - expectedContentLength - 440 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4NTA3NzU1ODIwMiIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508285077558202 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?heartbeat=5&tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?heartbeat=5&tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.2.3&heartbeat=5&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:56:00 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4NTYxMDAwMDQ3MiIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4Mjg1NjA5OTk5NTAzIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAiam9pbiIsICJ0aW1lc3RhbXAiOiAxNDUwODI4NTYxLCAidXVpZCI6ICIzMjJBNzBCMy1GMEVBLTQ4Q0QtOUJCMC1EM0YwRjVERTk5NkMiLCAib2NjdXBhbmN5IjogM30sImIiOiJ0ZXN0R3JvdXAtcG5wcmVzIn1dfQ== - json - - m - - - a - 4 - b - testGroup-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - join - occupancy - 3 - timestamp - 1450828561 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508285609999503 - - - - t - - r - 56 - t - 14508285610000472 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285603640275&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285603640275&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup%2CtestGroup-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508285603640275&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 298 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:56:01 GMT - - expectedContentLength - 298 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4NTU5MTkzOTQwNiIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508285591939406 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&channel-group=testGroup%2CtestGroup-pnpres&tt=0&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&channel-group=testGroup%2CtestGroup-pnpres&tt=0&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=testGroup,testGroup-pnpres&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:56:00 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNChannelGroupSubscribeTests.bundle/testSimpleSubscribeWithNoPresence.plist b/Tests/iOS Tests/Fixtures/PNChannelGroupSubscribeTests.bundle/testSimpleSubscribeWithNoPresence.plist deleted file mode 100755 index cc71c815e..000000000 --- a/Tests/iOS Tests/Fixtures/PNChannelGroupSubscribeTests.bundle/testSimpleSubscribeWithNoPresence.plist +++ /dev/null @@ -1,474 +0,0 @@ - - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4NzM5NTMwNDY1NiIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4Mjg3Mzk1MzAzODg1IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqLi4uLi4uLi4uLiA2MTU3IC0gMjAxNS0xMi0yMiAxNTo1ODo1OSIsImIiOiJQTkNoYW5uZWxHcm91cFN1YnNjcmliZVRlc3RzIn1dfQ== - json - - m - - - a - 4 - b - PNChannelGroupSubscribeTests - c - a - d - *****.......... 6157 - 2015-12-22 15:58:59 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508287395303885 - - - - t - - r - 56 - t - 14508287395304656 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508287387303892&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508287387303892&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=PNChannelGroupSubscribeTests&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508287387303892&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 205 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:58:59 GMT - - expectedContentLength - 205 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - json - - error - - message - OK - service - channel-registry - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupSubscribeTests/remove?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupSubscribeTests/remove?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupSubscribeTests/remove?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:58:58 GMT - Server - Pubnub - - expectedContentLength - 79 - statusCode - 200 - suggestedFileName - remove.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - json - - error - - message - OK - service - channel-registry - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupSubscribeTests?add=a%2Cb&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupSubscribeTests?add=a%2Cb&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo/channel-group/PNChannelGroupSubscribeTests?pnsdk=PubNub-ObjC-iOS%2F4.2.3&add=a,b&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:58:58 GMT - Server - Pubnub - - expectedContentLength - 79 - statusCode - 200 - suggestedFileName - PNChannelGroupSubscribeTests.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4NzM4NzMwMzg5MiIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508287387303892 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&channel-group=PNChannelGroupSubscribeTests&tt=0&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&channel-group=PNChannelGroupSubscribeTests&tt=0&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=PNChannelGroupSubscribeTests&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:58:58 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNChannelGroupSubscribeTests.bundle/testSimpleSubscribeWithPresence.plist b/Tests/iOS Tests/Fixtures/PNChannelGroupSubscribeTests.bundle/testSimpleSubscribeWithPresence.plist deleted file mode 100755 index c22c940ed..000000000 --- a/Tests/iOS Tests/Fixtures/PNChannelGroupSubscribeTests.bundle/testSimpleSubscribeWithPresence.plist +++ /dev/null @@ -1,542 +0,0 @@ - - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4NzQwNzA4MjM1MiIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4Mjg3NDA3MDgxMTczIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKi4uLi4uLi4uLiA2MTU4IC0gMjAxNS0xMi0yMiAxNTo1OTowMCIsImIiOiJQTkNoYW5uZWxHcm91cFN1YnNjcmliZVRlc3RzIn1dfQ== - json - - m - - - a - 4 - b - PNChannelGroupSubscribeTests - c - a - d - ******......... 6158 - 2015-12-22 15:59:00 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508287407081173 - - - - t - - r - 56 - t - 14508287407082352 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508287398196981&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupSubscribeTests%2CPNChannelGroupSubscribeTests-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508287398196981&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupSubscribeTests%2CPNChannelGroupSubscribeTests-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=PNChannelGroupSubscribeTests,PNChannelGroupSubscribeTests-pnpres&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508287398196981&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 205 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:59:00 GMT - - expectedContentLength - 205 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - error - - code - -999 - description - The operation couldn’t be completed. (NSURLErrorDomain error -999.) - domain - NSURLErrorDomain - userInfo - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508287395304656&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508287395304656&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupSubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - json - - error - - message - OK - service - channel-registry - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupSubscribeTests?add=a%2Cb&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupSubscribeTests?add=a%2Cb&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupSubscribeTests?pnsdk=PubNub-ObjC-iOS%2F4.2.3&add=a,b&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:58:59 GMT - Server - Pubnub - - expectedContentLength - 79 - statusCode - 200 - suggestedFileName - PNChannelGroupSubscribeTests.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - json - - error - - message - OK - service - channel-registry - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupSubscribeTests/remove?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupSubscribeTests/remove?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupSubscribeTests/remove?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:58:59 GMT - Server - Pubnub - - expectedContentLength - 79 - statusCode - 200 - suggestedFileName - remove.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI4NzM5ODE5Njk4MSIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508287398196981 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&channel-group=PNChannelGroupSubscribeTests%2CPNChannelGroupSubscribeTests-pnpres&tt=0&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo/,/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&channel-group=PNChannelGroupSubscribeTests%2CPNChannelGroupSubscribeTests-pnpres&tt=0&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=PNChannelGroupSubscribeTests,PNChannelGroupSubscribeTests-pnpres&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:58:59 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNChannelGroupTests.bundle/testChannelGroupAdd.plist b/Tests/iOS Tests/Fixtures/PNChannelGroupTests.bundle/testChannelGroupAdd.plist deleted file mode 100644 index c5c8788ec..000000000 --- a/Tests/iOS Tests/Fixtures/PNChannelGroupTests.bundle/testChannelGroupAdd.plist +++ /dev/null @@ -1,379 +0,0 @@ - - - - - creationDate - 2019-05-16T07:35:27Z - scenes - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName/remove?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557992127.1112599 - timeoutInterval - 60 - uniqueIdentifier - B5E58BA3-2ACD-4B29-8D7F-57908F140A2B - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName/remove?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557992127.1123161 - timeoutInterval - 60 - uniqueIdentifier - B5E58BA3-2ACD-4B29-8D7F-57908F140A2B - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName/remove?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET, DELETE, OPTIONS - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 16 May 2019 07:35:27 GMT - Server - Pubnub - - class - BKRResponseFrame - creationDate - 1557992127.4964771 - statusCode - 200 - uniqueIdentifier - B5E58BA3-2ACD-4B29-8D7F-57908F140A2B - - - class - BKRDataFrame - creationDate - 1557992127.496675 - data - - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjog - Ik9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1y - ZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - - uniqueIdentifier - B5E58BA3-2ACD-4B29-8D7F-57908F140A2B - - - uniqueIdentifier - B5E58BA3-2ACD-4B29-8D7F-57908F140A2B - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&add=a,c&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&l_cg=0.0749821663&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557992127.4997129 - timeoutInterval - 60 - uniqueIdentifier - 6E303EA4-6530-4C93-A7DF-BC2FE884EBFE - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&add=a,c&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&l_cg=0.0749821663&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557992127.5001202 - timeoutInterval - 60 - uniqueIdentifier - 6E303EA4-6530-4C93-A7DF-BC2FE884EBFE - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&add=a,c&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&l_cg=0.0749821663&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET, DELETE, OPTIONS - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 16 May 2019 07:35:27 GMT - Server - Pubnub - - class - BKRResponseFrame - creationDate - 1557992127.561923 - statusCode - 200 - uniqueIdentifier - 6E303EA4-6530-4C93-A7DF-BC2FE884EBFE - - - class - BKRDataFrame - creationDate - 1557992127.5620389 - data - - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjog - Ik9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1y - ZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - - uniqueIdentifier - 6E303EA4-6530-4C93-A7DF-BC2FE884EBFE - - - uniqueIdentifier - 6E303EA4-6530-4C93-A7DF-BC2FE884EBFE - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName/remove?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&l_cg=0.0680615902&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557992127.563735 - timeoutInterval - 60 - uniqueIdentifier - B6B862BD-47E8-4FCC-9D31-DB664ADC29B3 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName/remove?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&l_cg=0.0680615902&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557992127.564028 - timeoutInterval - 60 - uniqueIdentifier - B6B862BD-47E8-4FCC-9D31-DB664ADC29B3 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName/remove?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&l_cg=0.0680615902&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET, DELETE, OPTIONS - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 16 May 2019 07:35:27 GMT - Server - Pubnub - - class - BKRResponseFrame - creationDate - 1557992127.6643682 - statusCode - 200 - uniqueIdentifier - B6B862BD-47E8-4FCC-9D31-DB664ADC29B3 - - - class - BKRDataFrame - creationDate - 1557992127.6644349 - data - - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjog - Ik9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1y - ZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - - uniqueIdentifier - B6B862BD-47E8-4FCC-9D31-DB664ADC29B3 - - - uniqueIdentifier - B6B862BD-47E8-4FCC-9D31-DB664ADC29B3 - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNChannelGroupTests.bundle/testChannelGroupRemoveAll.plist b/Tests/iOS Tests/Fixtures/PNChannelGroupTests.bundle/testChannelGroupRemoveAll.plist deleted file mode 100644 index 3224aa005..000000000 --- a/Tests/iOS Tests/Fixtures/PNChannelGroupTests.bundle/testChannelGroupRemoveAll.plist +++ /dev/null @@ -1,532 +0,0 @@ - - - - - creationDate - 2019-05-16T07:35:27Z - scenes - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName/remove?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557992127.6787329 - timeoutInterval - 60 - uniqueIdentifier - CEB16413-DB76-4004-9FE6-424A9CE73189 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName/remove?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557992127.67907 - timeoutInterval - 60 - uniqueIdentifier - CEB16413-DB76-4004-9FE6-424A9CE73189 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName/remove?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET, DELETE, OPTIONS - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 16 May 2019 07:35:27 GMT - Server - Pubnub - - class - BKRResponseFrame - creationDate - 1557992127.9209461 - statusCode - 200 - uniqueIdentifier - CEB16413-DB76-4004-9FE6-424A9CE73189 - - - class - BKRDataFrame - creationDate - 1557992127.920979 - data - - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjog - Ik9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1y - ZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - - uniqueIdentifier - CEB16413-DB76-4004-9FE6-424A9CE73189 - - - uniqueIdentifier - CEB16413-DB76-4004-9FE6-424A9CE73189 - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&add=a,c&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&l_cg=0.0604369640&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557992127.922174 - timeoutInterval - 60 - uniqueIdentifier - B267105D-1F7C-4D76-82D6-51AB4B34017F - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&add=a,c&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&l_cg=0.0604369640&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557992127.9223919 - timeoutInterval - 60 - uniqueIdentifier - B267105D-1F7C-4D76-82D6-51AB4B34017F - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&add=a,c&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&l_cg=0.0604369640&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET, DELETE, OPTIONS - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 16 May 2019 07:35:27 GMT - Server - Pubnub - - class - BKRResponseFrame - creationDate - 1557992128.0141401 - statusCode - 200 - uniqueIdentifier - B267105D-1F7C-4D76-82D6-51AB4B34017F - - - class - BKRDataFrame - creationDate - 1557992128.0141978 - data - - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjog - Ik9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1y - ZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - - uniqueIdentifier - B267105D-1F7C-4D76-82D6-51AB4B34017F - - - uniqueIdentifier - B267105D-1F7C-4D76-82D6-51AB4B34017F - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName/remove?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&l_cg=0.0758599043&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557992128.015502 - timeoutInterval - 60 - uniqueIdentifier - 74FEF6ED-E5D5-4778-A2EB-EFA460CE8DA8 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName/remove?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&l_cg=0.0758599043&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557992128.015758 - timeoutInterval - 60 - uniqueIdentifier - 74FEF6ED-E5D5-4778-A2EB-EFA460CE8DA8 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName/remove?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&l_cg=0.0758599043&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET, DELETE, OPTIONS - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 16 May 2019 07:35:28 GMT - Server - Pubnub - - class - BKRResponseFrame - creationDate - 1557992128.098397 - statusCode - 200 - uniqueIdentifier - 74FEF6ED-E5D5-4778-A2EB-EFA460CE8DA8 - - - class - BKRDataFrame - creationDate - 1557992128.0984271 - data - - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjog - Ik9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1y - ZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - - uniqueIdentifier - 74FEF6ED-E5D5-4778-A2EB-EFA460CE8DA8 - - - uniqueIdentifier - 74FEF6ED-E5D5-4778-A2EB-EFA460CE8DA8 - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName/remove?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&l_cg=0.0778726737&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557992128.112658 - timeoutInterval - 60 - uniqueIdentifier - E6AEAF92-F94B-4076-8251-A17FCC4516D5 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName/remove?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&l_cg=0.0778726737&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557992128.1127019 - timeoutInterval - 60 - uniqueIdentifier - E6AEAF92-F94B-4076-8251-A17FCC4516D5 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName/remove?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&l_cg=0.0778726737&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557992128.1149821 - timeoutInterval - 60 - uniqueIdentifier - E6AEAF92-F94B-4076-8251-A17FCC4516D5 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName/remove?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&l_cg=0.0778726737&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET, DELETE, OPTIONS - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 16 May 2019 07:35:28 GMT - Server - Pubnub - - class - BKRResponseFrame - creationDate - 1557992128.1716142 - statusCode - 200 - uniqueIdentifier - E6AEAF92-F94B-4076-8251-A17FCC4516D5 - - - class - BKRDataFrame - creationDate - 1557992128.1716599 - data - - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjog - Ik9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1y - ZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - - uniqueIdentifier - E6AEAF92-F94B-4076-8251-A17FCC4516D5 - - - uniqueIdentifier - E6AEAF92-F94B-4076-8251-A17FCC4516D5 - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNChannelGroupTests.bundle/testChannelsForGroup.plist b/Tests/iOS Tests/Fixtures/PNChannelGroupTests.bundle/testChannelsForGroup.plist deleted file mode 100644 index cfa251779..000000000 --- a/Tests/iOS Tests/Fixtures/PNChannelGroupTests.bundle/testChannelsForGroup.plist +++ /dev/null @@ -1,534 +0,0 @@ - - - - - creationDate - 2019-05-16T07:35:28Z - scenes - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName/remove?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557992128.1882839 - timeoutInterval - 60 - uniqueIdentifier - EAD110B9-7682-41FB-9CA8-2DF98570DC9E - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName/remove?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557992128.188314 - timeoutInterval - 60 - uniqueIdentifier - EAD110B9-7682-41FB-9CA8-2DF98570DC9E - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName/remove?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557992128.1887689 - timeoutInterval - 60 - uniqueIdentifier - EAD110B9-7682-41FB-9CA8-2DF98570DC9E - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName/remove?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET, DELETE, OPTIONS - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 16 May 2019 07:35:28 GMT - Server - Pubnub - - class - BKRResponseFrame - creationDate - 1557992128.499409 - statusCode - 200 - uniqueIdentifier - EAD110B9-7682-41FB-9CA8-2DF98570DC9E - - - class - BKRDataFrame - creationDate - 1557992128.499445 - data - - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjog - Ik9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1y - ZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - - uniqueIdentifier - EAD110B9-7682-41FB-9CA8-2DF98570DC9E - - - uniqueIdentifier - EAD110B9-7682-41FB-9CA8-2DF98570DC9E - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&add=a,c&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&l_cg=0.0840082169&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557992128.5005941 - timeoutInterval - 60 - uniqueIdentifier - 48748897-D7D4-45DE-89D0-B27ED7CB436F - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&add=a,c&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&l_cg=0.0840082169&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557992128.500797 - timeoutInterval - 60 - uniqueIdentifier - 48748897-D7D4-45DE-89D0-B27ED7CB436F - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&add=a,c&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&l_cg=0.0840082169&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET, DELETE, OPTIONS - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 16 May 2019 07:35:28 GMT - Server - Pubnub - - class - BKRResponseFrame - creationDate - 1557992128.561213 - statusCode - 200 - uniqueIdentifier - 48748897-D7D4-45DE-89D0-B27ED7CB436F - - - class - BKRDataFrame - creationDate - 1557992128.5612631 - data - - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjog - Ik9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1y - ZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - - uniqueIdentifier - 48748897-D7D4-45DE-89D0-B27ED7CB436F - - - uniqueIdentifier - 48748897-D7D4-45DE-89D0-B27ED7CB436F - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&l_cg=0.0719752312&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557992128.56229 - timeoutInterval - 60 - uniqueIdentifier - 8A41CB55-7985-480C-91C7-D14E82E94156 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&l_cg=0.0719752312&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557992128.56248 - timeoutInterval - 60 - uniqueIdentifier - 8A41CB55-7985-480C-91C7-D14E82E94156 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&l_cg=0.0719752312&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET, DELETE, OPTIONS - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 135 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 16 May 2019 07:35:28 GMT - Server - Pubnub - - class - BKRResponseFrame - creationDate - 1557992128.640758 - statusCode - 200 - uniqueIdentifier - 8A41CB55-7985-480C-91C7-D14E82E94156 - - - class - BKRDataFrame - creationDate - 1557992128.640795 - data - - eyJzdGF0dXMiOiAyMDAsICJwYXlsb2FkIjog - eyJjaGFubmVscyI6IFsiYSIsICJjIl0sICJn - cm91cCI6ICJQTkNoYW5uZWxHcm91cFRlc3Rz - TmFtZSJ9LCAic2VydmljZSI6ICJjaGFubmVs - LXJlZ2lzdHJ5IiwgImVycm9yIjogZmFsc2V9 - - uniqueIdentifier - 8A41CB55-7985-480C-91C7-D14E82E94156 - - - uniqueIdentifier - 8A41CB55-7985-480C-91C7-D14E82E94156 - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName/remove?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&l_cg=0.0739471912&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557992128.642148 - timeoutInterval - 60 - uniqueIdentifier - 16552C4C-940B-4553-A95F-66B8D785E6D3 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName/remove?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&l_cg=0.0739471912&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557992128.642339 - timeoutInterval - 60 - uniqueIdentifier - 16552C4C-940B-4553-A95F-66B8D785E6D3 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName/remove?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&l_cg=0.0739471912&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET, DELETE, OPTIONS - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 16 May 2019 07:35:28 GMT - Server - Pubnub - - class - BKRResponseFrame - creationDate - 1557992128.7334819 - statusCode - 200 - uniqueIdentifier - 16552C4C-940B-4553-A95F-66B8D785E6D3 - - - class - BKRDataFrame - creationDate - 1557992128.7335291 - data - - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjog - Ik9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1y - ZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - - uniqueIdentifier - 16552C4C-940B-4553-A95F-66B8D785E6D3 - - - uniqueIdentifier - 16552C4C-940B-4553-A95F-66B8D785E6D3 - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNChannelGroupTests.bundle/testRemoveSpecificChannelsFromGroup.plist b/Tests/iOS Tests/Fixtures/PNChannelGroupTests.bundle/testRemoveSpecificChannelsFromGroup.plist deleted file mode 100644 index f9c902e96..000000000 --- a/Tests/iOS Tests/Fixtures/PNChannelGroupTests.bundle/testRemoveSpecificChannelsFromGroup.plist +++ /dev/null @@ -1,501 +0,0 @@ - - - - - creationDate - 2019-05-16T07:35:28Z - scenes - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName/remove?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557992128.7450771 - timeoutInterval - 60 - uniqueIdentifier - F01C441C-A873-4279-9A34-78F4CACA1739 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName/remove?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557992128.7452688 - timeoutInterval - 60 - uniqueIdentifier - F01C441C-A873-4279-9A34-78F4CACA1739 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName/remove?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET, DELETE, OPTIONS - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 16 May 2019 07:35:29 GMT - Server - Pubnub - - class - BKRResponseFrame - creationDate - 1557992129.029613 - statusCode - 200 - uniqueIdentifier - F01C441C-A873-4279-9A34-78F4CACA1739 - - - class - BKRDataFrame - creationDate - 1557992129.029644 - data - - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjog - Ik9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1y - ZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - - uniqueIdentifier - F01C441C-A873-4279-9A34-78F4CACA1739 - - - uniqueIdentifier - F01C441C-A873-4279-9A34-78F4CACA1739 - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&add=a,c&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&l_cg=0.1016268730&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557992129.0307331 - timeoutInterval - 60 - uniqueIdentifier - BF9AB61C-5BC0-4ABE-86ED-AD07BC7A379A - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&add=a,c&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&l_cg=0.1016268730&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557992129.0310102 - timeoutInterval - 60 - uniqueIdentifier - BF9AB61C-5BC0-4ABE-86ED-AD07BC7A379A - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&add=a,c&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&l_cg=0.1016268730&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET, DELETE, OPTIONS - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 16 May 2019 07:35:29 GMT - Server - Pubnub - - class - BKRResponseFrame - creationDate - 1557992129.088752 - statusCode - 200 - uniqueIdentifier - BF9AB61C-5BC0-4ABE-86ED-AD07BC7A379A - - - class - BKRDataFrame - creationDate - 1557992129.0887852 - data - - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjog - Ik9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1y - ZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - - uniqueIdentifier - BF9AB61C-5BC0-4ABE-86ED-AD07BC7A379A - - - uniqueIdentifier - BF9AB61C-5BC0-4ABE-86ED-AD07BC7A379A - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName?remove=a&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&l_cg=0.0794780254&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557992129.0899758 - timeoutInterval - 60 - uniqueIdentifier - 8A097ED3-AB50-4747-8152-EB8CCD1B95DE - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName?remove=a&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&l_cg=0.0794780254&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557992129.0901809 - timeoutInterval - 60 - uniqueIdentifier - 8A097ED3-AB50-4747-8152-EB8CCD1B95DE - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName?remove=a&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&l_cg=0.0794780254&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET, DELETE, OPTIONS - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 16 May 2019 07:35:29 GMT - Server - Pubnub - - class - BKRResponseFrame - creationDate - 1557992129.1649399 - statusCode - 200 - uniqueIdentifier - 8A097ED3-AB50-4747-8152-EB8CCD1B95DE - - - class - BKRDataFrame - creationDate - 1557992129.1650341 - data - - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjog - Ik9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1y - ZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - - uniqueIdentifier - 8A097ED3-AB50-4747-8152-EB8CCD1B95DE - - - uniqueIdentifier - 8A097ED3-AB50-4747-8152-EB8CCD1B95DE - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName/remove?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&l_cg=0.0777376493&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557992129.1663771 - timeoutInterval - 60 - uniqueIdentifier - 5D39BDDB-19E5-4681-90D8-CAD4825FAE6C - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName/remove?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&l_cg=0.0777376493&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557992129.1665921 - timeoutInterval - 60 - uniqueIdentifier - 5D39BDDB-19E5-4681-90D8-CAD4825FAE6C - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/rsub-c-00000000-0000-0000-0000-000000000000/channel-group/PNChannelGroupTestsName/remove?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&l_cg=0.0777376493&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET, DELETE, OPTIONS - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 16 May 2019 07:35:29 GMT - Server - Pubnub - - class - BKRResponseFrame - creationDate - 1557992129.2252941 - statusCode - 200 - uniqueIdentifier - 5D39BDDB-19E5-4681-90D8-CAD4825FAE6C - - - class - BKRDataFrame - creationDate - 1557992129.225322 - data - - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjog - Ik9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1y - ZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - - uniqueIdentifier - 5D39BDDB-19E5-4681-90D8-CAD4825FAE6C - - - uniqueIdentifier - 5D39BDDB-19E5-4681-90D8-CAD4825FAE6C - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNChannelGroupUnsubscribeTests.bundle/testSimpleUnsubscribeWithNoPresence.plist b/Tests/iOS Tests/Fixtures/PNChannelGroupUnsubscribeTests.bundle/testSimpleUnsubscribeWithNoPresence.plist deleted file mode 100755 index 7a23c6ebf..000000000 --- a/Tests/iOS Tests/Fixtures/PNChannelGroupUnsubscribeTests.bundle/testSimpleUnsubscribeWithNoPresence.plist +++ /dev/null @@ -1,656 +0,0 @@ - - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJhY3Rpb24iOiAibGVhdmUiLCAibWVzc2FnZSI6ICJPSyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - action - leave - message - OK - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNChannelGroupUnsubscribeTests/leave?channel-group=PNChannelGroupUnsubscribeTests&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNChannelGroupUnsubscribeTests/leave?channel-group=PNChannelGroupUnsubscribeTests&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNChannelGroupUnsubscribeTests/leave?channel-group=PNChannelGroupUnsubscribeTests&pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 74 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 21:28:01 GMT - Server - Pubnub Presence - - expectedContentLength - 74 - statusCode - 200 - suggestedFileName - leave.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - json - - error - - message - OK - service - channel-registry - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupUnsubscribeTests/remove?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupUnsubscribeTests/remove?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupUnsubscribeTests/remove?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 21:27:59 GMT - Server - Pubnub - - expectedContentLength - 79 - statusCode - 200 - suggestedFileName - remove.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODE5NjgwODM2ODc1NCIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MTk2ODA4MzY3NzkxIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqLi4uLi4uLiA4NDQ5IC0gMjAxNS0xMi0yMiAxMzoyODowMCIsImIiOiJQTkNoYW5uZWxHcm91cFVuc3Vic2NyaWJlVGVzdHMifV19 - json - - m - - - a - 4 - b - PNChannelGroupUnsubscribeTests - c - a - d - ********....... 8449 - 2015-12-22 13:28:00 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508196808367791 - - - - t - - r - 56 - t - 14508196808368754 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508196796692323&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupUnsubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508196796692323&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupUnsubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=PNChannelGroupUnsubscribeTests&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508196796692323&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 207 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 21:28:00 GMT - - expectedContentLength - 207 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - json - - error - - message - OK - service - channel-registry - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupUnsubscribeTests?add=a%2Cb&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupUnsubscribeTests?add=a%2Cb&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupUnsubscribeTests?pnsdk=PubNub-ObjC-iOS%2F4.2.3&add=a,b&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 21:27:59 GMT - Server - Pubnub - - expectedContentLength - 79 - statusCode - 200 - suggestedFileName - PNChannelGroupUnsubscribeTests.js - textEncodingName - "utf-8" - - - - - cancelled - - error - - code - -999 - description - The operation couldn’t be completed. (NSURLErrorDomain error -999.) - domain - NSURLErrorDomain - userInfo - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508196808368754&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupUnsubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508196808368754&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupUnsubscribeTests - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODE5Njc5NjY5MjMyMyIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508196796692323 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo/,/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&channel-group=PNChannelGroupUnsubscribeTests&tt=0&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&channel-group=PNChannelGroupUnsubscribeTests&tt=0&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=PNChannelGroupUnsubscribeTests&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 21:27:59 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNChannelGroupUnsubscribeTests.bundle/testSimpleUnsubscribeWithPresence.plist b/Tests/iOS Tests/Fixtures/PNChannelGroupUnsubscribeTests.bundle/testSimpleUnsubscribeWithPresence.plist deleted file mode 100755 index 329177db0..000000000 --- a/Tests/iOS Tests/Fixtures/PNChannelGroupUnsubscribeTests.bundle/testSimpleUnsubscribeWithPresence.plist +++ /dev/null @@ -1,656 +0,0 @@ - - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODE5NjgxMDM5NTUyNiIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508196810395526 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&channel-group=PNChannelGroupUnsubscribeTests%2CPNChannelGroupUnsubscribeTests-pnpres&tt=0&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&channel-group=PNChannelGroupUnsubscribeTests%2CPNChannelGroupUnsubscribeTests-pnpres&tt=0&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo/,/0?channel-group=PNChannelGroupUnsubscribeTests,PNChannelGroupUnsubscribeTests-pnpres&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 21:28:01 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - error - - code - -999 - description - The operation couldn’t be completed. (NSURLErrorDomain error -999.) - domain - NSURLErrorDomain - userInfo - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508196820037642&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupUnsubscribeTests%2CPNChannelGroupUnsubscribeTests-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508196820037642&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupUnsubscribeTests%2CPNChannelGroupUnsubscribeTests-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - json - - error - - message - OK - service - channel-registry - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupUnsubscribeTests?add=a%2Cb&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupUnsubscribeTests?add=a%2Cb&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupUnsubscribeTests?pnsdk=PubNub-ObjC-iOS%2F4.2.3&add=a,b&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 21:28:01 GMT - Server - Pubnub - - expectedContentLength - 79 - statusCode - 200 - suggestedFileName - PNChannelGroupUnsubscribeTests.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJhY3Rpb24iOiAibGVhdmUiLCAibWVzc2FnZSI6ICJPSyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - action - leave - message - OK - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNChannelGroupUnsubscribeTests/leave?channel-group=PNChannelGroupUnsubscribeTests&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNChannelGroupUnsubscribeTests/leave?channel-group=PNChannelGroupUnsubscribeTests&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNChannelGroupUnsubscribeTests/leave?channel-group=PNChannelGroupUnsubscribeTests&pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 1 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 74 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 21:28:02 GMT - Server - Pubnub Presence - - expectedContentLength - 74 - statusCode - 200 - suggestedFileName - leave.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - json - - error - - message - OK - service - channel-registry - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupUnsubscribeTests/remove?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupUnsubscribeTests/remove?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNChannelGroupUnsubscribeTests/remove?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 21:28:01 GMT - Server - Pubnub - - expectedContentLength - 79 - statusCode - 200 - suggestedFileName - remove.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODE5NjgyMDAzNzY0MiIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MTk2ODIwMDM2NTMxIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKi4uLi4uLiA4NDUwIC0gMjAxNS0xMi0yMiAxMzoyODowMSIsImIiOiJQTkNoYW5uZWxHcm91cFVuc3Vic2NyaWJlVGVzdHMifV19 - json - - m - - - a - 4 - b - PNChannelGroupUnsubscribeTests - c - a - d - *********...... 8450 - 2015-12-22 13:28:01 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508196820036531 - - - - t - - r - 56 - t - 14508196820037642 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508196810395526&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupUnsubscribeTests%2CPNChannelGroupUnsubscribeTests-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508196810395526&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNChannelGroupUnsubscribeTests%2CPNChannelGroupUnsubscribeTests-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=PNChannelGroupUnsubscribeTests,PNChannelGroupUnsubscribeTests-pnpres&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508196810395526&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 207 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 21:28:02 GMT - - expectedContentLength - 207 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNClientConfigurationTests.bundle/testCopyConfigurationWithSubscribedChannels.plist b/Tests/iOS Tests/Fixtures/PNClientConfigurationTests.bundle/testCopyConfigurationWithSubscribedChannels.plist deleted file mode 100755 index 3b26a1c25..000000000 --- a/Tests/iOS Tests/Fixtures/PNClientConfigurationTests.bundle/testCopyConfigurationWithSubscribedChannels.plist +++ /dev/null @@ -1,426 +0,0 @@ - - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODEwNTM1NTY3MjQxMyIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508105355672413 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo/a/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 18:55:36 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODEwNTM2NzM2MjEzMiIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MTA1MzY3MzYxMjU4IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqKi4uLiA2NjggLSAyMDE1LTEyLTIyIDEwOjU1OjM2In1dfQ== - json - - m - - - a - 4 - c - a - d - ************... 668 - 2015-12-22 10:55:36 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508105367361258 - - - - t - - r - 56 - t - 14508105367362132 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?tt=14508105355672413&pnsdk=PubNub-ObjC-iOS%2F4.3.3&tr=56&uuid=changed&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?tt=14508105355672413&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=changed&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?uuid=changed&pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=14508105355672413 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 169 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 18:55:36 GMT - - expectedContentLength - 169 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJhY3Rpb24iOiAibGVhdmUiLCAibWVzc2FnZSI6ICJPSyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - action - leave - message - OK - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/a/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/a/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/a/leave?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 74 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 18:55:36 GMT - Server - Pubnub Presence - - expectedContentLength - 74 - statusCode - 200 - suggestedFileName - leave.js - textEncodingName - "utf-8" - - - - - cancelled - - error - - code - -999 - description - The operation couldn’t be completed. (NSURLErrorDomain error -999.) - domain - NSURLErrorDomain - userInfo - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?tt=14508105355672413&pnsdk=PubNub-ObjC-iOS%2F4.3.3&tr=56&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?tt=14508105355672413&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNClientConfigurationTests.bundle/testCopyConfigurationWithSubscribedChannelsAndCallbackQueue.plist b/Tests/iOS Tests/Fixtures/PNClientConfigurationTests.bundle/testCopyConfigurationWithSubscribedChannelsAndCallbackQueue.plist deleted file mode 100755 index aedbbcfa2..000000000 --- a/Tests/iOS Tests/Fixtures/PNClientConfigurationTests.bundle/testCopyConfigurationWithSubscribedChannelsAndCallbackQueue.plist +++ /dev/null @@ -1,426 +0,0 @@ - - - - - - cancelled - - error - - code - -999 - description - The operation couldn’t be completed. (NSURLErrorDomain error -999.) - domain - NSURLErrorDomain - userInfo - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?tt=14508105367362132&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?tt=14508105367362132&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODEwNTM3OTA4Mzk2OCIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MTA1Mzc5MDgyMTAwIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqKiouLiA2NjkgLSAyMDE1LTEyLTIyIDEwOjU1OjM3In1dfQ== - json - - m - - - a - 4 - c - a - d - *************.. 669 - 2015-12-22 10:55:37 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508105379082100 - - - - t - - r - 56 - t - 14508105379083968 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?tt=14508105367362132&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=changed&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?tt=14508105367362132&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=changed&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?uuid=changed&pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=14508105367362132 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 169 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 18:55:37 GMT - - expectedContentLength - 169 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODEwNTM2NzM2MjEzMiIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508105367362132 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo/a/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 18:55:37 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJhY3Rpb24iOiAibGVhdmUiLCAibWVzc2FnZSI6ICJPSyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - action - leave - message - OK - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/a/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/a/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/a/leave?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 1 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 74 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 18:55:37 GMT - Server - Pubnub Presence - - expectedContentLength - 74 - statusCode - 200 - suggestedFileName - leave.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNClientConfigurationTests.bundle/testCreateClientWithBasicConfiguration.plist b/Tests/iOS Tests/Fixtures/PNClientConfigurationTests.bundle/testCreateClientWithBasicConfiguration.plist deleted file mode 100755 index 694bed72e..000000000 --- a/Tests/iOS Tests/Fixtures/PNClientConfigurationTests.bundle/testCreateClientWithBasicConfiguration.plist +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNClientConfigurationTests.bundle/testCreateClientWithCallbackQueue.plist b/Tests/iOS Tests/Fixtures/PNClientConfigurationTests.bundle/testCreateClientWithCallbackQueue.plist deleted file mode 100755 index 694bed72e..000000000 --- a/Tests/iOS Tests/Fixtures/PNClientConfigurationTests.bundle/testCreateClientWithCallbackQueue.plist +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNClientConfigurationTests.bundle/testSimpleCopyConfigurationWithNoSubscriptionAndCallbackQueue.plist b/Tests/iOS Tests/Fixtures/PNClientConfigurationTests.bundle/testSimpleCopyConfigurationWithNoSubscriptionAndCallbackQueue.plist deleted file mode 100755 index 694bed72e..000000000 --- a/Tests/iOS Tests/Fixtures/PNClientConfigurationTests.bundle/testSimpleCopyConfigurationWithNoSubscriptionAndCallbackQueue.plist +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNClientConfigurationTests.bundle/testSimpleCopyConfigurationWithNoSubscriptions.plist b/Tests/iOS Tests/Fixtures/PNClientConfigurationTests.bundle/testSimpleCopyConfigurationWithNoSubscriptions.plist deleted file mode 100755 index 694bed72e..000000000 --- a/Tests/iOS Tests/Fixtures/PNClientConfigurationTests.bundle/testSimpleCopyConfigurationWithNoSubscriptions.plist +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNClientStateChannelGroupTests.bundle/testSetClientStateOnNotExistingChannelGroup.plist b/Tests/iOS Tests/Fixtures/PNClientStateChannelGroupTests.bundle/testSetClientStateOnNotExistingChannelGroup.plist deleted file mode 100755 index 4d663f503..000000000 --- a/Tests/iOS Tests/Fixtures/PNClientStateChannelGroupTests.bundle/testSetClientStateOnNotExistingChannelGroup.plist +++ /dev/null @@ -1,346 +0,0 @@ - - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - json - - error - - message - OK - service - channel-registry - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNClientStateChannelGroupTests/remove?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNClientStateChannelGroupTests/remove?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNClientStateChannelGroupTests/remove?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 19:43:55 GMT - Server - Pubnub - - expectedContentLength - 79 - statusCode - 200 - suggestedFileName - remove.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiA0MDAsICJtZXNzYWdlIjogIk5vIHZhbGlkIGNoYW5uZWxzIHNwZWNpZmllZCIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - message - No valid channels specified - service - Presence - status - 400 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo/channel/,/uuid/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/data?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&channel-group=42&pnsdk=PubNub-ObjC-iOS%2F4.3.3&state=%7B%22test%22%3A%22test%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/,/uuid/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/data?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&channel-group=42&pnsdk=PubNub-ObjC-iOS%2F4.3.3&state=%7B%22test%22%3A%22test%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/,/uuid/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/data?channel-group=42&pnsdk=PubNub-ObjC-iOS%2F4.2.3&state=%7B%22test%22%3A%22test%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 80 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 19:43:55 GMT - Server - Pubnub Presence - - expectedContentLength - 80 - statusCode - 200 - suggestedFileName - data.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - json - - error - - message - OK - service - channel-registry - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNClientStateChannelGroupTests/remove?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNClientStateChannelGroupTests/remove?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNClientStateChannelGroupTests/remove?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 19:43:55 GMT - Server - Pubnub - - expectedContentLength - 79 - statusCode - 200 - suggestedFileName - remove.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNClientStateChannelGroupTests.bundle/testSetClientStateOnSubscribedChannelGroup.plist b/Tests/iOS Tests/Fixtures/PNClientStateChannelGroupTests.bundle/testSetClientStateOnSubscribedChannelGroup.plist deleted file mode 100755 index 78372634b..000000000 --- a/Tests/iOS Tests/Fixtures/PNClientStateChannelGroupTests.bundle/testSetClientStateOnSubscribedChannelGroup.plist +++ /dev/null @@ -1,719 +0,0 @@ - - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - json - - error - - message - OK - service - channel-registry - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo/channel-group/PNClientStateChannelGroupTests?add=a%2Cb&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNClientStateChannelGroupTests?add=a%2Cb&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNClientStateChannelGroupTests?pnsdk=PubNub-ObjC-iOS%2F4.2.3&add=a,b&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 19:43:55 GMT - Server - Pubnub - - expectedContentLength - 79 - statusCode - 200 - suggestedFileName - PNClientStateChannelGroupTests.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODEzNDM1ODcwNjU1OSIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MTM0MzU4NzA1NDYzIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJiLXBucHJlcyIsImQiOnsiYWN0aW9uIjogInN0YXRlLWNoYW5nZSIsICJ0aW1lc3RhbXAiOiAxNDUwODEzNDM1LCAiZGF0YSI6IHsidGVzdCI6ICJ0ZXN0In0sICJ1dWlkIjogIjMyMkE3MEIzLUYwRUEtNDhDRC05QkIwLUQzRjBGNURFOTk2QyIsICJvY2N1cGFuY3kiOiAwfSwiYiI6IlBOQ2xpZW50U3RhdGVDaGFubmVsR3JvdXBUZXN0cy1wbnByZXMifV19 - json - - m - - - a - 4 - b - PNClientStateChannelGroupTests-pnpres - c - b-pnpres - d - - action - state-change - data - - test - test - - occupancy - 0 - timestamp - 1450813435 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508134358705463 - - - - t - - r - 56 - t - 14508134358706559 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&channel-group=PNClientStateChannelGroupTests%2CPNClientStateChannelGroupTests-pnpres&tt=14508134350376968&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&channel-group=PNClientStateChannelGroupTests%2CPNClientStateChannelGroupTests-pnpres&tt=14508134350376968&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=PNClientStateChannelGroupTests,PNClientStateChannelGroupTests-pnpres&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508134350376968&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 318 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 19:43:55 GMT - - expectedContentLength - 318 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - json - - error - - message - OK - service - channel-registry - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNClientStateChannelGroupTests/remove?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNClientStateChannelGroupTests/remove?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNClientStateChannelGroupTests/remove?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 1 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 19:43:55 GMT - Server - Pubnub - - expectedContentLength - 79 - statusCode - 200 - suggestedFileName - remove.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODEzNDM1MDM3Njk2OCIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508134350376968 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&channel-group=PNClientStateChannelGroupTests%2CPNClientStateChannelGroupTests-pnpres&tt=0&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&channel-group=PNClientStateChannelGroupTests%2CPNClientStateChannelGroupTests-pnpres&tt=0&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=PNClientStateChannelGroupTests,PNClientStateChannelGroupTests-pnpres&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 19:43:55 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - json - - error - - message - OK - service - channel-registry - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNClientStateChannelGroupTests/remove?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNClientStateChannelGroupTests/remove?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNClientStateChannelGroupTests/remove?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 19:43:55 GMT - Server - Pubnub - - expectedContentLength - 79 - statusCode - 200 - suggestedFileName - remove.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7InRlc3QiOiAidGVzdCJ9LCAic2VydmljZSI6ICJQcmVzZW5jZSJ9 - json - - message - OK - payload - - test - test - - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/,/uuid/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/data?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&channel-group=PNClientStateChannelGroupTests&pnsdk=PubNub-ObjC-iOS%2F4.3.3&state=%7B%22test%22%3A%22test%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/,/uuid/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/data?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&channel-group=PNClientStateChannelGroupTests&pnsdk=PubNub-ObjC-iOS%2F4.3.3&state=%7B%22test%22%3A%22test%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/,/uuid/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/data?channel-group=PNClientStateChannelGroupTests&pnsdk=PubNub-ObjC-iOS%2F4.2.3&state=%7B%22test%22%3A%22test%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 84 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 19:43:55 GMT - Server - Pubnub Presence - - expectedContentLength - 84 - statusCode - 200 - suggestedFileName - data.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNClientStateChannelGroupTests.bundle/testStateForUUIDOnNonExistentChannelGroup.plist b/Tests/iOS Tests/Fixtures/PNClientStateChannelGroupTests.bundle/testStateForUUIDOnNonExistentChannelGroup.plist deleted file mode 100755 index 88f64757f..000000000 --- a/Tests/iOS Tests/Fixtures/PNClientStateChannelGroupTests.bundle/testStateForUUIDOnNonExistentChannelGroup.plist +++ /dev/null @@ -1,414 +0,0 @@ - - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - json - - error - - message - OK - service - channel-registry - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNClientStateChannelGroupTests/remove?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNClientStateChannelGroupTests/remove?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo/channel-group/PNClientStateChannelGroupTests/remove?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 1 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 19:43:56 GMT - Server - Pubnub - - expectedContentLength - 79 - statusCode - 200 - suggestedFileName - remove.js - textEncodingName - "utf-8" - - - - - cancelled - - error - - code - -999 - description - The operation couldn’t be completed. (NSURLErrorDomain error -999.) - domain - NSURLErrorDomain - userInfo - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508134358706559&state=%7B%22PNClientStateChannelGroupTests%22%3A%7B%22test%22%3A%22test%22%7D%7D&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNClientStateChannelGroupTests%2CPNClientStateChannelGroupTests-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508134358706559&state=%7B%22PNClientStateChannelGroupTests%22%3A%7B%22test%22%3A%22test%22%7D%7D&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=PNClientStateChannelGroupTests%2CPNClientStateChannelGroupTests-pnpres - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiA0MDAsICJtZXNzYWdlIjogIk5vIHZhbGlkIGNoYW5uZWxzIHNwZWNpZmllZCIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - message - No valid channels specified - service - Presence - status - 400 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/,/uuid/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C?channel-group=42&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/,/uuid/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C?channel-group=42&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/,/uuid/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C?channel-group=42&pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 80 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 19:43:56 GMT - Server - Pubnub Presence - - expectedContentLength - 80 - statusCode - 200 - suggestedFileName - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - json - - error - - message - OK - service - channel-registry - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNClientStateChannelGroupTests/remove?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNClientStateChannelGroupTests/remove?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNClientStateChannelGroupTests/remove?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 1 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 19:43:56 GMT - Server - Pubnub - - expectedContentLength - 79 - statusCode - 200 - suggestedFileName - remove.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNClientStateChannelGroupTests.bundle/testStateForUUIDOnSubscribedChannelGroup.plist b/Tests/iOS Tests/Fixtures/PNClientStateChannelGroupTests.bundle/testStateForUUIDOnSubscribedChannelGroup.plist deleted file mode 100755 index 994510005..000000000 --- a/Tests/iOS Tests/Fixtures/PNClientStateChannelGroupTests.bundle/testStateForUUIDOnSubscribedChannelGroup.plist +++ /dev/null @@ -1,587 +0,0 @@ - - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - json - - error - - message - OK - service - channel-registry - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNClientStateChannelGroupTests?add=a%2Cb&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNClientStateChannelGroupTests?add=a%2Cb&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNClientStateChannelGroupTests?pnsdk=PubNub-ObjC-iOS%2F4.2.3&add=a,b&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 1 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 19:43:56 GMT - Server - Pubnub - - expectedContentLength - 79 - statusCode - 200 - suggestedFileName - PNClientStateChannelGroupTests.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWxzIjogeyJhIjogeyJ0ZXN0IjogInRlc3QifSwgImIiOiB7InRlc3QiOiAidGVzdCJ9fX0sICJzZXJ2aWNlIjogIlByZXNlbmNlIiwgInV1aWQiOiAiMzIyQTcwQjMtRjBFQS00OENELTlCQjAtRDNGMEY1REU5OTZDIn0= - json - - message - OK - payload - - channels - - a - - test - test - - b - - test - test - - - - service - Presence - status - 200 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/,/uuid/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C?channel-group=PNClientStateChannelGroupTests&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/,/uuid/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C?channel-group=PNClientStateChannelGroupTests&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/,/uuid/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C?channel-group=PNClientStateChannelGroupTests&pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 176 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 19:43:56 GMT - Server - Pubnub Presence - - expectedContentLength - 176 - statusCode - 200 - suggestedFileName - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - json - - error - - message - OK - service - channel-registry - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNClientStateChannelGroupTests/remove?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNClientStateChannelGroupTests/remove?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNClientStateChannelGroupTests/remove?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 19:43:56 GMT - Server - Pubnub - - expectedContentLength - 79 - statusCode - 200 - suggestedFileName - remove.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODEzNDM2MjA4NzkzNiIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508134362087936 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&channel-group=PNClientStateChannelGroupTests%2CPNClientStateChannelGroupTests-pnpres&tt=0&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&channel-group=PNClientStateChannelGroupTests%2CPNClientStateChannelGroupTests-pnpres&tt=0&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/,/0?channel-group=PNClientStateChannelGroupTests,PNClientStateChannelGroupTests-pnpres&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 19:43:56 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - json - - error - - message - OK - service - channel-registry - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNClientStateChannelGroupTests/remove?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo/channel-group/PNClientStateChannelGroupTests/remove?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/PNClientStateChannelGroupTests/remove?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 19:43:56 GMT - Server - Pubnub - - expectedContentLength - 79 - statusCode - 200 - suggestedFileName - remove.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNClientStateChannelTests.bundle/testSetClientStateOnNotSubscribedChannel.plist b/Tests/iOS Tests/Fixtures/PNClientStateChannelTests.bundle/testSetClientStateOnNotSubscribedChannel.plist deleted file mode 100755 index b640c31d7..000000000 --- a/Tests/iOS Tests/Fixtures/PNClientStateChannelTests.bundle/testSetClientStateOnNotSubscribedChannel.plist +++ /dev/null @@ -1,414 +0,0 @@ - - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODEzMzU2MTczMTM4MiIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508133561731382 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 19:42:36 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7InRlc3QiOiAidGVzdCJ9LCAic2VydmljZSI6ICJQcmVzZW5jZSJ9 - json - - message - OK - payload - - test - test - - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/21/uuid/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/data?state=%7B%22test%22%3A%22test%22%7D&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo/channel/21/uuid/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/data?state=%7B%22test%22%3A%22test%22%7D&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/21/uuid/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/data?pnsdk=PubNub-ObjC-iOS%2F4.2.3&state=%7B%22test%22%3A%22test%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 84 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 19:42:36 GMT - Server - Pubnub Presence - - expectedContentLength - 84 - statusCode - 200 - suggestedFileName - data.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJhY3Rpb24iOiAibGVhdmUiLCAibWVzc2FnZSI6ICJPSyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - action - leave - message - OK - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/21,a/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/21,a/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/21,a/leave?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 74 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 19:42:37 GMT - Server - Pubnub Presence - - expectedContentLength - 74 - statusCode - 200 - suggestedFileName - leave.js - textEncodingName - "utf-8" - - - - - cancelled - - error - - code - -999 - description - The operation couldn’t be completed. (NSURLErrorDomain error -999.) - domain - NSURLErrorDomain - userInfo - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?tt=14508133561731382&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?tt=14508133561731382&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNClientStateChannelTests.bundle/testSetClientStateOnSubscribedChannel.plist b/Tests/iOS Tests/Fixtures/PNClientStateChannelTests.bundle/testSetClientStateOnSubscribedChannel.plist deleted file mode 100755 index 1deaf5f45..000000000 --- a/Tests/iOS Tests/Fixtures/PNClientStateChannelTests.bundle/testSetClientStateOnSubscribedChannel.plist +++ /dev/null @@ -1,543 +0,0 @@ - - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJhY3Rpb24iOiAibGVhdmUiLCAibWVzc2FnZSI6ICJPSyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - action - leave - message - OK - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/21,a/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/21,a/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/21,a/leave?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 74 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 19:42:37 GMT - Server - Pubnub Presence - - expectedContentLength - 74 - statusCode - 200 - suggestedFileName - leave.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODEzMzU2MTczMTM4MiIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508133561731382 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 19:42:37 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7InRlc3QiOiAidGVzdCJ9LCAic2VydmljZSI6ICJQcmVzZW5jZSJ9 - json - - message - OK - payload - - test - test - - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/a/uuid/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/data?state=%7B%22test%22%3A%22test%22%7D&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/a/uuid/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/data?state=%7B%22test%22%3A%22test%22%7D&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/a/uuid/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/data?pnsdk=PubNub-ObjC-iOS%2F4.2.3&state=%7B%22test%22%3A%22test%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 84 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 19:42:37 GMT - Server - Pubnub Presence - - expectedContentLength - 84 - statusCode - 200 - suggestedFileName - data.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODEzMzU3MzQ0OTkwNSIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MTMzNTczNDQ5MTQzIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJhIiwiZCI6IioqKioqKioqKioqKi4uLiAzMDY4IC0gMjAxNS0xMi0yMiAxMTo0MjozNyJ9XX0= - json - - m - - - a - 4 - c - a - d - ************... 3068 - 2015-12-22 11:42:37 - f - 512 - k - demo-36 - p - - r - 56 - t - 14508133573449143 - - - - t - - r - 56 - t - 14508133573449905 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?tt=14508133561731382&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?tt=14508133561731382&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=14508133561731382 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 170 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 19:42:37 GMT - - expectedContentLength - 170 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - error - - code - -999 - description - The operation couldn’t be completed. (NSURLErrorDomain error -999.) - domain - NSURLErrorDomain - userInfo - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?tt=14508133573449905&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo/a/0?tt=14508133573449905&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNClientStateChannelTests.bundle/testStateForUUIDOnSubscribedChannel.plist b/Tests/iOS Tests/Fixtures/PNClientStateChannelTests.bundle/testStateForUUIDOnSubscribedChannel.plist deleted file mode 100755 index b6fde2801..000000000 --- a/Tests/iOS Tests/Fixtures/PNClientStateChannelTests.bundle/testStateForUUIDOnSubscribedChannel.plist +++ /dev/null @@ -1,418 +0,0 @@ - - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODEzMzU3MzQ0OTkwNSIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508133573449905 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 19:42:37 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJhY3Rpb24iOiAibGVhdmUiLCAibWVzc2FnZSI6ICJPSyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - action - leave - message - OK - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/21,a/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/21,a/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/21,a/leave?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 1 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 74 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 19:42:38 GMT - Server - Pubnub Presence - - expectedContentLength - 74 - statusCode - 200 - suggestedFileName - leave.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJ1dWlkIjogIjMyMkE3MEIzLUYwRUEtNDhDRC05QkIwLUQzRjBGNURFOTk2QyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIiwgIm1lc3NhZ2UiOiAiT0siLCAicGF5bG9hZCI6IHsidGVzdCI6ICJ0ZXN0In0sICJjaGFubmVsIjogImEifQ== - json - - channel - a - message - OK - payload - - test - test - - service - Presence - status - 200 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/a/uuid/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo/channel/a/uuid/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/a/uuid/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 148 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 19:42:37 GMT - Server - Pubnub Presence - - expectedContentLength - 148 - statusCode - 200 - suggestedFileName - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C.js - textEncodingName - "utf-8" - - - - - cancelled - - error - - code - -999 - description - The operation couldn’t be completed. (NSURLErrorDomain error -999.) - domain - NSURLErrorDomain - userInfo - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?tt=14508133573449905&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?tt=14508133573449905&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNClientStateChannelTests.bundle/testStateForUUIDOnUnsubscribedChannel.plist b/Tests/iOS Tests/Fixtures/PNClientStateChannelTests.bundle/testStateForUUIDOnUnsubscribedChannel.plist deleted file mode 100755 index c2538c550..000000000 --- a/Tests/iOS Tests/Fixtures/PNClientStateChannelTests.bundle/testStateForUUIDOnUnsubscribedChannel.plist +++ /dev/null @@ -1,418 +0,0 @@ - - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJ1dWlkIjogIjMyMkE3MEIzLUYwRUEtNDhDRC05QkIwLUQzRjBGNURFOTk2QyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIiwgIm1lc3NhZ2UiOiAiT0siLCAicGF5bG9hZCI6IHsidGVzdCI6ICJ0ZXN0In0sICJjaGFubmVsIjogIjIxIn0= - json - - channel - 21 - message - OK - payload - - test - test - - service - Presence - status - 200 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/21/uuid/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/21/uuid/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/21/uuid/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 149 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 19:42:38 GMT - Server - Pubnub Presence - - expectedContentLength - 149 - statusCode - 200 - suggestedFileName - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C.js - textEncodingName - "utf-8" - - - - - cancelled - - error - - code - -999 - description - The operation couldn’t be completed. (NSURLErrorDomain error -999.) - domain - NSURLErrorDomain - userInfo - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?tt=14508133573449905&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?tt=14508133573449905&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJhY3Rpb24iOiAibGVhdmUiLCAibWVzc2FnZSI6ICJPSyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - action - leave - message - OK - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/21,a/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/21,a/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/21,a/leave?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 1 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 74 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 19:42:38 GMT - Server - Pubnub Presence - - expectedContentLength - 74 - statusCode - 200 - suggestedFileName - leave.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODEzMzU3MzQ0OTkwNSIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508133573449905 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo/a/0?tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 19:42:38 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNConfigurationChiperKeyTests.bundle/testHistoryWithChiperKey.plist b/Tests/iOS Tests/Fixtures/PNConfigurationChiperKeyTests.bundle/testHistoryWithChiperKey.plist deleted file mode 100755 index 048dd7013..000000000 --- a/Tests/iOS Tests/Fixtures/PNConfigurationChiperKeyTests.bundle/testHistoryWithChiperKey.plist +++ /dev/null @@ -1,512 +0,0 @@ - - - - - - cancelled - - data - - data - W1t7InRlc3QiOiJ0ZXN0In0sInRlc3QiLHsidGVzdCI6InRlc3QifSwidGVzdCIseyJ0ZXN0IjoidGVzdCJ9LCJ0ZXN0Iix7InRlc3QiOiJ0ZXN0In0sInRlc3QiLHsidGVzdCI6InRlc3QifSwidGVzdCIseyJ0ZXN0IjoidGVzdCJ9LCJ0ZXN0Iix7InRlc3QiOiJ0ZXN0In0sInRlc3QiLHsidGVzdCI6InRlc3QifSwidGVzdCIseyJ0ZXN0IjoidGVzdCJ9LCJ0ZXN0Iix7InRlc3QiOiJ0ZXN0In0sInRlc3QiLHsidGVzdCI6InRlc3QifSx7InRlc3QiOiJ0ZXN0In0sInRlc3QiLHsidGVzdCI6InRlc3QifSwidGVzdCIseyJ0ZXN0IjoidGVzdCJ9LCJ0ZXN0Iix7InRlc3QiOiJ0ZXN0In0sInRlc3QiLHsidGVzdCI6InRlc3QifSwidGVzdCIseyJ0ZXN0IjoidGVzdCJ9LCJ0ZXN0IiwiK0pRM2R2MytUSTl5djhHdTl4bGZBQT09IiwiTlZWaTNQV2lhTnh3d3cwQTZ0a09IZz09Iiwid1JkUEtLWFVjaHdqSzRWMUw0YjlEUT09Il0sMTQzNzYyNzQ5ODEwNDUxODAsMTQ0MjIyNzkyNTUyODY0Mjld - json - - - - test - test - - test - - test - test - - test - - test - test - - test - - test - test - - test - - test - test - - test - - test - test - - test - - test - test - - test - - test - test - - test - - test - test - - test - - test - test - - test - - test - test - - - test - test - - test - - test - test - - test - - test - test - - test - - test - test - - test - - test - test - - test - - test - test - - test - +JQ3dv3+TI9yv8Gu9xlfAA== - NVVi3PWiaNxwww0A6tkOHg== - wRdPKKXUchwjK4V1L4b9DQ== - - 14376274981045180 - 14422279255286429 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/history/sub-key/demo-36/channel/9BA810C6-985D-4797-926F-CC81749CC774?count=100&reverse=false&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&include_token=false - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone Simulator OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/history/sub-key/demo-36/channel/9BA810C6-985D-4797-926F-CC81749CC774?count=100&reverse=false&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&include_token=false - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone Simulator OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/history/sub-key/demo-36/channel/9BA810C6-985D-4797-926F-CC81749CC774?pnsdk=PubNub-ObjC-iOS%2F4.0.4&include_token=false&count=100&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&reverse=false&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 504 - Content-Type - text/javascript; charset="UTF-8" - Date - Mon, 14 Sep 2015 10:56:40 GMT - Server - Pubnub - - expectedContentLength - 504 - statusCode - 200 - suggestedFileName - 9BA810C6-985D-4797-926F-CC81749CC774.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - WzEsIlNlbnQiLCIxNDQyMjI4MjAwNTIyNjc4MSJd - json - - 1 - Sent - 14422282005226781 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/9BA810C6-985D-4797-926F-CC81749CC774/0/%22wRdPKKXUchwjK4V1L4b9DQ%3D%3D%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone Simulator OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/9BA810C6-985D-4797-926F-CC81749CC774/0/%22wRdPKKXUchwjK4V1L4b9DQ%3D%3D%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone Simulator OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/9BA810C6-985D-4797-926F-CC81749CC774/0/%22wRdPKKXUchwjK4V1L4b9DQ%3D%3D%22?pnsdk=PubNub-ObjC-iOS%2F4.0.4&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Mon, 14 Sep 2015 10:56:40 GMT - - expectedContentLength - 30 - statusCode - 200 - suggestedFileName - "wRdPKKXUchwjK4V1L4b9DQ==".js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - WzEsIlNlbnQiLCIxNDQyMjI4MjAwNTI2Mzc2NyJd - json - - 1 - Sent - 14422282005263767 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/9BA810C6-985D-4797-926F-CC81749CC774/0/%22%2BJQ3dv3%2BTI9yv8Gu9xlfAA%3D%3D%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone Simulator OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo/demo-36/0/9BA810C6-985D-4797-926F-CC81749CC774/0/%22%2BJQ3dv3%2BTI9yv8Gu9xlfAA%3D%3D%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone Simulator OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/9BA810C6-985D-4797-926F-CC81749CC774/0/%22%2BJQ3dv3%2BTI9yv8Gu9xlfAA%3D%3D%22?pnsdk=PubNub-ObjC-iOS%2F4.0.4&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Mon, 14 Sep 2015 10:56:40 GMT - - expectedContentLength - 30 - statusCode - 200 - suggestedFileName - "+JQ3dv3+TI9yv8Gu9xlfAA==".js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - WzEsIlNlbnQiLCIxNDQyMjI4MjAwMzg1ODY1MyJd - json - - 1 - Sent - 14422282003858653 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/9BA810C6-985D-4797-926F-CC81749CC774/0/%22NVVi3PWiaNxwww0A6tkOHg%3D%3D%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone Simulator OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/9BA810C6-985D-4797-926F-CC81749CC774/0/%22NVVi3PWiaNxwww0A6tkOHg%3D%3D%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone Simulator OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/9BA810C6-985D-4797-926F-CC81749CC774/0/%22NVVi3PWiaNxwww0A6tkOHg%3D%3D%22?pnsdk=PubNub-ObjC-iOS%2F4.0.4&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Mon, 14 Sep 2015 10:56:40 GMT - - expectedContentLength - 30 - statusCode - 200 - suggestedFileName - "NVVi3PWiaNxwww0A6tkOHg==".js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNConfigurationChiperKeyTests.bundle/testHistoryWithChiperKeyOnlyCryptedMessages.plist b/Tests/iOS Tests/Fixtures/PNConfigurationChiperKeyTests.bundle/testHistoryWithChiperKeyOnlyCryptedMessages.plist deleted file mode 100755 index 1baea704a..000000000 --- a/Tests/iOS Tests/Fixtures/PNConfigurationChiperKeyTests.bundle/testHistoryWithChiperKeyOnlyCryptedMessages.plist +++ /dev/null @@ -1,119 +0,0 @@ - - - - - - cancelled - - data - - data - W1siTlZWaTNQV2lhTnh3d3cwQTZ0a09IZz09IiwiK0pRM2R2MytUSTl5djhHdTl4bGZBQT09Iiwid1JkUEtLWFVjaHdqSzRWMUw0YjlEUT09Il0sMTQ0MjIzNzE0Mjg1NDQwMDUsMTQ0MjIzNzE0MzY4MDI3OTld - json - - - NVVi3PWiaNxwww0A6tkOHg== - +JQ3dv3+TI9yv8Gu9xlfAA== - wRdPKKXUchwjK4V1L4b9DQ== - - 14422371428544005 - 14422371436802799 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/history/sub-key/demo/channel/9FA810C6-985D-4797-926F-CC81749CC774?count=100&reverse=false&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&include_token=false - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone Simulator OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/history/sub-key/demo-36/channel/9FA810C6-985D-4797-926F-CC81749CC774?count=100&reverse=false&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&include_token=false - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone Simulator OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/history/sub-key/demo-36/channel/9FA810C6-985D-4797-926F-CC81749CC774?pnsdk=PubNub-ObjC-iOS%2F4.0.4&include_token=false&count=100&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&reverse=false&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 120 - Content-Type - text/javascript; charset="UTF-8" - Date - Mon, 14 Sep 2015 14:38:01 GMT - Server - Pubnub - - expectedContentLength - 120 - statusCode - 200 - suggestedFileName - 9FA810C6-985D-4797-926F-CC81749CC774.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNFilteringSubscribeTests.bundle/testPublishWithDifferentMetadataAndReceiveEachMessagesForSubscribeWithMatchingFilteringChangedBetweenPublishes.plist b/Tests/iOS Tests/Fixtures/PNFilteringSubscribeTests.bundle/testPublishWithDifferentMetadataAndReceiveEachMessagesForSubscribeWithMatchingFilteringChangedBetweenPublishes.plist deleted file mode 100755 index ef3b3083f..000000000 --- a/Tests/iOS Tests/Fixtures/PNFilteringSubscribeTests.bundle/testPublishWithDifferentMetadataAndReceiveEachMessagesForSubscribeWithMatchingFilteringChangedBetweenPublishes.plist +++ /dev/null @@ -1,952 +0,0 @@ - - - - - - cancelled - - error - - code - -999 - description - The operation couldn’t be completed. (NSURLErrorDomain error -999.) - domain - NSURLErrorDomain - userInfo - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28foo%3D%3D%27bar%27%29&tt=14570385560176533&tr=1&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28foo%3D%3D%27bar%27%29&tt=14570385560176533&tr=1&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - - - cancelled - - data - - data - WzEsIlNlbnQiLCIxNDU3MDM4NTU2MTQ2MjA4NSJd - json - - 1 - Sent - 14570385561462085 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message1%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&meta=%7B%22foo%22%3A%22baz%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message1%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&meta=%7B%22foo%22%3A%22baz%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message1%22?pnsdk=PubNub-ObjC-iOS%2F4.2.3&meta=%7B%22foo%22%3A%22baz%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 03 Mar 2016 20:55:56 GMT - - expectedContentLength - 30 - statusCode - 200 - suggestedFileName - "message1".js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDU3MDM4MTA0ODU3ODg0OCIsInIiOjF9LCJtIjpbXX0= - json - - m - - t - - r - 1 - t - 14570381048578848 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?filter-expr=%28foo%3D%3D%27bar%27%29&tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?filter-expr=%28foo%3D%3D%27bar%27%29&tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&filter-expr=%28foo%3D%3D'bar'%29&tt=0 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 44 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 03 Mar 2016 20:55:56 GMT - - expectedContentLength - 44 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDU3MDM4NTU2MTQ2NzM4NiIsInIiOjF9LCJtIjpbXX0= - json - - m - - t - - r - 1 - t - 14570385561467386 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?filter-expr=%28foo%3D%3D%27baz%27%29&tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?filter-expr=%28foo%3D%3D%27baz%27%29&tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&filter-expr=%28foo%3D%3D'baz'%29&tt=0 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 44 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 03 Mar 2016 20:55:56 GMT - - expectedContentLength - 44 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - error - - code - -999 - description - The operation couldn’t be completed. (NSURLErrorDomain error -999.) - domain - NSURLErrorDomain - userInfo - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28foo%3D%3D%27baz%27%29&tt=14570385561467386&tr=1&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28foo%3D%3D%27baz%27%29&tt=14570385561467386&tr=1&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDU3MDM4NTU2MDE3NjUzMyIsInIiOjF9LCJtIjpbeyJhIjoiNCIsImYiOjUxMiwiaSI6IjMyMkE3MEIzLUYwRUEtNDhDRC05QkIwLUQzRjBGNURFOTk2QyIsInAiOnsidCI6IjE0NTcwMzg1NTYwMTcwNzE2IiwiciI6MX0sImsiOiJkZW1vLTM2IiwiYyI6IlBORmlsdGVyU3Vic2NyaWJlVGVzdHMiLCJ1Ijp7ImZvbyI6ImJhciJ9LCJkIjoibWVzc2FnZSJ9XX0= - json - - m - - - a - 4 - c - PNFilterSubscribeTests - d - message - f - 512 - i - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - k - demo-36 - p - - r - 1 - t - 14570385560170716 - - u - - foo - bar - - - - t - - r - 1 - t - 14570385560176533 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28foo%3D%3D%27bar%27%29&tt=14570381048578848&tr=1&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28foo%3D%3D%27bar%27%29&tt=14570381048578848&tr=1&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14570381048578848&tr=1&filter-expr=%28foo%3D%3D'bar'%29&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 215 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 03 Mar 2016 20:55:56 GMT - - expectedContentLength - 215 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - WzEsIlNlbnQiLCIxNDU3MDM4NTU2MDE3MDcxNiJd - json - - 1 - Sent - 14570385560170716 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&meta=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&meta=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.2.3&meta=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 03 Mar 2016 20:55:56 GMT - - expectedContentLength - 30 - statusCode - 200 - suggestedFileName - "message".js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDU3MDM4NTU2MTQ2NzM4NiIsInIiOjF9LCJtIjpbeyJhIjoiNCIsImYiOjUxMiwiaSI6IjMyMkE3MEIzLUYwRUEtNDhDRC05QkIwLUQzRjBGNURFOTk2QyIsInAiOnsidCI6IjE0NTcwMzg1NTYxNDYyMDg1IiwiciI6MX0sImsiOiJkZW1vLTM2IiwiYyI6IlBORmlsdGVyU3Vic2NyaWJlVGVzdHMiLCJ1Ijp7ImZvbyI6ImJheiJ9LCJkIjoibWVzc2FnZTEifV19 - json - - m - - - a - 4 - c - PNFilterSubscribeTests - d - message1 - f - 512 - i - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - k - demo-36 - p - - r - 1 - t - 14570385561462085 - - u - - foo - baz - - - - t - - r - 1 - t - 14570385561467386 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28foo%3D%3D%27baz%27%29&tt=14570385560176533&tr=1&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28foo%3D%3D%27baz%27%29&tt=14570385560176533&tr=1&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14570385560176533&tr=1&filter-expr=%28foo%3D%3D'baz'%29&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 216 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 03 Mar 2016 20:55:56 GMT - - expectedContentLength - 216 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJhY3Rpb24iOiAibGVhdmUiLCAibWVzc2FnZSI6ICJPSyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - action - leave - message - OK - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNFilterSubscribeTests/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNFilterSubscribeTests/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNFilterSubscribeTests/leave?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - OPTIONS, GET, POST - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 74 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 03 Mar 2016 20:55:56 GMT - Server - Pubnub Presence - - expectedContentLength - 74 - statusCode - 200 - suggestedFileName - leave.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNFilteringSubscribeTests.bundle/testPublishWithMetadataAndNoReceivedMessageForSubscribeWithDifferentFiltering.plist b/Tests/iOS Tests/Fixtures/PNFilteringSubscribeTests.bundle/testPublishWithMetadataAndNoReceivedMessageForSubscribeWithDifferentFiltering.plist deleted file mode 100755 index 04e7586de..000000000 --- a/Tests/iOS Tests/Fixtures/PNFilteringSubscribeTests.bundle/testPublishWithMetadataAndNoReceivedMessageForSubscribeWithDifferentFiltering.plist +++ /dev/null @@ -1,400 +0,0 @@ - - - - - - cancelled - - data - - data - WzEsIlNlbnQiLCIxNDUwODI5MjQ1NjkyMzkxNSJd - json - - 1 - Sent - 14508292456923915 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&meta=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&meta=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.2.3&meta=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 23 Dec 2015 00:07:25 GMT - - expectedContentLength - 30 - statusCode - 200 - suggestedFileName - "message".js - textEncodingName - "utf-8" - - - - - cancelled - - error - - code - -999 - description - The operation couldn’t be completed. (NSURLErrorDomain error -999.) - domain - NSURLErrorDomain - userInfo - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28a+%3D%3D+%27b%27%29&tt=14508292454268118&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28a+%3D%3D+%27b%27%29&tt=14508292454268118&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI5MjQ1NDI2ODExOCIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508292454268118 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?filter-expr=%28a+%3D%3D+%27b%27%29&tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?filter-expr=%28a+%3D%3D+%27b%27%29&tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&filter-expr=%28a%20%3D%3D%20'b'%29&tt=0 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 23 Dec 2015 00:07:25 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJhY3Rpb24iOiAibGVhdmUiLCAibWVzc2FnZSI6ICJPSyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - action - leave - message - OK - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNFilterSubscribeTests/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNFilterSubscribeTests/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNFilterSubscribeTests/leave?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 74 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 23 Dec 2015 00:07:36 GMT - Server - Pubnub Presence - - expectedContentLength - 74 - statusCode - 200 - suggestedFileName - leave.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNFilteringSubscribeTests.bundle/testPublishWithMetadataAndNoReceivedMessageForSubscribeWithFilteringWithSameKeyAndDifferentValue.plist b/Tests/iOS Tests/Fixtures/PNFilteringSubscribeTests.bundle/testPublishWithMetadataAndNoReceivedMessageForSubscribeWithFilteringWithSameKeyAndDifferentValue.plist deleted file mode 100755 index d3df746ec..000000000 --- a/Tests/iOS Tests/Fixtures/PNFilteringSubscribeTests.bundle/testPublishWithMetadataAndNoReceivedMessageForSubscribeWithFilteringWithSameKeyAndDifferentValue.plist +++ /dev/null @@ -1,400 +0,0 @@ - - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJhY3Rpb24iOiAibGVhdmUiLCAibWVzc2FnZSI6ICJPSyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - action - leave - message - OK - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNFilterSubscribeTests/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNFilterSubscribeTests/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNFilterSubscribeTests/leave?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 74 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 23 Dec 2015 00:07:47 GMT - Server - Pubnub Presence - - expectedContentLength - 74 - statusCode - 200 - suggestedFileName - leave.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - WzEsIlNlbnQiLCIxNDUwODI5MjU2OTYzMDExNyJd - json - - 1 - Sent - 14508292569630117 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&meta=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&meta=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/demo/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.2.3&meta=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 23 Dec 2015 00:07:36 GMT - - expectedContentLength - 30 - statusCode - 200 - suggestedFileName - "message".js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI5MjQ1NjkyNTAxNyIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508292456925017 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?filter-expr=%28foo+%3D%3D+%27b%27%29&tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?filter-expr=%28foo+%3D%3D+%27b%27%29&tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&filter-expr=%28foo%20%3D%3D%20'b'%29&tt=0 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 23 Dec 2015 00:07:36 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - error - - code - -999 - description - The operation couldn’t be completed. (NSURLErrorDomain error -999.) - domain - NSURLErrorDomain - userInfo - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28foo+%3D%3D+%27b%27%29&tt=14508292456925017&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28foo+%3D%3D+%27b%27%29&tt=14508292456925017&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNFilteringSubscribeTests.bundle/testPublishWithMetadataAndNoReceivedMessageForSubscribeWithFilteringWithSwitchedKeysAndValues.plist b/Tests/iOS Tests/Fixtures/PNFilteringSubscribeTests.bundle/testPublishWithMetadataAndNoReceivedMessageForSubscribeWithFilteringWithSwitchedKeysAndValues.plist deleted file mode 100755 index f105422c2..000000000 --- a/Tests/iOS Tests/Fixtures/PNFilteringSubscribeTests.bundle/testPublishWithMetadataAndNoReceivedMessageForSubscribeWithFilteringWithSwitchedKeysAndValues.plist +++ /dev/null @@ -1,509 +0,0 @@ - - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI5MjY3OTc4OTU2MiIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508292679789562 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28bar+%3D%3D+%27foo%27%29&tt=14508292569630927&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28bar+%3D%3D+%27foo%27%29&tt=14508292569630927&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508292569630927&tr=56&filter-expr=%28bar%20%3D%3D%20'foo'%29&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 23 Dec 2015 00:07:55 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJhY3Rpb24iOiAibGVhdmUiLCAibWVzc2FnZSI6ICJPSyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - action - leave - message - OK - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNFilterSubscribeTests/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNFilterSubscribeTests/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNFilterSubscribeTests/leave?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 74 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 23 Dec 2015 00:07:58 GMT - Server - Pubnub Presence - - expectedContentLength - 74 - statusCode - 200 - suggestedFileName - leave.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI5MjU2OTYzMDkyNyIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508292569630927 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?filter-expr=%28bar+%3D%3D+%27foo%27%29&tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?filter-expr=%28bar+%3D%3D+%27foo%27%29&tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&filter-expr=%28bar%20%3D%3D%20'foo'%29&tt=0 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 23 Dec 2015 00:07:47 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - error - - code - -999 - description - The operation couldn’t be completed. (NSURLErrorDomain error -999.) - domain - NSURLErrorDomain - userInfo - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28bar+%3D%3D+%27foo%27%29&tt=14508292679789562&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28bar+%3D%3D+%27foo%27%29&tt=14508292679789562&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - - - cancelled - - data - - data - WzEsIlNlbnQiLCIxNDUwODI5MjY3OTc4ODc0OCJd - json - - 1 - Sent - 14508292679788748 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&meta=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&meta=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.2.3&meta=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 23 Dec 2015 00:07:47 GMT - - expectedContentLength - 30 - statusCode - 200 - suggestedFileName - "message".js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNFilteringSubscribeTests.bundle/testPublishWithMetadataAndReceiveMessageForSubscribeWithMatchingFiltering.plist b/Tests/iOS Tests/Fixtures/PNFilteringSubscribeTests.bundle/testPublishWithMetadataAndReceiveMessageForSubscribeWithMatchingFiltering.plist deleted file mode 100755 index 8168414f7..000000000 --- a/Tests/iOS Tests/Fixtures/PNFilteringSubscribeTests.bundle/testPublishWithMetadataAndReceiveMessageForSubscribeWithMatchingFiltering.plist +++ /dev/null @@ -1,536 +0,0 @@ - - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI5Mjc5MTk4MTYzNCIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsImkiOiIzMjJBNzBCMy1GMEVBLTQ4Q0QtOUJCMC1EM0YwRjVERTk5NkMiLCJwIjp7InQiOiIxNDUwODI5Mjc5MTk4MDQwMiIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiUE5GaWx0ZXJTdWJzY3JpYmVUZXN0cyIsInUiOnsiZm9vIjoiYmFyIn0sImQiOiJtZXNzYWdlIn1dfQ== - json - - m - - - a - 4 - c - PNFilterSubscribeTests - d - message - f - 512 - i - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - k - demo-36 - p - - r - 56 - t - 14508292791980402 - - u - - foo - bar - - - - t - - r - 56 - t - 14508292791981634 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28foo%3D%3D%27bar%27%29&tt=14508292679789562&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28foo%3D%3D%27bar%27%29&tt=14508292679789562&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508292679789562&tr=56&filter-expr=%28foo%3D%3D'bar'%29&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 217 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 23 Dec 2015 00:07:59 GMT - - expectedContentLength - 217 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - WzEsIlNlbnQiLCIxNDUwODI5Mjc5MTk4MDQwMiJd - json - - 1 - Sent - 14508292791980402 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&meta=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&meta=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.2.3&meta=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 23 Dec 2015 00:07:59 GMT - - expectedContentLength - 30 - statusCode - 200 - suggestedFileName - "message".js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJhY3Rpb24iOiAibGVhdmUiLCAibWVzc2FnZSI6ICJPSyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - action - leave - message - OK - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNFilterSubscribeTests/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNFilterSubscribeTests/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNFilterSubscribeTests/leave?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 74 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 23 Dec 2015 00:07:59 GMT - Server - Pubnub Presence - - expectedContentLength - 74 - statusCode - 200 - suggestedFileName - leave.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI5MjY3OTc4OTU2MiIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508292679789562 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?filter-expr=%28foo%3D%3D%27bar%27%29&tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?filter-expr=%28foo%3D%3D%27bar%27%29&tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&filter-expr=%28foo%3D%3D'bar'%29&tt=0 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 23 Dec 2015 00:07:59 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - error - - code - -999 - description - The operation couldn’t be completed. (NSURLErrorDomain error -999.) - domain - NSURLErrorDomain - userInfo - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28foo%3D%3D%27bar%27%29&tt=14508292791981634&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28foo%3D%3D%27bar%27%29&tt=14508292791981634&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNFilteringSubscribeTests.bundle/testPublishWithMetadataAndReceiveMultipleMessagesForSubscribeWithMatchingFiltering.plist b/Tests/iOS Tests/Fixtures/PNFilteringSubscribeTests.bundle/testPublishWithMetadataAndReceiveMultipleMessagesForSubscribeWithMatchingFiltering.plist deleted file mode 100755 index 8233c56ca..000000000 --- a/Tests/iOS Tests/Fixtures/PNFilteringSubscribeTests.bundle/testPublishWithMetadataAndReceiveMultipleMessagesForSubscribeWithMatchingFiltering.plist +++ /dev/null @@ -1,665 +0,0 @@ - - - - - - cancelled - - error - - code - -999 - description - The operation couldn’t be completed. (NSURLErrorDomain error -999.) - domain - NSURLErrorDomain - userInfo - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28foo%3D%3D%27bar%27%29&tt=14521919072762116&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28foo%3D%3D%27bar%27%29&tt=14521919072762116&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJhY3Rpb24iOiAibGVhdmUiLCAibWVzc2FnZSI6ICJPSyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - action - leave - message - OK - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNFilterSubscribeTests/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNFilterSubscribeTests/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNFilterSubscribeTests/leave?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 74 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 07 Jan 2016 18:38:27 GMT - Server - Pubnub Presence - - expectedContentLength - 74 - statusCode - 200 - suggestedFileName - leave.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - WzEsIlNlbnQiLCIxNDUyMTkxOTA3Mjc2MDk5MiJd - json - - 1 - Sent - 14521919072760992 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message1%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&meta=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message1%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&meta=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message1%22?pnsdk=PubNub-ObjC-iOS%2F4.2.3&meta=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 07 Jan 2016 18:38:27 GMT - - expectedContentLength - 30 - statusCode - 200 - suggestedFileName - "message1".js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUyMTkxOTA3Mjc2MjExNiIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsImkiOiIzMjJBNzBCMy1GMEVBLTQ4Q0QtOUJCMC1EM0YwRjVERTk5NkMiLCJwIjp7InQiOiIxNDUyMTkxOTA3MTU1MDgxNiIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiUE5GaWx0ZXJTdWJzY3JpYmVUZXN0cyIsInUiOnsiZm9vIjoiYmFyIn0sImQiOiJtZXNzYWdlIn0seyJhIjoiNCIsImYiOjUxMiwiaSI6IjMyMkE3MEIzLUYwRUEtNDhDRC05QkIwLUQzRjBGNURFOTk2QyIsInAiOnsidCI6IjE0NTIxOTE5MDcyNzYwOTkyIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJQTkZpbHRlclN1YnNjcmliZVRlc3RzIiwidSI6eyJmb28iOiJiYXIifSwiZCI6Im1lc3NhZ2UxIn1dfQ== - json - - m - - - a - 4 - c - PNFilterSubscribeTests - d - message - f - 512 - i - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - k - demo-36 - p - - r - 56 - t - 14521919071550816 - - u - - foo - bar - - - - a - 4 - c - PNFilterSubscribeTests - d - message1 - f - 512 - i - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - k - demo-36 - p - - r - 56 - t - 14521919072760992 - - u - - foo - bar - - - - t - - r - 56 - t - 14521919072762116 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28foo%3D%3D%27bar%27%29&tt=14521919071550816&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28foo%3D%3D%27bar%27%29&tt=14521919071550816&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14521919071550816&tr=56&filter-expr=%28foo%3D%3D'bar'%29&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 391 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 07 Jan 2016 18:38:27 GMT - - expectedContentLength - 391 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - WzEsIlNlbnQiLCIxNDUyMTkxOTA3MTU1MDgxNiJd - json - - 1 - Sent - 14521919071550816 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&meta=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&meta=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.2.3&meta=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 07 Jan 2016 18:38:27 GMT - - expectedContentLength - 30 - statusCode - 200 - suggestedFileName - "message".js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUyMTkxOTA3Mjc2MjExNiIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14521919072762116 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo/PNFilterSubscribeTests/0?filter-expr=%28foo%3D%3D%27bar%27%29&tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?filter-expr=%28foo%3D%3D%27bar%27%29&tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&filter-expr=%28foo%3D%3D'bar'%29&tt=0 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 07 Jan 2016 18:38:27 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNFilteringSubscribeTests.bundle/testPublishWithNoMetadataAndNoReceivedMessageForSubscribeWithFiltering.plist b/Tests/iOS Tests/Fixtures/PNFilteringSubscribeTests.bundle/testPublishWithNoMetadataAndNoReceivedMessageForSubscribeWithFiltering.plist deleted file mode 100755 index e8123db0f..000000000 --- a/Tests/iOS Tests/Fixtures/PNFilteringSubscribeTests.bundle/testPublishWithNoMetadataAndNoReceivedMessageForSubscribeWithFiltering.plist +++ /dev/null @@ -1,400 +0,0 @@ - - - - - - cancelled - - data - - data - WzEsIlNlbnQiLCIxNDUwODI5Mjc5NjgwNDg3NiJd - json - - 1 - Sent - 14508292796804876 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 23 Dec 2015 00:07:59 GMT - - expectedContentLength - 30 - statusCode - 200 - suggestedFileName - "message".js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI5Mjc5MTk4MTYzNCIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508292791981634 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?filter-expr=%28foo%3D%3D%27bar%27%29&tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?filter-expr=%28foo%3D%3D%27bar%27%29&tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&filter-expr=%28foo%3D%3D'bar'%29&tt=0 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 23 Dec 2015 00:07:59 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - error - - code - -999 - description - The operation couldn’t be completed. (NSURLErrorDomain error -999.) - domain - NSURLErrorDomain - userInfo - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28foo%3D%3D%27bar%27%29&tt=14508292791981634&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&filter-expr=%28foo%3D%3D%27bar%27%29&tt=14508292791981634&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJhY3Rpb24iOiAibGVhdmUiLCAibWVzc2FnZSI6ICJPSyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - action - leave - message - OK - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNFilterSubscribeTests/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNFilterSubscribeTests/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNFilterSubscribeTests/leave?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 74 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 23 Dec 2015 00:08:10 GMT - Server - Pubnub Presence - - expectedContentLength - 74 - statusCode - 200 - suggestedFileName - leave.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNFilteringSubscribeTests.bundle/testPublishWithNoMetadataAndReceiveMultipleMessagesForSubscribeWithNoFiltering.plist b/Tests/iOS Tests/Fixtures/PNFilteringSubscribeTests.bundle/testPublishWithNoMetadataAndReceiveMultipleMessagesForSubscribeWithNoFiltering.plist deleted file mode 100755 index c35c3ae9c..000000000 --- a/Tests/iOS Tests/Fixtures/PNFilteringSubscribeTests.bundle/testPublishWithNoMetadataAndReceiveMultipleMessagesForSubscribeWithNoFiltering.plist +++ /dev/null @@ -1,655 +0,0 @@ - - - - - - cancelled - - error - - code - -999 - description - The operation couldn’t be completed. (NSURLErrorDomain error -999.) - domain - NSURLErrorDomain - userInfo - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?tt=14521912346469108&pnsdk=PubNub-ObjC-iOS%2F4.3.3&tr=56&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?tt=14521912346469108&pnsdk=PubNub-ObjC-iOS%2F4.3.3&tr=56&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJhY3Rpb24iOiAibGVhdmUiLCAibWVzc2FnZSI6ICJPSyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - action - leave - message - OK - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNFilterSubscribeTests/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNFilterSubscribeTests/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNFilterSubscribeTests/leave?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 74 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 07 Jan 2016 18:27:15 GMT - Server - Pubnub Presence - - expectedContentLength - 74 - statusCode - 200 - suggestedFileName - leave.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUyMTkxMjM0NjQ2OTEwOCIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14521912346469108 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 07 Jan 2016 18:27:14 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - WzEsIlNlbnQiLCIxNDUyMTkxMjM0NjQ2ODQzMSJd - json - - 1 - Sent - 14521912346468431 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message1%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message1%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message1%22?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 07 Jan 2016 18:27:14 GMT - - expectedContentLength - 30 - statusCode - 200 - suggestedFileName - "message1".js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - WzEsIlNlbnQiLCIxNDUyMTkxMjM0NTA5NDEzNyJd - json - - 1 - Sent - 14521912345094137 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 07 Jan 2016 18:27:14 GMT - - expectedContentLength - 30 - statusCode - 200 - suggestedFileName - "message".js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUyMTkxMjM0NjQ2OTEwOCIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsImkiOiIzMjJBNzBCMy1GMEVBLTQ4Q0QtOUJCMC1EM0YwRjVERTk5NkMiLCJwIjp7InQiOiIxNDUyMTkxMjM0NTA5NDEzNyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiUE5GaWx0ZXJTdWJzY3JpYmVUZXN0cyIsImQiOiJtZXNzYWdlIn0seyJhIjoiNCIsImYiOjUxMiwiaSI6IjMyMkE3MEIzLUYwRUEtNDhDRC05QkIwLUQzRjBGNURFOTk2QyIsInAiOnsidCI6IjE0NTIxOTEyMzQ2NDY4NDMxIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiJQTkZpbHRlclN1YnNjcmliZVRlc3RzIiwiZCI6Im1lc3NhZ2UxIn1dfQ== - json - - m - - - a - 4 - c - PNFilterSubscribeTests - d - message - f - 512 - i - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - k - demo-36 - p - - r - 56 - t - 14521912345094137 - - - - a - 4 - c - PNFilterSubscribeTests - d - message1 - f - 512 - i - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - k - demo-36 - p - - r - 56 - t - 14521912346468431 - - - - t - - r - 56 - t - 14521912346469108 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?tt=14521912345094137&pnsdk=PubNub-ObjC-iOS%2F4.3.3&tr=56&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?tt=14521912345094137&pnsdk=PubNub-ObjC-iOS%2F4.3.3&tr=56&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14521912345094137&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 355 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 07 Jan 2016 18:27:14 GMT - - expectedContentLength - 355 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNFilteringSubscribeTests.bundle/testPublishWithNoMetadataAndReceivedMessageForSubscribeWithNoFiltering.plist b/Tests/iOS Tests/Fixtures/PNFilteringSubscribeTests.bundle/testPublishWithNoMetadataAndReceivedMessageForSubscribeWithNoFiltering.plist deleted file mode 100755 index 6054f7ad7..000000000 --- a/Tests/iOS Tests/Fixtures/PNFilteringSubscribeTests.bundle/testPublishWithNoMetadataAndReceivedMessageForSubscribeWithNoFiltering.plist +++ /dev/null @@ -1,531 +0,0 @@ - - - - - - cancelled - - data - - data - WzEsIlNlbnQiLCIxNDUxMzM0NjU3Mjk4OTg4NSJd - json - - 1 - Sent - 14513346572989885 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/PNFilterSubscribeTests/0/%22message%22?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Mon, 28 Dec 2015 20:30:57 GMT - - expectedContentLength - 30 - statusCode - 200 - suggestedFileName - "message".js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUxMzM0NjU3MDE3MzM2OCIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14513346570173368 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo/PNFilterSubscribeTests/0?tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Mon, 28 Dec 2015 20:30:57 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - error - - code - -999 - description - The operation couldn’t be completed. (NSURLErrorDomain error -999.) - domain - NSURLErrorDomain - userInfo - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?tt=14513346572990987&pnsdk=PubNub-ObjC-iOS%2F4.3.3&tr=56&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?tt=14513346572990987&pnsdk=PubNub-ObjC-iOS%2F4.3.3&tr=56&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUxMzM0NjU3Mjk5MDk4NyIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsImkiOiIzMjJBNzBCMy1GMEVBLTQ4Q0QtOUJCMC1EM0YwRjVERTk5NkMiLCJwIjp7InQiOiIxNDUxMzM0NjU3Mjk4OTg4NSIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiUE5GaWx0ZXJTdWJzY3JpYmVUZXN0cyIsImQiOiJtZXNzYWdlIn1dfQ== - json - - m - - - a - 4 - c - PNFilterSubscribeTests - d - message - f - 512 - i - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - k - demo-36 - p - - r - 56 - t - 14513346572989885 - - - - t - - r - 56 - t - 14513346572990987 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?tt=14513346570173368&pnsdk=PubNub-ObjC-iOS%2F4.3.3&tr=56&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?tt=14513346570173368&pnsdk=PubNub-ObjC-iOS%2F4.3.3&tr=56&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/PNFilterSubscribeTests/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14513346570173368&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 199 - Content-Type - text/javascript; charset="UTF-8" - Date - Mon, 28 Dec 2015 20:30:57 GMT - - expectedContentLength - 199 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJhY3Rpb24iOiAibGVhdmUiLCAibWVzc2FnZSI6ICJPSyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - action - leave - message - OK - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNFilterSubscribeTests/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNFilterSubscribeTests/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/PNFilterSubscribeTests/leave?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 74 - Content-Type - text/javascript; charset="UTF-8" - Date - Mon, 28 Dec 2015 20:30:57 GMT - Server - Pubnub Presence - - expectedContentLength - 74 - statusCode - 200 - suggestedFileName - leave.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNHeartbeatTests.bundle/testHeartbeatCallbackFail.plist b/Tests/iOS Tests/Fixtures/PNHeartbeatTests.bundle/testHeartbeatCallbackFail.plist deleted file mode 100755 index 570554b9d..000000000 --- a/Tests/iOS Tests/Fixtures/PNHeartbeatTests.bundle/testHeartbeatCallbackFail.plist +++ /dev/null @@ -1,220 +0,0 @@ - - - - - - cancelled - - data - - data - W1tdLCIxNDQ0ODU0MTk4MjA1MDY1NyJd - json - - - 14448541982050657 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/subscribe/demo-36/heartbeat-test/0/0?heartbeat=60&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPad Simulator OS 8.1 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/subscribe/demo-36/heartbeat-test/0/0?heartbeat=60&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPad Simulator OS 8.1 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/subscribe/demo/heartbeat-test/0/0?heartbeat=60&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.0.7&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 24 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 14 Oct 2015 20:23:18 GMT - - expectedContentLength - 24 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiA0MDQsICJtZXNzYWdlIjogIk5vdCBGb3VuZCIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - message - Not Found - service - Presence - status - 404 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/heartbeat-test/heartbeat?heartbeat=60&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPad Simulator OS 8.1 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/heartbeat-test/heartbeat?heartbeat=60&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPad Simulator OS 8.1 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/heartbeat-test/heartbeat?heartbeat=60&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.0.7&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - OPTIONS, GET, POST - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 55 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 14 Oct 2015 20:23:23 GMT - Server - Pubnub Presence - - expectedContentLength - 55 - statusCode - 200 - suggestedFileName - heartbeat.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNHeartbeatTests.bundle/testSimpleHeartbeat.plist b/Tests/iOS Tests/Fixtures/PNHeartbeatTests.bundle/testSimpleHeartbeat.plist deleted file mode 100755 index 694bed72e..000000000 --- a/Tests/iOS Tests/Fixtures/PNHeartbeatTests.bundle/testSimpleHeartbeat.plist +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNHistoryTests.bundle/testHistory.plist b/Tests/iOS Tests/Fixtures/PNHistoryTests.bundle/testHistory.plist deleted file mode 100755 index e281e5fad..000000000 --- a/Tests/iOS Tests/Fixtures/PNHistoryTests.bundle/testHistory.plist +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - cancelled - - data - - data - W1siKioqKioqKioqLi4uLi4uIDEyNDQgLSAyMDE1LTA2LTMwIDEzOjMwOjM1IiwiKioqKioqKioqKi4uLi4uIDEyNDUgLSAyMDE1LTA2LTMwIDEzOjMwOjM3IiwiKioqKioqKioqKiouLi4uIDEyNDYgLSAyMDE1LTA2LTMwIDEzOjMwOjM5IiwiKioqKioqKioqKioqLi4uIDEyNDcgLSAyMDE1LTA2LTMwIDEzOjMwOjQxIiwiKioqKioqKioqKioqKi4uIDEyNDggLSAyMDE1LTA2LTMwIDEzOjMwOjQzIiwiKioqKioqKioqKioqKiouIDEyNDkgLSAyMDE1LTA2LTMwIDEzOjMwOjQ1IiwiKioqKioqKioqKioqKioqIDEyNTAgLSAyMDE1LTA2LTMwIDEzOjMwOjQ3IiwiKi4uLi4uLi4uLi4uLi4uIDEyNTEgLSAyMDE1LTA2LTMwIDEzOjMwOjQ5IiwiKiouLi4uLi4uLi4uLi4uIDEyNTIgLSAyMDE1LTA2LTMwIDEzOjMwOjUxIiwiKioqLi4uLi4uLi4uLi4uIDEyNTMgLSAyMDE1LTA2LTMwIDEzOjMwOjUzIiwiKioqKi4uLi4uLi4uLi4uIDEyNTQgLSAyMDE1LTA2LTMwIDEzOjMwOjU1IiwiKioqKiouLi4uLi4uLi4uIDEyNTUgLSAyMDE1LTA2LTMwIDEzOjMwOjU4IiwiKioqKioqLi4uLi4uLi4uIDEyNTYgLSAyMDE1LTA2LTMwIDEzOjMxOjAwIl0sMTQzNTY5NjIzNjQ0OTA4ODgsMTQzNTY5NjI2MDk1MjE0NTVd - json - - - *********...... 1244 - 2015-06-30 13:30:35 - **********..... 1245 - 2015-06-30 13:30:37 - ***********.... 1246 - 2015-06-30 13:30:39 - ************... 1247 - 2015-06-30 13:30:41 - *************.. 1248 - 2015-06-30 13:30:43 - **************. 1249 - 2015-06-30 13:30:45 - *************** 1250 - 2015-06-30 13:30:47 - *.............. 1251 - 2015-06-30 13:30:49 - **............. 1252 - 2015-06-30 13:30:51 - ***............ 1253 - 2015-06-30 13:30:53 - ****........... 1254 - 2015-06-30 13:30:55 - *****.......... 1255 - 2015-06-30 13:30:58 - ******......... 1256 - 2015-06-30 13:31:00 - - 14356962364490888 - 14356962609521455 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/history/sub-key/demo-36/channel/a?count=100&end=14356962619609342&reverse=false&start=14356962344283504&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&include_token=false&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip, deflate - Accept-Language - en;q=1, fr;q=0.9, de;q=0.8, zh-Hans;q=0.7, zh-Hant;q=0.6, ja;q=0.5 - User-Agent - (null)/(null) (iPhone Simulator; iOS 8.2; Scale/2.00) - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/history/sub-key/demo/channel/a?count=100&end=14356962619609342&reverse=false&start=14356962344283504&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&include_token=false&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept-Language - en;q=1, fr;q=0.9, de;q=0.8, zh-Hans;q=0.7, zh-Hant;q=0.6, ja;q=0.5 - User-Agent - (null)/(null) (iPhone Simulator; iOS 8.2; Scale/2.00) - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/history/sub-key/demo-36/channel/a?end=14356962619609342&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&start=14356962344283504&reverse=false&count=100&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.0&include_token=false - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 624 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 30 Jun 2015 20:54:45 GMT - Server - Pubnub - - expectedContentLength - 624 - statusCode - 200 - suggestedFileName - a.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNHistoryTests.bundle/testHistoryWithLimit.plist b/Tests/iOS Tests/Fixtures/PNHistoryTests.bundle/testHistoryWithLimit.plist deleted file mode 100755 index da7bf9d18..000000000 --- a/Tests/iOS Tests/Fixtures/PNHistoryTests.bundle/testHistoryWithLimit.plist +++ /dev/null @@ -1,208 +0,0 @@ - - - - - - cancelled - - data - - data - W1siKioqKioqKioqLi4uLi4uIDEyNDQgLSAyMDE1LTA2LTMwIDEzOjMwOjM1IiwiKioqKioqKioqKi4uLi4uIDEyNDUgLSAyMDE1LTA2LTMwIDEzOjMwOjM3IiwiKioqKioqKioqKiouLi4uIDEyNDYgLSAyMDE1LTA2LTMwIDEzOjMwOjM5Il0sMTQzNTY5NjIzNjQ0OTA4ODgsMTQzNTY5NjI0MDUyOTQzMDVd - json - - - *********...... 1244 - 2015-06-30 13:30:35 - **********..... 1245 - 2015-06-30 13:30:37 - ***********.... 1246 - 2015-06-30 13:30:39 - - 14356962364490888 - 14356962405294305 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/history/sub-key/demo/channel/a?count=3&end=14356962619609342&reverse=false&start=14356962344283504&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&include_token=false&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip, deflate - Accept-Language - en;q=1, fr;q=0.9, de;q=0.8, zh-Hans;q=0.7, zh-Hant;q=0.6, ja;q=0.5 - User-Agent - (null)/(null) (iPhone Simulator; iOS 8.2; Scale/2.00) - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/history/sub-key/demo-36/channel/a?count=3&end=14356962619609342&reverse=false&start=14356962344283504&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&include_token=false&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept-Language - en;q=1, fr;q=0.9, de;q=0.8, zh-Hans;q=0.7, zh-Hant;q=0.6, ja;q=0.5 - User-Agent - (null)/(null) (iPhone Simulator; iOS 8.2; Scale/2.00) - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/history/sub-key/demo-36/channel/a?end=14356962619609342&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&start=14356962344283504&reverse=false&count=3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.0&include_token=false - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 174 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 30 Jun 2015 20:54:45 GMT - Server - Pubnub - - expectedContentLength - 174 - statusCode - 200 - suggestedFileName - a.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - WzE0MzU2OTc2ODU0NDExNzI1XQ== - json - - 14356976854411725 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/time/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip, deflate - Accept-Language - en;q=1, fr;q=0.9, de;q=0.8, zh-Hans;q=0.7, zh-Hant;q=0.6, ja;q=0.5 - User-Agent - (null)/(null) (iPhone Simulator; iOS 8.2; Scale/2.00) - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/time/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept-Language - en;q=1, fr;q=0.9, de;q=0.8, zh-Hans;q=0.7, zh-Hant;q=0.6, ja;q=0.5 - User-Agent - (null)/(null) (iPhone Simulator; iOS 8.2; Scale/2.00) - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/time/0?pnsdk=PubNub-ObjC-iOS%2F4.0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 19 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 30 Jun 2015 20:54:45 GMT - - expectedContentLength - 19 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNHistoryTests.bundle/testHistoryWithLimitAndTimeToken.plist b/Tests/iOS Tests/Fixtures/PNHistoryTests.bundle/testHistoryWithLimitAndTimeToken.plist deleted file mode 100755 index e9e487af6..000000000 --- a/Tests/iOS Tests/Fixtures/PNHistoryTests.bundle/testHistoryWithLimitAndTimeToken.plist +++ /dev/null @@ -1,223 +0,0 @@ - - - - - - cancelled - - data - - data - W1t7Im1lc3NhZ2UiOiIqKioqKioqKiouLi4uLi4gMTI0NCAtIDIwMTUtMDYtMzAgMTM6MzA6MzUiLCJ0aW1ldG9rZW4iOjE0MzU2OTYyMzY0NDkwODg4fSx7Im1lc3NhZ2UiOiIqKioqKioqKioqLi4uLi4gMTI0NSAtIDIwMTUtMDYtMzAgMTM6MzA6MzciLCJ0aW1ldG9rZW4iOjE0MzU2OTYyMzg0ODk4NzUzfSx7Im1lc3NhZ2UiOiIqKioqKioqKioqKi4uLi4gMTI0NiAtIDIwMTUtMDYtMzAgMTM6MzA6MzkiLCJ0aW1ldG9rZW4iOjE0MzU2OTYyNDA1Mjk0MzA1fV0sMTQzNTY5NjIzNjQ0OTA4ODgsMTQzNTY5NjI0MDUyOTQzMDVd - json - - - - message - *********...... 1244 - 2015-06-30 13:30:35 - timetoken - 14356962364490888 - - - message - **********..... 1245 - 2015-06-30 13:30:37 - timetoken - 14356962384898753 - - - message - ***********.... 1246 - 2015-06-30 13:30:39 - timetoken - 14356962405294305 - - - 14356962364490888 - 14356962405294305 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/history/sub-key/demo-36/channel/a?count=3&end=14356962619609342&reverse=false&start=14356962344283504&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&include_token=true&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip, deflate - Accept-Language - en;q=1, fr;q=0.9, de;q=0.8, zh-Hans;q=0.7, zh-Hant;q=0.6, ja;q=0.5 - User-Agent - (null)/(null) (iPhone Simulator; iOS 8.2; Scale/2.00) - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/history/sub-key/demo-36/channel/a?count=3&end=14356962619609342&reverse=false&start=14356962344283504&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&include_token=true&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept-Language - en;q=1, fr;q=0.9, de;q=0.8, zh-Hans;q=0.7, zh-Hant;q=0.6, ja;q=0.5 - User-Agent - (null)/(null) (iPhone Simulator; iOS 8.2; Scale/2.00) - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/history/sub-key/demo/channel/a?end=14356962619609342&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&start=14356962344283504&reverse=false&count=3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.0&include_token=true - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 300 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 30 Jun 2015 20:54:45 GMT - Server - Pubnub - - expectedContentLength - 300 - statusCode - 200 - suggestedFileName - a.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - WzE0MzU2OTc2ODU1NDc1NTMwXQ== - json - - 14356976855475530 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/time/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip, deflate - Accept-Language - en;q=1, fr;q=0.9, de;q=0.8, zh-Hans;q=0.7, zh-Hant;q=0.6, ja;q=0.5 - User-Agent - (null)/(null) (iPhone Simulator; iOS 8.2; Scale/2.00) - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/time/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept-Language - en;q=1, fr;q=0.9, de;q=0.8, zh-Hans;q=0.7, zh-Hant;q=0.6, ja;q=0.5 - User-Agent - (null)/(null) (iPhone Simulator; iOS 8.2; Scale/2.00) - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/time/0?pnsdk=PubNub-ObjC-iOS%2F4.0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 19 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 30 Jun 2015 20:54:45 GMT - - expectedContentLength - 19 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNHistoryTests.bundle/testHistoryWithNilEnd.plist b/Tests/iOS Tests/Fixtures/PNHistoryTests.bundle/testHistoryWithNilEnd.plist deleted file mode 100755 index 57f35b973..000000000 --- a/Tests/iOS Tests/Fixtures/PNHistoryTests.bundle/testHistoryWithNilEnd.plist +++ /dev/null @@ -1,216 +0,0 @@ - - - - - - cancelled - - data - - data - W1siKioqKioqKiouLi4uLi4uIDU1MjEgLSAyMDE1LTA3LTE2IDEyOjI1OjQ1IiwiKioqKioqKioqLi4uLi4uIDU1MjIgLSAyMDE1LTA3LTE2IDEyOjI1OjQ3IiwiKioqKioqKioqKi4uLi4uIDU1MjMgLSAyMDE1LTA3LTE2IDEyOjI1OjQ5IiwiKioqKioqKioqKiouLi4uIDU1MjQgLSAyMDE1LTA3LTE2IDEyOjI1OjUxIiwiKioqKioqKioqKioqLi4uIDU1MjUgLSAyMDE1LTA3LTE2IDEyOjI1OjUzIiwiKioqKioqKioqKioqKi4uIDU1MjYgLSAyMDE1LTA3LTE2IDEyOjI1OjU1IiwiKioqKioqKioqKioqKiouIDU1MjcgLSAyMDE1LTA3LTE2IDEyOjI1OjU3IiwiKioqKioqKioqKioqKioqIDU1MjggLSAyMDE1LTA3LTE2IDEyOjI1OjU5IiwiKi4uLi4uLi4uLi4uLi4uIDU1MjkgLSAyMDE1LTA3LTE2IDEyOjI2OjAxIiwiKiouLi4uLi4uLi4uLi4uIDU1MzAgLSAyMDE1LTA3LTE2IDEyOjI2OjAzIiwiKioqLi4uLi4uLi4uLi4uIDU1MzEgLSAyMDE1LTA3LTE2IDEyOjI2OjA1IiwiKioqKi4uLi4uLi4uLi4uIDU1MzIgLSAyMDE1LTA3LTE2IDEyOjI2OjA3IiwiKioqKiouLi4uLi4uLi4uIDU1MzMgLSAyMDE1LTA3LTE2IDEyOjI2OjA5IiwiKioqKioqLi4uLi4uLi4uIDU1MzQgLSAyMDE1LTA3LTE2IDEyOjI2OjEyIiwiKioqKioqKi4uLi4uLi4uIDU1MzUgLSAyMDE1LTA3LTE2IDEyOjI2OjE0IiwiKioqKioqKiouLi4uLi4uIDU1MzYgLSAyMDE1LTA3LTE2IDEyOjI2OjE2IiwiKioqKioqKioqLi4uLi4uIDU1MzcgLSAyMDE1LTA3LTE2IDEyOjI2OjE4IiwiKioqKioqKioqKi4uLi4uIDU1MzggLSAyMDE1LTA3LTE2IDEyOjI2OjIwIiwiKioqKioqKioqKiouLi4uIDU1MzkgLSAyMDE1LTA3LTE2IDEyOjI2OjIyIiwiKioqKioqKioqKioqLi4uIDU1NDAgLSAyMDE1LTA3LTE2IDEyOjI2OjI0IiwiKioqKioqKioqKioqKi4uIDU1NDEgLSAyMDE1LTA3LTE2IDEyOjI2OjI2IiwiKioqKioqKioqKioqKiouIDU1NDIgLSAyMDE1LTA3LTE2IDEyOjI2OjI4IiwiKioqKioqKioqKioqKioqIDU1NDMgLSAyMDE1LTA3LTE2IDEyOjI2OjMwIiwiKi4uLi4uLi4uLi4uLi4uIDU1NDQgLSAyMDE1LTA3LTE2IDEyOjI2OjMyIiwiKiouLi4uLi4uLi4uLi4uIDU1NDUgLSAyMDE1LTA3LTE2IDEyOjI2OjM0IiwiKioqLi4uLi4uLi4uLi4uIDU1NDYgLSAyMDE1LTA3LTE2IDEyOjI2OjM2IiwiKioqKi4uLi4uLi4uLi4uIDU1NDcgLSAyMDE1LTA3LTE2IDEyOjI2OjM4IiwiKioqKiouLi4uLi4uLi4uIDU1NDggLSAyMDE1LTA3LTE2IDEyOjI2OjQwIiwiKioqKioqLi4uLi4uLi4uIDU1NDkgLSAyMDE1LTA3LTE2IDEyOjI2OjQyIiwiKioqKioqKi4uLi4uLi4uIDU1NTAgLSAyMDE1LTA3LTE2IDEyOjI2OjQ0IiwiKioqKioqKiouLi4uLi4uIDU1NTEgLSAyMDE1LTA3LTE2IDEyOjI2OjQ2IiwiKioqKioqKioqLi4uLi4uIDU1NTIgLSAyMDE1LTA3LTE2IDEyOjI2OjQ4IiwiKioqKioqKioqKi4uLi4uIDU1NTMgLSAyMDE1LTA3LTE2IDEyOjI2OjUwIiwiKioqKioqKioqKiouLi4uIDU1NTQgLSAyMDE1LTA3LTE2IDEyOjI2OjUyIiwiKioqKioqKioqKioqLi4uIDU1NTUgLSAyMDE1LTA3LTE2IDEyOjI2OjU0IiwiKioqKioqKioqKioqKi4uIDU1NTYgLSAyMDE1LTA3LTE2IDEyOjI2OjU2IiwiKioqKioqKioqKioqKiouIDU1NTcgLSAyMDE1LTA3LTE2IDEyOjI2OjU4IiwiKioqKioqKioqKioqKioqIDU1NTggLSAyMDE1LTA3LTE2IDEyOjI3OjAwIiwiKi4uLi4uLi4uLi4uLi4uIDU1NTkgLSAyMDE1LTA3LTE2IDEyOjI3OjAzIiwiKiouLi4uLi4uLi4uLi4uIDU1NjAgLSAyMDE1LTA3LTE2IDEyOjI3OjA1IiwiKioqLi4uLi4uLi4uLi4uIDU1NjEgLSAyMDE1LTA3LTE2IDEyOjI3OjA3IiwiKioqKi4uLi4uLi4uLi4uIDU1NjIgLSAyMDE1LTA3LTE2IDEyOjI3OjA5IiwiKioqKiouLi4uLi4uLi4uIDU1NjMgLSAyMDE1LTA3LTE2IDEyOjI3OjExIiwiKioqKioqLi4uLi4uLi4uIDU1NjQgLSAyMDE1LTA3LTE2IDEyOjI3OjEzIiwiKioqKioqKi4uLi4uLi4uIDU1NjUgLSAyMDE1LTA3LTE2IDEyOjI3OjE1IiwiKioqKioqKiouLi4uLi4uIDU1NjYgLSAyMDE1LTA3LTE2IDEyOjI3OjE3IiwiKioqKioqKioqLi4uLi4uIDU1NjcgLSAyMDE1LTA3LTE2IDEyOjI3OjE5IiwiKioqKioqKioqKi4uLi4uIDU1NjggLSAyMDE1LTA3LTE2IDEyOjI3OjIxIiwiKioqKioqKioqKiouLi4uIDU1NjkgLSAyMDE1LTA3LTE2IDEyOjI3OjIzIiwiKioqKioqKioqKioqLi4uIDU1NzAgLSAyMDE1LTA3LTE2IDEyOjI3OjI1IiwiKioqKioqKioqKioqKi4uIDU1NzEgLSAyMDE1LTA3LTE2IDEyOjI3OjI3IiwiKioqKioqKioqKioqKiouIDU1NzIgLSAyMDE1LTA3LTE2IDEyOjI3OjI5IiwiKioqKioqKioqKioqKioqIDU1NzMgLSAyMDE1LTA3LTE2IDEyOjI3OjMxIiwiKi4uLi4uLi4uLi4uLi4uIDU1NzQgLSAyMDE1LTA3LTE2IDEyOjI3OjMzIiwiKiouLi4uLi4uLi4uLi4uIDU1NzUgLSAyMDE1LTA3LTE2IDEyOjI3OjM1IiwiKioqLi4uLi4uLi4uLi4uIDU1NzYgLSAyMDE1LTA3LTE2IDEyOjI3OjM3IiwiKioqKi4uLi4uLi4uLi4uIDU1NzcgLSAyMDE1LTA3LTE2IDEyOjI3OjM5IiwiKioqKiouLi4uLi4uLi4uIDU1NzggLSAyMDE1LTA3LTE2IDEyOjI3OjQxIiwiKioqKioqLi4uLi4uLi4uIDU1NzkgLSAyMDE1LTA3LTE2IDEyOjI3OjQzIiwiKioqKioqKi4uLi4uLi4uIDU1ODAgLSAyMDE1LTA3LTE2IDEyOjI3OjQ1IiwiKioqKioqKiouLi4uLi4uIDU1ODEgLSAyMDE1LTA3LTE2IDEyOjI3OjQ3IiwiKioqKioqKioqLi4uLi4uIDU1ODIgLSAyMDE1LTA3LTE2IDEyOjI3OjUwIiwiKioqKioqKioqKi4uLi4uIDU1ODMgLSAyMDE1LTA3LTE2IDEyOjI3OjUyIiwiKioqKioqKioqKiouLi4uIDU1ODQgLSAyMDE1LTA3LTE2IDEyOjI3OjU0IiwiKioqKioqKioqKioqLi4uIDU1ODUgLSAyMDE1LTA3LTE2IDEyOjI3OjU2IiwiKioqKioqKioqKioqKi4uIDU1ODYgLSAyMDE1LTA3LTE2IDEyOjI3OjU4IiwiKioqKioqKioqKioqKiouIDU1ODcgLSAyMDE1LTA3LTE2IDEyOjI4OjAwIiwiKioqKioqKioqKioqKioqIDU1ODggLSAyMDE1LTA3LTE2IDEyOjI4OjAyIiwiKi4uLi4uLi4uLi4uLi4uIDU1ODkgLSAyMDE1LTA3LTE2IDEyOjI4OjA0IiwiKiouLi4uLi4uLi4uLi4uIDU1OTAgLSAyMDE1LTA3LTE2IDEyOjI4OjA2IiwiKioqLi4uLi4uLi4uLi4uIDU1OTEgLSAyMDE1LTA3LTE2IDEyOjI4OjA4IiwiKioqKi4uLi4uLi4uLi4uIDU1OTIgLSAyMDE1LTA3LTE2IDEyOjI4OjEwIiwiKioqKiouLi4uLi4uLi4uIDU1OTMgLSAyMDE1LTA3LTE2IDEyOjI4OjEyIiwiKioqKioqLi4uLi4uLi4uIDU1OTQgLSAyMDE1LTA3LTE2IDEyOjI4OjE0IiwiKioqKioqKi4uLi4uLi4uIDU1OTUgLSAyMDE1LTA3LTE2IDEyOjI4OjE2IiwiKioqKioqKiouLi4uLi4uIDU1OTYgLSAyMDE1LTA3LTE2IDEyOjI4OjE4IiwiKioqKioqKioqLi4uLi4uIDU1OTcgLSAyMDE1LTA3LTE2IDEyOjI4OjIwIiwiKioqKioqKioqKi4uLi4uIDU1OTggLSAyMDE1LTA3LTE2IDEyOjI4OjIyIiwiKioqKioqKioqKiouLi4uIDU1OTkgLSAyMDE1LTA3LTE2IDEyOjI4OjI0IiwiKioqKioqKioqKioqLi4uIDU2MDAgLSAyMDE1LTA3LTE2IDEyOjI4OjI2IiwiKioqKioqKioqKioqKi4uIDU2MDEgLSAyMDE1LTA3LTE2IDEyOjI4OjI4IiwiKioqKioqKioqKioqKiouIDU2MDIgLSAyMDE1LTA3LTE2IDEyOjI4OjMwIiwiKioqKioqKioqKioqKioqIDU2MDMgLSAyMDE1LTA3LTE2IDEyOjI4OjMyIiwiKi4uLi4uLi4uLi4uLi4uIDU2MDQgLSAyMDE1LTA3LTE2IDEyOjI4OjM0IiwiKiouLi4uLi4uLi4uLi4uIDU2MDUgLSAyMDE1LTA3LTE2IDEyOjI4OjM2IiwiKioqLi4uLi4uLi4uLi4uIDU2MDYgLSAyMDE1LTA3LTE2IDEyOjI4OjM5IiwiKioqKi4uLi4uLi4uLi4uIDU2MDcgLSAyMDE1LTA3LTE2IDEyOjI4OjQxIiwiKioqKiouLi4uLi4uLi4uIDU2MDggLSAyMDE1LTA3LTE2IDEyOjI4OjQzIiwiKioqKioqLi4uLi4uLi4uIDU2MDkgLSAyMDE1LTA3LTE2IDEyOjI4OjQ1IiwiKioqKioqKi4uLi4uLi4uIDU2MTAgLSAyMDE1LTA3LTE2IDEyOjI4OjQ3IiwiKioqKioqKiouLi4uLi4uIDU2MTEgLSAyMDE1LTA3LTE2IDEyOjI4OjQ5IiwiKioqKioqKioqLi4uLi4uIDU2MTIgLSAyMDE1LTA3LTE2IDEyOjI4OjUxIiwiKioqKioqKioqKi4uLi4uIDU2MTMgLSAyMDE1LTA3LTE2IDEyOjI4OjUzIiwiKioqKioqKioqKiouLi4uIDU2MTQgLSAyMDE1LTA3LTE2IDEyOjI4OjU1IiwiKioqKioqKioqKioqLi4uIDU2MTUgLSAyMDE1LTA3LTE2IDEyOjI4OjU3IiwiKioqKioqKioqKioqKi4uIDU2MTYgLSAyMDE1LTA3LTE2IDEyOjI4OjU5IiwiKioqKioqKioqKioqKiouIDU2MTcgLSAyMDE1LTA3LTE2IDEyOjI5OjAxIiwiKioqKioqKioqKioqKioqIDU2MTggLSAyMDE1LTA3LTE2IDEyOjI5OjAzIiwiKi4uLi4uLi4uLi4uLi4uIDU2MTkgLSAyMDE1LTA3LTE2IDEyOjI5OjA1IiwiKiouLi4uLi4uLi4uLi4uIDU2MjAgLSAyMDE1LTA3LTE2IDEyOjI5OjA3Il0sMTQzNzA3NDc0NjM5ODg3MTksMTQzNzA3NDk0ODQ0MjE0OTZd - json - - - ********....... 5521 - 2015-07-16 12:25:45 - *********...... 5522 - 2015-07-16 12:25:47 - **********..... 5523 - 2015-07-16 12:25:49 - ***********.... 5524 - 2015-07-16 12:25:51 - ************... 5525 - 2015-07-16 12:25:53 - *************.. 5526 - 2015-07-16 12:25:55 - **************. 5527 - 2015-07-16 12:25:57 - *************** 5528 - 2015-07-16 12:25:59 - *.............. 5529 - 2015-07-16 12:26:01 - **............. 5530 - 2015-07-16 12:26:03 - ***............ 5531 - 2015-07-16 12:26:05 - ****........... 5532 - 2015-07-16 12:26:07 - *****.......... 5533 - 2015-07-16 12:26:09 - ******......... 5534 - 2015-07-16 12:26:12 - *******........ 5535 - 2015-07-16 12:26:14 - ********....... 5536 - 2015-07-16 12:26:16 - *********...... 5537 - 2015-07-16 12:26:18 - **********..... 5538 - 2015-07-16 12:26:20 - ***********.... 5539 - 2015-07-16 12:26:22 - ************... 5540 - 2015-07-16 12:26:24 - *************.. 5541 - 2015-07-16 12:26:26 - **************. 5542 - 2015-07-16 12:26:28 - *************** 5543 - 2015-07-16 12:26:30 - *.............. 5544 - 2015-07-16 12:26:32 - **............. 5545 - 2015-07-16 12:26:34 - ***............ 5546 - 2015-07-16 12:26:36 - ****........... 5547 - 2015-07-16 12:26:38 - *****.......... 5548 - 2015-07-16 12:26:40 - ******......... 5549 - 2015-07-16 12:26:42 - *******........ 5550 - 2015-07-16 12:26:44 - ********....... 5551 - 2015-07-16 12:26:46 - *********...... 5552 - 2015-07-16 12:26:48 - **********..... 5553 - 2015-07-16 12:26:50 - ***********.... 5554 - 2015-07-16 12:26:52 - ************... 5555 - 2015-07-16 12:26:54 - *************.. 5556 - 2015-07-16 12:26:56 - **************. 5557 - 2015-07-16 12:26:58 - *************** 5558 - 2015-07-16 12:27:00 - *.............. 5559 - 2015-07-16 12:27:03 - **............. 5560 - 2015-07-16 12:27:05 - ***............ 5561 - 2015-07-16 12:27:07 - ****........... 5562 - 2015-07-16 12:27:09 - *****.......... 5563 - 2015-07-16 12:27:11 - ******......... 5564 - 2015-07-16 12:27:13 - *******........ 5565 - 2015-07-16 12:27:15 - ********....... 5566 - 2015-07-16 12:27:17 - *********...... 5567 - 2015-07-16 12:27:19 - **********..... 5568 - 2015-07-16 12:27:21 - ***********.... 5569 - 2015-07-16 12:27:23 - ************... 5570 - 2015-07-16 12:27:25 - *************.. 5571 - 2015-07-16 12:27:27 - **************. 5572 - 2015-07-16 12:27:29 - *************** 5573 - 2015-07-16 12:27:31 - *.............. 5574 - 2015-07-16 12:27:33 - **............. 5575 - 2015-07-16 12:27:35 - ***............ 5576 - 2015-07-16 12:27:37 - ****........... 5577 - 2015-07-16 12:27:39 - *****.......... 5578 - 2015-07-16 12:27:41 - ******......... 5579 - 2015-07-16 12:27:43 - *******........ 5580 - 2015-07-16 12:27:45 - ********....... 5581 - 2015-07-16 12:27:47 - *********...... 5582 - 2015-07-16 12:27:50 - **********..... 5583 - 2015-07-16 12:27:52 - ***********.... 5584 - 2015-07-16 12:27:54 - ************... 5585 - 2015-07-16 12:27:56 - *************.. 5586 - 2015-07-16 12:27:58 - **************. 5587 - 2015-07-16 12:28:00 - *************** 5588 - 2015-07-16 12:28:02 - *.............. 5589 - 2015-07-16 12:28:04 - **............. 5590 - 2015-07-16 12:28:06 - ***............ 5591 - 2015-07-16 12:28:08 - ****........... 5592 - 2015-07-16 12:28:10 - *****.......... 5593 - 2015-07-16 12:28:12 - ******......... 5594 - 2015-07-16 12:28:14 - *******........ 5595 - 2015-07-16 12:28:16 - ********....... 5596 - 2015-07-16 12:28:18 - *********...... 5597 - 2015-07-16 12:28:20 - **********..... 5598 - 2015-07-16 12:28:22 - ***********.... 5599 - 2015-07-16 12:28:24 - ************... 5600 - 2015-07-16 12:28:26 - *************.. 5601 - 2015-07-16 12:28:28 - **************. 5602 - 2015-07-16 12:28:30 - *************** 5603 - 2015-07-16 12:28:32 - *.............. 5604 - 2015-07-16 12:28:34 - **............. 5605 - 2015-07-16 12:28:36 - ***............ 5606 - 2015-07-16 12:28:39 - ****........... 5607 - 2015-07-16 12:28:41 - *****.......... 5608 - 2015-07-16 12:28:43 - ******......... 5609 - 2015-07-16 12:28:45 - *******........ 5610 - 2015-07-16 12:28:47 - ********....... 5611 - 2015-07-16 12:28:49 - *********...... 5612 - 2015-07-16 12:28:51 - **********..... 5613 - 2015-07-16 12:28:53 - ***********.... 5614 - 2015-07-16 12:28:55 - ************... 5615 - 2015-07-16 12:28:57 - *************.. 5616 - 2015-07-16 12:28:59 - **************. 5617 - 2015-07-16 12:29:01 - *************** 5618 - 2015-07-16 12:29:03 - *.............. 5619 - 2015-07-16 12:29:05 - **............. 5620 - 2015-07-16 12:29:07 - - 14370747463988719 - 14370749484421496 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/history/sub-key/demo/channel/a?count=100&reverse=false&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&start=14370749493660012&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&include_token=false - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - PubNub-ObjC-iOS/4.3.3 - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/history/sub-key/demo-36/channel/a?count=100&reverse=false&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&start=14370749493660012&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&include_token=false - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - PubNub-ObjC-iOS/4.3.3 - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/history/sub-key/demo-36/channel/a?deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&start=14370749493660012&reverse=false&count=100&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.0.2&include_token=false - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Encoding - gzip - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 16 Jul 2015 20:34:36 GMT - Server - Pubnub - Transfer-Encoding - Identity - - expectedContentLength - 4539 - statusCode - 200 - suggestedFileName - a.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNHistoryTests.bundle/testHistoryWithNilStart.plist b/Tests/iOS Tests/Fixtures/PNHistoryTests.bundle/testHistoryWithNilStart.plist deleted file mode 100755 index 8091e5245..000000000 --- a/Tests/iOS Tests/Fixtures/PNHistoryTests.bundle/testHistoryWithNilStart.plist +++ /dev/null @@ -1,216 +0,0 @@ - - - - - - cancelled - - data - - data - W1siKioqKiouLi4uLi4uLi4uIDU4NTcgLSAyMDE1LTA3LTE2IDA3OjAwOjIzIiwiKioqKioqLi4uLi4uLi4uIDU4NTggLSAyMDE1LTA3LTE2IDA3OjAwOjI1IiwiKioqKioqKi4uLi4uLi4uIDU4NTkgLSAyMDE1LTA3LTE2IDA3OjAwOjI3IiwiKioqKioqKiouLi4uLi4uIDU4NjAgLSAyMDE1LTA3LTE2IDA3OjAwOjI5IiwiKioqKioqKioqLi4uLi4uIDU4NjEgLSAyMDE1LTA3LTE2IDA3OjAwOjMxIiwiKioqKioqKioqKi4uLi4uIDU4NjIgLSAyMDE1LTA3LTE2IDA3OjAwOjMzIiwiKioqKioqKioqKiouLi4uIDU4NjMgLSAyMDE1LTA3LTE2IDA3OjAwOjM1IiwiKioqKioqKioqKioqLi4uIDU4NjQgLSAyMDE1LTA3LTE2IDA3OjAwOjM3IiwiKioqKioqKioqKioqKi4uIDU4NjUgLSAyMDE1LTA3LTE2IDA3OjAwOjM5IiwiKioqKioqKioqKioqKiouIDU4NjYgLSAyMDE1LTA3LTE2IDA3OjAwOjQxIiwiKioqKioqKioqKioqKioqIDU4NjcgLSAyMDE1LTA3LTE2IDA3OjAwOjQ0IiwiKi4uLi4uLi4uLi4uLi4uIDU4NjggLSAyMDE1LTA3LTE2IDA3OjAwOjQ2IiwiKiouLi4uLi4uLi4uLi4uIDU4NjkgLSAyMDE1LTA3LTE2IDA3OjAwOjQ4IiwiKioqLi4uLi4uLi4uLi4uIDU4NzAgLSAyMDE1LTA3LTE2IDA3OjAwOjUwIiwiKioqKi4uLi4uLi4uLi4uIDU4NzEgLSAyMDE1LTA3LTE2IDA3OjAwOjUyIiwiKioqKiouLi4uLi4uLi4uIDU4NzIgLSAyMDE1LTA3LTE2IDA3OjAwOjU0IiwiKioqKioqLi4uLi4uLi4uIDU4NzMgLSAyMDE1LTA3LTE2IDA3OjAwOjU2IiwiKioqKioqKi4uLi4uLi4uIDU4NzQgLSAyMDE1LTA3LTE2IDA3OjAwOjU4IiwiKioqKioqKiouLi4uLi4uIDU4NzUgLSAyMDE1LTA3LTE2IDA3OjAxOjAwIiwiKioqKioqKioqLi4uLi4uIDU4NzYgLSAyMDE1LTA3LTE2IDA3OjAxOjAzIiwiKioqKioqKioqKi4uLi4uIDU4NzcgLSAyMDE1LTA3LTE2IDA3OjAxOjA1IiwiKioqKioqKioqKiouLi4uIDU4NzggLSAyMDE1LTA3LTE2IDA3OjAxOjA3IiwiKioqKioqKioqKioqLi4uIDU4NzkgLSAyMDE1LTA3LTE2IDA3OjAxOjA5IiwiKioqKioqKioqKioqKi4uIDU4ODAgLSAyMDE1LTA3LTE2IDA3OjAxOjExIiwiKioqKioqKioqKioqKiouIDU4ODEgLSAyMDE1LTA3LTE2IDA3OjAxOjEzIiwiKioqKioqKioqKioqKioqIDU4ODIgLSAyMDE1LTA3LTE2IDA3OjAxOjE1IiwiKi4uLi4uLi4uLi4uLi4uIDU4ODMgLSAyMDE1LTA3LTE2IDA3OjAxOjE3IiwiKiouLi4uLi4uLi4uLi4uIDU4ODQgLSAyMDE1LTA3LTE2IDA3OjAxOjE5IiwiKioqLi4uLi4uLi4uLi4uIDU4ODUgLSAyMDE1LTA3LTE2IDA3OjAxOjIxIiwiKioqKi4uLi4uLi4uLi4uIDU4ODYgLSAyMDE1LTA3LTE2IDA3OjAxOjIzIiwiKioqKiouLi4uLi4uLi4uIDU4ODcgLSAyMDE1LTA3LTE2IDA3OjAxOjI1IiwiKioqKioqLi4uLi4uLi4uIDU4ODggLSAyMDE1LTA3LTE2IDA3OjAxOjI3IiwiKioqKioqKi4uLi4uLi4uIDU4ODkgLSAyMDE1LTA3LTE2IDA3OjAxOjI5IiwiKioqKioqKiouLi4uLi4uIDU4OTAgLSAyMDE1LTA3LTE2IDA3OjAxOjMxIiwiKioqKioqKioqLi4uLi4uIDU4OTEgLSAyMDE1LTA3LTE2IDA3OjAxOjMzIiwiKioqKioqKioqKi4uLi4uIDU4OTIgLSAyMDE1LTA3LTE2IDA3OjAxOjM1IiwiKioqKioqKioqKiouLi4uIDU4OTMgLSAyMDE1LTA3LTE2IDA3OjAxOjM3IiwiKioqKioqKioqKioqLi4uIDU4OTQgLSAyMDE1LTA3LTE2IDA3OjAxOjM5IiwiKioqKioqKioqKioqKi4uIDU4OTUgLSAyMDE1LTA3LTE2IDA3OjAxOjQxIiwiKioqKioqKioqKioqKiouIDU4OTYgLSAyMDE1LTA3LTE2IDA3OjAxOjQzIiwiKioqKioqKioqKioqKioqIDU4OTcgLSAyMDE1LTA3LTE2IDA3OjAxOjQ1IiwiKi4uLi4uLi4uLi4uLi4uIDU4OTggLSAyMDE1LTA3LTE2IDA3OjAxOjQ3IiwiKiouLi4uLi4uLi4uLi4uIDU4OTkgLSAyMDE1LTA3LTE2IDA3OjAxOjQ5IiwiKioqLi4uLi4uLi4uLi4uIDU5MDAgLSAyMDE1LTA3LTE2IDA3OjAxOjUyIiwiKioqKi4uLi4uLi4uLi4uIDU5MDEgLSAyMDE1LTA3LTE2IDA3OjAxOjU0IiwiKioqKiouLi4uLi4uLi4uIDU5MDIgLSAyMDE1LTA3LTE2IDA3OjAxOjU2IiwiKioqKioqLi4uLi4uLi4uIDU5MDMgLSAyMDE1LTA3LTE2IDA3OjAxOjU4IiwiKioqKioqKi4uLi4uLi4uIDU5MDQgLSAyMDE1LTA3LTE2IDA3OjAyOjAwIiwiKioqKioqKiouLi4uLi4uIDU5MDUgLSAyMDE1LTA3LTE2IDA3OjAyOjAyIiwiKioqKioqKioqLi4uLi4uIDU5MDYgLSAyMDE1LTA3LTE2IDA3OjAyOjA0IiwiKioqKioqKioqKi4uLi4uIDU5MDcgLSAyMDE1LTA3LTE2IDA3OjAyOjA2IiwiKioqKioqKioqKiouLi4uIDU5MDggLSAyMDE1LTA3LTE2IDA3OjAyOjA4IiwiKioqKioqKioqKioqLi4uIDU5MDkgLSAyMDE1LTA3LTE2IDA3OjAyOjEwIiwiKioqKioqKioqKioqKi4uIDU5MTAgLSAyMDE1LTA3LTE2IDA3OjAyOjEyIiwiKioqKioqKioqKioqKiouIDU5MTEgLSAyMDE1LTA3LTE2IDA3OjAyOjE0IiwiKioqKioqKioqKioqKioqIDU5MTIgLSAyMDE1LTA3LTE2IDA3OjAyOjE2IiwiKi4uLi4uLi4uLi4uLi4uIDU5MTMgLSAyMDE1LTA3LTE2IDA3OjAyOjE4IiwiKiouLi4uLi4uLi4uLi4uIDU5MTQgLSAyMDE1LTA3LTE2IDA3OjAyOjIwIiwiKioqLi4uLi4uLi4uLi4uIDU5MTUgLSAyMDE1LTA3LTE2IDA3OjAyOjIyIiwiKioqKi4uLi4uLi4uLi4uIDU5MTYgLSAyMDE1LTA3LTE2IDA3OjAyOjI0IiwiKioqKiouLi4uLi4uLi4uIDU5MTcgLSAyMDE1LTA3LTE2IDA3OjAyOjI2IiwiKioqKioqLi4uLi4uLi4uIDU5MTggLSAyMDE1LTA3LTE2IDA3OjAyOjI4IiwiKioqKioqKi4uLi4uLi4uIDU5MTkgLSAyMDE1LTA3LTE2IDA3OjAyOjMwIiwiKioqKioqKiouLi4uLi4uIDU5MjAgLSAyMDE1LTA3LTE2IDA3OjAyOjMyIiwiKioqKioqKioqLi4uLi4uIDU5MjEgLSAyMDE1LTA3LTE2IDA3OjAyOjM1IiwiKioqKioqKioqKi4uLi4uIDU5MjIgLSAyMDE1LTA3LTE2IDA3OjAyOjM3IiwiKioqKioqKioqKiouLi4uIDU5MjMgLSAyMDE1LTA3LTE2IDA3OjAyOjM5IiwiKioqKioqKioqKioqLi4uIDU5MjQgLSAyMDE1LTA3LTE2IDA3OjAyOjQxIiwiKioqKioqKioqKioqKi4uIDU5MjUgLSAyMDE1LTA3LTE2IDA3OjAyOjQzIiwiKioqKioqKioqKioqKiouIDU5MjYgLSAyMDE1LTA3LTE2IDA3OjAyOjQ1IiwiKioqKioqKioqKioqKioqIDU5MjcgLSAyMDE1LTA3LTE2IDA3OjAyOjQ3IiwiKi4uLi4uLi4uLi4uLi4uIDU5MjggLSAyMDE1LTA3LTE2IDA3OjAyOjQ5IiwiKiouLi4uLi4uLi4uLi4uIDU5MjkgLSAyMDE1LTA3LTE2IDA3OjAyOjUxIiwiKioqLi4uLi4uLi4uLi4uIDU5MzAgLSAyMDE1LTA3LTE2IDA3OjAyOjUzIiwiKioqKi4uLi4uLi4uLi4uIDU5MzEgLSAyMDE1LTA3LTE2IDA3OjAyOjU1IiwiKioqKiouLi4uLi4uLi4uIDU5MzIgLSAyMDE1LTA3LTE2IDA3OjAyOjU3IiwiKioqKioqLi4uLi4uLi4uIDU5MzMgLSAyMDE1LTA3LTE2IDA3OjAyOjU5IiwiKioqKioqKi4uLi4uLi4uIDU5MzQgLSAyMDE1LTA3LTE2IDA3OjAzOjAxIiwiKioqKioqKiouLi4uLi4uIDU5MzUgLSAyMDE1LTA3LTE2IDA3OjAzOjAzIiwiKioqKioqKioqLi4uLi4uIDU5MzYgLSAyMDE1LTA3LTE2IDA3OjAzOjA1IiwiKioqKioqKioqKi4uLi4uIDU5MzcgLSAyMDE1LTA3LTE2IDA3OjAzOjA3IiwiKioqKioqKioqKiouLi4uIDU5MzggLSAyMDE1LTA3LTE2IDA3OjAzOjA5IiwiKioqKioqKioqKioqLi4uIDU5MzkgLSAyMDE1LTA3LTE2IDA3OjAzOjExIiwiKioqKioqKioqKioqKi4uIDU5NDAgLSAyMDE1LTA3LTE2IDA3OjAzOjEzIiwiKioqKioqKioqKioqKiouIDU5NDEgLSAyMDE1LTA3LTE2IDA3OjAzOjE1IiwiKioqKioqKioqKioqKioqIDU5NDIgLSAyMDE1LTA3LTE2IDA3OjAzOjE3IiwiKi4uLi4uLi4uLi4uLi4uIDU5NDMgLSAyMDE1LTA3LTE2IDA3OjAzOjE5IiwiKiouLi4uLi4uLi4uLi4uIDU5NDQgLSAyMDE1LTA3LTE2IDA3OjAzOjIxIiwiKioqLi4uLi4uLi4uLi4uIDU5NDUgLSAyMDE1LTA3LTE2IDA3OjAzOjI0IiwiKioqKi4uLi4uLi4uLi4uIDU5NDYgLSAyMDE1LTA3LTE2IDA3OjAzOjI2IiwiKioqKiouLi4uLi4uLi4uIDU5NDcgLSAyMDE1LTA3LTE2IDA3OjAzOjI4IiwiKioqKioqLi4uLi4uLi4uIDU5NDggLSAyMDE1LTA3LTE2IDA3OjAzOjMwIiwiKioqKioqKi4uLi4uLi4uIDU5NDkgLSAyMDE1LTA3LTE2IDA3OjAzOjMyIiwiKioqKioqKiouLi4uLi4uIDU5NTAgLSAyMDE1LTA3LTE2IDA3OjAzOjM0IiwiKioqKioqKioqLi4uLi4uIDU5NTEgLSAyMDE1LTA3LTE2IDA3OjAzOjM2IiwiKioqKioqKioqKi4uLi4uIDU5NTIgLSAyMDE1LTA3LTE2IDA3OjAzOjM4IiwiKioqKioqKioqKiouLi4uIDU5NTMgLSAyMDE1LTA3LTE2IDA3OjAzOjQwIiwiKioqKioqKioqKioqLi4uIDU5NTQgLSAyMDE1LTA3LTE2IDA3OjAzOjQyIiwiKioqKioqKioqKioqKi4uIDU5NTUgLSAyMDE1LTA3LTE2IDA3OjAzOjQ0IiwiKioqKioqKioqKioqKiouIDU5NTYgLSAyMDE1LTA3LTE2IDA3OjAzOjQ2Il0sMTQzNzA1NTIyNDA3MjA1NDksMTQzNzA1NTQyNzM3MzA0NTdd - json - - - *****.......... 5857 - 2015-07-16 07:00:23 - ******......... 5858 - 2015-07-16 07:00:25 - *******........ 5859 - 2015-07-16 07:00:27 - ********....... 5860 - 2015-07-16 07:00:29 - *********...... 5861 - 2015-07-16 07:00:31 - **********..... 5862 - 2015-07-16 07:00:33 - ***********.... 5863 - 2015-07-16 07:00:35 - ************... 5864 - 2015-07-16 07:00:37 - *************.. 5865 - 2015-07-16 07:00:39 - **************. 5866 - 2015-07-16 07:00:41 - *************** 5867 - 2015-07-16 07:00:44 - *.............. 5868 - 2015-07-16 07:00:46 - **............. 5869 - 2015-07-16 07:00:48 - ***............ 5870 - 2015-07-16 07:00:50 - ****........... 5871 - 2015-07-16 07:00:52 - *****.......... 5872 - 2015-07-16 07:00:54 - ******......... 5873 - 2015-07-16 07:00:56 - *******........ 5874 - 2015-07-16 07:00:58 - ********....... 5875 - 2015-07-16 07:01:00 - *********...... 5876 - 2015-07-16 07:01:03 - **********..... 5877 - 2015-07-16 07:01:05 - ***********.... 5878 - 2015-07-16 07:01:07 - ************... 5879 - 2015-07-16 07:01:09 - *************.. 5880 - 2015-07-16 07:01:11 - **************. 5881 - 2015-07-16 07:01:13 - *************** 5882 - 2015-07-16 07:01:15 - *.............. 5883 - 2015-07-16 07:01:17 - **............. 5884 - 2015-07-16 07:01:19 - ***............ 5885 - 2015-07-16 07:01:21 - ****........... 5886 - 2015-07-16 07:01:23 - *****.......... 5887 - 2015-07-16 07:01:25 - ******......... 5888 - 2015-07-16 07:01:27 - *******........ 5889 - 2015-07-16 07:01:29 - ********....... 5890 - 2015-07-16 07:01:31 - *********...... 5891 - 2015-07-16 07:01:33 - **********..... 5892 - 2015-07-16 07:01:35 - ***********.... 5893 - 2015-07-16 07:01:37 - ************... 5894 - 2015-07-16 07:01:39 - *************.. 5895 - 2015-07-16 07:01:41 - **************. 5896 - 2015-07-16 07:01:43 - *************** 5897 - 2015-07-16 07:01:45 - *.............. 5898 - 2015-07-16 07:01:47 - **............. 5899 - 2015-07-16 07:01:49 - ***............ 5900 - 2015-07-16 07:01:52 - ****........... 5901 - 2015-07-16 07:01:54 - *****.......... 5902 - 2015-07-16 07:01:56 - ******......... 5903 - 2015-07-16 07:01:58 - *******........ 5904 - 2015-07-16 07:02:00 - ********....... 5905 - 2015-07-16 07:02:02 - *********...... 5906 - 2015-07-16 07:02:04 - **********..... 5907 - 2015-07-16 07:02:06 - ***********.... 5908 - 2015-07-16 07:02:08 - ************... 5909 - 2015-07-16 07:02:10 - *************.. 5910 - 2015-07-16 07:02:12 - **************. 5911 - 2015-07-16 07:02:14 - *************** 5912 - 2015-07-16 07:02:16 - *.............. 5913 - 2015-07-16 07:02:18 - **............. 5914 - 2015-07-16 07:02:20 - ***............ 5915 - 2015-07-16 07:02:22 - ****........... 5916 - 2015-07-16 07:02:24 - *****.......... 5917 - 2015-07-16 07:02:26 - ******......... 5918 - 2015-07-16 07:02:28 - *******........ 5919 - 2015-07-16 07:02:30 - ********....... 5920 - 2015-07-16 07:02:32 - *********...... 5921 - 2015-07-16 07:02:35 - **********..... 5922 - 2015-07-16 07:02:37 - ***********.... 5923 - 2015-07-16 07:02:39 - ************... 5924 - 2015-07-16 07:02:41 - *************.. 5925 - 2015-07-16 07:02:43 - **************. 5926 - 2015-07-16 07:02:45 - *************** 5927 - 2015-07-16 07:02:47 - *.............. 5928 - 2015-07-16 07:02:49 - **............. 5929 - 2015-07-16 07:02:51 - ***............ 5930 - 2015-07-16 07:02:53 - ****........... 5931 - 2015-07-16 07:02:55 - *****.......... 5932 - 2015-07-16 07:02:57 - ******......... 5933 - 2015-07-16 07:02:59 - *******........ 5934 - 2015-07-16 07:03:01 - ********....... 5935 - 2015-07-16 07:03:03 - *********...... 5936 - 2015-07-16 07:03:05 - **********..... 5937 - 2015-07-16 07:03:07 - ***********.... 5938 - 2015-07-16 07:03:09 - ************... 5939 - 2015-07-16 07:03:11 - *************.. 5940 - 2015-07-16 07:03:13 - **************. 5941 - 2015-07-16 07:03:15 - *************** 5942 - 2015-07-16 07:03:17 - *.............. 5943 - 2015-07-16 07:03:19 - **............. 5944 - 2015-07-16 07:03:21 - ***............ 5945 - 2015-07-16 07:03:24 - ****........... 5946 - 2015-07-16 07:03:26 - *****.......... 5947 - 2015-07-16 07:03:28 - ******......... 5948 - 2015-07-16 07:03:30 - *******........ 5949 - 2015-07-16 07:03:32 - ********....... 5950 - 2015-07-16 07:03:34 - *********...... 5951 - 2015-07-16 07:03:36 - **********..... 5952 - 2015-07-16 07:03:38 - ***********.... 5953 - 2015-07-16 07:03:40 - ************... 5954 - 2015-07-16 07:03:42 - *************.. 5955 - 2015-07-16 07:03:44 - **************. 5956 - 2015-07-16 07:03:46 - - 14370552240720549 - 14370554273730457 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/history/sub-key/demo/channel/a?count=100&end=14356962619609342&reverse=false&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&include_token=false&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - PubNub-ObjC-iOS/4.3.3 - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/history/sub-key/demo-36/channel/a?count=100&end=14356962619609342&reverse=false&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&include_token=false&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - PubNub-ObjC-iOS/4.3.3 - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/history/sub-key/demo-36/channel/a?end=14356962619609342&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&reverse=false&count=100&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&include_token=false&pnsdk=PubNub-ObjC-iOS%2F4.0.2 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Encoding - gzip - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 16 Jul 2015 14:03:49 GMT - Server - Pubnub - Transfer-Encoding - Identity - - expectedContentLength - 4539 - statusCode - 200 - suggestedFileName - a.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNHistoryTests.bundle/testHistoryWithNilStartEnd.plist b/Tests/iOS Tests/Fixtures/PNHistoryTests.bundle/testHistoryWithNilStartEnd.plist deleted file mode 100755 index ee88a7873..000000000 --- a/Tests/iOS Tests/Fixtures/PNHistoryTests.bundle/testHistoryWithNilStartEnd.plist +++ /dev/null @@ -1,216 +0,0 @@ - - - - - - cancelled - - data - - data - W1siKioqKioqKioqKioqKioqIDc2MjggLSAyMDE1LTA3LTE2IDEzOjM2OjQ2IiwiKi4uLi4uLi4uLi4uLi4uIDc2MjkgLSAyMDE1LTA3LTE2IDEzOjM2OjQ4IiwiKiouLi4uLi4uLi4uLi4uIDc2MzAgLSAyMDE1LTA3LTE2IDEzOjM2OjUwIiwiKioqLi4uLi4uLi4uLi4uIDc2MzEgLSAyMDE1LTA3LTE2IDEzOjM2OjUyIiwiKioqKi4uLi4uLi4uLi4uIDc2MzIgLSAyMDE1LTA3LTE2IDEzOjM2OjU0IiwiKioqKiouLi4uLi4uLi4uIDc2MzMgLSAyMDE1LTA3LTE2IDEzOjM2OjU2IiwiKioqKioqLi4uLi4uLi4uIDc2MzQgLSAyMDE1LTA3LTE2IDEzOjM2OjU4IiwiKioqKioqKi4uLi4uLi4uIDc2MzUgLSAyMDE1LTA3LTE2IDEzOjM3OjAwIiwiKioqKioqKiouLi4uLi4uIDc2MzYgLSAyMDE1LTA3LTE2IDEzOjM3OjAyIiwiKioqKioqKioqLi4uLi4uIDc2MzcgLSAyMDE1LTA3LTE2IDEzOjM3OjA0IiwiKioqKioqKioqKi4uLi4uIDc2MzggLSAyMDE1LTA3LTE2IDEzOjM3OjA2IiwiKioqKioqKioqKiouLi4uIDc2MzkgLSAyMDE1LTA3LTE2IDEzOjM3OjA4IiwiKioqKioqKioqKioqLi4uIDc2NDAgLSAyMDE1LTA3LTE2IDEzOjM3OjEwIiwiKioqKioqKioqKioqKi4uIDc2NDEgLSAyMDE1LTA3LTE2IDEzOjM3OjEyIiwiKioqKioqKioqKioqKiouIDc2NDIgLSAyMDE1LTA3LTE2IDEzOjM3OjE0IiwiKioqKioqKioqKioqKioqIDc2NDMgLSAyMDE1LTA3LTE2IDEzOjM3OjE2IiwiKi4uLi4uLi4uLi4uLi4uIDc2NDQgLSAyMDE1LTA3LTE2IDEzOjM3OjE4IiwiKiouLi4uLi4uLi4uLi4uIDc2NDUgLSAyMDE1LTA3LTE2IDEzOjM3OjIwIiwiKioqLi4uLi4uLi4uLi4uIDc2NDYgLSAyMDE1LTA3LTE2IDEzOjM3OjIyIiwiKioqKi4uLi4uLi4uLi4uIDc2NDcgLSAyMDE1LTA3LTE2IDEzOjM3OjI1IiwiKioqKiouLi4uLi4uLi4uIDc2NDggLSAyMDE1LTA3LTE2IDEzOjM3OjI3IiwiKioqKioqLi4uLi4uLi4uIDc2NDkgLSAyMDE1LTA3LTE2IDEzOjM3OjI5IiwiKioqKioqKi4uLi4uLi4uIDc2NTAgLSAyMDE1LTA3LTE2IDEzOjM3OjMxIiwiKioqKioqKiouLi4uLi4uIDc2NTEgLSAyMDE1LTA3LTE2IDEzOjM3OjMzIiwiKioqKioqKioqLi4uLi4uIDc2NTIgLSAyMDE1LTA3LTE2IDEzOjM3OjM1IiwiKioqKioqKioqKi4uLi4uIDc2NTMgLSAyMDE1LTA3LTE2IDEzOjM3OjM3IiwiKioqKioqKioqKiouLi4uIDc2NTQgLSAyMDE1LTA3LTE2IDEzOjM3OjM5IiwiKioqKioqKioqKioqLi4uIDc2NTUgLSAyMDE1LTA3LTE2IDEzOjM3OjQxIiwiKioqKioqKioqKioqKi4uIDc2NTYgLSAyMDE1LTA3LTE2IDEzOjM3OjQzIiwiKioqKioqKioqKioqKiouIDc2NTcgLSAyMDE1LTA3LTE2IDEzOjM3OjQ1IiwiKioqKioqKioqKioqKioqIDc2NTggLSAyMDE1LTA3LTE2IDEzOjM3OjQ3IiwiKi4uLi4uLi4uLi4uLi4uIDc2NTkgLSAyMDE1LTA3LTE2IDEzOjM3OjQ5IiwiKiouLi4uLi4uLi4uLi4uIDc2NjAgLSAyMDE1LTA3LTE2IDEzOjM3OjUxIiwiKioqLi4uLi4uLi4uLi4uIDc2NjEgLSAyMDE1LTA3LTE2IDEzOjM3OjUzIiwiKioqKi4uLi4uLi4uLi4uIDc2NjIgLSAyMDE1LTA3LTE2IDEzOjM3OjU1IiwiKioqKiouLi4uLi4uLi4uIDc2NjMgLSAyMDE1LTA3LTE2IDEzOjM3OjU3IiwiKioqKioqLi4uLi4uLi4uIDc2NjQgLSAyMDE1LTA3LTE2IDEzOjM3OjU5IiwiKioqKioqKi4uLi4uLi4uIDc2NjUgLSAyMDE1LTA3LTE2IDEzOjM4OjAyIiwiKioqKioqKiouLi4uLi4uIDc2NjYgLSAyMDE1LTA3LTE2IDEzOjM4OjA0IiwiKioqKioqKioqLi4uLi4uIDc2NjcgLSAyMDE1LTA3LTE2IDEzOjM4OjA2IiwiKioqKioqKioqKi4uLi4uIDc2NjggLSAyMDE1LTA3LTE2IDEzOjM4OjA4IiwiKioqKioqKioqKiouLi4uIDc2NjkgLSAyMDE1LTA3LTE2IDEzOjM4OjExIiwiKioqKioqKioqKioqLi4uIDc2NzAgLSAyMDE1LTA3LTE2IDEzOjM4OjEzIiwiKioqKioqKioqKioqKi4uIDc2NzEgLSAyMDE1LTA3LTE2IDEzOjM4OjE1IiwiKioqKioqKioqKioqKiouIDc2NzIgLSAyMDE1LTA3LTE2IDEzOjM4OjE3IiwiKioqKioqKioqKioqKioqIDc2NzMgLSAyMDE1LTA3LTE2IDEzOjM4OjE5IiwiKi4uLi4uLi4uLi4uLi4uIDc2NzQgLSAyMDE1LTA3LTE2IDEzOjM4OjIxIiwiKiouLi4uLi4uLi4uLi4uIDc2NzUgLSAyMDE1LTA3LTE2IDEzOjM4OjIzIiwiKioqLi4uLi4uLi4uLi4uIDc2NzYgLSAyMDE1LTA3LTE2IDEzOjM4OjI1IiwiKioqKi4uLi4uLi4uLi4uIDc2NzcgLSAyMDE1LTA3LTE2IDEzOjM4OjI3IiwiKioqKiouLi4uLi4uLi4uIDc2NzggLSAyMDE1LTA3LTE2IDEzOjM4OjI5IiwiKioqKioqLi4uLi4uLi4uIDc2NzkgLSAyMDE1LTA3LTE2IDEzOjM4OjMxIiwiKioqKioqKi4uLi4uLi4uIDc2ODAgLSAyMDE1LTA3LTE2IDEzOjM4OjMzIiwiKioqKioqKiouLi4uLi4uIDc2ODEgLSAyMDE1LTA3LTE2IDEzOjM4OjM1IiwiKioqKioqKioqLi4uLi4uIDc2ODIgLSAyMDE1LTA3LTE2IDEzOjM4OjM3IiwiKioqKioqKioqKi4uLi4uIDc2ODMgLSAyMDE1LTA3LTE2IDEzOjM4OjM5IiwiKioqKioqKioqKiouLi4uIDc2ODQgLSAyMDE1LTA3LTE2IDEzOjM4OjQxIiwiKioqKioqKioqKioqLi4uIDc2ODUgLSAyMDE1LTA3LTE2IDEzOjM4OjQzIiwiKioqKioqKioqKioqKi4uIDc2ODYgLSAyMDE1LTA3LTE2IDEzOjM4OjQ1IiwiKioqKioqKioqKioqKiouIDc2ODcgLSAyMDE1LTA3LTE2IDEzOjM4OjQ4IiwiKioqKioqKioqKioqKioqIDc2ODggLSAyMDE1LTA3LTE2IDEzOjM4OjUwIiwiKi4uLi4uLi4uLi4uLi4uIDc2ODkgLSAyMDE1LTA3LTE2IDEzOjM4OjUyIiwiKiouLi4uLi4uLi4uLi4uIDc2OTAgLSAyMDE1LTA3LTE2IDEzOjM4OjU0IiwiKioqLi4uLi4uLi4uLi4uIDc2OTEgLSAyMDE1LTA3LTE2IDEzOjM4OjU2IiwiKioqKi4uLi4uLi4uLi4uIDc2OTIgLSAyMDE1LTA3LTE2IDEzOjM4OjU4IiwiKioqKiouLi4uLi4uLi4uIDc2OTMgLSAyMDE1LTA3LTE2IDEzOjM5OjAwIiwiKioqKioqLi4uLi4uLi4uIDc2OTQgLSAyMDE1LTA3LTE2IDEzOjM5OjAyIiwiKioqKioqKi4uLi4uLi4uIDc2OTUgLSAyMDE1LTA3LTE2IDEzOjM5OjA0IiwiKioqKioqKiouLi4uLi4uIDc2OTYgLSAyMDE1LTA3LTE2IDEzOjM5OjA2IiwiKioqKioqKioqLi4uLi4uIDc2OTcgLSAyMDE1LTA3LTE2IDEzOjM5OjA4IiwiKioqKioqKioqKi4uLi4uIDc2OTggLSAyMDE1LTA3LTE2IDEzOjM5OjEwIiwiKioqKioqKioqKiouLi4uIDc2OTkgLSAyMDE1LTA3LTE2IDEzOjM5OjEyIiwiKioqKioqKioqKioqLi4uIDc3MDAgLSAyMDE1LTA3LTE2IDEzOjM5OjE0IiwiKioqKioqKioqKioqKi4uIDc3MDEgLSAyMDE1LTA3LTE2IDEzOjM5OjE2IiwiKioqKioqKioqKioqKiouIDc3MDIgLSAyMDE1LTA3LTE2IDEzOjM5OjE4IiwiKioqKioqKioqKioqKioqIDc3MDMgLSAyMDE1LTA3LTE2IDEzOjM5OjIwIiwiKi4uLi4uLi4uLi4uLi4uIDc3MDQgLSAyMDE1LTA3LTE2IDEzOjM5OjIyIiwiKiouLi4uLi4uLi4uLi4uIDc3MDUgLSAyMDE1LTA3LTE2IDEzOjM5OjI0IiwiKioqLi4uLi4uLi4uLi4uIDc3MDYgLSAyMDE1LTA3LTE2IDEzOjM5OjI2IiwiKioqKi4uLi4uLi4uLi4uIDc3MDcgLSAyMDE1LTA3LTE2IDEzOjM5OjI4IiwiKioqKiouLi4uLi4uLi4uIDc3MDggLSAyMDE1LTA3LTE2IDEzOjM5OjMwIiwiKioqKioqLi4uLi4uLi4uIDc3MDkgLSAyMDE1LTA3LTE2IDEzOjM5OjMzIiwiKioqKioqKi4uLi4uLi4uIDc3MTAgLSAyMDE1LTA3LTE2IDEzOjM5OjM1IiwiKioqKioqKiouLi4uLi4uIDc3MTEgLSAyMDE1LTA3LTE2IDEzOjM5OjM3IiwiKioqKioqKioqLi4uLi4uIDc3MTIgLSAyMDE1LTA3LTE2IDEzOjM5OjM5IiwiKioqKioqKioqKi4uLi4uIDc3MTMgLSAyMDE1LTA3LTE2IDEzOjM5OjQxIiwiKioqKioqKioqKiouLi4uIDc3MTQgLSAyMDE1LTA3LTE2IDEzOjM5OjQzIiwiKioqKioqKioqKioqLi4uIDc3MTUgLSAyMDE1LTA3LTE2IDEzOjM5OjQ1IiwiKioqKioqKioqKioqKi4uIDc3MTYgLSAyMDE1LTA3LTE2IDEzOjM5OjQ3IiwiKioqKioqKioqKioqKiouIDc3MTcgLSAyMDE1LTA3LTE2IDEzOjM5OjQ5IiwiKioqKioqKioqKioqKioqIDc3MTggLSAyMDE1LTA3LTE2IDEzOjM5OjUxIiwiKi4uLi4uLi4uLi4uLi4uIDc3MTkgLSAyMDE1LTA3LTE2IDEzOjM5OjUzIiwiKiouLi4uLi4uLi4uLi4uIDc3MjAgLSAyMDE1LTA3LTE2IDEzOjM5OjU1IiwiKioqLi4uLi4uLi4uLi4uIDc3MjEgLSAyMDE1LTA3LTE2IDEzOjM5OjU3IiwiKioqKi4uLi4uLi4uLi4uIDc3MjIgLSAyMDE1LTA3LTE2IDEzOjM5OjU5IiwiKioqKiouLi4uLi4uLi4uIDc3MjMgLSAyMDE1LTA3LTE2IDEzOjQwOjAxIiwiKioqKioqLi4uLi4uLi4uIDc3MjQgLSAyMDE1LTA3LTE2IDEzOjQwOjAzIiwiKioqKioqKi4uLi4uLi4uIDc3MjUgLSAyMDE1LTA3LTE2IDEzOjQwOjA1IiwiKioqKioqKiouLi4uLi4uIDc3MjYgLSAyMDE1LTA3LTE2IDEzOjQwOjA3IiwiKioqKioqKioqLi4uLi4uIDc3MjcgLSAyMDE1LTA3LTE2IDEzOjQwOjA5Il0sMTQzNzA3OTAwNzE0NTU1NTAsMTQzNzA3OTIxMDYxODc1MzBd - json - - - *************** 7628 - 2015-07-16 13:36:46 - *.............. 7629 - 2015-07-16 13:36:48 - **............. 7630 - 2015-07-16 13:36:50 - ***............ 7631 - 2015-07-16 13:36:52 - ****........... 7632 - 2015-07-16 13:36:54 - *****.......... 7633 - 2015-07-16 13:36:56 - ******......... 7634 - 2015-07-16 13:36:58 - *******........ 7635 - 2015-07-16 13:37:00 - ********....... 7636 - 2015-07-16 13:37:02 - *********...... 7637 - 2015-07-16 13:37:04 - **********..... 7638 - 2015-07-16 13:37:06 - ***********.... 7639 - 2015-07-16 13:37:08 - ************... 7640 - 2015-07-16 13:37:10 - *************.. 7641 - 2015-07-16 13:37:12 - **************. 7642 - 2015-07-16 13:37:14 - *************** 7643 - 2015-07-16 13:37:16 - *.............. 7644 - 2015-07-16 13:37:18 - **............. 7645 - 2015-07-16 13:37:20 - ***............ 7646 - 2015-07-16 13:37:22 - ****........... 7647 - 2015-07-16 13:37:25 - *****.......... 7648 - 2015-07-16 13:37:27 - ******......... 7649 - 2015-07-16 13:37:29 - *******........ 7650 - 2015-07-16 13:37:31 - ********....... 7651 - 2015-07-16 13:37:33 - *********...... 7652 - 2015-07-16 13:37:35 - **********..... 7653 - 2015-07-16 13:37:37 - ***********.... 7654 - 2015-07-16 13:37:39 - ************... 7655 - 2015-07-16 13:37:41 - *************.. 7656 - 2015-07-16 13:37:43 - **************. 7657 - 2015-07-16 13:37:45 - *************** 7658 - 2015-07-16 13:37:47 - *.............. 7659 - 2015-07-16 13:37:49 - **............. 7660 - 2015-07-16 13:37:51 - ***............ 7661 - 2015-07-16 13:37:53 - ****........... 7662 - 2015-07-16 13:37:55 - *****.......... 7663 - 2015-07-16 13:37:57 - ******......... 7664 - 2015-07-16 13:37:59 - *******........ 7665 - 2015-07-16 13:38:02 - ********....... 7666 - 2015-07-16 13:38:04 - *********...... 7667 - 2015-07-16 13:38:06 - **********..... 7668 - 2015-07-16 13:38:08 - ***********.... 7669 - 2015-07-16 13:38:11 - ************... 7670 - 2015-07-16 13:38:13 - *************.. 7671 - 2015-07-16 13:38:15 - **************. 7672 - 2015-07-16 13:38:17 - *************** 7673 - 2015-07-16 13:38:19 - *.............. 7674 - 2015-07-16 13:38:21 - **............. 7675 - 2015-07-16 13:38:23 - ***............ 7676 - 2015-07-16 13:38:25 - ****........... 7677 - 2015-07-16 13:38:27 - *****.......... 7678 - 2015-07-16 13:38:29 - ******......... 7679 - 2015-07-16 13:38:31 - *******........ 7680 - 2015-07-16 13:38:33 - ********....... 7681 - 2015-07-16 13:38:35 - *********...... 7682 - 2015-07-16 13:38:37 - **********..... 7683 - 2015-07-16 13:38:39 - ***********.... 7684 - 2015-07-16 13:38:41 - ************... 7685 - 2015-07-16 13:38:43 - *************.. 7686 - 2015-07-16 13:38:45 - **************. 7687 - 2015-07-16 13:38:48 - *************** 7688 - 2015-07-16 13:38:50 - *.............. 7689 - 2015-07-16 13:38:52 - **............. 7690 - 2015-07-16 13:38:54 - ***............ 7691 - 2015-07-16 13:38:56 - ****........... 7692 - 2015-07-16 13:38:58 - *****.......... 7693 - 2015-07-16 13:39:00 - ******......... 7694 - 2015-07-16 13:39:02 - *******........ 7695 - 2015-07-16 13:39:04 - ********....... 7696 - 2015-07-16 13:39:06 - *********...... 7697 - 2015-07-16 13:39:08 - **********..... 7698 - 2015-07-16 13:39:10 - ***********.... 7699 - 2015-07-16 13:39:12 - ************... 7700 - 2015-07-16 13:39:14 - *************.. 7701 - 2015-07-16 13:39:16 - **************. 7702 - 2015-07-16 13:39:18 - *************** 7703 - 2015-07-16 13:39:20 - *.............. 7704 - 2015-07-16 13:39:22 - **............. 7705 - 2015-07-16 13:39:24 - ***............ 7706 - 2015-07-16 13:39:26 - ****........... 7707 - 2015-07-16 13:39:28 - *****.......... 7708 - 2015-07-16 13:39:30 - ******......... 7709 - 2015-07-16 13:39:33 - *******........ 7710 - 2015-07-16 13:39:35 - ********....... 7711 - 2015-07-16 13:39:37 - *********...... 7712 - 2015-07-16 13:39:39 - **********..... 7713 - 2015-07-16 13:39:41 - ***********.... 7714 - 2015-07-16 13:39:43 - ************... 7715 - 2015-07-16 13:39:45 - *************.. 7716 - 2015-07-16 13:39:47 - **************. 7717 - 2015-07-16 13:39:49 - *************** 7718 - 2015-07-16 13:39:51 - *.............. 7719 - 2015-07-16 13:39:53 - **............. 7720 - 2015-07-16 13:39:55 - ***............ 7721 - 2015-07-16 13:39:57 - ****........... 7722 - 2015-07-16 13:39:59 - *****.......... 7723 - 2015-07-16 13:40:01 - ******......... 7724 - 2015-07-16 13:40:03 - *******........ 7725 - 2015-07-16 13:40:05 - ********....... 7726 - 2015-07-16 13:40:07 - *********...... 7727 - 2015-07-16 13:40:09 - - 14370790071455550 - 14370792106187530 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/history/sub-key/demo-36/channel/a?count=100&reverse=false&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&include_token=false - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - PubNub-ObjC-iOS/4.3.3 - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/history/sub-key/demo/channel/a?count=100&reverse=false&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&include_token=false - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - PubNub-ObjC-iOS/4.3.3 - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/history/sub-key/demo-36/channel/a?pnsdk=PubNub-ObjC-iOS%2F4.0.2&include_token=false&count=100&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&reverse=false&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Encoding - gzip - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 16 Jul 2015 20:40:11 GMT - Server - Pubnub - Transfer-Encoding - Identity - - expectedContentLength - 4539 - statusCode - 200 - suggestedFileName - a.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNHistoryTests.bundle/testHistoryWithTimeToken.plist b/Tests/iOS Tests/Fixtures/PNHistoryTests.bundle/testHistoryWithTimeToken.plist deleted file mode 100755 index c6103cf01..000000000 --- a/Tests/iOS Tests/Fixtures/PNHistoryTests.bundle/testHistoryWithTimeToken.plist +++ /dev/null @@ -1,250 +0,0 @@ - - - - - - cancelled - - error - - code - -1001 - description - The operation couldn’t be completed. (kCFErrorDomainCFNetwork error -1001.) - domain - kCFErrorDomainCFNetwork - userInfo - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/time/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip, deflate - Accept-Language - en;q=1, fr;q=0.9, de;q=0.8, zh-Hans;q=0.7, zh-Hant;q=0.6, ja;q=0.5 - User-Agent - (null)/(null) (iPhone Simulator; iOS 8.2; Scale/2.00) - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/time/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept-Language - en;q=1, fr;q=0.9, de;q=0.8, zh-Hans;q=0.7, zh-Hant;q=0.6, ja;q=0.5 - User-Agent - (null)/(null) (iPhone Simulator; iOS 8.2; Scale/2.00) - - allowsCellularAccess - - timeoutInterval - 60 - - - - - cancelled - - data - - data - W1t7Im1lc3NhZ2UiOiIqKioqKioqKiouLi4uLi4gMTI0NCAtIDIwMTUtMDYtMzAgMTM6MzA6MzUiLCJ0aW1ldG9rZW4iOjE0MzU2OTYyMzY0NDkwODg4fSx7Im1lc3NhZ2UiOiIqKioqKioqKioqLi4uLi4gMTI0NSAtIDIwMTUtMDYtMzAgMTM6MzA6MzciLCJ0aW1ldG9rZW4iOjE0MzU2OTYyMzg0ODk4NzUzfSx7Im1lc3NhZ2UiOiIqKioqKioqKioqKi4uLi4gMTI0NiAtIDIwMTUtMDYtMzAgMTM6MzA6MzkiLCJ0aW1ldG9rZW4iOjE0MzU2OTYyNDA1Mjk0MzA1fSx7Im1lc3NhZ2UiOiIqKioqKioqKioqKiouLi4gMTI0NyAtIDIwMTUtMDYtMzAgMTM6MzA6NDEiLCJ0aW1ldG9rZW4iOjE0MzU2OTYyNDI1NzA0ODYzfSx7Im1lc3NhZ2UiOiIqKioqKioqKioqKioqLi4gMTI0OCAtIDIwMTUtMDYtMzAgMTM6MzA6NDMiLCJ0aW1ldG9rZW4iOjE0MzU2OTYyNDQ2MTI2Nzg4fSx7Im1lc3NhZ2UiOiIqKioqKioqKioqKioqKi4gMTI0OSAtIDIwMTUtMDYtMzAgMTM6MzA6NDUiLCJ0aW1ldG9rZW4iOjE0MzU2OTYyNDY2NTQyMjQ4fSx7Im1lc3NhZ2UiOiIqKioqKioqKioqKioqKiogMTI1MCAtIDIwMTUtMDYtMzAgMTM6MzA6NDciLCJ0aW1ldG9rZW4iOjE0MzU2OTYyNDg2OTg3ODE4fSx7Im1lc3NhZ2UiOiIqLi4uLi4uLi4uLi4uLi4gMTI1MSAtIDIwMTUtMDYtMzAgMTM6MzA6NDkiLCJ0aW1ldG9rZW4iOjE0MzU2OTYyNTA3NDc4Njk0fSx7Im1lc3NhZ2UiOiIqKi4uLi4uLi4uLi4uLi4gMTI1MiAtIDIwMTUtMDYtMzAgMTM6MzA6NTEiLCJ0aW1ldG9rZW4iOjE0MzU2OTYyNTI3ODg1MTc5fSx7Im1lc3NhZ2UiOiIqKiouLi4uLi4uLi4uLi4gMTI1MyAtIDIwMTUtMDYtMzAgMTM6MzA6NTMiLCJ0aW1ldG9rZW4iOjE0MzU2OTYyNTQ4MjgxNDk5fSx7Im1lc3NhZ2UiOiIqKioqLi4uLi4uLi4uLi4gMTI1NCAtIDIwMTUtMDYtMzAgMTM6MzA6NTUiLCJ0aW1ldG9rZW4iOjE0MzU2OTYyNTY4NzA4NjYwfSx7Im1lc3NhZ2UiOiIqKioqKi4uLi4uLi4uLi4gMTI1NSAtIDIwMTUtMDYtMzAgMTM6MzA6NTgiLCJ0aW1ldG9rZW4iOjE0MzU2OTYyNTg5MTAxNzIyfSx7Im1lc3NhZ2UiOiIqKioqKiouLi4uLi4uLi4gMTI1NiAtIDIwMTUtMDYtMzAgMTM6MzE6MDAiLCJ0aW1ldG9rZW4iOjE0MzU2OTYyNjA5NTIxNDU1fV0sMTQzNTY5NjIzNjQ0OTA4ODgsMTQzNTY5NjI2MDk1MjE0NTVd - json - - - - message - *********...... 1244 - 2015-06-30 13:30:35 - timetoken - 14356962364490888 - - - message - **********..... 1245 - 2015-06-30 13:30:37 - timetoken - 14356962384898753 - - - message - ***********.... 1246 - 2015-06-30 13:30:39 - timetoken - 14356962405294305 - - - message - ************... 1247 - 2015-06-30 13:30:41 - timetoken - 14356962425704863 - - - message - *************.. 1248 - 2015-06-30 13:30:43 - timetoken - 14356962446126788 - - - message - **************. 1249 - 2015-06-30 13:30:45 - timetoken - 14356962466542248 - - - message - *************** 1250 - 2015-06-30 13:30:47 - timetoken - 14356962486987818 - - - message - *.............. 1251 - 2015-06-30 13:30:49 - timetoken - 14356962507478694 - - - message - **............. 1252 - 2015-06-30 13:30:51 - timetoken - 14356962527885179 - - - message - ***............ 1253 - 2015-06-30 13:30:53 - timetoken - 14356962548281499 - - - message - ****........... 1254 - 2015-06-30 13:30:55 - timetoken - 14356962568708660 - - - message - *****.......... 1255 - 2015-06-30 13:30:58 - timetoken - 14356962589101722 - - - message - ******......... 1256 - 2015-06-30 13:31:00 - timetoken - 14356962609521455 - - - 14356962364490888 - 14356962609521455 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/history/sub-key/demo/channel/a?count=100&end=14356962619609342&reverse=false&start=14356962344283504&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&include_token=true&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip, deflate - Accept-Language - en;q=1, fr;q=0.9, de;q=0.8, zh-Hans;q=0.7, zh-Hant;q=0.6, ja;q=0.5 - User-Agent - (null)/(null) (iPhone Simulator; iOS 8.2; Scale/2.00) - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/history/sub-key/demo-36/channel/a?count=100&end=14356962619609342&reverse=false&start=14356962344283504&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&include_token=true&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept-Language - en;q=1, fr;q=0.9, de;q=0.8, zh-Hans;q=0.7, zh-Hant;q=0.6, ja;q=0.5 - User-Agent - (null)/(null) (iPhone Simulator; iOS 8.2; Scale/2.00) - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/history/sub-key/demo-36/channel/a?end=14356962619609342&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&start=14356962344283504&reverse=false&count=100&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.0&include_token=true - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Encoding - gzip - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 30 Jun 2015 21:05:18 GMT - Server - Pubnub - Transfer-Encoding - Identity - - expectedContentLength - 1170 - statusCode - 200 - suggestedFileName - a.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNPresenceChannelGroupTests.bundle/testHereNowForChannelGroup.plist b/Tests/iOS Tests/Fixtures/PNPresenceChannelGroupTests.bundle/testHereNowForChannelGroup.plist deleted file mode 100755 index c0afd9fb3..000000000 --- a/Tests/iOS Tests/Fixtures/PNPresenceChannelGroupTests.bundle/testHereNowForChannelGroup.plist +++ /dev/null @@ -1,375 +0,0 @@ - - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - json - - error - - message - OK - service - channel-registry - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/testGroup?add=2EC925F0-B996-47A4-AF54-A605E1A9AEBA%2Ca&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo/channel-group/testGroup?add=2EC925F0-B996-47A4-AF54-A605E1A9AEBA%2Ca&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/testGroup?pnsdk=PubNub-ObjC-iOS%2F4.2.0&add=2EC925F0-B996-47A4-AF54-A605E1A9AEBA,a&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 23:28:08 GMT - Server - Pubnub - - expectedContentLength - 79 - statusCode - 200 - suggestedFileName - testGroup.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWxzIjogeyJhIjogeyJ1dWlkcyI6IFt7InV1aWQiOiAiZDA2Mzc5MGEtNWZhYy00YzdiLTkwMzgtYjUxMWI2MWViMjNkIn1dLCAib2NjdXBhbmN5IjogMX0sICIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEiOiB7InV1aWRzIjogW3sidXVpZCI6ICJkMDYzNzkwYS01ZmFjLTRjN2ItOTAzOC1iNTExYjYxZWIyM2QifV0sICJvY2N1cGFuY3kiOiAxfX0sICJ0b3RhbF9jaGFubmVscyI6IDIsICJ0b3RhbF9vY2N1cGFuY3kiOiAyfSwgInNlcnZpY2UiOiAiUHJlc2VuY2UifQ== - json - - message - OK - payload - - channels - - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA - - occupancy - 1 - uuids - - - uuid - d063790a-5fac-4c7b-9038-b511b61eb23d - - - - a - - occupancy - 1 - uuids - - - uuid - d063790a-5fac-4c7b-9038-b511b61eb23d - - - - - total_channels - 2 - total_occupancy - 2 - - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/,?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&disable_uuids=0&state=1&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/,?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&disable_uuids=0&state=1&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/,?channel-group=testGroup&pnsdk=PubNub-ObjC-iOS%2F4.2.0&state=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&disable_uuids=0&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 328 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 23:28:08 GMT - Server - Pubnub Presence - - expectedContentLength - 328 - statusCode - 200 - suggestedFileName - ,.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDQ5Nzg5Nzk0MzcxMDMwNiIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14497897943710306 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.2.0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 23:28:08 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNPresenceChannelGroupTests.bundle/testHereNowForChannelGroupWithVerbosityOccupancy.plist b/Tests/iOS Tests/Fixtures/PNPresenceChannelGroupTests.bundle/testHereNowForChannelGroupWithVerbosityOccupancy.plist deleted file mode 100755 index 378e0a7d3..000000000 --- a/Tests/iOS Tests/Fixtures/PNPresenceChannelGroupTests.bundle/testHereNowForChannelGroupWithVerbosityOccupancy.plist +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - json - - error - - message - OK - service - channel-registry - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/testGroup?add=2EC925F0-B996-47A4-AF54-A605E1A9AEBA%2Ca&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/testGroup?add=2EC925F0-B996-47A4-AF54-A605E1A9AEBA%2Ca&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/testGroup?pnsdk=PubNub-ObjC-iOS%2F4.2.0&add=2EC925F0-B996-47A4-AF54-A605E1A9AEBA,a&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 1 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 23:28:09 GMT - Server - Pubnub - - expectedContentLength - 79 - statusCode - 200 - suggestedFileName - testGroup.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWxzIjogeyJhIjogeyJvY2N1cGFuY3kiOiAxfSwgIjJFQzkyNUYwLUI5OTYtNDdBNC1BRjU0LUE2MDVFMUE5QUVCQSI6IHsib2NjdXBhbmN5IjogMX19LCAidG90YWxfY2hhbm5lbHMiOiAyLCAidG90YWxfb2NjdXBhbmN5IjogMn0sICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - message - OK - payload - - channels - - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA - - occupancy - 1 - - a - - occupancy - 1 - - - total_channels - 2 - total_occupancy - 2 - - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/,?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&disable_uuids=1&state=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo/channel/,?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&disable_uuids=1&state=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/,?channel-group=testGroup&pnsdk=PubNub-ObjC-iOS%2F4.2.0&state=0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&disable_uuids=1&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 206 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 23:28:09 GMT - Server - Pubnub Presence - - expectedContentLength - 206 - statusCode - 200 - suggestedFileName - ,.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDQ5Nzg5Nzk0MzcxMDMwNiIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14497897943710306 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.2.0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 23:28:08 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNPresenceChannelGroupTests.bundle/testHereNowForChannelGroupWithVerbosityState.plist b/Tests/iOS Tests/Fixtures/PNPresenceChannelGroupTests.bundle/testHereNowForChannelGroupWithVerbosityState.plist deleted file mode 100755 index 0e878e6bc..000000000 --- a/Tests/iOS Tests/Fixtures/PNPresenceChannelGroupTests.bundle/testHereNowForChannelGroupWithVerbosityState.plist +++ /dev/null @@ -1,375 +0,0 @@ - - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWxzIjogeyJhIjogeyJ1dWlkcyI6IFt7InV1aWQiOiAiZDA2Mzc5MGEtNWZhYy00YzdiLTkwMzgtYjUxMWI2MWViMjNkIn1dLCAib2NjdXBhbmN5IjogMX0sICIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEiOiB7InV1aWRzIjogW3sidXVpZCI6ICJkMDYzNzkwYS01ZmFjLTRjN2ItOTAzOC1iNTExYjYxZWIyM2QifV0sICJvY2N1cGFuY3kiOiAxfX0sICJ0b3RhbF9jaGFubmVscyI6IDIsICJ0b3RhbF9vY2N1cGFuY3kiOiAyfSwgInNlcnZpY2UiOiAiUHJlc2VuY2UifQ== - json - - message - OK - payload - - channels - - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA - - occupancy - 1 - uuids - - - uuid - d063790a-5fac-4c7b-9038-b511b61eb23d - - - - a - - occupancy - 1 - uuids - - - uuid - d063790a-5fac-4c7b-9038-b511b61eb23d - - - - - total_channels - 2 - total_occupancy - 2 - - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/,?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&disable_uuids=0&state=1&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/,?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&disable_uuids=0&state=1&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/,?channel-group=testGroup&pnsdk=PubNub-ObjC-iOS%2F4.2.0&state=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&disable_uuids=0&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 1 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 328 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 23:28:09 GMT - Server - Pubnub Presence - - expectedContentLength - 328 - statusCode - 200 - suggestedFileName - ,.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - json - - error - - message - OK - service - channel-registry - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/testGroup?add=2EC925F0-B996-47A4-AF54-A605E1A9AEBA%2Ca&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo/channel-group/testGroup?add=2EC925F0-B996-47A4-AF54-A605E1A9AEBA%2Ca&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/testGroup?pnsdk=PubNub-ObjC-iOS%2F4.2.0&add=2EC925F0-B996-47A4-AF54-A605E1A9AEBA,a&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 1 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 23:28:09 GMT - Server - Pubnub - - expectedContentLength - 79 - statusCode - 200 - suggestedFileName - testGroup.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDQ5Nzg5Nzk0MzcxMDMwNiIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14497897943710306 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.2.0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 23:28:09 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNPresenceChannelGroupTests.bundle/testHereNowForChannelGroupWithVerbosityUUID.plist b/Tests/iOS Tests/Fixtures/PNPresenceChannelGroupTests.bundle/testHereNowForChannelGroupWithVerbosityUUID.plist deleted file mode 100755 index 88125ae1a..000000000 --- a/Tests/iOS Tests/Fixtures/PNPresenceChannelGroupTests.bundle/testHereNowForChannelGroupWithVerbosityUUID.plist +++ /dev/null @@ -1,369 +0,0 @@ - - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - json - - error - - message - OK - service - channel-registry - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/testGroup?add=2EC925F0-B996-47A4-AF54-A605E1A9AEBA%2Ca&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/testGroup?add=2EC925F0-B996-47A4-AF54-A605E1A9AEBA%2Ca&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/testGroup?pnsdk=PubNub-ObjC-iOS%2F4.2.0&add=2EC925F0-B996-47A4-AF54-A605E1A9AEBA,a&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 23:28:09 GMT - Server - Pubnub - - expectedContentLength - 79 - statusCode - 200 - suggestedFileName - testGroup.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDQ5Nzg5Nzk0MzcxMDMwNiIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14497897943710306 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.2.0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 23:28:09 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWxzIjogeyJhIjogeyJ1dWlkcyI6IFsiZDA2Mzc5MGEtNWZhYy00YzdiLTkwMzgtYjUxMWI2MWViMjNkIl0sICJvY2N1cGFuY3kiOiAxfSwgIjJFQzkyNUYwLUI5OTYtNDdBNC1BRjU0LUE2MDVFMUE5QUVCQSI6IHsidXVpZHMiOiBbImQwNjM3OTBhLTVmYWMtNGM3Yi05MDM4LWI1MTFiNjFlYjIzZCJdLCAib2NjdXBhbmN5IjogMX19LCAidG90YWxfY2hhbm5lbHMiOiAyLCAidG90YWxfb2NjdXBhbmN5IjogMn0sICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - message - OK - payload - - channels - - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA - - occupancy - 1 - uuids - - d063790a-5fac-4c7b-9038-b511b61eb23d - - - a - - occupancy - 1 - uuids - - d063790a-5fac-4c7b-9038-b511b61eb23d - - - - total_channels - 2 - total_occupancy - 2 - - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/,?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&disable_uuids=0&state=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/,?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&disable_uuids=0&state=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/,?channel-group=testGroup&pnsdk=PubNub-ObjC-iOS%2F4.2.0&state=0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&disable_uuids=0&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 308 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 23:28:10 GMT - Server - Pubnub Presence - - expectedContentLength - 308 - statusCode - 200 - suggestedFileName - ,.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNPresenceChannelGroupTests.bundle/testHereNowForNilChannelGroup.plist b/Tests/iOS Tests/Fixtures/PNPresenceChannelGroupTests.bundle/testHereNowForNilChannelGroup.plist deleted file mode 100755 index 7e16054c3..000000000 --- a/Tests/iOS Tests/Fixtures/PNPresenceChannelGroupTests.bundle/testHereNowForNilChannelGroup.plist +++ /dev/null @@ -1,375 +0,0 @@ - - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWxzIjogeyJhIjogeyJ1dWlkcyI6IFt7InV1aWQiOiAiZDA2Mzc5MGEtNWZhYy00YzdiLTkwMzgtYjUxMWI2MWViMjNkIn1dLCAib2NjdXBhbmN5IjogMX0sICIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEiOiB7InV1aWRzIjogW3sidXVpZCI6ICJkMDYzNzkwYS01ZmFjLTRjN2ItOTAzOC1iNTExYjYxZWIyM2QifV0sICJvY2N1cGFuY3kiOiAxfX0sICJ0b3RhbF9jaGFubmVscyI6IDIsICJ0b3RhbF9vY2N1cGFuY3kiOiAyfSwgInNlcnZpY2UiOiAiUHJlc2VuY2UifQ== - json - - message - OK - payload - - channels - - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA - - occupancy - 1 - uuids - - - uuid - d063790a-5fac-4c7b-9038-b511b61eb23d - - - - a - - occupancy - 1 - uuids - - - uuid - d063790a-5fac-4c7b-9038-b511b61eb23d - - - - - total_channels - 2 - total_occupancy - 2 - - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/,?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&disable_uuids=0&state=1&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/,?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&disable_uuids=0&state=1&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&channel-group=testGroup - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/,?channel-group=testGroup&pnsdk=PubNub-ObjC-iOS%2F4.2.0&state=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&disable_uuids=0&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 2 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 328 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 23:28:10 GMT - Server - Pubnub Presence - - expectedContentLength - 328 - statusCode - 200 - suggestedFileName - ,.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDQ5Nzg5Nzk0MzcxMDMwNiIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14497897943710306 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.2.0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 23:28:10 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - json - - error - - message - OK - service - channel-registry - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/testGroup?add=2EC925F0-B996-47A4-AF54-A605E1A9AEBA%2Ca&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/testGroup?add=2EC925F0-B996-47A4-AF54-A605E1A9AEBA%2Ca&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo/channel-group/testGroup?pnsdk=PubNub-ObjC-iOS%2F4.2.0&add=2EC925F0-B996-47A4-AF54-A605E1A9AEBA,a&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 23:28:10 GMT - Server - Pubnub - - expectedContentLength - 79 - statusCode - 200 - suggestedFileName - testGroup.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNPresenceChannelGroupTests.bundle/testHereNowForNilChannelGroupWithVerbosityOccupancy.plist b/Tests/iOS Tests/Fixtures/PNPresenceChannelGroupTests.bundle/testHereNowForNilChannelGroupWithVerbosityOccupancy.plist deleted file mode 100755 index 3c41242f9..000000000 --- a/Tests/iOS Tests/Fixtures/PNPresenceChannelGroupTests.bundle/testHereNowForNilChannelGroupWithVerbosityOccupancy.plist +++ /dev/null @@ -1,361 +0,0 @@ - - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDQ5Nzg5Nzk0MzcxMDMwNiIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14497897943710306 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.2.0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 23:28:10 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - json - - error - - message - OK - service - channel-registry - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/testGroup?add=2EC925F0-B996-47A4-AF54-A605E1A9AEBA%2Ca&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/testGroup?add=2EC925F0-B996-47A4-AF54-A605E1A9AEBA%2Ca&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/testGroup?pnsdk=PubNub-ObjC-iOS%2F4.2.0&add=2EC925F0-B996-47A4-AF54-A605E1A9AEBA,a&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 1 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 23:28:10 GMT - Server - Pubnub - - expectedContentLength - 79 - statusCode - 200 - suggestedFileName - testGroup.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWxzIjogeyJhIjogeyJvY2N1cGFuY3kiOiAxfSwgIjJFQzkyNUYwLUI5OTYtNDdBNC1BRjU0LUE2MDVFMUE5QUVCQSI6IHsib2NjdXBhbmN5IjogMX19LCAidG90YWxfY2hhbm5lbHMiOiAyLCAidG90YWxfb2NjdXBhbmN5IjogMn0sICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - message - OK - payload - - channels - - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA - - occupancy - 1 - - a - - occupancy - 1 - - - total_channels - 2 - total_occupancy - 2 - - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36?disable_uuids=1&state=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo?disable_uuids=1&state=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36?pnsdk=PubNub-ObjC-iOS%2F4.2.0&state=0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&disable_uuids=1&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 206 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 23:28:10 GMT - Server - Pubnub Presence - - expectedContentLength - 206 - statusCode - 200 - suggestedFileName - demo-36.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNPresenceChannelGroupTests.bundle/testHereNowForNilChannelGroupWithVerbosityState.plist b/Tests/iOS Tests/Fixtures/PNPresenceChannelGroupTests.bundle/testHereNowForNilChannelGroupWithVerbosityState.plist deleted file mode 100755 index ce60fc47a..000000000 --- a/Tests/iOS Tests/Fixtures/PNPresenceChannelGroupTests.bundle/testHereNowForNilChannelGroupWithVerbosityState.plist +++ /dev/null @@ -1,375 +0,0 @@ - - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWxzIjogeyJhIjogeyJ1dWlkcyI6IFt7InV1aWQiOiAiZDA2Mzc5MGEtNWZhYy00YzdiLTkwMzgtYjUxMWI2MWViMjNkIn1dLCAib2NjdXBhbmN5IjogMX0sICIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEiOiB7InV1aWRzIjogW3sidXVpZCI6ICJkMDYzNzkwYS01ZmFjLTRjN2ItOTAzOC1iNTExYjYxZWIyM2QifV0sICJvY2N1cGFuY3kiOiAxfX0sICJ0b3RhbF9jaGFubmVscyI6IDIsICJ0b3RhbF9vY2N1cGFuY3kiOiAyfSwgInNlcnZpY2UiOiAiUHJlc2VuY2UifQ== - json - - message - OK - payload - - channels - - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA - - occupancy - 1 - uuids - - - uuid - d063790a-5fac-4c7b-9038-b511b61eb23d - - - - a - - occupancy - 1 - uuids - - - uuid - d063790a-5fac-4c7b-9038-b511b61eb23d - - - - - total_channels - 2 - total_occupancy - 2 - - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo?disable_uuids=0&state=1&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36?disable_uuids=0&state=1&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36?pnsdk=PubNub-ObjC-iOS%2F4.2.0&state=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&disable_uuids=0&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 328 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 23:28:11 GMT - Server - Pubnub Presence - - expectedContentLength - 328 - statusCode - 200 - suggestedFileName - demo-36.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDQ5Nzg5Nzk0MzcxMDMwNiIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14497897943710306 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.2.0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 23:28:11 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - json - - error - - message - OK - service - channel-registry - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/testGroup?add=2EC925F0-B996-47A4-AF54-A605E1A9AEBA%2Ca&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/testGroup?add=2EC925F0-B996-47A4-AF54-A605E1A9AEBA%2Ca&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/testGroup?pnsdk=PubNub-ObjC-iOS%2F4.2.0&add=2EC925F0-B996-47A4-AF54-A605E1A9AEBA,a&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 23:28:11 GMT - Server - Pubnub - - expectedContentLength - 79 - statusCode - 200 - suggestedFileName - testGroup.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNPresenceChannelGroupTests.bundle/testHereNowForNilChannelGroupWithVerbosityUUID.plist b/Tests/iOS Tests/Fixtures/PNPresenceChannelGroupTests.bundle/testHereNowForNilChannelGroupWithVerbosityUUID.plist deleted file mode 100755 index 76185e257..000000000 --- a/Tests/iOS Tests/Fixtures/PNPresenceChannelGroupTests.bundle/testHereNowForNilChannelGroupWithVerbosityUUID.plist +++ /dev/null @@ -1,369 +0,0 @@ - - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - json - - error - - message - OK - service - channel-registry - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/testGroup?add=2EC925F0-B996-47A4-AF54-A605E1A9AEBA%2Ca&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo/channel-group/testGroup?add=2EC925F0-B996-47A4-AF54-A605E1A9AEBA%2Ca&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/testGroup?pnsdk=PubNub-ObjC-iOS%2F4.2.0&add=2EC925F0-B996-47A4-AF54-A605E1A9AEBA,a&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 23:28:11 GMT - Server - Pubnub - - expectedContentLength - 79 - statusCode - 200 - suggestedFileName - testGroup.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWxzIjogeyJhIjogeyJ1dWlkcyI6IFsiZDA2Mzc5MGEtNWZhYy00YzdiLTkwMzgtYjUxMWI2MWViMjNkIl0sICJvY2N1cGFuY3kiOiAxfSwgIjJFQzkyNUYwLUI5OTYtNDdBNC1BRjU0LUE2MDVFMUE5QUVCQSI6IHsidXVpZHMiOiBbImQwNjM3OTBhLTVmYWMtNGM3Yi05MDM4LWI1MTFiNjFlYjIzZCJdLCAib2NjdXBhbmN5IjogMX19LCAidG90YWxfY2hhbm5lbHMiOiAyLCAidG90YWxfb2NjdXBhbmN5IjogMn0sICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - message - OK - payload - - channels - - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA - - occupancy - 1 - uuids - - d063790a-5fac-4c7b-9038-b511b61eb23d - - - a - - occupancy - 1 - uuids - - d063790a-5fac-4c7b-9038-b511b61eb23d - - - - total_channels - 2 - total_occupancy - 2 - - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36?disable_uuids=0&state=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36?disable_uuids=0&state=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36?pnsdk=PubNub-ObjC-iOS%2F4.2.0&state=0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&disable_uuids=0&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 308 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 23:28:11 GMT - Server - Pubnub Presence - - expectedContentLength - 308 - statusCode - 200 - suggestedFileName - demo-36.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDQ5Nzg5Nzk0MzcxMDMwNiIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14497897943710306 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.2.0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 23:28:11 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNPresenceEventTests.bundle/testJoinEvent.plist b/Tests/iOS Tests/Fixtures/PNPresenceEventTests.bundle/testJoinEvent.plist deleted file mode 100755 index ddfd91ee3..000000000 --- a/Tests/iOS Tests/Fixtures/PNPresenceEventTests.bundle/testJoinEvent.plist +++ /dev/null @@ -1,1116 +0,0 @@ - - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJhY3Rpb24iOiAibGVhdmUiLCAibWVzc2FnZSI6ICJPSyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - action - leave - message - OK - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/leave?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 74 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:02:02 GMT - Server - Pubnub Presence - - expectedContentLength - 74 - statusCode - 200 - suggestedFileName - leave.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI1MzI3NTcwMTI4NCIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjUzMjc1NzAwMjc2IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAiam9pbiIsICJ0aW1lc3RhbXAiOiAxNDUwODI1MzI3LCAidXVpZCI6ICIzMjJBNzBCMy1GMEVBLTQ4Q0QtOUJCMC1EM0YwRjVERTk5NkMiLCAib2NjdXBhbmN5IjogM30sImIiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIn1dfQ== - json - - m - - - a - 4 - b - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - join - occupancy - 3 - timestamp - 1450825327 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508253275700276 - - - - t - - r - 56 - t - 14508253275701284 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?tt=14508253227258821&pnsdk=PubNub-ObjC-iOS%2F4.3.3&tr=56&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?tt=14508253227258821&pnsdk=PubNub-ObjC-iOS%2F4.3.3&tr=56&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508253227258821&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 325 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:02:07 GMT - - expectedContentLength - 325 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI1MDg2MDA1Mjg1OSIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508250860052859 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:02:02 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI1MzIyNzI1ODgyMSIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508253227258821 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:02:02 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI1MzIyNzI1ODgyMSIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjUzMjI3MjU3Njc0IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAibGVhdmUiLCAidGltZXN0YW1wIjogMTQ1MDgyNTMyMiwgInV1aWQiOiAiMzIyQTcwQjMtRjBFQS00OENELTlCQjAtRDNGMEY1REU5OTZDIiwgIm9jY3VwYW5jeSI6IDJ9LCJiIjoiMkVDOTI1RjAtQjk5Ni00N0E0LUFGNTQtQTYwNUUxQTlBRUJBLXBucHJlcyJ9XX0= - json - - m - - - a - 4 - b - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - leave - occupancy - 2 - timestamp - 1450825322 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508253227257674 - - - - t - - r - 56 - t - 14508253227258821 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?tt=14508250860052859&pnsdk=PubNub-ObjC-iOS%2F4.3.3&tr=56&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?tt=14508250860052859&pnsdk=PubNub-ObjC-iOS%2F4.3.3&tr=56&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508250860052859&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 326 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:02:02 GMT - - expectedContentLength - 326 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI1MzIyNzI1ODgyMSIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508253227258821 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?tt=14508253227258821&pnsdk=PubNub-ObjC-iOS%2F4.3.3&tr=56&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?tt=14508253227258821&pnsdk=PubNub-ObjC-iOS%2F4.3.3&tr=56&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508253227258821&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:02:06 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI1MzIyNzI1ODgyMSIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjUzMjI3MjU3Njc0IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAibGVhdmUiLCAidGltZXN0YW1wIjogMTQ1MDgyNTMyMiwgInV1aWQiOiAiMzIyQTcwQjMtRjBFQS00OENELTlCQjAtRDNGMEY1REU5OTZDIiwgIm9jY3VwYW5jeSI6IDJ9LCJiIjoiMkVDOTI1RjAtQjk5Ni00N0E0LUFGNTQtQTYwNUUxQTlBRUJBLXBucHJlcyJ9XX0= - json - - m - - - a - 4 - b - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - leave - occupancy - 2 - timestamp - 1450825322 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508253227257674 - - - - t - - r - 56 - t - 14508253227258821 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?tt=14508250860052859&pnsdk=PubNub-ObjC-iOS%2F4.3.3&tr=56&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?tt=14508250860052859&pnsdk=PubNub-ObjC-iOS%2F4.3.3&tr=56&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508250860052859&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 326 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:02:06 GMT - - expectedContentLength - 326 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI1MzI3NTcwMTI4NCIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjUzMjc1NzAwMjc2IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAiam9pbiIsICJ0aW1lc3RhbXAiOiAxNDUwODI1MzI3LCAidXVpZCI6ICIzMjJBNzBCMy1GMEVBLTQ4Q0QtOUJCMC1EM0YwRjVERTk5NkMiLCAib2NjdXBhbmN5IjogM30sImIiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIn1dfQ== - json - - m - - - a - 4 - b - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - join - occupancy - 3 - timestamp - 1450825327 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508253275700276 - - - - t - - r - 56 - t - 14508253275701284 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?tt=14508253227258821&pnsdk=PubNub-ObjC-iOS%2F4.3.3&tr=56&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?tt=14508253227258821&pnsdk=PubNub-ObjC-iOS%2F4.3.3&tr=56&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508253227258821&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 325 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:02:07 GMT - - expectedContentLength - 325 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI1MzIyNzI1ODgyMSIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508253227258821 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?tt=14508253227258821&pnsdk=PubNub-ObjC-iOS%2F4.3.3&tr=56&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?tt=14508253227258821&pnsdk=PubNub-ObjC-iOS%2F4.3.3&tr=56&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508253227258821&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:02:06 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNPresenceEventTests.bundle/testLeaveEvent.plist b/Tests/iOS Tests/Fixtures/PNPresenceEventTests.bundle/testLeaveEvent.plist deleted file mode 100755 index a4fa0bc8d..000000000 --- a/Tests/iOS Tests/Fixtures/PNPresenceEventTests.bundle/testLeaveEvent.plist +++ /dev/null @@ -1,369 +0,0 @@ - - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI1MDE5MTY5NDkyNCIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508250191694924 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 22:57:14 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI1MDM0NDE0NDMyMiIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjUwMzQ0MTQzMTkwIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAibGVhdmUiLCAidGltZXN0YW1wIjogMTQ1MDgyNTAzNCwgInV1aWQiOiAiMzIyQTcwQjMtRjBFQS00OENELTlCQjAtRDNGMEY1REU5OTZDIiwgIm9jY3VwYW5jeSI6IDJ9LCJiIjoiMkVDOTI1RjAtQjk5Ni00N0E0LUFGNTQtQTYwNUUxQTlBRUJBLXBucHJlcyJ9XX0= - json - - m - - - a - 4 - b - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - leave - occupancy - 2 - timestamp - 1450825034 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo - p - - r - 56 - t - 14508250344143190 - - - - t - - r - 56 - t - 14508250344144322 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?tt=14508250191694924&pnsdk=PubNub-ObjC-iOS%2F4.3.3&tr=56&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?tt=14508250191694924&pnsdk=PubNub-ObjC-iOS%2F4.3.3&tr=56&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508250191694924&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 326 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 22:57:14 GMT - - expectedContentLength - 326 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJhY3Rpb24iOiAibGVhdmUiLCAibWVzc2FnZSI6ICJPSyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - action - leave - message - OK - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/leave?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 74 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 22:57:14 GMT - Server - Pubnub Presence - - expectedContentLength - 74 - statusCode - 200 - suggestedFileName - leave.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNPresenceEventTests.bundle/testStateChangeEvent.plist b/Tests/iOS Tests/Fixtures/PNPresenceEventTests.bundle/testStateChangeEvent.plist deleted file mode 100755 index 2923a8d99..000000000 --- a/Tests/iOS Tests/Fixtures/PNPresenceEventTests.bundle/testStateChangeEvent.plist +++ /dev/null @@ -1,377 +0,0 @@ - - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI1NDY3MDU3ODU3MiIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjU0NjcwNTc3MTk2IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAic3RhdGUtY2hhbmdlIiwgInRpbWVzdGFtcCI6IDE0NTA4MjU0NjcsICJkYXRhIjogeyJmb28iOiAiYmFyIn0sICJ1dWlkIjogIjMyMkE3MEIzLUYwRUEtNDhDRC05QkIwLUQzRjBGNURFOTk2QyIsICJvY2N1cGFuY3kiOiAzfSwiYiI6IjJFQzkyNUYwLUI5OTYtNDdBNC1BRjU0LUE2MDVFMUE5QUVCQS1wbnByZXMifV19 - json - - m - - - a - 4 - b - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - state-change - data - - foo - bar - - occupancy - 3 - timestamp - 1450825467 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508254670577196 - - - - t - - r - 56 - t - 14508254670578572 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?tt=14508253275701284&pnsdk=PubNub-ObjC-iOS%2F4.3.3&tr=56&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?tt=14508253275701284&pnsdk=PubNub-ObjC-iOS%2F4.3.3&tr=56&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508253275701284&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 357 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:04:27 GMT - - expectedContentLength - 357 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI1MzI3NTcwMTI4NCIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508253275701284 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:04:26 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImZvbyI6ICJiYXIifSwgInNlcnZpY2UiOiAiUHJlc2VuY2UifQ== - json - - message - OK - payload - - foo - bar - - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo/channel/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/uuid/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/data?state=%7B%22foo%22%3A%22bar%22%7D&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/uuid/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/data?state=%7B%22foo%22%3A%22bar%22%7D&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/uuid/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/data?pnsdk=PubNub-ObjC-iOS%2F4.2.3&state=%7B%22foo%22%3A%22bar%22%7D&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 82 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:04:27 GMT - Server - Pubnub Presence - - expectedContentLength - 82 - statusCode - 200 - suggestedFileName - data.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNPresenceEventTests.bundle/testTimeoutEvent.plist b/Tests/iOS Tests/Fixtures/PNPresenceEventTests.bundle/testTimeoutEvent.plist deleted file mode 100755 index 2296c7fef..000000000 --- a/Tests/iOS Tests/Fixtures/PNPresenceEventTests.bundle/testTimeoutEvent.plist +++ /dev/null @@ -1,1354 +0,0 @@ - - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI2MjQyMzM2NDkwOCIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508262423364908 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:36:10 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI3MzgwOTY2NTkyNSIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjczNzE0NjA1NjI3IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAiam9pbiIsICJ0aW1lc3RhbXAiOiAxNDUwODI3MzcxLCAidXVpZCI6ICIzMjJBNzBCMy1GMEVBLTQ4Q0QtOUJCMC1EM0YwRjVERTk5NkMiLCAib2NjdXBhbmN5IjogM30sImIiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyNzM3MTQ2MTcxNzciLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6IjJFQzkyNUYwLUI5OTYtNDdBNC1BRjU0LUE2MDVFMUE5QUVCQS1wbnByZXMiLCJkIjp7ImFjdGlvbiI6ICJqb2luIiwgInRpbWVzdGFtcCI6IDE0NTA4MjczNzEsICJ1dWlkIjogIjU4QTZGQjMyLTQzMjMtNDVCRS05N0JGLTJEMDcwQTNGODkxMiIsICJvY2N1cGFuY3kiOiAzfSwiYiI6IjJFQzkyNUYwLUI5OTYtNDdBNC1BRjU0LUE2MDVFMUE5QUVCQS1wbnByZXMifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI3MzgwOTY2NDg5MyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiMkVDOTI1RjAtQjk5Ni00N0E0LUFGNTQtQTYwNUUxQTlBRUJBLXBucHJlcyIsImQiOnsiYWN0aW9uIjogInRpbWVvdXQiLCAidGltZXN0YW1wIjogMTQ1MDgyNzM4MCwgInV1aWQiOiAiMzIyQTcwQjMtRjBFQS00OENELTlCQjAtRDNGMEY1REU5OTZDIiwgIm9jY3VwYW5jeSI6IDJ9LCJiIjoiMkVDOTI1RjAtQjk5Ni00N0E0LUFGNTQtQTYwNUUxQTlBRUJBLXBucHJlcyJ9XX0= - json - - m - - - a - 4 - b - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - join - occupancy - 3 - timestamp - 1450827371 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508273714605627 - - - - a - 4 - b - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - join - occupancy - 3 - timestamp - 1450827371 - uuid - 58A6FB32-4323-45BE-97BF-2D070A3F8912 - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508273714617177 - - - - a - 4 - b - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - timeout - occupancy - 2 - timestamp - 1450827380 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508273809664893 - - - - t - - r - 56 - t - 14508273809665925 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?tt=14508262423364908&pnsdk=PubNub-ObjC-iOS%2F4.3.3&tr=56&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?tt=14508262423364908&pnsdk=PubNub-ObjC-iOS%2F4.3.3&tr=56&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508262423364908&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 890 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:36:23 GMT - - expectedContentLength - 890 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI3MzgwOTY2NTkyNSIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjczNzE0NjA1NjI3IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAiam9pbiIsICJ0aW1lc3RhbXAiOiAxNDUwODI3MzcxLCAidXVpZCI6ICIzMjJBNzBCMy1GMEVBLTQ4Q0QtOUJCMC1EM0YwRjVERTk5NkMiLCAib2NjdXBhbmN5IjogM30sImIiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyNzM3MTQ2MTcxNzciLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6IjJFQzkyNUYwLUI5OTYtNDdBNC1BRjU0LUE2MDVFMUE5QUVCQS1wbnByZXMiLCJkIjp7ImFjdGlvbiI6ICJqb2luIiwgInRpbWVzdGFtcCI6IDE0NTA4MjczNzEsICJ1dWlkIjogIjU4QTZGQjMyLTQzMjMtNDVCRS05N0JGLTJEMDcwQTNGODkxMiIsICJvY2N1cGFuY3kiOiAzfSwiYiI6IjJFQzkyNUYwLUI5OTYtNDdBNC1BRjU0LUE2MDVFMUE5QUVCQS1wbnByZXMifSx7ImEiOiI0IiwiZiI6NTEyLCJwIjp7InQiOiIxNDUwODI3MzgwOTY2NDg5MyIsInIiOjU2fSwiayI6ImRlbW8tMzYiLCJjIjoiMkVDOTI1RjAtQjk5Ni00N0E0LUFGNTQtQTYwNUUxQTlBRUJBLXBucHJlcyIsImQiOnsiYWN0aW9uIjogInRpbWVvdXQiLCAidGltZXN0YW1wIjogMTQ1MDgyNzM4MCwgInV1aWQiOiAiMzIyQTcwQjMtRjBFQS00OENELTlCQjAtRDNGMEY1REU5OTZDIiwgIm9jY3VwYW5jeSI6IDJ9LCJiIjoiMkVDOTI1RjAtQjk5Ni00N0E0LUFGNTQtQTYwNUUxQTlBRUJBLXBucHJlcyJ9XX0= - json - - m - - - a - 4 - b - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - join - occupancy - 3 - timestamp - 1450827371 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508273714605627 - - - - a - 4 - b - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - join - occupancy - 3 - timestamp - 1450827371 - uuid - 58A6FB32-4323-45BE-97BF-2D070A3F8912 - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508273714617177 - - - - a - 4 - b - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - timeout - occupancy - 2 - timestamp - 1450827380 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508273809664893 - - - - t - - r - 56 - t - 14508273809665925 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508262423364908&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&heartbeat=5 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508262423364908&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&heartbeat=5 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508262423364908&heartbeat=5&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 890 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:36:23 GMT - - expectedContentLength - 890 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI3MzcxNDYxNzk0NyIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjczNzE0NjE3MTc3IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAiam9pbiIsICJ0aW1lc3RhbXAiOiAxNDUwODI3MzcxLCAidXVpZCI6ICI1OEE2RkIzMi00MzIzLTQ1QkUtOTdCRi0yRDA3MEEzRjg5MTIiLCAib2NjdXBhbmN5IjogM30sImIiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIn1dfQ== - json - - m - - - a - 4 - b - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - join - occupancy - 3 - timestamp - 1450827371 - uuid - 58A6FB32-4323-45BE-97BF-2D070A3F8912 - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508273714617177 - - - - t - - r - 56 - t - 14508273714617947 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?tt=14508273714607063&pnsdk=PubNub-ObjC-iOS%2F4.3.3&tr=56&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?tt=14508273714607063&pnsdk=PubNub-ObjC-iOS%2F4.3.3&tr=56&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508273714607063&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 325 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:36:15 GMT - - expectedContentLength - 325 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI3MzgwOTY2NTkyNSIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjczODA5NjY0ODkzIiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAidGltZW91dCIsICJ0aW1lc3RhbXAiOiAxNDUwODI3MzgwLCAidXVpZCI6ICIzMjJBNzBCMy1GMEVBLTQ4Q0QtOUJCMC1EM0YwRjVERTk5NkMiLCAib2NjdXBhbmN5IjogMn0sImIiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIn1dfQ== - json - - m - - - a - 4 - b - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - timeout - occupancy - 2 - timestamp - 1450827380 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508273809664893 - - - - t - - r - 56 - t - 14508273809665925 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508273714617947&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&heartbeat=5 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508273714617947&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&heartbeat=5 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508273714617947&heartbeat=5&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 328 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:36:23 GMT - - expectedContentLength - 328 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI3MzcxNDYwNzA2MyIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjczNzE0NjA1NjI3IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAiam9pbiIsICJ0aW1lc3RhbXAiOiAxNDUwODI3MzcxLCAidXVpZCI6ICIzMjJBNzBCMy1GMEVBLTQ4Q0QtOUJCMC1EM0YwRjVERTk5NkMiLCAib2NjdXBhbmN5IjogM30sImIiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIn1dfQ== - json - - m - - - a - 4 - b - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - join - occupancy - 3 - timestamp - 1450827371 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508273714605627 - - - - t - - r - 56 - t - 14508273714607063 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?tt=14508262423364908&pnsdk=PubNub-ObjC-iOS%2F4.3.3&tr=56&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?tt=14508262423364908&pnsdk=PubNub-ObjC-iOS%2F4.3.3&tr=56&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508262423364908&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 325 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:36:11 GMT - - expectedContentLength - 325 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI2MjQyMzM2NDkwOCIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508262423364908 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?heartbeat=5&tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?heartbeat=5&tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.2.3&heartbeat=5&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:36:11 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI3MzcxNDYxNzk0NyIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjczNzE0NjA1NjI3IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAiam9pbiIsICJ0aW1lc3RhbXAiOiAxNDUwODI3MzcxLCAidXVpZCI6ICIzMjJBNzBCMy1GMEVBLTQ4Q0QtOUJCMC1EM0YwRjVERTk5NkMiLCAib2NjdXBhbmN5IjogM30sImIiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIn0seyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1MDgyNzM3MTQ2MTcxNzciLCJyIjo1Nn0sImsiOiJkZW1vLTM2IiwiYyI6IjJFQzkyNUYwLUI5OTYtNDdBNC1BRjU0LUE2MDVFMUE5QUVCQS1wbnByZXMiLCJkIjp7ImFjdGlvbiI6ICJqb2luIiwgInRpbWVzdGFtcCI6IDE0NTA4MjczNzEsICJ1dWlkIjogIjU4QTZGQjMyLTQzMjMtNDVCRS05N0JGLTJEMDcwQTNGODkxMiIsICJvY2N1cGFuY3kiOiAzfSwiYiI6IjJFQzkyNUYwLUI5OTYtNDdBNC1BRjU0LUE2MDVFMUE5QUVCQS1wbnByZXMifV19 - json - - m - - - a - 4 - b - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - join - occupancy - 3 - timestamp - 1450827371 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508273714605627 - - - - a - 4 - b - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - join - occupancy - 3 - timestamp - 1450827371 - uuid - 58A6FB32-4323-45BE-97BF-2D070A3F8912 - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508273714617177 - - - - t - - r - 56 - t - 14508273714617947 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508262423364908&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&heartbeat=5 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508262423364908&tr=56&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&heartbeat=5 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14508262423364908&heartbeat=5&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 606 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:36:15 GMT - - expectedContentLength - 606 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODI3MzgzNDc1NTMwNiIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NTA4MjczODM0NzU0MjA3IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAiam9pbiIsICJ0aW1lc3RhbXAiOiAxNDUwODI3MzgzLCAidXVpZCI6ICIzMjJBNzBCMy1GMEVBLTQ4Q0QtOUJCMC1EM0YwRjVERTk5NkMiLCAib2NjdXBhbmN5IjogM30sImIiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIn1dfQ== - json - - m - - - a - 4 - b - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - join - occupancy - 3 - timestamp - 1450827383 - uuid - 322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - - f - 512 - k - demo-36 - p - - r - 56 - t - 14508273834754207 - - - - t - - r - 56 - t - 14508273834755306 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?tt=14508273809665925&pnsdk=PubNub-ObjC-iOS%2F4.3.3&tr=56&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?tt=14508273809665925&pnsdk=PubNub-ObjC-iOS%2F4.3.3&tr=56&uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0?uuid=58A6FB32-4323-45BE-97BF-2D070A3F8912&tt=14508273809665925&tr=56&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.2.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 325 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 23:36:23 GMT - - expectedContentLength - 325 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testHereNow.plist b/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testHereNow.plist deleted file mode 100755 index c37ffb98c..000000000 --- a/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testHereNow.plist +++ /dev/null @@ -1,389 +0,0 @@ - - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDQ5Nzg3MzYyOTc3MDE2MCIsInIiOjU2fSwibSI6W3siYSI6IjQiLCJmIjo1MTIsInAiOnsidCI6IjE0NDk3ODczNjI5NzY3MzA1IiwiciI6NTZ9LCJrIjoiZGVtby0zNiIsImMiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIiwiZCI6eyJhY3Rpb24iOiAiam9pbiIsICJ0aW1lc3RhbXAiOiAxNDQ5Nzg3MzYyLCAidXVpZCI6ICJkMDYzNzkwYS01ZmFjLTRjN2ItOTAzOC1iNTExYjYxZWIyM2QiLCAib2NjdXBhbmN5IjogMX0sImIiOiIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEtcG5wcmVzIn1dfQ== - json - - m - - - a - 4 - b - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - c - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres - d - - action - join - occupancy - 1 - timestamp - 1449787362 - uuid - d063790a-5fac-4c7b-9038-b511b61eb23d - - f - 512 - k - demo-36 - p - - r - 56 - t - 14497873629767305 - - - - t - - r - 56 - t - 14497873629770160 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/14497873627193455?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/14497873627193455?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/14497873627193455?pnsdk=PubNub-ObjC-iOS%2F4.2.0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 325 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 22:42:42 GMT - - expectedContentLength - 325 - statusCode - 200 - suggestedFileName - 14497873627193455.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDQ5Nzg3MzYyNzE5MzQ1NSIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14497873627193455 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.2.0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 22:42:42 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWxzIjogeyJhIjogeyJ1dWlkcyI6IFt7InV1aWQiOiAiZDA2Mzc5MGEtNWZhYy00YzdiLTkwMzgtYjUxMWI2MWViMjNkIn1dLCAib2NjdXBhbmN5IjogMX19LCAidG90YWxfY2hhbm5lbHMiOiAxLCAidG90YWxfb2NjdXBhbmN5IjogMX0sICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - message - OK - payload - - channels - - a - - occupancy - 1 - uuids - - - uuid - d063790a-5fac-4c7b-9038-b511b61eb23d - - - - - total_channels - 1 - total_occupancy - 1 - - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36?disable_uuids=0&state=1&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36?disable_uuids=0&state=1&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36?pnsdk=PubNub-ObjC-iOS%2F4.2.0&state=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&disable_uuids=0&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 209 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 22:42:43 GMT - Server - Pubnub Presence - - expectedContentLength - 209 - statusCode - 200 - suggestedFileName - demo-36.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testHereNowForChannel.plist b/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testHereNowForChannel.plist deleted file mode 100755 index fa0d5e839..000000000 --- a/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testHereNowForChannel.plist +++ /dev/null @@ -1,236 +0,0 @@ - - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDQ5Nzg3MzYyOTc3MDE2MCIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14497873629770160 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.2.0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 22:42:43 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiUHJlc2VuY2UiLCAidXVpZHMiOiBbeyJ1dWlkIjogImQwNjM3OTBhLTVmYWMtNGM3Yi05MDM4LWI1MTFiNjFlYjIzZCJ9XSwgIm9jY3VwYW5jeSI6IDF9 - json - - message - OK - occupancy - 1 - service - Presence - status - 200 - uuids - - - uuid - d063790a-5fac-4c7b-9038-b511b61eb23d - - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/2EC925F0-B996-47A4-AF54-A605E1A9AEBA?disable_uuids=0&state=1&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/2EC925F0-B996-47A4-AF54-A605E1A9AEBA?disable_uuids=0&state=1&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/2EC925F0-B996-47A4-AF54-A605E1A9AEBA?pnsdk=PubNub-ObjC-iOS%2F4.2.0&state=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&disable_uuids=0&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 132 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 22:42:43 GMT - Server - Pubnub Presence - - expectedContentLength - 132 - statusCode - 200 - suggestedFileName - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testHereNowForChannelWithVerbosityOccupancy.plist b/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testHereNowForChannelWithVerbosityOccupancy.plist deleted file mode 100755 index c6ebc0357..000000000 --- a/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testHereNowForChannelWithVerbosityOccupancy.plist +++ /dev/null @@ -1,229 +0,0 @@ - - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDQ5Nzg3MzYyOTc3MDE2MCIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14497873629770160 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.2.0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 22:42:43 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiUHJlc2VuY2UiLCAib2NjdXBhbmN5IjogMX0= - json - - message - OK - occupancy - 1 - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/2EC925F0-B996-47A4-AF54-A605E1A9AEBA?disable_uuids=1&state=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/2EC925F0-B996-47A4-AF54-A605E1A9AEBA?disable_uuids=1&state=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub-key/demo/channel/2EC925F0-B996-47A4-AF54-A605E1A9AEBA?pnsdk=PubNub-ObjC-iOS%2F4.2.0&state=0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&disable_uuids=1&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 71 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 22:42:43 GMT - Server - Pubnub Presence - - expectedContentLength - 71 - statusCode - 200 - suggestedFileName - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testHereNowForChannelWithVerbosityState.plist b/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testHereNowForChannelWithVerbosityState.plist deleted file mode 100755 index 45603bc91..000000000 --- a/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testHereNowForChannelWithVerbosityState.plist +++ /dev/null @@ -1,236 +0,0 @@ - - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDQ5Nzg3MzYyOTc3MDE2MCIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14497873629770160 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.2.0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 22:42:43 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiUHJlc2VuY2UiLCAidXVpZHMiOiBbeyJ1dWlkIjogImQwNjM3OTBhLTVmYWMtNGM3Yi05MDM4LWI1MTFiNjFlYjIzZCJ9XSwgIm9jY3VwYW5jeSI6IDF9 - json - - message - OK - occupancy - 1 - service - Presence - status - 200 - uuids - - - uuid - d063790a-5fac-4c7b-9038-b511b61eb23d - - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/2EC925F0-B996-47A4-AF54-A605E1A9AEBA?disable_uuids=0&state=1&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/2EC925F0-B996-47A4-AF54-A605E1A9AEBA?disable_uuids=0&state=1&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub-key/demo/channel/2EC925F0-B996-47A4-AF54-A605E1A9AEBA?pnsdk=PubNub-ObjC-iOS%2F4.2.0&state=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&disable_uuids=0&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 1 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 132 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 22:42:44 GMT - Server - Pubnub Presence - - expectedContentLength - 132 - statusCode - 200 - suggestedFileName - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testHereNowForChannelWithVerbosityUUID.plist b/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testHereNowForChannelWithVerbosityUUID.plist deleted file mode 100755 index 85ff7ac3f..000000000 --- a/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testHereNowForChannelWithVerbosityUUID.plist +++ /dev/null @@ -1,233 +0,0 @@ - - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiUHJlc2VuY2UiLCAidXVpZHMiOiBbImQwNjM3OTBhLTVmYWMtNGM3Yi05MDM4LWI1MTFiNjFlYjIzZCJdLCAib2NjdXBhbmN5IjogMX0= - json - - message - OK - occupancy - 1 - service - Presence - status - 200 - uuids - - d063790a-5fac-4c7b-9038-b511b61eb23d - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/2EC925F0-B996-47A4-AF54-A605E1A9AEBA?disable_uuids=0&state=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/2EC925F0-B996-47A4-AF54-A605E1A9AEBA?disable_uuids=0&state=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/channel/2EC925F0-B996-47A4-AF54-A605E1A9AEBA?pnsdk=PubNub-ObjC-iOS%2F4.2.0&state=0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&disable_uuids=0&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 122 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 22:42:44 GMT - Server - Pubnub Presence - - expectedContentLength - 122 - statusCode - 200 - suggestedFileName - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDQ5Nzg3MzYyOTc3MDE2MCIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14497873629770160 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.2.0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 22:42:44 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testHereNowForNilChannel.plist b/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testHereNowForNilChannel.plist deleted file mode 100755 index 893e65ba3..000000000 --- a/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testHereNowForNilChannel.plist +++ /dev/null @@ -1,249 +0,0 @@ - - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWxzIjogeyJhIjogeyJ1dWlkcyI6IFt7InV1aWQiOiAiZDA2Mzc5MGEtNWZhYy00YzdiLTkwMzgtYjUxMWI2MWViMjNkIn1dLCAib2NjdXBhbmN5IjogMX19LCAidG90YWxfY2hhbm5lbHMiOiAxLCAidG90YWxfb2NjdXBhbmN5IjogMX0sICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - message - OK - payload - - channels - - a - - occupancy - 1 - uuids - - - uuid - d063790a-5fac-4c7b-9038-b511b61eb23d - - - - - total_channels - 1 - total_occupancy - 1 - - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36?disable_uuids=0&state=1&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36?disable_uuids=0&state=1&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36?pnsdk=PubNub-ObjC-iOS%2F4.2.0&state=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&disable_uuids=0&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 2 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 209 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 22:42:44 GMT - Server - Pubnub Presence - - expectedContentLength - 209 - statusCode - 200 - suggestedFileName - demo-36.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDQ5Nzg3MzYyOTc3MDE2MCIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14497873629770160 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.2.0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 22:42:44 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testHereNowForNilChannelWithVerbosityOccupancy.plist b/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testHereNowForNilChannelWithVerbosityOccupancy.plist deleted file mode 100755 index 1797111e4..000000000 --- a/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testHereNowForNilChannelWithVerbosityOccupancy.plist +++ /dev/null @@ -1,247 +0,0 @@ - - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWxzIjogeyJhIjogeyJvY2N1cGFuY3kiOiAxfSwgIjJFQzkyNUYwLUI5OTYtNDdBNC1BRjU0LUE2MDVFMUE5QUVCQSI6IHsib2NjdXBhbmN5IjogMX19LCAidG90YWxfY2hhbm5lbHMiOiAyLCAidG90YWxfb2NjdXBhbmN5IjogMn0sICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - message - OK - payload - - channels - - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA - - occupancy - 1 - - a - - occupancy - 1 - - - total_channels - 2 - total_occupancy - 2 - - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36?disable_uuids=1&state=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36?disable_uuids=1&state=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36?pnsdk=PubNub-ObjC-iOS%2F4.2.0&state=0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&disable_uuids=1&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 206 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 22:42:44 GMT - Server - Pubnub Presence - - expectedContentLength - 206 - statusCode - 200 - suggestedFileName - demo-36.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDQ5Nzg3MzYyOTc3MDE2MCIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14497873629770160 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.2.0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 22:42:44 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testHereNowForNilChannelWithVerbosityState.plist b/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testHereNowForNilChannelWithVerbosityState.plist deleted file mode 100755 index dbda26dd8..000000000 --- a/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testHereNowForNilChannelWithVerbosityState.plist +++ /dev/null @@ -1,249 +0,0 @@ - - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWxzIjogeyJhIjogeyJ1dWlkcyI6IFt7InV1aWQiOiAiZDA2Mzc5MGEtNWZhYy00YzdiLTkwMzgtYjUxMWI2MWViMjNkIn1dLCAib2NjdXBhbmN5IjogMX19LCAidG90YWxfY2hhbm5lbHMiOiAxLCAidG90YWxfb2NjdXBhbmN5IjogMX0sICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - message - OK - payload - - channels - - a - - occupancy - 1 - uuids - - - uuid - d063790a-5fac-4c7b-9038-b511b61eb23d - - - - - total_channels - 1 - total_occupancy - 1 - - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36?disable_uuids=0&state=1&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo?disable_uuids=0&state=1&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36?pnsdk=PubNub-ObjC-iOS%2F4.2.0&state=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&disable_uuids=0&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 2 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 209 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 22:42:45 GMT - Server - Pubnub Presence - - expectedContentLength - 209 - statusCode - 200 - suggestedFileName - demo-36.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDQ5Nzg3MzYyOTc3MDE2MCIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14497873629770160 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.2.0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 22:42:45 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testHereNowForNilChannelWithVerbosityUUID.plist b/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testHereNowForNilChannelWithVerbosityUUID.plist deleted file mode 100755 index 342b681bb..000000000 --- a/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testHereNowForNilChannelWithVerbosityUUID.plist +++ /dev/null @@ -1,255 +0,0 @@ - - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWxzIjogeyJhIjogeyJ1dWlkcyI6IFsiZDA2Mzc5MGEtNWZhYy00YzdiLTkwMzgtYjUxMWI2MWViMjNkIl0sICJvY2N1cGFuY3kiOiAxfSwgIjJFQzkyNUYwLUI5OTYtNDdBNC1BRjU0LUE2MDVFMUE5QUVCQSI6IHsidXVpZHMiOiBbImQwNjM3OTBhLTVmYWMtNGM3Yi05MDM4LWI1MTFiNjFlYjIzZCJdLCAib2NjdXBhbmN5IjogMX19LCAidG90YWxfY2hhbm5lbHMiOiAyLCAidG90YWxfb2NjdXBhbmN5IjogMn0sICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - message - OK - payload - - channels - - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA - - occupancy - 1 - uuids - - d063790a-5fac-4c7b-9038-b511b61eb23d - - - a - - occupancy - 1 - uuids - - d063790a-5fac-4c7b-9038-b511b61eb23d - - - - total_channels - 2 - total_occupancy - 2 - - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36?disable_uuids=0&state=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36?disable_uuids=0&state=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36?pnsdk=PubNub-ObjC-iOS%2F4.2.0&state=0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&disable_uuids=0&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 308 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 22:42:45 GMT - Server - Pubnub Presence - - expectedContentLength - 308 - statusCode - 200 - suggestedFileName - demo.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDQ5Nzg3MzYyOTc3MDE2MCIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14497873629770160 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.2.0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 22:42:45 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testHereNowWithVerbosityNowOccupancy.plist b/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testHereNowWithVerbosityNowOccupancy.plist deleted file mode 100755 index d8df9893b..000000000 --- a/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testHereNowWithVerbosityNowOccupancy.plist +++ /dev/null @@ -1,247 +0,0 @@ - - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDQ5Nzg3MzYyOTc3MDE2MCIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14497873629770160 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.2.0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 22:42:45 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWxzIjogeyJhIjogeyJvY2N1cGFuY3kiOiAxfSwgIjJFQzkyNUYwLUI5OTYtNDdBNC1BRjU0LUE2MDVFMUE5QUVCQSI6IHsib2NjdXBhbmN5IjogMX19LCAidG90YWxfY2hhbm5lbHMiOiAyLCAidG90YWxfb2NjdXBhbmN5IjogMn0sICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - message - OK - payload - - channels - - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA - - occupancy - 1 - - a - - occupancy - 1 - - - total_channels - 2 - total_occupancy - 2 - - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36?disable_uuids=1&state=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36?disable_uuids=1&state=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub-key/demo?pnsdk=PubNub-ObjC-iOS%2F4.2.0&state=0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&disable_uuids=1&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 1 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 206 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 22:42:45 GMT - Server - Pubnub Presence - - expectedContentLength - 206 - statusCode - 200 - suggestedFileName - demo-36.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testHereNowWithVerbosityNowState.plist b/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testHereNowWithVerbosityNowState.plist deleted file mode 100755 index 93228e771..000000000 --- a/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testHereNowWithVerbosityNowState.plist +++ /dev/null @@ -1,261 +0,0 @@ - - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWxzIjogeyJhIjogeyJ1dWlkcyI6IFt7InV1aWQiOiAiZDA2Mzc5MGEtNWZhYy00YzdiLTkwMzgtYjUxMWI2MWViMjNkIn1dLCAib2NjdXBhbmN5IjogMX0sICIyRUM5MjVGMC1COTk2LTQ3QTQtQUY1NC1BNjA1RTFBOUFFQkEiOiB7InV1aWRzIjogW3sidXVpZCI6ICJkMDYzNzkwYS01ZmFjLTRjN2ItOTAzOC1iNTExYjYxZWIyM2QifV0sICJvY2N1cGFuY3kiOiAxfX0sICJ0b3RhbF9jaGFubmVscyI6IDIsICJ0b3RhbF9vY2N1cGFuY3kiOiAyfSwgInNlcnZpY2UiOiAiUHJlc2VuY2UifQ== - json - - message - OK - payload - - channels - - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA - - occupancy - 1 - uuids - - - uuid - d063790a-5fac-4c7b-9038-b511b61eb23d - - - - a - - occupancy - 1 - uuids - - - uuid - d063790a-5fac-4c7b-9038-b511b61eb23d - - - - - total_channels - 2 - total_occupancy - 2 - - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36?disable_uuids=0&state=1&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36?disable_uuids=0&state=1&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub-key/demo?pnsdk=PubNub-ObjC-iOS%2F4.2.0&state=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&disable_uuids=0&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 328 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 22:42:46 GMT - Server - Pubnub Presence - - expectedContentLength - 328 - statusCode - 200 - suggestedFileName - demo-36.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDQ5Nzg3MzYyOTc3MDE2MCIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14497873629770160 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.2.0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 22:42:46 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testHereNowWithVerbosityNowUUID.plist b/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testHereNowWithVerbosityNowUUID.plist deleted file mode 100755 index 5f4540c59..000000000 --- a/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testHereNowWithVerbosityNowUUID.plist +++ /dev/null @@ -1,255 +0,0 @@ - - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDQ5Nzg3MzYyOTc3MDE2MCIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14497873629770160 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.2.0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 22:42:46 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWxzIjogeyJhIjogeyJ1dWlkcyI6IFsiZDA2Mzc5MGEtNWZhYy00YzdiLTkwMzgtYjUxMWI2MWViMjNkIl0sICJvY2N1cGFuY3kiOiAxfSwgIjJFQzkyNUYwLUI5OTYtNDdBNC1BRjU0LUE2MDVFMUE5QUVCQSI6IHsidXVpZHMiOiBbImQwNjM3OTBhLTVmYWMtNGM3Yi05MDM4LWI1MTFiNjFlYjIzZCJdLCAib2NjdXBhbmN5IjogMX19LCAidG90YWxfY2hhbm5lbHMiOiAyLCAidG90YWxfb2NjdXBhbmN5IjogMn0sICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - message - OK - payload - - channels - - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA - - occupancy - 1 - uuids - - d063790a-5fac-4c7b-9038-b511b61eb23d - - - a - - occupancy - 1 - uuids - - d063790a-5fac-4c7b-9038-b511b61eb23d - - - - total_channels - 2 - total_occupancy - 2 - - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo?disable_uuids=0&state=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36?disable_uuids=0&state=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36?pnsdk=PubNub-ObjC-iOS%2F4.2.0&state=0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&disable_uuids=0&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 1 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 308 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 22:42:46 GMT - Server - Pubnub Presence - - expectedContentLength - 308 - statusCode - 200 - suggestedFileName - demo-36.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testWhereNowNilUDID.plist b/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testWhereNowNilUDID.plist deleted file mode 100755 index 04bde3ae5..000000000 --- a/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testWhereNowNilUDID.plist +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDQ5Nzg3MzYyOTc3MDE2MCIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14497873629770160 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.2.0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 22:42:46 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testWhereNowUUID.plist b/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testWhereNowUUID.plist deleted file mode 100755 index 0bd07e5a7..000000000 --- a/Tests/iOS Tests/Fixtures/PNPresenceTests.bundle/testWhereNowUUID.plist +++ /dev/null @@ -1,235 +0,0 @@ - - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInBheWxvYWQiOiB7ImNoYW5uZWxzIjogWyJhIiwgIjJFQzkyNUYwLUI5OTYtNDdBNC1BRjU0LUE2MDVFMUE5QUVCQSJdfSwgInNlcnZpY2UiOiAiUHJlc2VuY2UifQ== - json - - message - OK - payload - - channels - - a - 2EC925F0-B996-47A4-AF54-A605E1A9AEBA - - - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/uuid/d063790a-5fac-4c7b-9038-b511b61eb23d?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/uuid/d063790a-5fac-4c7b-9038-b511b61eb23d?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub-key/demo-36/uuid/d063790a-5fac-4c7b-9038-b511b61eb23d?pnsdk=PubNub-ObjC-iOS%2F4.2.0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 127 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 22:42:47 GMT - Server - Pubnub Presence - - expectedContentLength - 127 - statusCode - 200 - suggestedFileName - d063790a-5fac-4c7b-9038-b511b61eb23d.js - textEncodingName - "utf-8" - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDQ5Nzg3MzYyOTc3MDE2MCIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14497873629770160 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/2EC925F0-B996-47A4-AF54-A605E1A9AEBA,2EC925F0-B996-47A4-AF54-A605E1A9AEBA-pnpres/0/0?pnsdk=PubNub-ObjC-iOS%2F4.2.0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=d063790a-5fac-4c7b-9038-b511b61eb23d - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 10 Dec 2015 22:42:47 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishCompressedTests.bundle/testPublishDictionaryCompressed.plist b/Tests/iOS Tests/Fixtures/PNPublishCompressedTests.bundle/testPublishDictionaryCompressed.plist deleted file mode 100644 index 4c114cb55..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishCompressedTests.bundle/testPublishDictionaryCompressed.plist +++ /dev/null @@ -1,176 +0,0 @@ - - - - - creationDate - 2019-05-15T14:03:39Z - scenes - - - frames - - - HTTPBody - H4sIAAAAAAAAE6tWKkktLlGyglC1AEohkvMPAAAA - HTTPMethod - POST - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/F16CB07C-9F3F-41AA-8A0A-313960F21AAB/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - Content-Encoding - gzip - Content-Length - 30 - Content-Type - application/json;charset=UTF-8 - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557929019.398557 - timeoutInterval - 60 - uniqueIdentifier - 37A604A4-28E1-46E0-9157-49B9C6236DED - - - HTTPMethod - POST - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/F16CB07C-9F3F-41AA-8A0A-313960F21AAB/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - Content-Encoding - gzip - Content-Length - 30 - Content-Type - application/json;charset=UTF-8 - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557929019.398901 - timeoutInterval - 60 - uniqueIdentifier - 37A604A4-28E1-46E0-9157-49B9C6236DED - - - HTTPMethod - POST - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/F16CB07C-9F3F-41AA-8A0A-313960F21AAB/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - Content-Encoding - gzip - Content-Length - 30 - Content-Type - application/json;charset=UTF-8 - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557929019.39942 - timeoutInterval - 60 - uniqueIdentifier - 37A604A4-28E1-46E0-9157-49B9C6236DED - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/F16CB07C-9F3F-41AA-8A0A-313960F21AAB/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Access-Control-Allow-Credentials - true - Access-Control-Allow-Methods - POST - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 15 May 2019 14:03:39 GMT - - class - BKRResponseFrame - creationDate - 1557929019.682734 - statusCode - 200 - uniqueIdentifier - 37A604A4-28E1-46E0-9157-49B9C6236DED - - - class - BKRDataFrame - creationDate - 1557929019.682829 - data - WzEsIlNlbnQiLCIxNTU3OTI5MDE5NjYwOTEyMyJd - uniqueIdentifier - 37A604A4-28E1-46E0-9157-49B9C6236DED - - - uniqueIdentifier - 37A604A4-28E1-46E0-9157-49B9C6236DED - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishCompressedTests.bundle/testPublishDictionaryNotCompressed.plist b/Tests/iOS Tests/Fixtures/PNPublishCompressedTests.bundle/testPublishDictionaryNotCompressed.plist deleted file mode 100644 index 3fc3d5ed9..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishCompressedTests.bundle/testPublishDictionaryNotCompressed.plist +++ /dev/null @@ -1,125 +0,0 @@ - - - - - creationDate - 2019-05-15T14:03:39Z - scenes - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/F16CB07C-9F3F-41AA-8A0A-313960F21AAB/0/%7B%22test%22%3A%22test%22%7D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557929019.701401 - timeoutInterval - 60 - uniqueIdentifier - 5BBD7BB3-2E73-4825-9A30-7986B3236E2B - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/F16CB07C-9F3F-41AA-8A0A-313960F21AAB/0/%7B%22test%22%3A%22test%22%7D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557929019.701794 - timeoutInterval - 60 - uniqueIdentifier - 5BBD7BB3-2E73-4825-9A30-7986B3236E2B - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/F16CB07C-9F3F-41AA-8A0A-313960F21AAB/0/%7B%22test%22%3A%22test%22%7D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 15 May 2019 14:03:39 GMT - - class - BKRResponseFrame - creationDate - 1557929019.936892 - statusCode - 200 - uniqueIdentifier - 5BBD7BB3-2E73-4825-9A30-7986B3236E2B - - - class - BKRDataFrame - creationDate - 1557929019.936947 - data - WzEsIlNlbnQiLCIxNTU3OTI5MDE5OTE0MzI3NSJd - uniqueIdentifier - 5BBD7BB3-2E73-4825-9A30-7986B3236E2B - - - uniqueIdentifier - 5BBD7BB3-2E73-4825-9A30-7986B3236E2B - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishCompressedTests.bundle/testPublishNilMessageCompressed.plist b/Tests/iOS Tests/Fixtures/PNPublishCompressedTests.bundle/testPublishNilMessageCompressed.plist deleted file mode 100644 index 34f7e1164..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishCompressedTests.bundle/testPublishNilMessageCompressed.plist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - creationDate - 2019-05-15T14:03:39Z - scenes - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishCompressedTests.bundle/testPublishNilMessageNotCompressed.plist b/Tests/iOS Tests/Fixtures/PNPublishCompressedTests.bundle/testPublishNilMessageNotCompressed.plist deleted file mode 100644 index 34f7e1164..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishCompressedTests.bundle/testPublishNilMessageNotCompressed.plist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - creationDate - 2019-05-15T14:03:39Z - scenes - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishCompressedTests.bundle/testPublishToNilChanneNotCompressed.plist b/Tests/iOS Tests/Fixtures/PNPublishCompressedTests.bundle/testPublishToNilChanneNotCompressed.plist deleted file mode 100644 index 34f7e1164..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishCompressedTests.bundle/testPublishToNilChanneNotCompressed.plist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - creationDate - 2019-05-15T14:03:39Z - scenes - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishCompressedTests.bundle/testPublishToNilChannelCompressed.plist b/Tests/iOS Tests/Fixtures/PNPublishCompressedTests.bundle/testPublishToNilChannelCompressed.plist deleted file mode 100644 index 34f7e1164..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishCompressedTests.bundle/testPublishToNilChannelCompressed.plist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - creationDate - 2019-05-15T14:03:39Z - scenes - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishCompressedTests.bundle/testSimplePublishCompressed.plist b/Tests/iOS Tests/Fixtures/PNPublishCompressedTests.bundle/testSimplePublishCompressed.plist deleted file mode 100644 index 9bb1e492d..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishCompressedTests.bundle/testSimplePublishCompressed.plist +++ /dev/null @@ -1,176 +0,0 @@ - - - - - creationDate - 2019-05-15T14:03:40Z - scenes - - - frames - - - HTTPBody - H4sIAAAAAAAAE1MqSS0uUQIAv2+IMwYAAAA= - HTTPMethod - POST - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/F16CB07C-9F3F-41AA-8A0A-313960F21AAB/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - Content-Encoding - gzip - Content-Length - 26 - Content-Type - application/json;charset=UTF-8 - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557929020.006672 - timeoutInterval - 60 - uniqueIdentifier - C9D3C5FF-DC70-46D4-AA20-55CC8316A532 - - - HTTPMethod - POST - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/F16CB07C-9F3F-41AA-8A0A-313960F21AAB/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - Content-Encoding - gzip - Content-Length - 26 - Content-Type - application/json;charset=UTF-8 - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557929020.006758 - timeoutInterval - 60 - uniqueIdentifier - C9D3C5FF-DC70-46D4-AA20-55CC8316A532 - - - HTTPMethod - POST - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/F16CB07C-9F3F-41AA-8A0A-313960F21AAB/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - Content-Encoding - gzip - Content-Length - 26 - Content-Type - application/json;charset=UTF-8 - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557929020.006888 - timeoutInterval - 60 - uniqueIdentifier - C9D3C5FF-DC70-46D4-AA20-55CC8316A532 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/F16CB07C-9F3F-41AA-8A0A-313960F21AAB/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Access-Control-Allow-Credentials - true - Access-Control-Allow-Methods - POST - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 15 May 2019 14:03:41 GMT - - class - BKRResponseFrame - creationDate - 1557929021.082287 - statusCode - 200 - uniqueIdentifier - C9D3C5FF-DC70-46D4-AA20-55CC8316A532 - - - class - BKRDataFrame - creationDate - 1557929021.082346 - data - WzEsIlNlbnQiLCIxNTU3OTI5MDIxMDYxOTc5NCJd - uniqueIdentifier - C9D3C5FF-DC70-46D4-AA20-55CC8316A532 - - - uniqueIdentifier - C9D3C5FF-DC70-46D4-AA20-55CC8316A532 - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishCompressedTests.bundle/testSimplePublishNotCompressed.plist b/Tests/iOS Tests/Fixtures/PNPublishCompressedTests.bundle/testSimplePublishNotCompressed.plist deleted file mode 100644 index 2331b1aa7..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishCompressedTests.bundle/testSimplePublishNotCompressed.plist +++ /dev/null @@ -1,125 +0,0 @@ - - - - - creationDate - 2019-05-15T14:03:41Z - scenes - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/F16CB07C-9F3F-41AA-8A0A-313960F21AAB/0/%22test%22?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557929021.099667 - timeoutInterval - 60 - uniqueIdentifier - CACBD9D4-2280-45FA-AE28-3DC0F33B93AA - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/F16CB07C-9F3F-41AA-8A0A-313960F21AAB/0/%22test%22?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557929021.099903 - timeoutInterval - 60 - uniqueIdentifier - CACBD9D4-2280-45FA-AE28-3DC0F33B93AA - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/F16CB07C-9F3F-41AA-8A0A-313960F21AAB/0/%22test%22?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 15 May 2019 14:03:42 GMT - - class - BKRResponseFrame - creationDate - 1557929022.139788 - statusCode - 200 - uniqueIdentifier - CACBD9D4-2280-45FA-AE28-3DC0F33B93AA - - - class - BKRDataFrame - creationDate - 1557929022.139846 - data - WzEsIlNlbnQiLCIxNTU3OTI5MDIyMTE4MDIyNiJd - uniqueIdentifier - CACBD9D4-2280-45FA-AE28-3DC0F33B93AA - - - uniqueIdentifier - CACBD9D4-2280-45FA-AE28-3DC0F33B93AA - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSize100kMessageStoreInHistoryCompressed.plist b/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSize100kMessageStoreInHistoryCompressed.plist deleted file mode 100644 index a1d370352..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSize100kMessageStoreInHistoryCompressed.plist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - creationDate - 2019-05-16T07:38:19Z - scenes - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSize10kMessageStoreInHistoryCompressed.plist b/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSize10kMessageStoreInHistoryCompressed.plist deleted file mode 100644 index a1d370352..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSize10kMessageStoreInHistoryCompressed.plist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - creationDate - 2019-05-16T07:38:19Z - scenes - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSizeArrayMessageStoreInHistoryCompressed.plist b/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSizeArrayMessageStoreInHistoryCompressed.plist deleted file mode 100644 index a1d370352..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSizeArrayMessageStoreInHistoryCompressed.plist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - creationDate - 2019-05-16T07:38:19Z - scenes - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSizeComplexArrayMessageStoreInHistoryCompressed.plist b/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSizeComplexArrayMessageStoreInHistoryCompressed.plist deleted file mode 100644 index a1d370352..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSizeComplexArrayMessageStoreInHistoryCompressed.plist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - creationDate - 2019-05-16T07:38:19Z - scenes - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSizeDictionaryMessageStoreInHistoryCompressed.plist b/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSizeDictionaryMessageStoreInHistoryCompressed.plist deleted file mode 100644 index a1d370352..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSizeDictionaryMessageStoreInHistoryCompressed.plist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - creationDate - 2019-05-16T07:38:19Z - scenes - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSizeNestedDictionaryMessageStoreInHistoryCompressed.plist b/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSizeNestedDictionaryMessageStoreInHistoryCompressed.plist deleted file mode 100644 index a1d370352..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSizeNestedDictionaryMessageStoreInHistoryCompressed.plist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - creationDate - 2019-05-16T07:38:19Z - scenes - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSizeOfMessageCompressed.plist b/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSizeOfMessageCompressed.plist deleted file mode 100644 index a1d370352..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSizeOfMessageCompressed.plist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - creationDate - 2019-05-16T07:38:19Z - scenes - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSizeOfMessageNotStoreInHistoryCompressed.plist b/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSizeOfMessageNotStoreInHistoryCompressed.plist deleted file mode 100644 index a1d370352..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSizeOfMessageNotStoreInHistoryCompressed.plist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - creationDate - 2019-05-16T07:38:19Z - scenes - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSizeOfMessageNotStoreInHistoryNotCompressed.plist b/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSizeOfMessageNotStoreInHistoryNotCompressed.plist deleted file mode 100644 index a1d370352..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSizeOfMessageNotStoreInHistoryNotCompressed.plist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - creationDate - 2019-05-16T07:38:19Z - scenes - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSizeOfMessageStoreInHistory.plist b/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSizeOfMessageStoreInHistory.plist deleted file mode 100644 index a1d370352..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSizeOfMessageStoreInHistory.plist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - creationDate - 2019-05-16T07:38:19Z - scenes - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSizeOfMessageStoreInHistoryAndCompressed.plist b/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSizeOfMessageStoreInHistoryAndCompressed.plist deleted file mode 100644 index a1d370352..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSizeOfMessageStoreInHistoryAndCompressed.plist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - creationDate - 2019-05-16T07:38:19Z - scenes - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSizeOfMessageStoreInHistoryNotCompressed.plist b/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSizeOfMessageStoreInHistoryNotCompressed.plist deleted file mode 100644 index a1d370352..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSizeOfMessageStoreInHistoryNotCompressed.plist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - creationDate - 2019-05-16T07:38:19Z - scenes - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSizeOfMessageToChannel.plist b/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSizeOfMessageToChannel.plist deleted file mode 100644 index a1d370352..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSizeOfMessageToChannel.plist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - creationDate - 2019-05-16T07:38:19Z - scenes - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSizeOfMessageToNilChannel.plist b/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSizeOfMessageToNilChannel.plist deleted file mode 100644 index a1d370352..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishSizeOfMessage.bundle/testSizeOfMessageToNilChannel.plist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - creationDate - 2019-05-16T07:38:19Z - scenes - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testNilPublishWithMobilePushPayload.plist b/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testNilPublishWithMobilePushPayload.plist deleted file mode 100644 index 6b3c1a4e3..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testNilPublishWithMobilePushPayload.plist +++ /dev/null @@ -1,125 +0,0 @@ - - - - - creationDate - 2019-05-15T14:36:04Z - scenes - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%7B%22pn_apns%22%3A%7B%22alert%22%3A%22Hello%20from%20PubNub%22%7D%7D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557930964.970233 - timeoutInterval - 60 - uniqueIdentifier - 09D6BE8A-B303-47D1-AAEA-AF5337571F53 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%7B%22pn_apns%22%3A%7B%22alert%22%3A%22Hello%20from%20PubNub%22%7D%7D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557930964.971366 - timeoutInterval - 60 - uniqueIdentifier - 09D6BE8A-B303-47D1-AAEA-AF5337571F53 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%7B%22pn_apns%22%3A%7B%22alert%22%3A%22Hello%20from%20PubNub%22%7D%7D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 15 May 2019 14:36:05 GMT - - class - BKRResponseFrame - creationDate - 1557930965.258143 - statusCode - 200 - uniqueIdentifier - 09D6BE8A-B303-47D1-AAEA-AF5337571F53 - - - class - BKRDataFrame - creationDate - 1557930965.258284 - data - WzEsIlNlbnQiLCIxNTU3OTMwOTY1MjMyMjIwOCJd - uniqueIdentifier - 09D6BE8A-B303-47D1-AAEA-AF5337571F53 - - - uniqueIdentifier - 09D6BE8A-B303-47D1-AAEA-AF5337571F53 - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testNilPublishWithMobilePushPayloadCompressed.plist b/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testNilPublishWithMobilePushPayloadCompressed.plist deleted file mode 100644 index 6444a643f..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testNilPublishWithMobilePushPayloadCompressed.plist +++ /dev/null @@ -1,176 +0,0 @@ - - - - - creationDate - 2019-05-15T14:36:05Z - scenes - - - frames - - - HTTPBody - H4sIAAAAAAAAE6tWKsiLTyzIK1ayqlZKzEktKlGyUvJIzcnJV0grys9VCChN8itNUqqtBQCIEAcoKQAAAA== - HTTPMethod - POST - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - Content-Encoding - gzip - Content-Length - 61 - Content-Type - application/json;charset=UTF-8 - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557930965.27328 - timeoutInterval - 60 - uniqueIdentifier - 1BB5B155-9CA5-4AA9-96C9-9C01D8FC8E1F - - - HTTPMethod - POST - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - Content-Encoding - gzip - Content-Length - 61 - Content-Type - application/json;charset=UTF-8 - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557930965.273468 - timeoutInterval - 60 - uniqueIdentifier - 1BB5B155-9CA5-4AA9-96C9-9C01D8FC8E1F - - - HTTPMethod - POST - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - Content-Encoding - gzip - Content-Length - 61 - Content-Type - application/json;charset=UTF-8 - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557930965.273652 - timeoutInterval - 60 - uniqueIdentifier - 1BB5B155-9CA5-4AA9-96C9-9C01D8FC8E1F - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Access-Control-Allow-Credentials - true - Access-Control-Allow-Methods - POST - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 15 May 2019 14:36:05 GMT - - class - BKRResponseFrame - creationDate - 1557930965.500086 - statusCode - 200 - uniqueIdentifier - 1BB5B155-9CA5-4AA9-96C9-9C01D8FC8E1F - - - class - BKRDataFrame - creationDate - 1557930965.50017 - data - WzEsIlNlbnQiLCIxNTU3OTMwOTY1NDcyNzI5MyJd - uniqueIdentifier - 1BB5B155-9CA5-4AA9-96C9-9C01D8FC8E1F - - - uniqueIdentifier - 1BB5B155-9CA5-4AA9-96C9-9C01D8FC8E1F - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testNilPublishWithMobilePushPayloadStoredInHistory.plist b/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testNilPublishWithMobilePushPayloadStoredInHistory.plist deleted file mode 100644 index 68f5a7153..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testNilPublishWithMobilePushPayloadStoredInHistory.plist +++ /dev/null @@ -1,125 +0,0 @@ - - - - - creationDate - 2019-05-15T14:36:05Z - scenes - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%7B%22pn_apns%22%3A%7B%22alert%22%3A%22Hello%20from%20PubNub%22%7D%7D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&store=0&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557930965.518263 - timeoutInterval - 60 - uniqueIdentifier - 8E972602-0CDD-4CA0-B7CE-F8EEDA7F0843 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%7B%22pn_apns%22%3A%7B%22alert%22%3A%22Hello%20from%20PubNub%22%7D%7D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&store=0&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557930965.518506 - timeoutInterval - 60 - uniqueIdentifier - 8E972602-0CDD-4CA0-B7CE-F8EEDA7F0843 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%7B%22pn_apns%22%3A%7B%22alert%22%3A%22Hello%20from%20PubNub%22%7D%7D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&store=0&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 15 May 2019 14:36:05 GMT - - class - BKRResponseFrame - creationDate - 1557930965.749459 - statusCode - 200 - uniqueIdentifier - 8E972602-0CDD-4CA0-B7CE-F8EEDA7F0843 - - - class - BKRDataFrame - creationDate - 1557930965.749491 - data - WzEsIlNlbnQiLCIxNTU3OTMwOTY1NzI2NjE0MyJd - uniqueIdentifier - 8E972602-0CDD-4CA0-B7CE-F8EEDA7F0843 - - - uniqueIdentifier - 8E972602-0CDD-4CA0-B7CE-F8EEDA7F0843 - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testNilPublishWithMobilePushPayloadStoredInHistoryCompressed.plist b/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testNilPublishWithMobilePushPayloadStoredInHistoryCompressed.plist deleted file mode 100644 index e41524b72..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testNilPublishWithMobilePushPayloadStoredInHistoryCompressed.plist +++ /dev/null @@ -1,176 +0,0 @@ - - - - - creationDate - 2019-05-15T14:36:05Z - scenes - - - frames - - - HTTPBody - H4sIAAAAAAAAE6tWKsiLTyzIK1ayqlZKzEktKlGyUvJIzcnJV0grys9VCChN8itNUqqtBQCIEAcoKQAAAA== - HTTPMethod - POST - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&store=0&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - Content-Encoding - gzip - Content-Length - 61 - Content-Type - application/json;charset=UTF-8 - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557930965.761949 - timeoutInterval - 60 - uniqueIdentifier - C0107E1C-DA53-4B58-9EAF-C19FD5E6203E - - - HTTPMethod - POST - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&store=0&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - Content-Encoding - gzip - Content-Length - 61 - Content-Type - application/json;charset=UTF-8 - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557930965.762092 - timeoutInterval - 60 - uniqueIdentifier - C0107E1C-DA53-4B58-9EAF-C19FD5E6203E - - - HTTPMethod - POST - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&store=0&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - Content-Encoding - gzip - Content-Length - 61 - Content-Type - application/json;charset=UTF-8 - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557930965.762212 - timeoutInterval - 60 - uniqueIdentifier - C0107E1C-DA53-4B58-9EAF-C19FD5E6203E - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&store=0&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Access-Control-Allow-Credentials - true - Access-Control-Allow-Methods - POST - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 15 May 2019 14:36:05 GMT - - class - BKRResponseFrame - creationDate - 1557930965.98341 - statusCode - 200 - uniqueIdentifier - C0107E1C-DA53-4B58-9EAF-C19FD5E6203E - - - class - BKRDataFrame - creationDate - 1557930965.983572 - data - WzEsIlNlbnQiLCIxNTU3OTMwOTY1OTU5NTU5MSJd - uniqueIdentifier - C0107E1C-DA53-4B58-9EAF-C19FD5E6203E - - - uniqueIdentifier - C0107E1C-DA53-4B58-9EAF-C19FD5E6203E - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testNilPublishWithNilMobilePushPayload.plist b/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testNilPublishWithNilMobilePushPayload.plist deleted file mode 100644 index bc3389c63..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testNilPublishWithNilMobilePushPayload.plist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - creationDate - 2019-05-15T14:36:05Z - scenes - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testNilPublishWithNilMobilePushPayloadCompressed.plist b/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testNilPublishWithNilMobilePushPayloadCompressed.plist deleted file mode 100644 index 577219cbc..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testNilPublishWithNilMobilePushPayloadCompressed.plist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - creationDate - 2019-05-15T14:36:06Z - scenes - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testNilPublishWithNilMobilePushPayloadStoredInHistory.plist b/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testNilPublishWithNilMobilePushPayloadStoredInHistory.plist deleted file mode 100644 index 577219cbc..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testNilPublishWithNilMobilePushPayloadStoredInHistory.plist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - creationDate - 2019-05-15T14:36:06Z - scenes - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testNilPublishWithNilMobilePushPayloadStoredInHistoryCompressed.plist b/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testNilPublishWithNilMobilePushPayloadStoredInHistoryCompressed.plist deleted file mode 100644 index 577219cbc..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testNilPublishWithNilMobilePushPayloadStoredInHistoryCompressed.plist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - creationDate - 2019-05-15T14:36:06Z - scenes - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublish10kCharactersString.plist b/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublish10kCharactersString.plist deleted file mode 100644 index 6acf5eab7..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublish10kCharactersString.plist +++ /dev/null @@ -1,125 +0,0 @@ - - - - - creationDate - 2019-05-15T14:36:06Z - scenes - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%22k0zjgpBoYtTawhFiAoYMEj9u7XcCejkGf7vSoo3oPkDox069Oxk1AoZibBrgjo59MZo8C2uuXgRsij6MrbXlOc7anrKuuSaTxD4nql6KtOQLJ14yoTyjwFJBga10mqkWwIFuihDROtfLw7C1LhmzGq4QtrDLML2zhmUyUEqAFwAcs3AbqUc51vyjmmL7eCw802wAlKCNleHsFe5QeEP9bxPFqw1lumjOUOcAoJxVG8GJT2F1QGBOQ5bPjTAdf6ZNjADFZZgZyZ9SEoG7y9ldmUBmio2ZELDMqRrEm0RQdP7GywWEGLbbbmvebsfevprwjxGyBDWP2TqOrnPK34hJ4FPHUghMbBUz2PA3gXsNr7drUlCWslk6e3dfdepBkZOz8fy5CVCsCp2QdZeuSdejPCIQEmuA4ZAaT2834XRlonuo4gmycfDXdbAXJSltWumTEEY5XjNxwk2J37ouE9fu2elHWUSZl7yBgtu40cbdguSxLyUBu4KUwGzaVCT9zygGCpgZMRsZxUOeXUcDd5UNBCVh6fIDwubdWwpVnVqko8O9DHyRwrpSEXrtRvTu2hqN6LwuHrFdPsdWmsdUTgprpWGQ7oh8QVeQRd5snDhzOUiKO0d0aP5x15ozJn6ur82onvdb1FRXPvl8Cktu5WCEuFDXuMejGNAfqbSlF7wpGtPzUJ3vdAVCw520L8Kq5Ee2fNpCM2nnUq32I4n3YYDXfSofqmEJ6LuWblXsDa8YDSy1vGkCnSRqkKT1xFs2wm46M5fyQ9Hnwhz3E6d5IdQdsCxiuIgJDuwK08LubFMaxQs0jel0Mb2UjEo4HBr3WnsTKVTarGvCwpWZCJAmElEuuVDymJg43OIKlY8PNBIDDRVMLp2h70fVEv2p6gmBMfaNvSVl4j1BagROT3WhEwMPuNlAXtJI2UhH4PYzzP2B55bemRhf5m8ZcWa4MG7noz3hNnsW5hb4taDrg5Ff3W12aHDxqyQBwlYYJNRILe4O22rlLmoL2E2tAYXc3tCJ63pbU0C9Ptm2G52ojjYiRBGvHHZVNuruv4opyTjcMG1Z7qa6totcctGvxBOVlLM0aKRVPtZQ7U1k2BUs3aLD93BchEFoXz8L8KNvubqf1DwbJ1saDY8NAgQSjQOi7WHZAiSjLavaC0QKdRyiFhOLwpWHqHGE52iuvHPiyWU7eVmkRS1dDImJLnmmMMZcmMMzRwTmUjw97EfWo8DoaBaTInfR75TH5MRjaJnk5R3ZCHj514lEmKDMCzby1P1Sxx778ygVJWqxzucI3FjqMJafBNv1UmrWfLRpRPLmZd6JMz8bZUTFvAoGtCOdVF8V5K6QVon1amgCFPg2k28ttLeEKlJllG2NI3RaPxekEgzj5iuJtXO3uxDISeDgwJT62GCkfOMOCCTEJJcN9r1ks8hEolB1v39YszPKUh3zdQjDwpR3tCpDjLqivybfq5n0t1tzqztxvFlNWq4yNJfNeQ04QXkTYS9uJWcTDMAvzaGOJtEySNVvWUvMSOgdAhTk7l5ZVkU6oUhP8P7UEhnOC8e7Z2THFBv39S4ZxsIa7LcYjeJhgtFTHzUfoWMif6nUXOhL3aO3wcHaVxJKrc9qqQDDVziKZIL6E79wKKmoCYVYEYPmLQogRlZ1zxaZ7zdF89pvwXGqP9X3fy6yYH8M7uIFucnb6vvhQ2csjh5Jzh2RyL6hQnoZ5PtJ03FWvNBbV5phLco4kw8gHgSNTqnZiAhL7nclZ4e5l9Cb67f7A1dlYLPdl4rCaPnfLGE3q00c892TIqu70cczxyWzWdMdeTex9t9Hhr81i3MUJmW47M0B5mq1yQsbXgeVmiOYsh3QYkyO6m6XQuQk2pq3grYKNe97zQylAY1abSHSrPtQKCVU2kivqGSbGMuVa56j8nBsoHxEW5wjfDmjmT0EaEpy1zVsOwxBxa7oaMzCjkuQ0yzz1dib8h5BMau6IBFA48gwjejTKzndejxHtTYGAzEGqKK86q3Y8bykBaMrbZNueWOZ5yMQkyAA9U68YxjHFoLYDARyed31NYv3S78SDa6bSE6tjU1VraPFQBukkm2ALxR2hNPQGNv5lspwm4y9Z3z1eb5X9h2EFJnM4EVdDZwtiGk2IpDgQIqmzzZwr9wbE7gMAV134Pe9k129MTddJd0VwX0bYmRmMj8wQyEpBGyPZKdp4E5IMP2ZSzWMl4XAGcAEvy7Kqb1JnV8XgHPJxMDrcTUyr5Lu7uzwp6fPzPeGd5naIpFVjHgkYjMhEMiaMICwY3NZCbuPjX3RSeXi8TlyiuJJ4cyqZOkueELFCfr1dbqEUzH7BWTwOmonC6gJDobO7smwoEtMfebhzrehKkQZJx5t0bLqleEGpAVbVgbyscfihNog5xlTx2wVJurz8ughwdwvayS25s68uTUpWoINngv35yMVKHhqJR65tqLqzjtmsMk8czAU43BmLq7n8oTtY19PBFEgvQDY4PLIkkfh9r5J3Ty74zx0wDadW7c8WQWNZNjwUO5jPMGDxKHwJdbfk9HFJk8aiBHbuGZIe0E5X4GkwlLqyXe6pHBvBET44TzdIUjackiHdhdpU85gdawSfn1hsiAOMRh8MEYqhpw8LUzVj1FAucRBFeTs8GEJxN5eULPCc3nIJfTd450qX0V4WdBzoep2HIPdvouWxnItg5T3o0fNqwyDzY6kL23qz0j4JA7EnxCqaQ8amBOOaTzIBRjIdobBratcpfWwHGkJ4y7QL7nosquLHuaiZHe6idXxQstAnTIcHRjH0uTQ6igbdLJAASZ68s8nBMP9i1XKQqbfC6YOSioTb8acNIbv175ZE5DXwx1DPdUx5VnkPuonvOqXVG9OylHTE4xDbKLNmNbKHi4gcYNKIcK5lNC1phPwTkqg9ELheVGaU4j9sMGCKLAsy0LGmQe90z8VBVYTVFLYvfZaiFa3RLwnqOpNXAKMpxaKyTf8iSjDyqzot31BAVIZVvQSuraVaXMeV7XlD7r1zerIAkas3OiPqXuUi0XXNr3e9ECSRyCzKwIA8i38EiUSaXnalcoHUYgAdSDylHrOVreGSWQyjc5oYXV0UrkYAOpR4g526x39ZdjLxijAq6jIjPwfPD6twcmbXYnIhK5tt5xQ9lUpyLWvlEbUd3IB0kQbEtneWs2GyeK5gjyLWOnqbSud7oquIpOWSWMYxmWI807f6yKdG7Mopy2GNkRxkUK1VrYjFihv0k9luMNEXT9Xgcyr6zOFJnKwMEe3R8otQP6i0ILriKVyDCaDR7M1UFaFMNxR9D6YKdygN8cXyYpzBjHfFqTpqla6qztMWM8K1It0Dl4sX3phOBqYCxQiNq8PbHTPudFLWlceY2ryBC6nOuswmg1bprF4BzPOCwcfzVFPRtubUtKET8sOy5oV4nrs5iGDoHbN3foLH8DSOzy6kKtODRsNrwvB4wImU9kCWbYvB6KK6kqvicm8wcRTz6PukHbm7GJVxIpFg31KhwdFXXdOMvV6kPLfS4R316ILwGZspWdArBxl9Cg6E2SRA2aMncA9umSPHm76pOkTzFCvuLI4XlUacpSbJ9b7VBb3B1RYCpg26hWeH7rR8ouwPftT0KZNCoYfqkZ5nJL0gOPrbpllFMUKvzB8C3MEZ4g3p1Ik1TT5lAoUBTGxlYkEj94NntXWcgXxuKJDiB038gqtfe9KopELU13zguNIBmt4zzdT1k0AZngAxYFSHILNnR8UTMOvcDyREoci2KRoJNou4PU4GNqRBhEZcBVV3DgvI9Ax0DZdT0pTs9AeKIlPE4aQyklScpiLfeNDD3wv1rdGPqzZjWoV3dmOCrqBVIHjAnEKnvBSKvkUBOZjdcybVlsk6nbhqUsZZrdpksNDSMqnHGmPWP85mPHELmBj5HJnj9FIRtxUKZsICCHaDTbeyATaHHSWqQLruUg2KNYitUbJ4dmQ020WhOBojH0Gpji6CRVvQTohafLU9GaCU5MQ2KW4vCnfcHGHDZlN9VZiUzZF40GmMmz9VY5Hd3mj8GSIIxTxtxIWZJD4Xr84qpf8MH8YCCYd9iOzYjzaiuR70vaHZFntSZpfQp7bWrDrHbSVlOVDmEMtT1nnZZ7FfNKmCFz7NYkBvMtnQIOc75tlrPYdz0ZDEDmrkR1fqfpt3UQQumdRwTH05wBk1xWW1V8itKbb9EX2wFT7b4YvMtSdSVrb9GOmr5nZwyVg3K1OtSlN8jNOPg4gC4grEJrbgA9ugU2n5VmyVOimg7rZ0sWXik8Dg0Tc9uQs1oLjQtCqfhMne1C9OLTAU0Ua1As5DRlVK56ysu6Xy200gQ1esWMZPtVcJrtoQn4fafI4w0SizNRYS6McYaRmeUxAa1v6ZgeeaT45AlXJezUK6vF6NpcBOeXROnScxEEmDEnzqUvscjuzRQUM4ylN0M9n9Tzn3bgUrn9GV2Jp384HgYpWFaNN60LuUxLzwgI272RGGCndIymMaaxnYlElbWZsG5Q59xiJiTXetSD9bKdb4aq2m4ZMa7XHqaCr9uSzL79IcaCZIBeOrDun7pzwkTOgb9BLvJHl8IeoUQCULUcmkI7o3jS1CMTy8cMgrbfXh2NfgLN7GxoKurNk5wnIDplytcVNWnBWfupIiICUEfkR2wi7f8tFuDLj4I3zenOEFpR5dumgXk5skTZ0BObsgajAhj2YbN9xyljlG5YDqsAxgfjYckeXZNFYZonId5DE8k8dpoiyCGFKvZOf2xbnlpJnsfo2wLZfZ4BxLwY2iCkYEQ9wr4Gz2ZgLqQIjOKe6YVD3GcyEi5C3oxdDHOY5EutuFVWTMGR4yEl5Z6xCS5ZjuWsACDhG9XwqBl0qeeEQbYZN2Ec06rCjxklu59g00ISj75VRnDPqxbJmeIdyAbvdd57R55R7uSsyt1xLzMGsFF1Pt1RLru1aPZoAV3twwshg5D8CaTg4pGAGGy73LNSymg8mmtjDewjDqAz5CyfVTrWRrBChfXkHk92RyqEpyDBY65hjmt8TRedl2bgVQp0yRrKUFyHiVToRTExjNNMdSJqvQ0dmfp3wLYT5rRrMpdKNQkJJehAtD7OF22dmbhhHHxjc4mVcQujyE8puKPgmhoyP8lAwxLOO8ordFQDabsCn3Ob0o0zQQi0GynNlQaebW6eSQ3vI8YZPnQjEaCxhPaeKmdR5OBaSuZ9omFG9JnDdXPRc9hn96m71UQMS6fsIXtOXtw8OF8n73APkDyaRZ5fXh0sw1H7xPPqJsHDyZuY77zNgMOD1jhoAchQEymfKisPrnPU9BcsukGF0tFQvZkXMs6eOPXUQdvwvJg7t1lMaAOtiGY6SEOIzKgB2zPPpVuVnajkQ97ZPvXV6YLPXr2E4YwhgJjukrNehzHHMfTkdXkpkrhegmeSVHpC6xMxNi99mI2Amj9ov8nt3zr9v3yxZpYQ27aVTveqgWExKuQ5rTpNkI4FKHsmnJd2f05JerDWC9rmtDe34BSXFpSNrbjNTTPwoSYAy9tInttCjVfffleVQfYCuyTeG8kfTkZNrQKmbGISmyEJpa4AJw3nwNravjdRQ8y1e1fMmTgxy2TkmWQvnYeab2CgYBUOUQxkjFYoRKmutQQtI6CctArinfKTWx8fGVyxPvU5A6sksrJuwwHnFUa4n8dpXB9d3OFp8hz9B3sdEudGQeUtHscfX5xb2s8QV32oLicDPi5IwhUXeFIkpb3ukcHpT5IsN7tbWdOAxkobOrTMGHN0eQkx7Wen7qTBmj70ndDPSr0MHR6J9XZ6EqGRlyMmM8MTefI4M0kUMUEjwLNYcAPCalXeIPSZcXzvd0Tnx3BNQP2rfiSYd6Q3MU3ivdj1GpbOVT1k1JnqGv93kcYMGMrnDDLYD542mrjfgUinQmj9CRygyXFel9fGUsjdMcIZ3b5O4cT5iWVlNW8lXfdryKnrxB57ytlnS2lj485TYsTRVCKxBjP7s13adwXVUAlX9HhrcevqfMgpitsMjVqBqechMWcxnoVsILgttjUKRLJ341tIWHBWBMeO3OmQDpOdhQ25Tim3G7Yfkfm4PSoE4Q87Emcg33uzl6yQbGzXtr0Ult8ydIXNrYXk9I7pLtyZ8UBM162KuWI261lDuMpfATJLoOJGSyg62pYF2XFu22uZC1csvpE8vjJsT0WAzbgumhN4LJwLpto1vc44gHWAOP8lURPinwBX6WwJuU2Uwibv3D7R7t52j702QFOimM9dvzQS1z5lkB0iowHw3MMIuKVhQORYDkQE3i1C4YrfoP2csni9N0CZyfh19GQG3r2yCsHNwCob2jSpXeMZrRvJ86UyVKHcfR16aAmwuGhy0nlHKMAsZemrCi3IFLGszaQGiGKAN21ulyrS0H9eNYPcjWojZCkDU27o0wRiEdyKtRcVmUuz7VwQayeylaSxsRi3JenJ0FG1evGdIri7G9hcO2pzRs48SmIZww6p51dYSb576LgmebRerK5L3ZzGjJpY1V0U0djp7htkv3QJuyWwpB5ptbnY3i0X71Z8NniFKdIqykLXKrX1jKRXSKzBCnimd973WO7FH8X6NnwNvQDOaC8jxCA3LoR5s8LgPC8wEt0QHKwSslwZB7QR4nEAHBpAjrXSNFJXzjvJ9QnIgDLGb1FhhSssonEZTpXQiOkTxVVt07t2d8WST0TahLM1ab7FQ6gYSziFxcYLB3lZwcGwmsxsweAVSw5rXYA6uDDnQVAgsiHMv010PYpmEF96RMMzsLXE5T8yUbGFdpvcztKCdupduayh3E8HByZ6bjYR0MZoZfPlYy4R7hzEjSj0MyQNE0wbyayHkNEN5psKzjkdHCbOwFPSroY4znLdDbMX7Fjt729BJwrheIVlLx9lQUBqtLuKIcjXhqFTQqgJ7hDiffGFrBwt9C9fDdm0H01CGVdBKjDkpdj8BqOByz7QbPLg8Qff1wkvT6X7GACKsLLgBcIbebfEGvZ0Dq86hDACYeynSXOsHo9Ueush2GeRgqjgtnLghdABT9EqL0sglypNpzfy09zHoBL5vCZQXIjfcJyOANKMsnIMKuxT12ToVE9ABMvsOEAEBJRhGabfONdrVMPvKmsOzRIvhHriH4bdwWo6XHx8KyiDzgmZk9l8ZAEZnpA6L3W5vcWMBwiiy1uRLLMj9wSGHv6oFemfBiGStQqOBTHiaAo2cGoTg7zwWGwIMcwn726Yusu6uAHZEJZPC34vFOZw0vWoAFhY7WKZt7Xuu45klLUk9V3uni53POXkHlHAzDJg6POUodHo6V08ckx1jnWwjPnVnpF1zLrhQwk96udZVNmMoyenlsqjVCRcoKbrJoCRVfZhWTeUh9UZzLp5abdTM91gyuc90jsesCjx55v7Mye9NLAmgtrAa2bFbxRmH4iYojLapvcmaB4omr2SxxcZeQQIU8cPX09DOOR8sSqsiMsnE5juAHcGergellGPG5D85g0dafoguvc4Ta1giIkafLCDueBsfVcwM1csHfg67ZliJ37GBsZMCMF9lYhwRvktpVQGhnTL7aODgMgxi9KGNBTaSdOAUW970SeIhUy5v9YdiFPtO6Sm6flQ4dgoia4NWjPFaVZZTFFV6oBZeg8TPNZIlWg6KijBaDQejRdrT6WnQ4ilLCI8aSw8JnD3lnGsNcDmmsKYaYeBzvVSjpGCNiY7LyEQqDW0Ez1mwU6E6DBMYiYwz7A22ElGeGdy4WCkTZAQTldkaprljgGmfH8nhBCaJD6YJg5qudF9xXDWwqFZThsAAjC31kw0OgQuGiexAmIswKxc0i6FiIcUdt2wtMM5XL3zZet4x2u5yLxBs6daX38pxm0Th1J6yEo6TAwjf2GJ8eBYLGU0wc7OtBfa9ZdX7mC8kpuUfeqUykK656HjCiqXlu0l5yqMAHCET7b1OT1DY7a8VoIVQBr1ux3kClAkUCicAThlK878w1ahiN0PZdsubxaEHyCzlOLNpTsmi6ZKbZ5H3Gwf3ww96v7SpypmF3bExJfjxpy5NbjQZX98ND3H6jM1zqbIix5Xc9S7zHVN0WieRKIkZifOhdviAXpGLGmI5WFPP8EVgmB7rntqR73HqI5vnuTDOlrExZM9wrcOpoozdP9ekO6cOL68XBWVMedPMDSft36apczcNtLiTT2GWP3Xc8ZGm1zBxHDtdJNN7VmZkC3MLCimx2MPI0K6qxB69tFbkwkNHYMnrNl5zwTLVYUMLDfR3ZCJf80Pnw673LNNNmSSLnhBbn11256931oMTjLtIxvXyitP4jCUKuqQmJdvbejlACe54S8rg9NosXitZgFL2rEWvnJkEBoFYTkArgiDNgQLQpqbJ2fyyanGIIVB8njkDjqR0iIL7Mbr6gHSHqbRDwHMZPrzSnSmMY5JiqgN1e13HMKuD1Oe0rO94mAIfvs6wPdwOO9DeaZxqrUsC3MiEpDdpls9H9XSXAnUGloEtJtbjmbCdNaCIsOAgElIIRmjorZ5Wqn3oMAlmHAKiY2CliVQ5tgeaZq6tZorNPTdK8pw92iS1ghkYBRwqF2P0lDVoHO7qq7jo4lmStA16YemApAJ3nkZnUNMWELfaY8dvM8wl3npEtR09Bz3fDlBWQxmjPaOOzRG40Jq4a6JUqZ2XOjH58ZbtpfS2QFElAayqlFFdve75tGaknz9tRfpuqL20lZmSRHGVrAZyTIHppcXdgkBnkFIqYrv1JRkyoqaolqNHv3jRrKhVojKQe5GLSZ9Y86robBj7YKJGqX5BiwjNiMajiZP0T5EmFbD38qfhSY5NwhvQ9yPhP5j99hlXTgsytgZ6lOA8bZCQ2sANPmmy8WP6OEkVXDLMJaFjvxC2AjNjjr8UWE88QGmZ1orAAtwcuLzfp9fFz8MBqW619zFmHbwN96hyEsLvvEMgT11Nd2r6tZf6jwJjJ6RIF9xcJVcvi0bfbHAPILyAv7LDrkvzPcRARJBPeyIxYs4f7ZeRnWJ5RwlMIXvWgNSQTy45UUJV0vNtpkf1f3LzrBJP8Ja1bxNfj0oXzs2qcgl1y0H5LdP6Czan1LosXlrgIc20x6kjOCKIMEnqRMlxYrwIwpqeKyqzwF6LTesvXLJoBoMjTAvEQ8AAqJDF1iKGbeT1OUJ3F3TErR3ucRyPR36dIQTraHMFmDTJAXnoDLyNJg1XYJCOiUvzxoTTAYuDEZfhMoYbaSF8MxGJipzDha3WCN3DdemYQheiIzIQ1MF8ke1IxPDPGEZRaRpDOIfaKC7zS9W2gMvaCc2JEQ7DUsQzyHijY3mk0GDqoBps8MqzDejX6mg0lIFRq6qwni6gqOloVP9ZB4sZ9kAqg7RyykVWwQnrM8TpvZOiBZ8I6RiBE8RPPSGpV8ltB2oncgpbhGJTS6sv0Kv5qp2cOuzZlHHi1WPkAMPQeHIOGgDSYm8uafFFQdVPn2JUYBh0yttuDckMkVORVk0LDGiAoNq2ODqTWLBlEtxQMqKVqOVekLXNqYPO5GKuahq91bo6ubXWAe0IcO14Cr16FclMl51PhvysvaiDuFGK0bTf8sEoa46yKYqOA0LRwmdHIFDr0VPQYeWSOH5jZG7g3G1rKJitVikb9voAvQIY7PxSwuWNtf62tnA4JbfTPuz8K528QacDMivlHtP9XLCZF8kjXbRaAofwmZxGaGY9vv1oUDocHAUrYnMr1grhxWmxCgX7XYLBVpPiD7fqIQcFH4Dk6l0Leetw3a2pNIDv5PISHC4nl5hVBGpmBATuc9prDkEEusLHqrF4FmvAlncJNe0LHq8Vmv1q0YompT40DnplFczdairLbdDuCqFhAulNzuQaHuVDGp2C5uREhm1NuD6LIUnJeCrXzxvDFmfSQcN1u0fupcVB2pvLsnl0BtEzWSUfWHtO65TVS9Afk26TbAIct0iwMZtvDa7moOqofK9r81boas0EAlPiRHqeZqfb35xlWGFp1qDflnOfASPtj8nlkm4bpJoxu2boA0uTuRev1iDIxirRtoEjYljaAdYADHqXn703wLz3%22?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557930966.110325 - timeoutInterval - 60 - uniqueIdentifier - E9977194-0E24-41EA-B96C-96C032A350EA - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%22k0zjgpBoYtTawhFiAoYMEj9u7XcCejkGf7vSoo3oPkDox069Oxk1AoZibBrgjo59MZo8C2uuXgRsij6MrbXlOc7anrKuuSaTxD4nql6KtOQLJ14yoTyjwFJBga10mqkWwIFuihDROtfLw7C1LhmzGq4QtrDLML2zhmUyUEqAFwAcs3AbqUc51vyjmmL7eCw802wAlKCNleHsFe5QeEP9bxPFqw1lumjOUOcAoJxVG8GJT2F1QGBOQ5bPjTAdf6ZNjADFZZgZyZ9SEoG7y9ldmUBmio2ZELDMqRrEm0RQdP7GywWEGLbbbmvebsfevprwjxGyBDWP2TqOrnPK34hJ4FPHUghMbBUz2PA3gXsNr7drUlCWslk6e3dfdepBkZOz8fy5CVCsCp2QdZeuSdejPCIQEmuA4ZAaT2834XRlonuo4gmycfDXdbAXJSltWumTEEY5XjNxwk2J37ouE9fu2elHWUSZl7yBgtu40cbdguSxLyUBu4KUwGzaVCT9zygGCpgZMRsZxUOeXUcDd5UNBCVh6fIDwubdWwpVnVqko8O9DHyRwrpSEXrtRvTu2hqN6LwuHrFdPsdWmsdUTgprpWGQ7oh8QVeQRd5snDhzOUiKO0d0aP5x15ozJn6ur82onvdb1FRXPvl8Cktu5WCEuFDXuMejGNAfqbSlF7wpGtPzUJ3vdAVCw520L8Kq5Ee2fNpCM2nnUq32I4n3YYDXfSofqmEJ6LuWblXsDa8YDSy1vGkCnSRqkKT1xFs2wm46M5fyQ9Hnwhz3E6d5IdQdsCxiuIgJDuwK08LubFMaxQs0jel0Mb2UjEo4HBr3WnsTKVTarGvCwpWZCJAmElEuuVDymJg43OIKlY8PNBIDDRVMLp2h70fVEv2p6gmBMfaNvSVl4j1BagROT3WhEwMPuNlAXtJI2UhH4PYzzP2B55bemRhf5m8ZcWa4MG7noz3hNnsW5hb4taDrg5Ff3W12aHDxqyQBwlYYJNRILe4O22rlLmoL2E2tAYXc3tCJ63pbU0C9Ptm2G52ojjYiRBGvHHZVNuruv4opyTjcMG1Z7qa6totcctGvxBOVlLM0aKRVPtZQ7U1k2BUs3aLD93BchEFoXz8L8KNvubqf1DwbJ1saDY8NAgQSjQOi7WHZAiSjLavaC0QKdRyiFhOLwpWHqHGE52iuvHPiyWU7eVmkRS1dDImJLnmmMMZcmMMzRwTmUjw97EfWo8DoaBaTInfR75TH5MRjaJnk5R3ZCHj514lEmKDMCzby1P1Sxx778ygVJWqxzucI3FjqMJafBNv1UmrWfLRpRPLmZd6JMz8bZUTFvAoGtCOdVF8V5K6QVon1amgCFPg2k28ttLeEKlJllG2NI3RaPxekEgzj5iuJtXO3uxDISeDgwJT62GCkfOMOCCTEJJcN9r1ks8hEolB1v39YszPKUh3zdQjDwpR3tCpDjLqivybfq5n0t1tzqztxvFlNWq4yNJfNeQ04QXkTYS9uJWcTDMAvzaGOJtEySNVvWUvMSOgdAhTk7l5ZVkU6oUhP8P7UEhnOC8e7Z2THFBv39S4ZxsIa7LcYjeJhgtFTHzUfoWMif6nUXOhL3aO3wcHaVxJKrc9qqQDDVziKZIL6E79wKKmoCYVYEYPmLQogRlZ1zxaZ7zdF89pvwXGqP9X3fy6yYH8M7uIFucnb6vvhQ2csjh5Jzh2RyL6hQnoZ5PtJ03FWvNBbV5phLco4kw8gHgSNTqnZiAhL7nclZ4e5l9Cb67f7A1dlYLPdl4rCaPnfLGE3q00c892TIqu70cczxyWzWdMdeTex9t9Hhr81i3MUJmW47M0B5mq1yQsbXgeVmiOYsh3QYkyO6m6XQuQk2pq3grYKNe97zQylAY1abSHSrPtQKCVU2kivqGSbGMuVa56j8nBsoHxEW5wjfDmjmT0EaEpy1zVsOwxBxa7oaMzCjkuQ0yzz1dib8h5BMau6IBFA48gwjejTKzndejxHtTYGAzEGqKK86q3Y8bykBaMrbZNueWOZ5yMQkyAA9U68YxjHFoLYDARyed31NYv3S78SDa6bSE6tjU1VraPFQBukkm2ALxR2hNPQGNv5lspwm4y9Z3z1eb5X9h2EFJnM4EVdDZwtiGk2IpDgQIqmzzZwr9wbE7gMAV134Pe9k129MTddJd0VwX0bYmRmMj8wQyEpBGyPZKdp4E5IMP2ZSzWMl4XAGcAEvy7Kqb1JnV8XgHPJxMDrcTUyr5Lu7uzwp6fPzPeGd5naIpFVjHgkYjMhEMiaMICwY3NZCbuPjX3RSeXi8TlyiuJJ4cyqZOkueELFCfr1dbqEUzH7BWTwOmonC6gJDobO7smwoEtMfebhzrehKkQZJx5t0bLqleEGpAVbVgbyscfihNog5xlTx2wVJurz8ughwdwvayS25s68uTUpWoINngv35yMVKHhqJR65tqLqzjtmsMk8czAU43BmLq7n8oTtY19PBFEgvQDY4PLIkkfh9r5J3Ty74zx0wDadW7c8WQWNZNjwUO5jPMGDxKHwJdbfk9HFJk8aiBHbuGZIe0E5X4GkwlLqyXe6pHBvBET44TzdIUjackiHdhdpU85gdawSfn1hsiAOMRh8MEYqhpw8LUzVj1FAucRBFeTs8GEJxN5eULPCc3nIJfTd450qX0V4WdBzoep2HIPdvouWxnItg5T3o0fNqwyDzY6kL23qz0j4JA7EnxCqaQ8amBOOaTzIBRjIdobBratcpfWwHGkJ4y7QL7nosquLHuaiZHe6idXxQstAnTIcHRjH0uTQ6igbdLJAASZ68s8nBMP9i1XKQqbfC6YOSioTb8acNIbv175ZE5DXwx1DPdUx5VnkPuonvOqXVG9OylHTE4xDbKLNmNbKHi4gcYNKIcK5lNC1phPwTkqg9ELheVGaU4j9sMGCKLAsy0LGmQe90z8VBVYTVFLYvfZaiFa3RLwnqOpNXAKMpxaKyTf8iSjDyqzot31BAVIZVvQSuraVaXMeV7XlD7r1zerIAkas3OiPqXuUi0XXNr3e9ECSRyCzKwIA8i38EiUSaXnalcoHUYgAdSDylHrOVreGSWQyjc5oYXV0UrkYAOpR4g526x39ZdjLxijAq6jIjPwfPD6twcmbXYnIhK5tt5xQ9lUpyLWvlEbUd3IB0kQbEtneWs2GyeK5gjyLWOnqbSud7oquIpOWSWMYxmWI807f6yKdG7Mopy2GNkRxkUK1VrYjFihv0k9luMNEXT9Xgcyr6zOFJnKwMEe3R8otQP6i0ILriKVyDCaDR7M1UFaFMNxR9D6YKdygN8cXyYpzBjHfFqTpqla6qztMWM8K1It0Dl4sX3phOBqYCxQiNq8PbHTPudFLWlceY2ryBC6nOuswmg1bprF4BzPOCwcfzVFPRtubUtKET8sOy5oV4nrs5iGDoHbN3foLH8DSOzy6kKtODRsNrwvB4wImU9kCWbYvB6KK6kqvicm8wcRTz6PukHbm7GJVxIpFg31KhwdFXXdOMvV6kPLfS4R316ILwGZspWdArBxl9Cg6E2SRA2aMncA9umSPHm76pOkTzFCvuLI4XlUacpSbJ9b7VBb3B1RYCpg26hWeH7rR8ouwPftT0KZNCoYfqkZ5nJL0gOPrbpllFMUKvzB8C3MEZ4g3p1Ik1TT5lAoUBTGxlYkEj94NntXWcgXxuKJDiB038gqtfe9KopELU13zguNIBmt4zzdT1k0AZngAxYFSHILNnR8UTMOvcDyREoci2KRoJNou4PU4GNqRBhEZcBVV3DgvI9Ax0DZdT0pTs9AeKIlPE4aQyklScpiLfeNDD3wv1rdGPqzZjWoV3dmOCrqBVIHjAnEKnvBSKvkUBOZjdcybVlsk6nbhqUsZZrdpksNDSMqnHGmPWP85mPHELmBj5HJnj9FIRtxUKZsICCHaDTbeyATaHHSWqQLruUg2KNYitUbJ4dmQ020WhOBojH0Gpji6CRVvQTohafLU9GaCU5MQ2KW4vCnfcHGHDZlN9VZiUzZF40GmMmz9VY5Hd3mj8GSIIxTxtxIWZJD4Xr84qpf8MH8YCCYd9iOzYjzaiuR70vaHZFntSZpfQp7bWrDrHbSVlOVDmEMtT1nnZZ7FfNKmCFz7NYkBvMtnQIOc75tlrPYdz0ZDEDmrkR1fqfpt3UQQumdRwTH05wBk1xWW1V8itKbb9EX2wFT7b4YvMtSdSVrb9GOmr5nZwyVg3K1OtSlN8jNOPg4gC4grEJrbgA9ugU2n5VmyVOimg7rZ0sWXik8Dg0Tc9uQs1oLjQtCqfhMne1C9OLTAU0Ua1As5DRlVK56ysu6Xy200gQ1esWMZPtVcJrtoQn4fafI4w0SizNRYS6McYaRmeUxAa1v6ZgeeaT45AlXJezUK6vF6NpcBOeXROnScxEEmDEnzqUvscjuzRQUM4ylN0M9n9Tzn3bgUrn9GV2Jp384HgYpWFaNN60LuUxLzwgI272RGGCndIymMaaxnYlElbWZsG5Q59xiJiTXetSD9bKdb4aq2m4ZMa7XHqaCr9uSzL79IcaCZIBeOrDun7pzwkTOgb9BLvJHl8IeoUQCULUcmkI7o3jS1CMTy8cMgrbfXh2NfgLN7GxoKurNk5wnIDplytcVNWnBWfupIiICUEfkR2wi7f8tFuDLj4I3zenOEFpR5dumgXk5skTZ0BObsgajAhj2YbN9xyljlG5YDqsAxgfjYckeXZNFYZonId5DE8k8dpoiyCGFKvZOf2xbnlpJnsfo2wLZfZ4BxLwY2iCkYEQ9wr4Gz2ZgLqQIjOKe6YVD3GcyEi5C3oxdDHOY5EutuFVWTMGR4yEl5Z6xCS5ZjuWsACDhG9XwqBl0qeeEQbYZN2Ec06rCjxklu59g00ISj75VRnDPqxbJmeIdyAbvdd57R55R7uSsyt1xLzMGsFF1Pt1RLru1aPZoAV3twwshg5D8CaTg4pGAGGy73LNSymg8mmtjDewjDqAz5CyfVTrWRrBChfXkHk92RyqEpyDBY65hjmt8TRedl2bgVQp0yRrKUFyHiVToRTExjNNMdSJqvQ0dmfp3wLYT5rRrMpdKNQkJJehAtD7OF22dmbhhHHxjc4mVcQujyE8puKPgmhoyP8lAwxLOO8ordFQDabsCn3Ob0o0zQQi0GynNlQaebW6eSQ3vI8YZPnQjEaCxhPaeKmdR5OBaSuZ9omFG9JnDdXPRc9hn96m71UQMS6fsIXtOXtw8OF8n73APkDyaRZ5fXh0sw1H7xPPqJsHDyZuY77zNgMOD1jhoAchQEymfKisPrnPU9BcsukGF0tFQvZkXMs6eOPXUQdvwvJg7t1lMaAOtiGY6SEOIzKgB2zPPpVuVnajkQ97ZPvXV6YLPXr2E4YwhgJjukrNehzHHMfTkdXkpkrhegmeSVHpC6xMxNi99mI2Amj9ov8nt3zr9v3yxZpYQ27aVTveqgWExKuQ5rTpNkI4FKHsmnJd2f05JerDWC9rmtDe34BSXFpSNrbjNTTPwoSYAy9tInttCjVfffleVQfYCuyTeG8kfTkZNrQKmbGISmyEJpa4AJw3nwNravjdRQ8y1e1fMmTgxy2TkmWQvnYeab2CgYBUOUQxkjFYoRKmutQQtI6CctArinfKTWx8fGVyxPvU5A6sksrJuwwHnFUa4n8dpXB9d3OFp8hz9B3sdEudGQeUtHscfX5xb2s8QV32oLicDPi5IwhUXeFIkpb3ukcHpT5IsN7tbWdOAxkobOrTMGHN0eQkx7Wen7qTBmj70ndDPSr0MHR6J9XZ6EqGRlyMmM8MTefI4M0kUMUEjwLNYcAPCalXeIPSZcXzvd0Tnx3BNQP2rfiSYd6Q3MU3ivdj1GpbOVT1k1JnqGv93kcYMGMrnDDLYD542mrjfgUinQmj9CRygyXFel9fGUsjdMcIZ3b5O4cT5iWVlNW8lXfdryKnrxB57ytlnS2lj485TYsTRVCKxBjP7s13adwXVUAlX9HhrcevqfMgpitsMjVqBqechMWcxnoVsILgttjUKRLJ341tIWHBWBMeO3OmQDpOdhQ25Tim3G7Yfkfm4PSoE4Q87Emcg33uzl6yQbGzXtr0Ult8ydIXNrYXk9I7pLtyZ8UBM162KuWI261lDuMpfATJLoOJGSyg62pYF2XFu22uZC1csvpE8vjJsT0WAzbgumhN4LJwLpto1vc44gHWAOP8lURPinwBX6WwJuU2Uwibv3D7R7t52j702QFOimM9dvzQS1z5lkB0iowHw3MMIuKVhQORYDkQE3i1C4YrfoP2csni9N0CZyfh19GQG3r2yCsHNwCob2jSpXeMZrRvJ86UyVKHcfR16aAmwuGhy0nlHKMAsZemrCi3IFLGszaQGiGKAN21ulyrS0H9eNYPcjWojZCkDU27o0wRiEdyKtRcVmUuz7VwQayeylaSxsRi3JenJ0FG1evGdIri7G9hcO2pzRs48SmIZww6p51dYSb576LgmebRerK5L3ZzGjJpY1V0U0djp7htkv3QJuyWwpB5ptbnY3i0X71Z8NniFKdIqykLXKrX1jKRXSKzBCnimd973WO7FH8X6NnwNvQDOaC8jxCA3LoR5s8LgPC8wEt0QHKwSslwZB7QR4nEAHBpAjrXSNFJXzjvJ9QnIgDLGb1FhhSssonEZTpXQiOkTxVVt07t2d8WST0TahLM1ab7FQ6gYSziFxcYLB3lZwcGwmsxsweAVSw5rXYA6uDDnQVAgsiHMv010PYpmEF96RMMzsLXE5T8yUbGFdpvcztKCdupduayh3E8HByZ6bjYR0MZoZfPlYy4R7hzEjSj0MyQNE0wbyayHkNEN5psKzjkdHCbOwFPSroY4znLdDbMX7Fjt729BJwrheIVlLx9lQUBqtLuKIcjXhqFTQqgJ7hDiffGFrBwt9C9fDdm0H01CGVdBKjDkpdj8BqOByz7QbPLg8Qff1wkvT6X7GACKsLLgBcIbebfEGvZ0Dq86hDACYeynSXOsHo9Ueush2GeRgqjgtnLghdABT9EqL0sglypNpzfy09zHoBL5vCZQXIjfcJyOANKMsnIMKuxT12ToVE9ABMvsOEAEBJRhGabfONdrVMPvKmsOzRIvhHriH4bdwWo6XHx8KyiDzgmZk9l8ZAEZnpA6L3W5vcWMBwiiy1uRLLMj9wSGHv6oFemfBiGStQqOBTHiaAo2cGoTg7zwWGwIMcwn726Yusu6uAHZEJZPC34vFOZw0vWoAFhY7WKZt7Xuu45klLUk9V3uni53POXkHlHAzDJg6POUodHo6V08ckx1jnWwjPnVnpF1zLrhQwk96udZVNmMoyenlsqjVCRcoKbrJoCRVfZhWTeUh9UZzLp5abdTM91gyuc90jsesCjx55v7Mye9NLAmgtrAa2bFbxRmH4iYojLapvcmaB4omr2SxxcZeQQIU8cPX09DOOR8sSqsiMsnE5juAHcGergellGPG5D85g0dafoguvc4Ta1giIkafLCDueBsfVcwM1csHfg67ZliJ37GBsZMCMF9lYhwRvktpVQGhnTL7aODgMgxi9KGNBTaSdOAUW970SeIhUy5v9YdiFPtO6Sm6flQ4dgoia4NWjPFaVZZTFFV6oBZeg8TPNZIlWg6KijBaDQejRdrT6WnQ4ilLCI8aSw8JnD3lnGsNcDmmsKYaYeBzvVSjpGCNiY7LyEQqDW0Ez1mwU6E6DBMYiYwz7A22ElGeGdy4WCkTZAQTldkaprljgGmfH8nhBCaJD6YJg5qudF9xXDWwqFZThsAAjC31kw0OgQuGiexAmIswKxc0i6FiIcUdt2wtMM5XL3zZet4x2u5yLxBs6daX38pxm0Th1J6yEo6TAwjf2GJ8eBYLGU0wc7OtBfa9ZdX7mC8kpuUfeqUykK656HjCiqXlu0l5yqMAHCET7b1OT1DY7a8VoIVQBr1ux3kClAkUCicAThlK878w1ahiN0PZdsubxaEHyCzlOLNpTsmi6ZKbZ5H3Gwf3ww96v7SpypmF3bExJfjxpy5NbjQZX98ND3H6jM1zqbIix5Xc9S7zHVN0WieRKIkZifOhdviAXpGLGmI5WFPP8EVgmB7rntqR73HqI5vnuTDOlrExZM9wrcOpoozdP9ekO6cOL68XBWVMedPMDSft36apczcNtLiTT2GWP3Xc8ZGm1zBxHDtdJNN7VmZkC3MLCimx2MPI0K6qxB69tFbkwkNHYMnrNl5zwTLVYUMLDfR3ZCJf80Pnw673LNNNmSSLnhBbn11256931oMTjLtIxvXyitP4jCUKuqQmJdvbejlACe54S8rg9NosXitZgFL2rEWvnJkEBoFYTkArgiDNgQLQpqbJ2fyyanGIIVB8njkDjqR0iIL7Mbr6gHSHqbRDwHMZPrzSnSmMY5JiqgN1e13HMKuD1Oe0rO94mAIfvs6wPdwOO9DeaZxqrUsC3MiEpDdpls9H9XSXAnUGloEtJtbjmbCdNaCIsOAgElIIRmjorZ5Wqn3oMAlmHAKiY2CliVQ5tgeaZq6tZorNPTdK8pw92iS1ghkYBRwqF2P0lDVoHO7qq7jo4lmStA16YemApAJ3nkZnUNMWELfaY8dvM8wl3npEtR09Bz3fDlBWQxmjPaOOzRG40Jq4a6JUqZ2XOjH58ZbtpfS2QFElAayqlFFdve75tGaknz9tRfpuqL20lZmSRHGVrAZyTIHppcXdgkBnkFIqYrv1JRkyoqaolqNHv3jRrKhVojKQe5GLSZ9Y86robBj7YKJGqX5BiwjNiMajiZP0T5EmFbD38qfhSY5NwhvQ9yPhP5j99hlXTgsytgZ6lOA8bZCQ2sANPmmy8WP6OEkVXDLMJaFjvxC2AjNjjr8UWE88QGmZ1orAAtwcuLzfp9fFz8MBqW619zFmHbwN96hyEsLvvEMgT11Nd2r6tZf6jwJjJ6RIF9xcJVcvi0bfbHAPILyAv7LDrkvzPcRARJBPeyIxYs4f7ZeRnWJ5RwlMIXvWgNSQTy45UUJV0vNtpkf1f3LzrBJP8Ja1bxNfj0oXzs2qcgl1y0H5LdP6Czan1LosXlrgIc20x6kjOCKIMEnqRMlxYrwIwpqeKyqzwF6LTesvXLJoBoMjTAvEQ8AAqJDF1iKGbeT1OUJ3F3TErR3ucRyPR36dIQTraHMFmDTJAXnoDLyNJg1XYJCOiUvzxoTTAYuDEZfhMoYbaSF8MxGJipzDha3WCN3DdemYQheiIzIQ1MF8ke1IxPDPGEZRaRpDOIfaKC7zS9W2gMvaCc2JEQ7DUsQzyHijY3mk0GDqoBps8MqzDejX6mg0lIFRq6qwni6gqOloVP9ZB4sZ9kAqg7RyykVWwQnrM8TpvZOiBZ8I6RiBE8RPPSGpV8ltB2oncgpbhGJTS6sv0Kv5qp2cOuzZlHHi1WPkAMPQeHIOGgDSYm8uafFFQdVPn2JUYBh0yttuDckMkVORVk0LDGiAoNq2ODqTWLBlEtxQMqKVqOVekLXNqYPO5GKuahq91bo6ubXWAe0IcO14Cr16FclMl51PhvysvaiDuFGK0bTf8sEoa46yKYqOA0LRwmdHIFDr0VPQYeWSOH5jZG7g3G1rKJitVikb9voAvQIY7PxSwuWNtf62tnA4JbfTPuz8K528QacDMivlHtP9XLCZF8kjXbRaAofwmZxGaGY9vv1oUDocHAUrYnMr1grhxWmxCgX7XYLBVpPiD7fqIQcFH4Dk6l0Leetw3a2pNIDv5PISHC4nl5hVBGpmBATuc9prDkEEusLHqrF4FmvAlncJNe0LHq8Vmv1q0YompT40DnplFczdairLbdDuCqFhAulNzuQaHuVDGp2C5uREhm1NuD6LIUnJeCrXzxvDFmfSQcN1u0fupcVB2pvLsnl0BtEzWSUfWHtO65TVS9Afk26TbAIct0iwMZtvDa7moOqofK9r81boas0EAlPiRHqeZqfb35xlWGFp1qDflnOfASPtj8nlkm4bpJoxu2boA0uTuRev1iDIxirRtoEjYljaAdYADHqXn703wLz3%22?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557930966.110598 - timeoutInterval - 60 - uniqueIdentifier - E9977194-0E24-41EA-B96C-96C032A350EA - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%22k0zjgpBoYtTawhFiAoYMEj9u7XcCejkGf7vSoo3oPkDox069Oxk1AoZibBrgjo59MZo8C2uuXgRsij6MrbXlOc7anrKuuSaTxD4nql6KtOQLJ14yoTyjwFJBga10mqkWwIFuihDROtfLw7C1LhmzGq4QtrDLML2zhmUyUEqAFwAcs3AbqUc51vyjmmL7eCw802wAlKCNleHsFe5QeEP9bxPFqw1lumjOUOcAoJxVG8GJT2F1QGBOQ5bPjTAdf6ZNjADFZZgZyZ9SEoG7y9ldmUBmio2ZELDMqRrEm0RQdP7GywWEGLbbbmvebsfevprwjxGyBDWP2TqOrnPK34hJ4FPHUghMbBUz2PA3gXsNr7drUlCWslk6e3dfdepBkZOz8fy5CVCsCp2QdZeuSdejPCIQEmuA4ZAaT2834XRlonuo4gmycfDXdbAXJSltWumTEEY5XjNxwk2J37ouE9fu2elHWUSZl7yBgtu40cbdguSxLyUBu4KUwGzaVCT9zygGCpgZMRsZxUOeXUcDd5UNBCVh6fIDwubdWwpVnVqko8O9DHyRwrpSEXrtRvTu2hqN6LwuHrFdPsdWmsdUTgprpWGQ7oh8QVeQRd5snDhzOUiKO0d0aP5x15ozJn6ur82onvdb1FRXPvl8Cktu5WCEuFDXuMejGNAfqbSlF7wpGtPzUJ3vdAVCw520L8Kq5Ee2fNpCM2nnUq32I4n3YYDXfSofqmEJ6LuWblXsDa8YDSy1vGkCnSRqkKT1xFs2wm46M5fyQ9Hnwhz3E6d5IdQdsCxiuIgJDuwK08LubFMaxQs0jel0Mb2UjEo4HBr3WnsTKVTarGvCwpWZCJAmElEuuVDymJg43OIKlY8PNBIDDRVMLp2h70fVEv2p6gmBMfaNvSVl4j1BagROT3WhEwMPuNlAXtJI2UhH4PYzzP2B55bemRhf5m8ZcWa4MG7noz3hNnsW5hb4taDrg5Ff3W12aHDxqyQBwlYYJNRILe4O22rlLmoL2E2tAYXc3tCJ63pbU0C9Ptm2G52ojjYiRBGvHHZVNuruv4opyTjcMG1Z7qa6totcctGvxBOVlLM0aKRVPtZQ7U1k2BUs3aLD93BchEFoXz8L8KNvubqf1DwbJ1saDY8NAgQSjQOi7WHZAiSjLavaC0QKdRyiFhOLwpWHqHGE52iuvHPiyWU7eVmkRS1dDImJLnmmMMZcmMMzRwTmUjw97EfWo8DoaBaTInfR75TH5MRjaJnk5R3ZCHj514lEmKDMCzby1P1Sxx778ygVJWqxzucI3FjqMJafBNv1UmrWfLRpRPLmZd6JMz8bZUTFvAoGtCOdVF8V5K6QVon1amgCFPg2k28ttLeEKlJllG2NI3RaPxekEgzj5iuJtXO3uxDISeDgwJT62GCkfOMOCCTEJJcN9r1ks8hEolB1v39YszPKUh3zdQjDwpR3tCpDjLqivybfq5n0t1tzqztxvFlNWq4yNJfNeQ04QXkTYS9uJWcTDMAvzaGOJtEySNVvWUvMSOgdAhTk7l5ZVkU6oUhP8P7UEhnOC8e7Z2THFBv39S4ZxsIa7LcYjeJhgtFTHzUfoWMif6nUXOhL3aO3wcHaVxJKrc9qqQDDVziKZIL6E79wKKmoCYVYEYPmLQogRlZ1zxaZ7zdF89pvwXGqP9X3fy6yYH8M7uIFucnb6vvhQ2csjh5Jzh2RyL6hQnoZ5PtJ03FWvNBbV5phLco4kw8gHgSNTqnZiAhL7nclZ4e5l9Cb67f7A1dlYLPdl4rCaPnfLGE3q00c892TIqu70cczxyWzWdMdeTex9t9Hhr81i3MUJmW47M0B5mq1yQsbXgeVmiOYsh3QYkyO6m6XQuQk2pq3grYKNe97zQylAY1abSHSrPtQKCVU2kivqGSbGMuVa56j8nBsoHxEW5wjfDmjmT0EaEpy1zVsOwxBxa7oaMzCjkuQ0yzz1dib8h5BMau6IBFA48gwjejTKzndejxHtTYGAzEGqKK86q3Y8bykBaMrbZNueWOZ5yMQkyAA9U68YxjHFoLYDARyed31NYv3S78SDa6bSE6tjU1VraPFQBukkm2ALxR2hNPQGNv5lspwm4y9Z3z1eb5X9h2EFJnM4EVdDZwtiGk2IpDgQIqmzzZwr9wbE7gMAV134Pe9k129MTddJd0VwX0bYmRmMj8wQyEpBGyPZKdp4E5IMP2ZSzWMl4XAGcAEvy7Kqb1JnV8XgHPJxMDrcTUyr5Lu7uzwp6fPzPeGd5naIpFVjHgkYjMhEMiaMICwY3NZCbuPjX3RSeXi8TlyiuJJ4cyqZOkueELFCfr1dbqEUzH7BWTwOmonC6gJDobO7smwoEtMfebhzrehKkQZJx5t0bLqleEGpAVbVgbyscfihNog5xlTx2wVJurz8ughwdwvayS25s68uTUpWoINngv35yMVKHhqJR65tqLqzjtmsMk8czAU43BmLq7n8oTtY19PBFEgvQDY4PLIkkfh9r5J3Ty74zx0wDadW7c8WQWNZNjwUO5jPMGDxKHwJdbfk9HFJk8aiBHbuGZIe0E5X4GkwlLqyXe6pHBvBET44TzdIUjackiHdhdpU85gdawSfn1hsiAOMRh8MEYqhpw8LUzVj1FAucRBFeTs8GEJxN5eULPCc3nIJfTd450qX0V4WdBzoep2HIPdvouWxnItg5T3o0fNqwyDzY6kL23qz0j4JA7EnxCqaQ8amBOOaTzIBRjIdobBratcpfWwHGkJ4y7QL7nosquLHuaiZHe6idXxQstAnTIcHRjH0uTQ6igbdLJAASZ68s8nBMP9i1XKQqbfC6YOSioTb8acNIbv175ZE5DXwx1DPdUx5VnkPuonvOqXVG9OylHTE4xDbKLNmNbKHi4gcYNKIcK5lNC1phPwTkqg9ELheVGaU4j9sMGCKLAsy0LGmQe90z8VBVYTVFLYvfZaiFa3RLwnqOpNXAKMpxaKyTf8iSjDyqzot31BAVIZVvQSuraVaXMeV7XlD7r1zerIAkas3OiPqXuUi0XXNr3e9ECSRyCzKwIA8i38EiUSaXnalcoHUYgAdSDylHrOVreGSWQyjc5oYXV0UrkYAOpR4g526x39ZdjLxijAq6jIjPwfPD6twcmbXYnIhK5tt5xQ9lUpyLWvlEbUd3IB0kQbEtneWs2GyeK5gjyLWOnqbSud7oquIpOWSWMYxmWI807f6yKdG7Mopy2GNkRxkUK1VrYjFihv0k9luMNEXT9Xgcyr6zOFJnKwMEe3R8otQP6i0ILriKVyDCaDR7M1UFaFMNxR9D6YKdygN8cXyYpzBjHfFqTpqla6qztMWM8K1It0Dl4sX3phOBqYCxQiNq8PbHTPudFLWlceY2ryBC6nOuswmg1bprF4BzPOCwcfzVFPRtubUtKET8sOy5oV4nrs5iGDoHbN3foLH8DSOzy6kKtODRsNrwvB4wImU9kCWbYvB6KK6kqvicm8wcRTz6PukHbm7GJVxIpFg31KhwdFXXdOMvV6kPLfS4R316ILwGZspWdArBxl9Cg6E2SRA2aMncA9umSPHm76pOkTzFCvuLI4XlUacpSbJ9b7VBb3B1RYCpg26hWeH7rR8ouwPftT0KZNCoYfqkZ5nJL0gOPrbpllFMUKvzB8C3MEZ4g3p1Ik1TT5lAoUBTGxlYkEj94NntXWcgXxuKJDiB038gqtfe9KopELU13zguNIBmt4zzdT1k0AZngAxYFSHILNnR8UTMOvcDyREoci2KRoJNou4PU4GNqRBhEZcBVV3DgvI9Ax0DZdT0pTs9AeKIlPE4aQyklScpiLfeNDD3wv1rdGPqzZjWoV3dmOCrqBVIHjAnEKnvBSKvkUBOZjdcybVlsk6nbhqUsZZrdpksNDSMqnHGmPWP85mPHELmBj5HJnj9FIRtxUKZsICCHaDTbeyATaHHSWqQLruUg2KNYitUbJ4dmQ020WhOBojH0Gpji6CRVvQTohafLU9GaCU5MQ2KW4vCnfcHGHDZlN9VZiUzZF40GmMmz9VY5Hd3mj8GSIIxTxtxIWZJD4Xr84qpf8MH8YCCYd9iOzYjzaiuR70vaHZFntSZpfQp7bWrDrHbSVlOVDmEMtT1nnZZ7FfNKmCFz7NYkBvMtnQIOc75tlrPYdz0ZDEDmrkR1fqfpt3UQQumdRwTH05wBk1xWW1V8itKbb9EX2wFT7b4YvMtSdSVrb9GOmr5nZwyVg3K1OtSlN8jNOPg4gC4grEJrbgA9ugU2n5VmyVOimg7rZ0sWXik8Dg0Tc9uQs1oLjQtCqfhMne1C9OLTAU0Ua1As5DRlVK56ysu6Xy200gQ1esWMZPtVcJrtoQn4fafI4w0SizNRYS6McYaRmeUxAa1v6ZgeeaT45AlXJezUK6vF6NpcBOeXROnScxEEmDEnzqUvscjuzRQUM4ylN0M9n9Tzn3bgUrn9GV2Jp384HgYpWFaNN60LuUxLzwgI272RGGCndIymMaaxnYlElbWZsG5Q59xiJiTXetSD9bKdb4aq2m4ZMa7XHqaCr9uSzL79IcaCZIBeOrDun7pzwkTOgb9BLvJHl8IeoUQCULUcmkI7o3jS1CMTy8cMgrbfXh2NfgLN7GxoKurNk5wnIDplytcVNWnBWfupIiICUEfkR2wi7f8tFuDLj4I3zenOEFpR5dumgXk5skTZ0BObsgajAhj2YbN9xyljlG5YDqsAxgfjYckeXZNFYZonId5DE8k8dpoiyCGFKvZOf2xbnlpJnsfo2wLZfZ4BxLwY2iCkYEQ9wr4Gz2ZgLqQIjOKe6YVD3GcyEi5C3oxdDHOY5EutuFVWTMGR4yEl5Z6xCS5ZjuWsACDhG9XwqBl0qeeEQbYZN2Ec06rCjxklu59g00ISj75VRnDPqxbJmeIdyAbvdd57R55R7uSsyt1xLzMGsFF1Pt1RLru1aPZoAV3twwshg5D8CaTg4pGAGGy73LNSymg8mmtjDewjDqAz5CyfVTrWRrBChfXkHk92RyqEpyDBY65hjmt8TRedl2bgVQp0yRrKUFyHiVToRTExjNNMdSJqvQ0dmfp3wLYT5rRrMpdKNQkJJehAtD7OF22dmbhhHHxjc4mVcQujyE8puKPgmhoyP8lAwxLOO8ordFQDabsCn3Ob0o0zQQi0GynNlQaebW6eSQ3vI8YZPnQjEaCxhPaeKmdR5OBaSuZ9omFG9JnDdXPRc9hn96m71UQMS6fsIXtOXtw8OF8n73APkDyaRZ5fXh0sw1H7xPPqJsHDyZuY77zNgMOD1jhoAchQEymfKisPrnPU9BcsukGF0tFQvZkXMs6eOPXUQdvwvJg7t1lMaAOtiGY6SEOIzKgB2zPPpVuVnajkQ97ZPvXV6YLPXr2E4YwhgJjukrNehzHHMfTkdXkpkrhegmeSVHpC6xMxNi99mI2Amj9ov8nt3zr9v3yxZpYQ27aVTveqgWExKuQ5rTpNkI4FKHsmnJd2f05JerDWC9rmtDe34BSXFpSNrbjNTTPwoSYAy9tInttCjVfffleVQfYCuyTeG8kfTkZNrQKmbGISmyEJpa4AJw3nwNravjdRQ8y1e1fMmTgxy2TkmWQvnYeab2CgYBUOUQxkjFYoRKmutQQtI6CctArinfKTWx8fGVyxPvU5A6sksrJuwwHnFUa4n8dpXB9d3OFp8hz9B3sdEudGQeUtHscfX5xb2s8QV32oLicDPi5IwhUXeFIkpb3ukcHpT5IsN7tbWdOAxkobOrTMGHN0eQkx7Wen7qTBmj70ndDPSr0MHR6J9XZ6EqGRlyMmM8MTefI4M0kUMUEjwLNYcAPCalXeIPSZcXzvd0Tnx3BNQP2rfiSYd6Q3MU3ivdj1GpbOVT1k1JnqGv93kcYMGMrnDDLYD542mrjfgUinQmj9CRygyXFel9fGUsjdMcIZ3b5O4cT5iWVlNW8lXfdryKnrxB57ytlnS2lj485TYsTRVCKxBjP7s13adwXVUAlX9HhrcevqfMgpitsMjVqBqechMWcxnoVsILgttjUKRLJ341tIWHBWBMeO3OmQDpOdhQ25Tim3G7Yfkfm4PSoE4Q87Emcg33uzl6yQbGzXtr0Ult8ydIXNrYXk9I7pLtyZ8UBM162KuWI261lDuMpfATJLoOJGSyg62pYF2XFu22uZC1csvpE8vjJsT0WAzbgumhN4LJwLpto1vc44gHWAOP8lURPinwBX6WwJuU2Uwibv3D7R7t52j702QFOimM9dvzQS1z5lkB0iowHw3MMIuKVhQORYDkQE3i1C4YrfoP2csni9N0CZyfh19GQG3r2yCsHNwCob2jSpXeMZrRvJ86UyVKHcfR16aAmwuGhy0nlHKMAsZemrCi3IFLGszaQGiGKAN21ulyrS0H9eNYPcjWojZCkDU27o0wRiEdyKtRcVmUuz7VwQayeylaSxsRi3JenJ0FG1evGdIri7G9hcO2pzRs48SmIZww6p51dYSb576LgmebRerK5L3ZzGjJpY1V0U0djp7htkv3QJuyWwpB5ptbnY3i0X71Z8NniFKdIqykLXKrX1jKRXSKzBCnimd973WO7FH8X6NnwNvQDOaC8jxCA3LoR5s8LgPC8wEt0QHKwSslwZB7QR4nEAHBpAjrXSNFJXzjvJ9QnIgDLGb1FhhSssonEZTpXQiOkTxVVt07t2d8WST0TahLM1ab7FQ6gYSziFxcYLB3lZwcGwmsxsweAVSw5rXYA6uDDnQVAgsiHMv010PYpmEF96RMMzsLXE5T8yUbGFdpvcztKCdupduayh3E8HByZ6bjYR0MZoZfPlYy4R7hzEjSj0MyQNE0wbyayHkNEN5psKzjkdHCbOwFPSroY4znLdDbMX7Fjt729BJwrheIVlLx9lQUBqtLuKIcjXhqFTQqgJ7hDiffGFrBwt9C9fDdm0H01CGVdBKjDkpdj8BqOByz7QbPLg8Qff1wkvT6X7GACKsLLgBcIbebfEGvZ0Dq86hDACYeynSXOsHo9Ueush2GeRgqjgtnLghdABT9EqL0sglypNpzfy09zHoBL5vCZQXIjfcJyOANKMsnIMKuxT12ToVE9ABMvsOEAEBJRhGabfONdrVMPvKmsOzRIvhHriH4bdwWo6XHx8KyiDzgmZk9l8ZAEZnpA6L3W5vcWMBwiiy1uRLLMj9wSGHv6oFemfBiGStQqOBTHiaAo2cGoTg7zwWGwIMcwn726Yusu6uAHZEJZPC34vFOZw0vWoAFhY7WKZt7Xuu45klLUk9V3uni53POXkHlHAzDJg6POUodHo6V08ckx1jnWwjPnVnpF1zLrhQwk96udZVNmMoyenlsqjVCRcoKbrJoCRVfZhWTeUh9UZzLp5abdTM91gyuc90jsesCjx55v7Mye9NLAmgtrAa2bFbxRmH4iYojLapvcmaB4omr2SxxcZeQQIU8cPX09DOOR8sSqsiMsnE5juAHcGergellGPG5D85g0dafoguvc4Ta1giIkafLCDueBsfVcwM1csHfg67ZliJ37GBsZMCMF9lYhwRvktpVQGhnTL7aODgMgxi9KGNBTaSdOAUW970SeIhUy5v9YdiFPtO6Sm6flQ4dgoia4NWjPFaVZZTFFV6oBZeg8TPNZIlWg6KijBaDQejRdrT6WnQ4ilLCI8aSw8JnD3lnGsNcDmmsKYaYeBzvVSjpGCNiY7LyEQqDW0Ez1mwU6E6DBMYiYwz7A22ElGeGdy4WCkTZAQTldkaprljgGmfH8nhBCaJD6YJg5qudF9xXDWwqFZThsAAjC31kw0OgQuGiexAmIswKxc0i6FiIcUdt2wtMM5XL3zZet4x2u5yLxBs6daX38pxm0Th1J6yEo6TAwjf2GJ8eBYLGU0wc7OtBfa9ZdX7mC8kpuUfeqUykK656HjCiqXlu0l5yqMAHCET7b1OT1DY7a8VoIVQBr1ux3kClAkUCicAThlK878w1ahiN0PZdsubxaEHyCzlOLNpTsmi6ZKbZ5H3Gwf3ww96v7SpypmF3bExJfjxpy5NbjQZX98ND3H6jM1zqbIix5Xc9S7zHVN0WieRKIkZifOhdviAXpGLGmI5WFPP8EVgmB7rntqR73HqI5vnuTDOlrExZM9wrcOpoozdP9ekO6cOL68XBWVMedPMDSft36apczcNtLiTT2GWP3Xc8ZGm1zBxHDtdJNN7VmZkC3MLCimx2MPI0K6qxB69tFbkwkNHYMnrNl5zwTLVYUMLDfR3ZCJf80Pnw673LNNNmSSLnhBbn11256931oMTjLtIxvXyitP4jCUKuqQmJdvbejlACe54S8rg9NosXitZgFL2rEWvnJkEBoFYTkArgiDNgQLQpqbJ2fyyanGIIVB8njkDjqR0iIL7Mbr6gHSHqbRDwHMZPrzSnSmMY5JiqgN1e13HMKuD1Oe0rO94mAIfvs6wPdwOO9DeaZxqrUsC3MiEpDdpls9H9XSXAnUGloEtJtbjmbCdNaCIsOAgElIIRmjorZ5Wqn3oMAlmHAKiY2CliVQ5tgeaZq6tZorNPTdK8pw92iS1ghkYBRwqF2P0lDVoHO7qq7jo4lmStA16YemApAJ3nkZnUNMWELfaY8dvM8wl3npEtR09Bz3fDlBWQxmjPaOOzRG40Jq4a6JUqZ2XOjH58ZbtpfS2QFElAayqlFFdve75tGaknz9tRfpuqL20lZmSRHGVrAZyTIHppcXdgkBnkFIqYrv1JRkyoqaolqNHv3jRrKhVojKQe5GLSZ9Y86robBj7YKJGqX5BiwjNiMajiZP0T5EmFbD38qfhSY5NwhvQ9yPhP5j99hlXTgsytgZ6lOA8bZCQ2sANPmmy8WP6OEkVXDLMJaFjvxC2AjNjjr8UWE88QGmZ1orAAtwcuLzfp9fFz8MBqW619zFmHbwN96hyEsLvvEMgT11Nd2r6tZf6jwJjJ6RIF9xcJVcvi0bfbHAPILyAv7LDrkvzPcRARJBPeyIxYs4f7ZeRnWJ5RwlMIXvWgNSQTy45UUJV0vNtpkf1f3LzrBJP8Ja1bxNfj0oXzs2qcgl1y0H5LdP6Czan1LosXlrgIc20x6kjOCKIMEnqRMlxYrwIwpqeKyqzwF6LTesvXLJoBoMjTAvEQ8AAqJDF1iKGbeT1OUJ3F3TErR3ucRyPR36dIQTraHMFmDTJAXnoDLyNJg1XYJCOiUvzxoTTAYuDEZfhMoYbaSF8MxGJipzDha3WCN3DdemYQheiIzIQ1MF8ke1IxPDPGEZRaRpDOIfaKC7zS9W2gMvaCc2JEQ7DUsQzyHijY3mk0GDqoBps8MqzDejX6mg0lIFRq6qwni6gqOloVP9ZB4sZ9kAqg7RyykVWwQnrM8TpvZOiBZ8I6RiBE8RPPSGpV8ltB2oncgpbhGJTS6sv0Kv5qp2cOuzZlHHi1WPkAMPQeHIOGgDSYm8uafFFQdVPn2JUYBh0yttuDckMkVORVk0LDGiAoNq2ODqTWLBlEtxQMqKVqOVekLXNqYPO5GKuahq91bo6ubXWAe0IcO14Cr16FclMl51PhvysvaiDuFGK0bTf8sEoa46yKYqOA0LRwmdHIFDr0VPQYeWSOH5jZG7g3G1rKJitVikb9voAvQIY7PxSwuWNtf62tnA4JbfTPuz8K528QacDMivlHtP9XLCZF8kjXbRaAofwmZxGaGY9vv1oUDocHAUrYnMr1grhxWmxCgX7XYLBVpPiD7fqIQcFH4Dk6l0Leetw3a2pNIDv5PISHC4nl5hVBGpmBATuc9prDkEEusLHqrF4FmvAlncJNe0LHq8Vmv1q0YompT40DnplFczdairLbdDuCqFhAulNzuQaHuVDGp2C5uREhm1NuD6LIUnJeCrXzxvDFmfSQcN1u0fupcVB2pvLsnl0BtEzWSUfWHtO65TVS9Afk26TbAIct0iwMZtvDa7moOqofK9r81boas0EAlPiRHqeZqfb35xlWGFp1qDflnOfASPtj8nlkm4bpJoxu2boA0uTuRev1iDIxirRtoEjYljaAdYADHqXn703wLz3%22?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 15 May 2019 14:36:06 GMT - - class - BKRResponseFrame - creationDate - 1557930966.448087 - statusCode - 200 - uniqueIdentifier - E9977194-0E24-41EA-B96C-96C032A350EA - - - class - BKRDataFrame - creationDate - 1557930966.448117 - data - WzEsIlNlbnQiLCIxNTU3OTMwOTY2NDIzMDM1MyJd - uniqueIdentifier - E9977194-0E24-41EA-B96C-96C032A350EA - - - uniqueIdentifier - E9977194-0E24-41EA-B96C-96C032A350EA - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublish1kCharactersString.plist b/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublish1kCharactersString.plist deleted file mode 100644 index 3e53e71c5..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublish1kCharactersString.plist +++ /dev/null @@ -1,125 +0,0 @@ - - - - - creationDate - 2019-05-15T14:36:06Z - scenes - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%22Idfyjy99HxPDZsNPVUbTiCueSVlBsuOeMbOq4mnSvyomCS04cRq62Uv0wTmSEnT8rjPUo3j16Jl0AEIPVKrY4ma50YxxnTVNStRCXsvXkLEPDvT03F8Pi2AjdMe3m1Svn2E3azzslFBkVqrGhPGMX3vYu4W8ssMqqMfWCzlLQ79rX9DVbnqla9hHFK55yMQQVcWiL8d0D3mOIQtKlstzQv4Ekl9GJK5DJWmp9tAmim8TBbAdW97ah1dp7DSVpqxyscufnFUo6aQgjolYrmOTq82EZLT8CY05GFeGlp7Wd3IWdlGY834M5QjAG5mL3VeqNMZMs8XhuJOJDlYirCkKjhsE0Nbz9U9ChppC7qdbAGvtRVQl5iwG6Xjl20OhXljPWKXjTfz7wr2jgTqXsgcbVaaWL3rM8DU0oivvYlg7eTvjZSx5CApuq7ErW9KPxi4C2sud8FPZquuIs552fA01NEuPQ5PG3262vBVyAT6L7rDHo8NNqSwcoDA9GaHX3cH8fHDJFWhqgpOTvgrGlqg6icUoX4VRGw9oxhYNMkJj4IPbdFV6aNtu4qvVZWdwrYmB9DPLqwVU0pYYMG6feC1sWyXpXyNZKY0810HyPLVKtgOn7OtffXHbnoSMNB1T84aDhdh4Rz75hod1sUHplAgz540kHqIK1VusRwNtf2Eik7KKEVj0fOAOA5qSsKYwz8j9eG1oU9JXisGrB9S18C1z2hq8rSDqYTzJZ930xdWOMaNcoHIIEEhiQfCAc5W3UrIfbwLQaEj4CZfvYLwTy032fmQ2IcdFe4pW0nO1Ox7obQbBCnOtnvHJXfjid2cErcqKcPV131yTxj9MCjbjbPG4lZZ609QxEatZsImYt7yOg8T0okSHU0v7duC5PxY3Ar5muE412ccKtCXBPswFIcFVKeQ4cyU34BDrjkpS77QhJeYj9R7JL4KBIZD7PuZt4RzGtFBfECGvBXbf0CdfCrz4TiMls12JhbMQAySCpIVg%22?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557930966.469941 - timeoutInterval - 60 - uniqueIdentifier - 680D3E46-753B-41EA-8AB8-947C9F4156A5 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%22Idfyjy99HxPDZsNPVUbTiCueSVlBsuOeMbOq4mnSvyomCS04cRq62Uv0wTmSEnT8rjPUo3j16Jl0AEIPVKrY4ma50YxxnTVNStRCXsvXkLEPDvT03F8Pi2AjdMe3m1Svn2E3azzslFBkVqrGhPGMX3vYu4W8ssMqqMfWCzlLQ79rX9DVbnqla9hHFK55yMQQVcWiL8d0D3mOIQtKlstzQv4Ekl9GJK5DJWmp9tAmim8TBbAdW97ah1dp7DSVpqxyscufnFUo6aQgjolYrmOTq82EZLT8CY05GFeGlp7Wd3IWdlGY834M5QjAG5mL3VeqNMZMs8XhuJOJDlYirCkKjhsE0Nbz9U9ChppC7qdbAGvtRVQl5iwG6Xjl20OhXljPWKXjTfz7wr2jgTqXsgcbVaaWL3rM8DU0oivvYlg7eTvjZSx5CApuq7ErW9KPxi4C2sud8FPZquuIs552fA01NEuPQ5PG3262vBVyAT6L7rDHo8NNqSwcoDA9GaHX3cH8fHDJFWhqgpOTvgrGlqg6icUoX4VRGw9oxhYNMkJj4IPbdFV6aNtu4qvVZWdwrYmB9DPLqwVU0pYYMG6feC1sWyXpXyNZKY0810HyPLVKtgOn7OtffXHbnoSMNB1T84aDhdh4Rz75hod1sUHplAgz540kHqIK1VusRwNtf2Eik7KKEVj0fOAOA5qSsKYwz8j9eG1oU9JXisGrB9S18C1z2hq8rSDqYTzJZ930xdWOMaNcoHIIEEhiQfCAc5W3UrIfbwLQaEj4CZfvYLwTy032fmQ2IcdFe4pW0nO1Ox7obQbBCnOtnvHJXfjid2cErcqKcPV131yTxj9MCjbjbPG4lZZ609QxEatZsImYt7yOg8T0okSHU0v7duC5PxY3Ar5muE412ccKtCXBPswFIcFVKeQ4cyU34BDrjkpS77QhJeYj9R7JL4KBIZD7PuZt4RzGtFBfECGvBXbf0CdfCrz4TiMls12JhbMQAySCpIVg%22?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557930966.470202 - timeoutInterval - 60 - uniqueIdentifier - 680D3E46-753B-41EA-8AB8-947C9F4156A5 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%22Idfyjy99HxPDZsNPVUbTiCueSVlBsuOeMbOq4mnSvyomCS04cRq62Uv0wTmSEnT8rjPUo3j16Jl0AEIPVKrY4ma50YxxnTVNStRCXsvXkLEPDvT03F8Pi2AjdMe3m1Svn2E3azzslFBkVqrGhPGMX3vYu4W8ssMqqMfWCzlLQ79rX9DVbnqla9hHFK55yMQQVcWiL8d0D3mOIQtKlstzQv4Ekl9GJK5DJWmp9tAmim8TBbAdW97ah1dp7DSVpqxyscufnFUo6aQgjolYrmOTq82EZLT8CY05GFeGlp7Wd3IWdlGY834M5QjAG5mL3VeqNMZMs8XhuJOJDlYirCkKjhsE0Nbz9U9ChppC7qdbAGvtRVQl5iwG6Xjl20OhXljPWKXjTfz7wr2jgTqXsgcbVaaWL3rM8DU0oivvYlg7eTvjZSx5CApuq7ErW9KPxi4C2sud8FPZquuIs552fA01NEuPQ5PG3262vBVyAT6L7rDHo8NNqSwcoDA9GaHX3cH8fHDJFWhqgpOTvgrGlqg6icUoX4VRGw9oxhYNMkJj4IPbdFV6aNtu4qvVZWdwrYmB9DPLqwVU0pYYMG6feC1sWyXpXyNZKY0810HyPLVKtgOn7OtffXHbnoSMNB1T84aDhdh4Rz75hod1sUHplAgz540kHqIK1VusRwNtf2Eik7KKEVj0fOAOA5qSsKYwz8j9eG1oU9JXisGrB9S18C1z2hq8rSDqYTzJZ930xdWOMaNcoHIIEEhiQfCAc5W3UrIfbwLQaEj4CZfvYLwTy032fmQ2IcdFe4pW0nO1Ox7obQbBCnOtnvHJXfjid2cErcqKcPV131yTxj9MCjbjbPG4lZZ609QxEatZsImYt7yOg8T0okSHU0v7duC5PxY3Ar5muE412ccKtCXBPswFIcFVKeQ4cyU34BDrjkpS77QhJeYj9R7JL4KBIZD7PuZt4RzGtFBfECGvBXbf0CdfCrz4TiMls12JhbMQAySCpIVg%22?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 15 May 2019 14:36:06 GMT - - class - BKRResponseFrame - creationDate - 1557930966.695915 - statusCode - 200 - uniqueIdentifier - 680D3E46-753B-41EA-8AB8-947C9F4156A5 - - - class - BKRDataFrame - creationDate - 1557930966.695948 - data - WzEsIlNlbnQiLCIxNTU3OTMwOTY2NjczOTUxMSJd - uniqueIdentifier - 680D3E46-753B-41EA-8AB8-947C9F4156A5 - - - uniqueIdentifier - 680D3E46-753B-41EA-8AB8-947C9F4156A5 - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishArray.plist b/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishArray.plist deleted file mode 100644 index eaf55d555..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishArray.plist +++ /dev/null @@ -1,125 +0,0 @@ - - - - - creationDate - 2019-05-15T14:36:06Z - scenes - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%5B%221%22%2C%222%22%2C%223%22%2C%224%22%5D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557930966.706335 - timeoutInterval - 60 - uniqueIdentifier - 1248A07B-F1E1-4A77-852B-E01BAEC136C1 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%5B%221%22%2C%222%22%2C%223%22%2C%224%22%5D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557930966.706543 - timeoutInterval - 60 - uniqueIdentifier - 1248A07B-F1E1-4A77-852B-E01BAEC136C1 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%5B%221%22%2C%222%22%2C%223%22%2C%224%22%5D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 15 May 2019 14:36:06 GMT - - class - BKRResponseFrame - creationDate - 1557930966.937498 - statusCode - 200 - uniqueIdentifier - 1248A07B-F1E1-4A77-852B-E01BAEC136C1 - - - class - BKRDataFrame - creationDate - 1557930966.937536 - data - WzEsIlNlbnQiLCIxNTU3OTMwOTY2OTEyMjcyNiJd - uniqueIdentifier - 1248A07B-F1E1-4A77-852B-E01BAEC136C1 - - - uniqueIdentifier - 1248A07B-F1E1-4A77-852B-E01BAEC136C1 - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishComplexArray.plist b/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishComplexArray.plist deleted file mode 100644 index 4fe0855f5..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishComplexArray.plist +++ /dev/null @@ -1,125 +0,0 @@ - - - - - creationDate - 2019-05-15T14:36:06Z - scenes - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%5B%221%22%2C%7B%221%22%3A%7B%221%22%3A%222%22%7D%7D%2C%5B%221%22%2C%222%22%2C2%5D%2C567%5D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557930966.953424 - timeoutInterval - 60 - uniqueIdentifier - 9D0B75AA-4CFB-4860-A1EC-CEED423895A2 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%5B%221%22%2C%7B%221%22%3A%7B%221%22%3A%222%22%7D%7D%2C%5B%221%22%2C%222%22%2C2%5D%2C567%5D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557930966.953634 - timeoutInterval - 60 - uniqueIdentifier - 9D0B75AA-4CFB-4860-A1EC-CEED423895A2 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%5B%221%22%2C%7B%221%22%3A%7B%221%22%3A%222%22%7D%7D%2C%5B%221%22%2C%222%22%2C2%5D%2C567%5D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 15 May 2019 14:36:07 GMT - - class - BKRResponseFrame - creationDate - 1557930967.186286 - statusCode - 200 - uniqueIdentifier - 9D0B75AA-4CFB-4860-A1EC-CEED423895A2 - - - class - BKRDataFrame - creationDate - 1557930967.186312 - data - WzEsIlNlbnQiLCIxNTU3OTMwOTY3MTYxMjc3NiJd - uniqueIdentifier - 9D0B75AA-4CFB-4860-A1EC-CEED423895A2 - - - uniqueIdentifier - 9D0B75AA-4CFB-4860-A1EC-CEED423895A2 - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishDictionary.plist b/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishDictionary.plist deleted file mode 100644 index b16a3a680..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishDictionary.plist +++ /dev/null @@ -1,125 +0,0 @@ - - - - - creationDate - 2019-05-15T14:36:07Z - scenes - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%7B%22test%22%3A%22test%22%7D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557930967.202265 - timeoutInterval - 60 - uniqueIdentifier - 5DEF3208-E4B9-4988-A5F1-D8F987FF45EC - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%7B%22test%22%3A%22test%22%7D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557930967.202572 - timeoutInterval - 60 - uniqueIdentifier - 5DEF3208-E4B9-4988-A5F1-D8F987FF45EC - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%7B%22test%22%3A%22test%22%7D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 15 May 2019 14:36:07 GMT - - class - BKRResponseFrame - creationDate - 1557930967.562636 - statusCode - 200 - uniqueIdentifier - 5DEF3208-E4B9-4988-A5F1-D8F987FF45EC - - - class - BKRDataFrame - creationDate - 1557930967.56267 - data - WzEsIlNlbnQiLCIxNTU3OTMwOTY3NTM4MDMzMSJd - uniqueIdentifier - 5DEF3208-E4B9-4988-A5F1-D8F987FF45EC - - - uniqueIdentifier - 5DEF3208-E4B9-4988-A5F1-D8F987FF45EC - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishNestedDictionary.plist b/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishNestedDictionary.plist deleted file mode 100644 index 9f4e1af60..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishNestedDictionary.plist +++ /dev/null @@ -1,125 +0,0 @@ - - - - - creationDate - 2019-05-15T14:36:07Z - scenes - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%7B%22test%22%3A%7B%22test%22%3A%22test%22%7D%7D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557930967.577107 - timeoutInterval - 60 - uniqueIdentifier - E05F3FAC-6E13-4959-A60B-CCA0E35D15EF - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%7B%22test%22%3A%7B%22test%22%3A%22test%22%7D%7D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557930967.577382 - timeoutInterval - 60 - uniqueIdentifier - E05F3FAC-6E13-4959-A60B-CCA0E35D15EF - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%7B%22test%22%3A%7B%22test%22%3A%22test%22%7D%7D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 15 May 2019 14:36:07 GMT - - class - BKRResponseFrame - creationDate - 1557930967.806614 - statusCode - 200 - uniqueIdentifier - E05F3FAC-6E13-4959-A60B-CCA0E35D15EF - - - class - BKRDataFrame - creationDate - 1557930967.806645 - data - WzEsIlNlbnQiLCIxNTU3OTMwOTY3NzgxOTA2NyJd - uniqueIdentifier - E05F3FAC-6E13-4959-A60B-CCA0E35D15EF - - - uniqueIdentifier - E05F3FAC-6E13-4959-A60B-CCA0E35D15EF - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishNilMessage.plist b/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishNilMessage.plist deleted file mode 100644 index 4eab9882f..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishNilMessage.plist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - creationDate - 2019-05-15T14:36:07Z - scenes - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishNumber.plist b/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishNumber.plist deleted file mode 100644 index 5ece4e955..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishNumber.plist +++ /dev/null @@ -1,125 +0,0 @@ - - - - - creationDate - 2019-05-15T14:36:07Z - scenes - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/700?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557930967.829318 - timeoutInterval - 60 - uniqueIdentifier - 91BD04AC-8C76-40DD-9610-651B1B21902C - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/700?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557930967.829513 - timeoutInterval - 60 - uniqueIdentifier - 91BD04AC-8C76-40DD-9610-651B1B21902C - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/700?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 15 May 2019 14:36:08 GMT - - class - BKRResponseFrame - creationDate - 1557930968.118948 - statusCode - 200 - uniqueIdentifier - 91BD04AC-8C76-40DD-9610-651B1B21902C - - - class - BKRDataFrame - creationDate - 1557930968.118984 - data - WzEsIlNlbnQiLCIxNTU3OTMwOTY4MDk0MTkxMyJd - uniqueIdentifier - 91BD04AC-8C76-40DD-9610-651B1B21902C - - - uniqueIdentifier - 91BD04AC-8C76-40DD-9610-651B1B21902C - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishStringWithSpecialSymbols.plist b/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishStringWithSpecialSymbols.plist deleted file mode 100644 index 24216b6c9..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishStringWithSpecialSymbols.plist +++ /dev/null @@ -1,125 +0,0 @@ - - - - - creationDate - 2019-05-15T14:36:08Z - scenes - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%22%21%40%23%24%25%5E%26%2A%28%29_%2B%7C%22?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557930968.134356 - timeoutInterval - 60 - uniqueIdentifier - CB30F711-6857-445F-95DF-D0F7705550A9 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%22%21%40%23%24%25%5E%26%2A%28%29_%2B%7C%22?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557930968.134739 - timeoutInterval - 60 - uniqueIdentifier - CB30F711-6857-445F-95DF-D0F7705550A9 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%22%21%40%23%24%25%5E%26%2A%28%29_%2B%7C%22?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 15 May 2019 14:36:08 GMT - - class - BKRResponseFrame - creationDate - 1557930968.378303 - statusCode - 200 - uniqueIdentifier - CB30F711-6857-445F-95DF-D0F7705550A9 - - - class - BKRDataFrame - creationDate - 1557930968.378333 - data - WzEsIlNlbnQiLCIxNTU3OTMwOTY4MzU1NjUyNiJd - uniqueIdentifier - CB30F711-6857-445F-95DF-D0F7705550A9 - - - uniqueIdentifier - CB30F711-6857-445F-95DF-D0F7705550A9 - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishToNilChannel.plist b/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishToNilChannel.plist deleted file mode 100644 index cf66a28bb..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishToNilChannel.plist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - creationDate - 2019-05-15T14:36:08Z - scenes - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishWithMobilePushPayload.plist b/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishWithMobilePushPayload.plist deleted file mode 100644 index 47e488e1c..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishWithMobilePushPayload.plist +++ /dev/null @@ -1,125 +0,0 @@ - - - - - creationDate - 2019-05-15T14:36:08Z - scenes - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%7B%22Hello%22%3A%22world%22%2C%22pn_apns%22%3A%7B%22alert%22%3A%22Hello%20from%20PubNub%22%7D%7D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557930968.404144 - timeoutInterval - 60 - uniqueIdentifier - A847ABC8-06D1-4CF9-81C2-DD756E28984E - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%7B%22Hello%22%3A%22world%22%2C%22pn_apns%22%3A%7B%22alert%22%3A%22Hello%20from%20PubNub%22%7D%7D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557930968.404444 - timeoutInterval - 60 - uniqueIdentifier - A847ABC8-06D1-4CF9-81C2-DD756E28984E - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%7B%22Hello%22%3A%22world%22%2C%22pn_apns%22%3A%7B%22alert%22%3A%22Hello%20from%20PubNub%22%7D%7D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 15 May 2019 14:36:08 GMT - - class - BKRResponseFrame - creationDate - 1557930968.643062 - statusCode - 200 - uniqueIdentifier - A847ABC8-06D1-4CF9-81C2-DD756E28984E - - - class - BKRDataFrame - creationDate - 1557930968.643097 - data - WzEsIlNlbnQiLCIxNTU3OTMwOTY4NjE2NjQ0NyJd - uniqueIdentifier - A847ABC8-06D1-4CF9-81C2-DD756E28984E - - - uniqueIdentifier - A847ABC8-06D1-4CF9-81C2-DD756E28984E - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishWithMobilePushPayloadCompressed.plist b/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishWithMobilePushPayloadCompressed.plist deleted file mode 100644 index d4cbefe8d..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishWithMobilePushPayloadCompressed.plist +++ /dev/null @@ -1,176 +0,0 @@ - - - - - creationDate - 2019-05-15T14:36:08Z - scenes - - - frames - - - HTTPBody - H4sIAAAAAAAAE6tW8kjNyclXslIqzy/KSVHSUSrIi08syCtWsqpWSsxJLSoBSoGVKKQV5ecqBJQm+ZUmKdXWAgCEWXOjOQAAAA== - HTTPMethod - POST - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - Content-Encoding - gzip - Content-Length - 73 - Content-Type - application/json;charset=UTF-8 - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557930968.657808 - timeoutInterval - 60 - uniqueIdentifier - E4630DFE-4F7A-4282-8D9E-5FE674273FFC - - - HTTPMethod - POST - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - Content-Encoding - gzip - Content-Length - 73 - Content-Type - application/json;charset=UTF-8 - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557930968.657998 - timeoutInterval - 60 - uniqueIdentifier - E4630DFE-4F7A-4282-8D9E-5FE674273FFC - - - HTTPMethod - POST - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - Content-Encoding - gzip - Content-Length - 73 - Content-Type - application/json;charset=UTF-8 - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557930968.658093 - timeoutInterval - 60 - uniqueIdentifier - E4630DFE-4F7A-4282-8D9E-5FE674273FFC - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Access-Control-Allow-Credentials - true - Access-Control-Allow-Methods - POST - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 15 May 2019 14:36:08 GMT - - class - BKRResponseFrame - creationDate - 1557930968.911917 - statusCode - 200 - uniqueIdentifier - E4630DFE-4F7A-4282-8D9E-5FE674273FFC - - - class - BKRDataFrame - creationDate - 1557930968.911961 - data - WzEsIlNlbnQiLCIxNTU3OTMwOTY4ODg3NDIyOSJd - uniqueIdentifier - E4630DFE-4F7A-4282-8D9E-5FE674273FFC - - - uniqueIdentifier - E4630DFE-4F7A-4282-8D9E-5FE674273FFC - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishWithMobilePushPayloadStoredInHistory.plist b/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishWithMobilePushPayloadStoredInHistory.plist deleted file mode 100644 index 0e48aa1ec..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishWithMobilePushPayloadStoredInHistory.plist +++ /dev/null @@ -1,125 +0,0 @@ - - - - - creationDate - 2019-05-15T14:36:08Z - scenes - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%7B%22Hello%22%3A%22world%22%2C%22pn_apns%22%3A%7B%22alert%22%3A%22Hello%20from%20PubNub%22%7D%7D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&store=0&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557930968.926319 - timeoutInterval - 60 - uniqueIdentifier - EFF414CE-7078-473B-B71D-076CBB075DE0 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%7B%22Hello%22%3A%22world%22%2C%22pn_apns%22%3A%7B%22alert%22%3A%22Hello%20from%20PubNub%22%7D%7D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&store=0&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557930968.926638 - timeoutInterval - 60 - uniqueIdentifier - EFF414CE-7078-473B-B71D-076CBB075DE0 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%7B%22Hello%22%3A%22world%22%2C%22pn_apns%22%3A%7B%22alert%22%3A%22Hello%20from%20PubNub%22%7D%7D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&store=0&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 15 May 2019 14:36:09 GMT - - class - BKRResponseFrame - creationDate - 1557930969.167134 - statusCode - 200 - uniqueIdentifier - EFF414CE-7078-473B-B71D-076CBB075DE0 - - - class - BKRDataFrame - creationDate - 1557930969.167164 - data - WzEsIlNlbnQiLCIxNTU3OTMwOTY5MTQ0MzczOSJd - uniqueIdentifier - EFF414CE-7078-473B-B71D-076CBB075DE0 - - - uniqueIdentifier - EFF414CE-7078-473B-B71D-076CBB075DE0 - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishWithMobilePushPayloadStoredInHistoryCompressed.plist b/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishWithMobilePushPayloadStoredInHistoryCompressed.plist deleted file mode 100644 index b29679b47..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishWithMobilePushPayloadStoredInHistoryCompressed.plist +++ /dev/null @@ -1,176 +0,0 @@ - - - - - creationDate - 2019-05-15T14:36:09Z - scenes - - - frames - - - HTTPBody - H4sIAAAAAAAAE6tW8kjNyclXslIqzy/KSVHSUSrIi08syCtWsqpWSsxJLSoBSoGVKKQV5ecqBJQm+ZUmKdXWAgCEWXOjOQAAAA== - HTTPMethod - POST - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&store=0&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - Content-Encoding - gzip - Content-Length - 73 - Content-Type - application/json;charset=UTF-8 - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557930969.18208 - timeoutInterval - 60 - uniqueIdentifier - E828A5E4-A263-41DF-BA63-9231BBBED800 - - - HTTPMethod - POST - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&store=0&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - Content-Encoding - gzip - Content-Length - 73 - Content-Type - application/json;charset=UTF-8 - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557930969.182168 - timeoutInterval - 60 - uniqueIdentifier - E828A5E4-A263-41DF-BA63-9231BBBED800 - - - HTTPMethod - POST - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&store=0&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - Content-Encoding - gzip - Content-Length - 73 - Content-Type - application/json;charset=UTF-8 - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557930969.182398 - timeoutInterval - 60 - uniqueIdentifier - E828A5E4-A263-41DF-BA63-9231BBBED800 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&store=0&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Access-Control-Allow-Credentials - true - Access-Control-Allow-Methods - POST - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 15 May 2019 14:36:09 GMT - - class - BKRResponseFrame - creationDate - 1557930969.394158 - statusCode - 200 - uniqueIdentifier - E828A5E4-A263-41DF-BA63-9231BBBED800 - - - class - BKRDataFrame - creationDate - 1557930969.394203 - data - WzEsIlNlbnQiLCIxNTU3OTMwOTY5MzcxMTI5MSJd - uniqueIdentifier - E828A5E4-A263-41DF-BA63-9231BBBED800 - - - uniqueIdentifier - E828A5E4-A263-41DF-BA63-9231BBBED800 - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishWithNilMobilePushPayload.plist b/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishWithNilMobilePushPayload.plist deleted file mode 100644 index 9b6126af5..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishWithNilMobilePushPayload.plist +++ /dev/null @@ -1,125 +0,0 @@ - - - - - creationDate - 2019-05-15T14:36:09Z - scenes - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%7B%22Hello%22%3A%22world%22%7D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557930969.405518 - timeoutInterval - 60 - uniqueIdentifier - 39B2A972-6E73-442E-9F5A-61BAF5C2C757 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%7B%22Hello%22%3A%22world%22%7D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557930969.405703 - timeoutInterval - 60 - uniqueIdentifier - 39B2A972-6E73-442E-9F5A-61BAF5C2C757 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%7B%22Hello%22%3A%22world%22%7D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 15 May 2019 14:36:09 GMT - - class - BKRResponseFrame - creationDate - 1557930969.638204 - statusCode - 200 - uniqueIdentifier - 39B2A972-6E73-442E-9F5A-61BAF5C2C757 - - - class - BKRDataFrame - creationDate - 1557930969.638237 - data - WzEsIlNlbnQiLCIxNTU3OTMwOTY5NjEzOTg5OSJd - uniqueIdentifier - 39B2A972-6E73-442E-9F5A-61BAF5C2C757 - - - uniqueIdentifier - 39B2A972-6E73-442E-9F5A-61BAF5C2C757 - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishWithNilMobilePushPayloadCompressed.plist b/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishWithNilMobilePushPayloadCompressed.plist deleted file mode 100644 index cde78df96..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishWithNilMobilePushPayloadCompressed.plist +++ /dev/null @@ -1,176 +0,0 @@ - - - - - creationDate - 2019-05-15T14:36:09Z - scenes - - - frames - - - HTTPBody - H4sIAAAAAAAAE6tW8kjNyclXslIqzy/KSVGqBQBPf8xQEQAAAA== - HTTPMethod - POST - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - Content-Encoding - gzip - Content-Length - 37 - Content-Type - application/json;charset=UTF-8 - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557930969.649766 - timeoutInterval - 60 - uniqueIdentifier - F19CEC4C-C516-4E3E-BA43-AC41C4671331 - - - HTTPMethod - POST - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - Content-Encoding - gzip - Content-Length - 37 - Content-Type - application/json;charset=UTF-8 - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557930969.649938 - timeoutInterval - 60 - uniqueIdentifier - F19CEC4C-C516-4E3E-BA43-AC41C4671331 - - - HTTPMethod - POST - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - Content-Encoding - gzip - Content-Length - 37 - Content-Type - application/json;charset=UTF-8 - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557930969.650082 - timeoutInterval - 60 - uniqueIdentifier - F19CEC4C-C516-4E3E-BA43-AC41C4671331 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Access-Control-Allow-Credentials - true - Access-Control-Allow-Methods - POST - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 15 May 2019 14:36:09 GMT - - class - BKRResponseFrame - creationDate - 1557930969.908481 - statusCode - 200 - uniqueIdentifier - F19CEC4C-C516-4E3E-BA43-AC41C4671331 - - - class - BKRDataFrame - creationDate - 1557930969.908556 - data - WzEsIlNlbnQiLCIxNTU3OTMwOTY5ODg0Mjc2MSJd - uniqueIdentifier - F19CEC4C-C516-4E3E-BA43-AC41C4671331 - - - uniqueIdentifier - F19CEC4C-C516-4E3E-BA43-AC41C4671331 - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishWithNilMobilePushPayloadStoredInHistory.plist b/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishWithNilMobilePushPayloadStoredInHistory.plist deleted file mode 100644 index 18f8c3425..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishWithNilMobilePushPayloadStoredInHistory.plist +++ /dev/null @@ -1,125 +0,0 @@ - - - - - creationDate - 2019-05-15T14:36:09Z - scenes - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%7B%22Hello%22%3A%22world%22%7D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&store=0&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557930969.91907 - timeoutInterval - 60 - uniqueIdentifier - 86126A9C-186C-4736-BAE1-AF5D26AC854D - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%7B%22Hello%22%3A%22world%22%7D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&store=0&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557930969.919318 - timeoutInterval - 60 - uniqueIdentifier - 86126A9C-186C-4736-BAE1-AF5D26AC854D - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%7B%22Hello%22%3A%22world%22%7D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&store=0&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 15 May 2019 14:36:10 GMT - - class - BKRResponseFrame - creationDate - 1557930970.146129 - statusCode - 200 - uniqueIdentifier - 86126A9C-186C-4736-BAE1-AF5D26AC854D - - - class - BKRDataFrame - creationDate - 1557930970.146162 - data - WzEsIlNlbnQiLCIxNTU3OTMwOTcwMTE5OTgzOCJd - uniqueIdentifier - 86126A9C-186C-4736-BAE1-AF5D26AC854D - - - uniqueIdentifier - 86126A9C-186C-4736-BAE1-AF5D26AC854D - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishWithNilMobilePushPayloadStoredInHistoryCompressed.plist b/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishWithNilMobilePushPayloadStoredInHistoryCompressed.plist deleted file mode 100644 index 3f31c760c..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testPublishWithNilMobilePushPayloadStoredInHistoryCompressed.plist +++ /dev/null @@ -1,176 +0,0 @@ - - - - - creationDate - 2019-05-15T14:36:10Z - scenes - - - frames - - - HTTPBody - H4sIAAAAAAAAE6tW8kjNyclXslIqzy/KSVGqBQBPf8xQEQAAAA== - HTTPMethod - POST - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&store=0&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - Content-Encoding - gzip - Content-Length - 37 - Content-Type - application/json;charset=UTF-8 - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557930970.162473 - timeoutInterval - 60 - uniqueIdentifier - 2AFFEFD7-3B0C-4983-B80C-BFFA6D4A7F79 - - - HTTPMethod - POST - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&store=0&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - Content-Encoding - gzip - Content-Length - 37 - Content-Type - application/json;charset=UTF-8 - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557930970.162589 - timeoutInterval - 60 - uniqueIdentifier - 2AFFEFD7-3B0C-4983-B80C-BFFA6D4A7F79 - - - HTTPMethod - POST - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&store=0&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - Content-Encoding - gzip - Content-Length - 37 - Content-Type - application/json;charset=UTF-8 - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557930970.162753 - timeoutInterval - 60 - uniqueIdentifier - 2AFFEFD7-3B0C-4983-B80C-BFFA6D4A7F79 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&store=0&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Access-Control-Allow-Credentials - true - Access-Control-Allow-Methods - POST - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 15 May 2019 14:36:10 GMT - - class - BKRResponseFrame - creationDate - 1557930970.389275 - statusCode - 200 - uniqueIdentifier - 2AFFEFD7-3B0C-4983-B80C-BFFA6D4A7F79 - - - class - BKRDataFrame - creationDate - 1557930970.389306 - data - WzEsIlNlbnQiLCIxNTU3OTMwOTcwMzY0NTAzNCJd - uniqueIdentifier - 2AFFEFD7-3B0C-4983-B80C-BFFA6D4A7F79 - - - uniqueIdentifier - 2AFFEFD7-3B0C-4983-B80C-BFFA6D4A7F79 - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testSimplePublish.plist b/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testSimplePublish.plist deleted file mode 100644 index 8938c454c..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishTests.bundle/testSimplePublish.plist +++ /dev/null @@ -1,125 +0,0 @@ - - - - - creationDate - 2019-05-15T14:36:10Z - scenes - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%22test%22?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557930970.403654 - timeoutInterval - 60 - uniqueIdentifier - A3090B30-D939-45D8-82EE-6352DA037143 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%22test%22?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557930970.403914 - timeoutInterval - 60 - uniqueIdentifier - A3090B30-D939-45D8-82EE-6352DA037143 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/2EC925F0-B996-47A4-AF54-A605E1A9AEBA/0/%22test%22?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 15 May 2019 14:36:10 GMT - - class - BKRResponseFrame - creationDate - 1557930970.679241 - statusCode - 200 - uniqueIdentifier - A3090B30-D939-45D8-82EE-6352DA037143 - - - class - BKRDataFrame - creationDate - 1557930970.679319 - data - WzEsIlNlbnQiLCIxNTU3OTMwOTcwNjUxMDM3MSJd - uniqueIdentifier - A3090B30-D939-45D8-82EE-6352DA037143 - - - uniqueIdentifier - A3090B30-D939-45D8-82EE-6352DA037143 - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishWithHistoryTests.bundle/testPublishDictionaryWithHistory.plist b/Tests/iOS Tests/Fixtures/PNPublishWithHistoryTests.bundle/testPublishDictionaryWithHistory.plist deleted file mode 100644 index e0b864c74..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishWithHistoryTests.bundle/testPublishDictionaryWithHistory.plist +++ /dev/null @@ -1,125 +0,0 @@ - - - - - creationDate - 2019-05-15T16:49:57Z - scenes - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/9BA810C6-985D-4797-926F-CC81749CC774/0/%7B%22test%22%3A%22test%22%7D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557938997.168466 - timeoutInterval - 60 - uniqueIdentifier - 93B1B87C-CAAD-45BE-A6B6-289CF8F32D35 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/9BA810C6-985D-4797-926F-CC81749CC774/0/%7B%22test%22%3A%22test%22%7D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557938997.169236 - timeoutInterval - 60 - uniqueIdentifier - 93B1B87C-CAAD-45BE-A6B6-289CF8F32D35 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/9BA810C6-985D-4797-926F-CC81749CC774/0/%7B%22test%22%3A%22test%22%7D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 15 May 2019 16:49:57 GMT - - class - BKRResponseFrame - creationDate - 1557938997.455231 - statusCode - 200 - uniqueIdentifier - 93B1B87C-CAAD-45BE-A6B6-289CF8F32D35 - - - class - BKRDataFrame - creationDate - 1557938997.455434 - data - WzEsIlNlbnQiLCIxNTU3OTM4OTk3NDIyODI2MCJd - uniqueIdentifier - 93B1B87C-CAAD-45BE-A6B6-289CF8F32D35 - - - uniqueIdentifier - 93B1B87C-CAAD-45BE-A6B6-289CF8F32D35 - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishWithHistoryTests.bundle/testPublishDictionaryWithoutHistory.plist b/Tests/iOS Tests/Fixtures/PNPublishWithHistoryTests.bundle/testPublishDictionaryWithoutHistory.plist deleted file mode 100644 index a05c8bdd6..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishWithHistoryTests.bundle/testPublishDictionaryWithoutHistory.plist +++ /dev/null @@ -1,125 +0,0 @@ - - - - - creationDate - 2019-05-15T16:49:57Z - scenes - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/9BA810C6-985D-4797-926F-CC81749CC774/0/%7B%22test%22%3A%22test%22%7D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&store=0&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557938997.478765 - timeoutInterval - 60 - uniqueIdentifier - 72C1C459-1709-4068-B871-2C05D91C19AE - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/9BA810C6-985D-4797-926F-CC81749CC774/0/%7B%22test%22%3A%22test%22%7D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&store=0&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557938997.479149 - timeoutInterval - 60 - uniqueIdentifier - 72C1C459-1709-4068-B871-2C05D91C19AE - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/9BA810C6-985D-4797-926F-CC81749CC774/0/%7B%22test%22%3A%22test%22%7D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&store=0&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 15 May 2019 16:49:57 GMT - - class - BKRResponseFrame - creationDate - 1557938997.741567 - statusCode - 200 - uniqueIdentifier - 72C1C459-1709-4068-B871-2C05D91C19AE - - - class - BKRDataFrame - creationDate - 1557938997.741644 - data - WzEsIlNlbnQiLCIxNTU3OTM4OTk3NzE2MTAxMiJd - uniqueIdentifier - 72C1C459-1709-4068-B871-2C05D91C19AE - - - uniqueIdentifier - 72C1C459-1709-4068-B871-2C05D91C19AE - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishWithHistoryTests.bundle/testPublishToNilChannelWithHistory.plist b/Tests/iOS Tests/Fixtures/PNPublishWithHistoryTests.bundle/testPublishToNilChannelWithHistory.plist deleted file mode 100644 index 0ea66f9cf..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishWithHistoryTests.bundle/testPublishToNilChannelWithHistory.plist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - creationDate - 2019-05-15T16:49:57Z - scenes - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishWithHistoryTests.bundle/testPublishToNilChannelWithoutHistory.plist b/Tests/iOS Tests/Fixtures/PNPublishWithHistoryTests.bundle/testPublishToNilChannelWithoutHistory.plist deleted file mode 100644 index 0ea66f9cf..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishWithHistoryTests.bundle/testPublishToNilChannelWithoutHistory.plist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - creationDate - 2019-05-15T16:49:57Z - scenes - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishWithHistoryTests.bundle/testPublishWithHistoryNilMessage.plist b/Tests/iOS Tests/Fixtures/PNPublishWithHistoryTests.bundle/testPublishWithHistoryNilMessage.plist deleted file mode 100644 index 0ea66f9cf..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishWithHistoryTests.bundle/testPublishWithHistoryNilMessage.plist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - creationDate - 2019-05-15T16:49:57Z - scenes - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishWithHistoryTests.bundle/testPublishWithoutHistoryNilMessage.plist b/Tests/iOS Tests/Fixtures/PNPublishWithHistoryTests.bundle/testPublishWithoutHistoryNilMessage.plist deleted file mode 100644 index 0ea66f9cf..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishWithHistoryTests.bundle/testPublishWithoutHistoryNilMessage.plist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - creationDate - 2019-05-15T16:49:57Z - scenes - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishWithHistoryTests.bundle/testSimplePublishWithHistory.plist b/Tests/iOS Tests/Fixtures/PNPublishWithHistoryTests.bundle/testSimplePublishWithHistory.plist deleted file mode 100644 index 0e4d1fb5b..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishWithHistoryTests.bundle/testSimplePublishWithHistory.plist +++ /dev/null @@ -1,125 +0,0 @@ - - - - - creationDate - 2019-05-15T16:49:57Z - scenes - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/9BA810C6-985D-4797-926F-CC81749CC774/0/%22test%22?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557938997.831374 - timeoutInterval - 60 - uniqueIdentifier - 748BC187-7309-4B21-8053-C74556D3D22A - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/9BA810C6-985D-4797-926F-CC81749CC774/0/%22test%22?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557938997.831633 - timeoutInterval - 60 - uniqueIdentifier - 748BC187-7309-4B21-8053-C74556D3D22A - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/9BA810C6-985D-4797-926F-CC81749CC774/0/%22test%22?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 15 May 2019 16:49:58 GMT - - class - BKRResponseFrame - creationDate - 1557938998.073282 - statusCode - 200 - uniqueIdentifier - 748BC187-7309-4B21-8053-C74556D3D22A - - - class - BKRDataFrame - creationDate - 1557938998.073315 - data - WzEsIlNlbnQiLCIxNTU3OTM4OTk4MDQ2ODczNyJd - uniqueIdentifier - 748BC187-7309-4B21-8053-C74556D3D22A - - - uniqueIdentifier - 748BC187-7309-4B21-8053-C74556D3D22A - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishWithHistoryTests.bundle/testSimplePublishWithoutHistory.plist b/Tests/iOS Tests/Fixtures/PNPublishWithHistoryTests.bundle/testSimplePublishWithoutHistory.plist deleted file mode 100644 index b2d915e65..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishWithHistoryTests.bundle/testSimplePublishWithoutHistory.plist +++ /dev/null @@ -1,125 +0,0 @@ - - - - - creationDate - 2019-05-15T16:49:58Z - scenes - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/9BA810C6-985D-4797-926F-CC81749CC774/0/%22test%22?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&store=0&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557938998.088682 - timeoutInterval - 60 - uniqueIdentifier - D3BF6E2E-06E9-4C47-AFE7-DD9AB206FA33 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/9BA810C6-985D-4797-926F-CC81749CC774/0/%22test%22?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&store=0&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557938998.088898 - timeoutInterval - 60 - uniqueIdentifier - D3BF6E2E-06E9-4C47-AFE7-DD9AB206FA33 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/9BA810C6-985D-4797-926F-CC81749CC774/0/%22test%22?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&store=0&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 15 May 2019 16:49:58 GMT - - class - BKRResponseFrame - creationDate - 1557938998.337569 - statusCode - 200 - uniqueIdentifier - D3BF6E2E-06E9-4C47-AFE7-DD9AB206FA33 - - - class - BKRDataFrame - creationDate - 1557938998.337601 - data - WzEsIlNlbnQiLCIxNTU3OTM4OTk4MzExOTMxNCJd - uniqueIdentifier - D3BF6E2E-06E9-4C47-AFE7-DD9AB206FA33 - - - uniqueIdentifier - D3BF6E2E-06E9-4C47-AFE7-DD9AB206FA33 - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishWithMobilePayloadTests.bundle/testPublishMobilePayloadNotStoreInHistory.plist b/Tests/iOS Tests/Fixtures/PNPublishWithMobilePayloadTests.bundle/testPublishMobilePayloadNotStoreInHistory.plist deleted file mode 100644 index 972629129..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishWithMobilePayloadTests.bundle/testPublishMobilePayloadNotStoreInHistory.plist +++ /dev/null @@ -1,176 +0,0 @@ - - - - - creationDate - 2019-05-15T16:53:52Z - scenes - - - frames - - - HTTPBody - H4sIAAAAAAAAEyWMMQrDMBAEvyK2NoaENFGVb6QKp/isCOw7IZ2KYPT3KLgaWGbnQJaX2ocLPIyrYfovlKXCH6B8YuNiQ3hqc1HNfbUVxzulrc6P8Qi0RIa/T6jaZBlmSBKDSpwprSt6P6vvnd0F/nbtPwTbwBl4AAAA - HTTPMethod - POST - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/02290046-2F36-43DD-97F0-2F51D925451A/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&store=0&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - Content-Encoding - gzip - Content-Length - 123 - Content-Type - application/json;charset=UTF-8 - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557939232.795485 - timeoutInterval - 60 - uniqueIdentifier - A41AB337-079B-4E70-893A-224BAC9E270C - - - HTTPMethod - POST - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/02290046-2F36-43DD-97F0-2F51D925451A/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&store=0&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - Content-Encoding - gzip - Content-Length - 123 - Content-Type - application/json;charset=UTF-8 - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557939232.795813 - timeoutInterval - 60 - uniqueIdentifier - A41AB337-079B-4E70-893A-224BAC9E270C - - - HTTPMethod - POST - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/02290046-2F36-43DD-97F0-2F51D925451A/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&store=0&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - Content-Encoding - gzip - Content-Length - 123 - Content-Type - application/json;charset=UTF-8 - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557939232.796093 - timeoutInterval - 60 - uniqueIdentifier - A41AB337-079B-4E70-893A-224BAC9E270C - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/02290046-2F36-43DD-97F0-2F51D925451A/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&store=0&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Access-Control-Allow-Credentials - true - Access-Control-Allow-Methods - POST - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 15 May 2019 16:53:53 GMT - - class - BKRResponseFrame - creationDate - 1557939233.184645 - statusCode - 200 - uniqueIdentifier - A41AB337-079B-4E70-893A-224BAC9E270C - - - class - BKRDataFrame - creationDate - 1557939233.184763 - data - WzEsIlNlbnQiLCIxNTU3OTM5MjMzMTYwMDE4MCJd - uniqueIdentifier - A41AB337-079B-4E70-893A-224BAC9E270C - - - uniqueIdentifier - A41AB337-079B-4E70-893A-224BAC9E270C - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishWithMobilePayloadTests.bundle/testPublishMobilePayloadNotStoreInHistoryNotCompressed.plist b/Tests/iOS Tests/Fixtures/PNPublishWithMobilePayloadTests.bundle/testPublishMobilePayloadNotStoreInHistoryNotCompressed.plist deleted file mode 100644 index 0f7cdf374..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishWithMobilePayloadTests.bundle/testPublishMobilePayloadNotStoreInHistoryNotCompressed.plist +++ /dev/null @@ -1,156 +0,0 @@ - - - - - creationDate - 2019-05-15T16:53:53Z - scenes - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/02290046-2F36-43DD-97F0-2F51D925451A/0/%7B%22pn_other%22%3A%22test%22%2C%22pn_apns%22%3A%7B%22aps%22%3A%7B%22alert%22%3A%22You%20got%20your%20emails.%40%22%2C%22badge%22%3A9%2C%22sound%22%3A%22bingbong.aiff%22%7D%7D%2C%22pn_acme%201%22%3A42%7D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&store=0&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557939233.203116 - timeoutInterval - 60 - uniqueIdentifier - BBD48A80-3D07-4C9D-BFEA-3A71A576A3EF - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/02290046-2F36-43DD-97F0-2F51D925451A/0/%7B%22pn_other%22%3A%22test%22%2C%22pn_apns%22%3A%7B%22aps%22%3A%7B%22alert%22%3A%22You%20got%20your%20emails.%40%22%2C%22badge%22%3A9%2C%22sound%22%3A%22bingbong.aiff%22%7D%7D%2C%22pn_acme%201%22%3A42%7D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&store=0&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557939233.203232 - timeoutInterval - 60 - uniqueIdentifier - BBD48A80-3D07-4C9D-BFEA-3A71A576A3EF - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/02290046-2F36-43DD-97F0-2F51D925451A/0/%7B%22pn_other%22%3A%22test%22%2C%22pn_apns%22%3A%7B%22aps%22%3A%7B%22alert%22%3A%22You%20got%20your%20emails.%40%22%2C%22badge%22%3A9%2C%22sound%22%3A%22bingbong.aiff%22%7D%7D%2C%22pn_acme%201%22%3A42%7D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&store=0&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557939233.203602 - timeoutInterval - 60 - uniqueIdentifier - BBD48A80-3D07-4C9D-BFEA-3A71A576A3EF - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/02290046-2F36-43DD-97F0-2F51D925451A/0/%7B%22pn_other%22%3A%22test%22%2C%22pn_apns%22%3A%7B%22aps%22%3A%7B%22alert%22%3A%22You%20got%20your%20emails.%40%22%2C%22badge%22%3A9%2C%22sound%22%3A%22bingbong.aiff%22%7D%7D%2C%22pn_acme%201%22%3A42%7D?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&store=0&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 15 May 2019 16:53:53 GMT - - class - BKRResponseFrame - creationDate - 1557939233.45424 - statusCode - 200 - uniqueIdentifier - BBD48A80-3D07-4C9D-BFEA-3A71A576A3EF - - - class - BKRDataFrame - creationDate - 1557939233.454341 - data - WzEsIlNlbnQiLCIxNTU3OTM5MjMzNDI4OTU5MiJd - uniqueIdentifier - BBD48A80-3D07-4C9D-BFEA-3A71A576A3EF - - - uniqueIdentifier - BBD48A80-3D07-4C9D-BFEA-3A71A576A3EF - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishWithMobilePayloadTests.bundle/testPublishMobilePayloadToNillChannnel.plist b/Tests/iOS Tests/Fixtures/PNPublishWithMobilePayloadTests.bundle/testPublishMobilePayloadToNillChannnel.plist deleted file mode 100644 index 8f8c18272..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishWithMobilePayloadTests.bundle/testPublishMobilePayloadToNillChannnel.plist +++ /dev/null @@ -1,12 +0,0 @@ - - - - - creationDate - 2019-05-15T16:53:53Z - scenes - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishWithMobilePayloadTests.bundle/testSimplePublishNilMobilePushPayload.plist b/Tests/iOS Tests/Fixtures/PNPublishWithMobilePayloadTests.bundle/testSimplePublishNilMobilePushPayload.plist deleted file mode 100644 index a9246f4fd..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishWithMobilePayloadTests.bundle/testSimplePublishNilMobilePushPayload.plist +++ /dev/null @@ -1,176 +0,0 @@ - - - - - creationDate - 2019-05-15T16:53:53Z - scenes - - - frames - - - HTTPBody - H4sIAAAAAAAAE1MqSS0uUQIAv2+IMwYAAAA= - HTTPMethod - POST - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/02290046-2F36-43DD-97F0-2F51D925451A/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - Content-Encoding - gzip - Content-Length - 26 - Content-Type - application/json;charset=UTF-8 - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557939233.480915 - timeoutInterval - 60 - uniqueIdentifier - 7FB3D1DC-8F3C-45F5-94D4-575A290BDC25 - - - HTTPMethod - POST - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/02290046-2F36-43DD-97F0-2F51D925451A/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - Content-Encoding - gzip - Content-Length - 26 - Content-Type - application/json;charset=UTF-8 - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557939233.481075 - timeoutInterval - 60 - uniqueIdentifier - 7FB3D1DC-8F3C-45F5-94D4-575A290BDC25 - - - HTTPMethod - POST - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/02290046-2F36-43DD-97F0-2F51D925451A/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - Content-Encoding - gzip - Content-Length - 26 - Content-Type - application/json;charset=UTF-8 - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557939233.481185 - timeoutInterval - 60 - uniqueIdentifier - 7FB3D1DC-8F3C-45F5-94D4-575A290BDC25 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/02290046-2F36-43DD-97F0-2F51D925451A/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Access-Control-Allow-Credentials - true - Access-Control-Allow-Methods - POST - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 15 May 2019 16:53:53 GMT - - class - BKRResponseFrame - creationDate - 1557939233.700655 - statusCode - 200 - uniqueIdentifier - 7FB3D1DC-8F3C-45F5-94D4-575A290BDC25 - - - class - BKRDataFrame - creationDate - 1557939233.700705 - data - WzEsIlNlbnQiLCIxNTU3OTM5MjMzNjc3ODkxNyJd - uniqueIdentifier - 7FB3D1DC-8F3C-45F5-94D4-575A290BDC25 - - - uniqueIdentifier - 7FB3D1DC-8F3C-45F5-94D4-575A290BDC25 - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNPublishWithMobilePayloadTests.bundle/testSimplePublishSimpleMobilePushPayload.plist b/Tests/iOS Tests/Fixtures/PNPublishWithMobilePayloadTests.bundle/testSimplePublishSimpleMobilePushPayload.plist deleted file mode 100644 index 4eb2eea29..000000000 --- a/Tests/iOS Tests/Fixtures/PNPublishWithMobilePayloadTests.bundle/testSimplePublishSimpleMobilePushPayload.plist +++ /dev/null @@ -1,176 +0,0 @@ - - - - - creationDate - 2019-05-15T16:53:53Z - scenes - - - frames - - - HTTPBody - H4sIAAAAAAAAEyWMMQrDMBAEvyK2NoaENFGVb6QKp/isCOw7IZ2KYPT3KLgaWGbnQJaX2ocLPIyrYfovlKXCH6B8YuNiQ3hqc1HNfbUVxzulrc6P8Qi0RIa/T6jaZBlmSBKDSpwprSt6P6vvnd0F/nbtPwTbwBl4AAAA - HTTPMethod - POST - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/02290046-2F36-43DD-97F0-2F51D925451A/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - Content-Encoding - gzip - Content-Length - 123 - Content-Type - application/json;charset=UTF-8 - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557939233.716129 - timeoutInterval - 60 - uniqueIdentifier - 0F88F858-DC35-4E84-A10C-E505DE5ADE05 - - - HTTPMethod - POST - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/02290046-2F36-43DD-97F0-2F51D925451A/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - Content-Encoding - gzip - Content-Length - 123 - Content-Type - application/json;charset=UTF-8 - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557939233.716279 - timeoutInterval - 60 - uniqueIdentifier - 0F88F858-DC35-4E84-A10C-E505DE5ADE05 - - - HTTPMethod - POST - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/02290046-2F36-43DD-97F0-2F51D925451A/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - Content-Encoding - gzip - Content-Length - 123 - Content-Type - application/json;charset=UTF-8 - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557939233.716429 - timeoutInterval - 60 - uniqueIdentifier - 0F88F858-DC35-4E84-A10C-E505DE5ADE05 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/rpub-c-00000000-0000-0000-0000-000000000000/rsub-c-00000000-0000-0000-0000-000000000000/0/02290046-2F36-43DD-97F0-2F51D925451A/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&seqn=1&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Access-Control-Allow-Credentials - true - Access-Control-Allow-Methods - POST - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Wed, 15 May 2019 16:53:53 GMT - - class - BKRResponseFrame - creationDate - 1557939233.953995 - statusCode - 200 - uniqueIdentifier - 0F88F858-DC35-4E84-A10C-E505DE5ADE05 - - - class - BKRDataFrame - creationDate - 1557939233.954017 - data - WzEsIlNlbnQiLCIxNTU3OTM5MjMzOTI5MjI5NiJd - uniqueIdentifier - 0F88F858-DC35-4E84-A10C-E505DE5ADE05 - - - uniqueIdentifier - 0F88F858-DC35-4E84-A10C-E505DE5ADE05 - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNSubscribeTests.bundle/testSimpleSubscribeWithNoPresence.plist b/Tests/iOS Tests/Fixtures/PNSubscribeTests.bundle/testSimpleSubscribeWithNoPresence.plist deleted file mode 100644 index 6dcba08e1..000000000 --- a/Tests/iOS Tests/Fixtures/PNSubscribeTests.bundle/testSimpleSubscribeWithNoPresence.plist +++ /dev/null @@ -1,511 +0,0 @@ - - - - - creationDate - 2016-03-18T21:30:09Z - scenes - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458336609.648231 - timeoutInterval - 60 - uniqueIdentifier - 7731ED8B-EA98-43A5-BB80-E9E1FB2FCEE0 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458336609.648707 - timeoutInterval - 60 - uniqueIdentifier - 7731ED8B-EA98-43A5-BB80-E9E1FB2FCEE0 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458336609.659029 - timeoutInterval - 60 - uniqueIdentifier - 7731ED8B-EA98-43A5-BB80-E9E1FB2FCEE0 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 44 - Content-Type - text/javascript; charset="UTF-8" - Date - Fri, 18 Mar 2016 21:30:09 GMT - - class - BKRResponseFrame - creationDate - 1458336609.912048 - statusCode - 200 - uniqueIdentifier - 7731ED8B-EA98-43A5-BB80-E9E1FB2FCEE0 - - - class - BKRDataFrame - creationDate - 1458336609.91216 - data - eyJ0Ijp7InQiOiIxNDU4MzM2NjA5MzE0MTA1OCIsInIiOjF9LCJtIjpbXX0= - uniqueIdentifier - 7731ED8B-EA98-43A5-BB80-E9E1FB2FCEE0 - - - uniqueIdentifier - 7731ED8B-EA98-43A5-BB80-E9E1FB2FCEE0 - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583366093141058&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458336609.9177 - timeoutInterval - 60 - uniqueIdentifier - E42D6B72-2129-41C5-B192-60154616DF09 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583366093141058&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458336609.91799 - timeoutInterval - 60 - uniqueIdentifier - E42D6B72-2129-41C5-B192-60154616DF09 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583366093141058&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458336609.919368 - timeoutInterval - 60 - uniqueIdentifier - E42D6B72-2129-41C5-B192-60154616DF09 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583366093141058&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 168 - Content-Type - text/javascript; charset="UTF-8" - Date - Fri, 18 Mar 2016 21:30:10 GMT - - class - BKRResponseFrame - creationDate - 1458336610.583407 - statusCode - 200 - uniqueIdentifier - E42D6B72-2129-41C5-B192-60154616DF09 - - - class - BKRDataFrame - creationDate - 1458336610.583637 - data - eyJ0Ijp7InQiOiIxNDU4MzM2NjEwNDg3NTI1MSIsInIiOjF9LCJtIjpbeyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1ODMzNjYxMDQ4NjY2MDEiLCJyIjoxfSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKi4uLi4uLi4uLi4uLi4gNDI1NSAtIDIwMTYtMDMtMTggMTQ6MzA6MTAifV19 - uniqueIdentifier - E42D6B72-2129-41C5-B192-60154616DF09 - - - uniqueIdentifier - E42D6B72-2129-41C5-B192-60154616DF09 - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo/a/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583366104875251&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458336610.585016 - timeoutInterval - 60 - uniqueIdentifier - D2CBC1A5-2B2B-4222-AE00-FE4537C372EC - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583366104875251&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458336610.585409 - timeoutInterval - 60 - uniqueIdentifier - D2CBC1A5-2B2B-4222-AE00-FE4537C372EC - - - class - BKRErrorFrame - code - -999 - creationDate - 1458336610.588944 - domain - NSURLErrorDomain - uniqueIdentifier - D2CBC1A5-2B2B-4222-AE00-FE4537C372EC - userInfo - - BKRSceneUUIDKey - D2CBC1A5-2B2B-4222-AE00-FE4537C372EC - NSErrorFailingURLKey - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583366104875251&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - NSErrorFailingURLStringKey - https://ps.pndsn.com/v2/subscribe/demo-36/a/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583366104875251&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - NSLocalizedDescription - cancelled - - - - uniqueIdentifier - D2CBC1A5-2B2B-4222-AE00-FE4537C372EC - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/a/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458336610.587651 - timeoutInterval - 60 - uniqueIdentifier - C6CA7E7F-EE51-44A9-8527-5DBA6AEF8FBA - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/a/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458336610.589206 - timeoutInterval - 60 - uniqueIdentifier - C6CA7E7F-EE51-44A9-8527-5DBA6AEF8FBA - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/a/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - OPTIONS, GET, POST - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 74 - Content-Type - text/javascript; charset="UTF-8" - Date - Fri, 18 Mar 2016 21:30:11 GMT - Server - Pubnub Presence - - class - BKRResponseFrame - creationDate - 1458336611.097122 - statusCode - 200 - uniqueIdentifier - C6CA7E7F-EE51-44A9-8527-5DBA6AEF8FBA - - - class - BKRDataFrame - creationDate - 1458336611.09718 - data - eyJzdGF0dXMiOiAyMDAsICJhY3Rpb24iOiAibGVhdmUiLCAibWVzc2FnZSI6ICJPSyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - uniqueIdentifier - C6CA7E7F-EE51-44A9-8527-5DBA6AEF8FBA - - - uniqueIdentifier - C6CA7E7F-EE51-44A9-8527-5DBA6AEF8FBA - - - version - 1.0 - - diff --git a/Tests/iOS Tests/Fixtures/PNSubscribeTests.bundle/testSimpleSubscribeWithPresence.plist b/Tests/iOS Tests/Fixtures/PNSubscribeTests.bundle/testSimpleSubscribeWithPresence.plist deleted file mode 100644 index a809939a0..000000000 --- a/Tests/iOS Tests/Fixtures/PNSubscribeTests.bundle/testSimpleSubscribeWithPresence.plist +++ /dev/null @@ -1,542 +0,0 @@ - - - - - creationDate - 2016-03-18T21:00:39Z - scenes - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a,a-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334839.672035 - timeoutInterval - 60 - uniqueIdentifier - 40E745B4-A3F6-4BE9-9653-2D9A340DBC67 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a,a-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334839.672069 - timeoutInterval - 60 - uniqueIdentifier - 40E745B4-A3F6-4BE9-9653-2D9A340DBC67 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a,a-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334839.672275 - timeoutInterval - 60 - uniqueIdentifier - 40E745B4-A3F6-4BE9-9653-2D9A340DBC67 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a,a-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 44 - Content-Type - text/javascript; charset="UTF-8" - Date - Fri, 18 Mar 2016 21:00:39 GMT - - class - BKRResponseFrame - creationDate - 1458334839.860927 - statusCode - 200 - uniqueIdentifier - 40E745B4-A3F6-4BE9-9653-2D9A340DBC67 - - - class - BKRDataFrame - creationDate - 1458334839.860951 - data - eyJ0Ijp7InQiOiIxNDU4MzM0ODM5NzE2ODAzMyIsInIiOjF9LCJtIjpbXX0= - uniqueIdentifier - 40E745B4-A3F6-4BE9-9653-2D9A340DBC67 - - - uniqueIdentifier - 40E745B4-A3F6-4BE9-9653-2D9A340DBC67 - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a,a-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348397168033&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334839.861636 - timeoutInterval - 60 - uniqueIdentifier - 9EFB8FE5-7C20-4A3C-A213-D740F2EDB258 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a,a-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348397168033&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334839.861663 - timeoutInterval - 60 - uniqueIdentifier - 9EFB8FE5-7C20-4A3C-A213-D740F2EDB258 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a,a-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348397168033&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334839.861786 - timeoutInterval - 60 - uniqueIdentifier - 9EFB8FE5-7C20-4A3C-A213-D740F2EDB258 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a,a-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348397168033&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 176 - Content-Type - text/javascript; charset="UTF-8" - Date - Fri, 18 Mar 2016 21:00:40 GMT - - class - BKRResponseFrame - creationDate - 1458334840.330092 - statusCode - 200 - uniqueIdentifier - 9EFB8FE5-7C20-4A3C-A213-D740F2EDB258 - - - class - BKRDataFrame - creationDate - 1458334840.330122 - data - eyJ0Ijp7InQiOiIxNDU4MzM0ODQwMjg1NDM3MSIsInIiOjF9LCJtIjpbeyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1ODMzNDg0MDI4NTEwMTEiLCJyIjoxfSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqLi4uLi4uLi4uLi4gMjc1NyAtIDIwMTYtMDMtMTggMTQ6MDA6NDAiLCJiIjoiYSJ9XX0= - uniqueIdentifier - 9EFB8FE5-7C20-4A3C-A213-D740F2EDB258 - - - uniqueIdentifier - 9EFB8FE5-7C20-4A3C-A213-D740F2EDB258 - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a,a-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348402854371&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334840.33115 - timeoutInterval - 60 - uniqueIdentifier - E34064ED-7BFA-4064-BA15-B65EC3EFAED2 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo/a,a-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348402854371&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334840.331183 - timeoutInterval - 60 - uniqueIdentifier - E34064ED-7BFA-4064-BA15-B65EC3EFAED2 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a,a-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348402854371&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334840.331325 - timeoutInterval - 60 - uniqueIdentifier - E34064ED-7BFA-4064-BA15-B65EC3EFAED2 - - - class - BKRErrorFrame - code - -999 - creationDate - 1458334840.332375 - domain - NSURLErrorDomain - uniqueIdentifier - E34064ED-7BFA-4064-BA15-B65EC3EFAED2 - userInfo - - BKRSceneUUIDKey - E34064ED-7BFA-4064-BA15-B65EC3EFAED2 - NSErrorFailingURLKey - https://ps.pndsn.com/v2/subscribe/demo-36/a,a-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348402854371&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - NSErrorFailingURLStringKey - https://ps.pndsn.com/v2/subscribe/demo-36/a,a-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348402854371&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - NSLocalizedDescription - cancelled - - - - uniqueIdentifier - E34064ED-7BFA-4064-BA15-B65EC3EFAED2 - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/a/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334840.572098 - timeoutInterval - 60 - uniqueIdentifier - F044A40C-2849-4071-9B46-B867393B0C3E - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/a/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334840.572266 - timeoutInterval - 60 - uniqueIdentifier - F044A40C-2849-4071-9B46-B867393B0C3E - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/a/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - OPTIONS, GET, POST - Access-Control-Allow-Origin - * - Age - 1 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 74 - Content-Type - text/javascript; charset="UTF-8" - Date - Fri, 18 Mar 2016 21:00:40 GMT - Server - Pubnub Presence - - class - BKRResponseFrame - creationDate - 1458334840.656861 - statusCode - 200 - uniqueIdentifier - F044A40C-2849-4071-9B46-B867393B0C3E - - - class - BKRDataFrame - creationDate - 1458334840.656892 - data - eyJzdGF0dXMiOiAyMDAsICJhY3Rpb24iOiAibGVhdmUiLCAibWVzc2FnZSI6ICJPSyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - uniqueIdentifier - F044A40C-2849-4071-9B46-B867393B0C3E - - - uniqueIdentifier - F044A40C-2849-4071-9B46-B867393B0C3E - - - version - 1.0 - - diff --git a/Tests/iOS Tests/Fixtures/PNSubscribeTests.bundle/testSimpleSubscribeWithTimeToken.plist b/Tests/iOS Tests/Fixtures/PNSubscribeTests.bundle/testSimpleSubscribeWithTimeToken.plist deleted file mode 100644 index 610a872b4..000000000 --- a/Tests/iOS Tests/Fixtures/PNSubscribeTests.bundle/testSimpleSubscribeWithTimeToken.plist +++ /dev/null @@ -1,1961 +0,0 @@ - - - - - creationDate - 2016-03-18T21:00:40Z - scenes - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334840.664103 - timeoutInterval - 60 - uniqueIdentifier - 80DEA135-A84C-4CE7-B919-4D638B2923E3 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334840.664133 - timeoutInterval - 60 - uniqueIdentifier - 80DEA135-A84C-4CE7-B919-4D638B2923E3 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334840.664242 - timeoutInterval - 60 - uniqueIdentifier - 80DEA135-A84C-4CE7-B919-4D638B2923E3 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 44 - Content-Type - text/javascript; charset="UTF-8" - Date - Fri, 18 Mar 2016 21:00:40 GMT - - class - BKRResponseFrame - creationDate - 1458334840.803985 - statusCode - 200 - uniqueIdentifier - 80DEA135-A84C-4CE7-B919-4D638B2923E3 - - - class - BKRDataFrame - creationDate - 1458334840.804028 - data - eyJ0Ijp7InQiOiIxNDU4MzM0ODQwNjYwMzYwNCIsInIiOjF9LCJtIjpbXX0= - uniqueIdentifier - 80DEA135-A84C-4CE7-B919-4D638B2923E3 - - - uniqueIdentifier - 80DEA135-A84C-4CE7-B919-4D638B2923E3 - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348406603604&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334840.804555 - timeoutInterval - 60 - uniqueIdentifier - DEF92DCE-BBAB-4542-9A84-F8FD51C2BCCC - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348406603604&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334840.804725 - timeoutInterval - 60 - uniqueIdentifier - DEF92DCE-BBAB-4542-9A84-F8FD51C2BCCC - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348406603604&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 225 - Content-Type - text/javascript; charset="UTF-8" - Date - Fri, 18 Mar 2016 21:00:40 GMT - - class - BKRResponseFrame - creationDate - 1458334840.931068 - statusCode - 200 - uniqueIdentifier - DEF92DCE-BBAB-4542-9A84-F8FD51C2BCCC - - - class - BKRDataFrame - creationDate - 1458334840.931122 - data - eyJ0Ijp7InQiOiIxNDU4MzM0ODQwODg2NDU4NyIsInIiOjF9LCJtIjpbeyJhIjoiNCIsImYiOjUxMiwiaSI6IjMyMkE3MEIzLUYwRUEtNDhDRC05QkIwLUQzRjBGNURFOTk2QyIsInAiOnsidCI6IjE0NTgzMzQ4NDA4ODU2NjcxIiwiciI6MX0sImsiOiJkZW1vLTM2IiwiYyI6IjMyMkE3MEIzLUYwRUEtNDhDRC05QkIwLUQzRjBGNURFOTk2QyIsImQiOiJUaW1lIHRva2VuIG1lc3NhZ2UgIzEifV19 - uniqueIdentifier - DEF92DCE-BBAB-4542-9A84-F8FD51C2BCCC - - - uniqueIdentifier - DEF92DCE-BBAB-4542-9A84-F8FD51C2BCCC - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0/%22Time%20token%20message%20%231%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334840.810866 - timeoutInterval - 60 - uniqueIdentifier - C61C344D-551D-4CD9-8D08-95259F6A747E - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0/%22Time%20token%20message%20%231%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334840.810903 - timeoutInterval - 60 - uniqueIdentifier - C61C344D-551D-4CD9-8D08-95259F6A747E - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0/%22Time%20token%20message%20%231%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334840.811014 - timeoutInterval - 60 - uniqueIdentifier - C61C344D-551D-4CD9-8D08-95259F6A747E - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0/%22Time%20token%20message%20%231%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Fri, 18 Mar 2016 21:00:40 GMT - - class - BKRResponseFrame - creationDate - 1458334840.929585 - statusCode - 200 - uniqueIdentifier - C61C344D-551D-4CD9-8D08-95259F6A747E - - - class - BKRDataFrame - creationDate - 1458334840.929634 - data - WzEsIlNlbnQiLCIxNDU4MzM0ODQwODg1NjY3MSJd - uniqueIdentifier - C61C344D-551D-4CD9-8D08-95259F6A747E - - - uniqueIdentifier - C61C344D-551D-4CD9-8D08-95259F6A747E - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0/%22Time%20token%20message%20%232%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334840.930421 - timeoutInterval - 60 - uniqueIdentifier - 22238FB7-6DBE-404F-83AC-2770AE487206 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0/%22Time%20token%20message%20%232%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334840.930463 - timeoutInterval - 60 - uniqueIdentifier - 22238FB7-6DBE-404F-83AC-2770AE487206 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0/%22Time%20token%20message%20%232%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334840.930561 - timeoutInterval - 60 - uniqueIdentifier - 22238FB7-6DBE-404F-83AC-2770AE487206 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0/%22Time%20token%20message%20%232%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Fri, 18 Mar 2016 21:00:40 GMT - - class - BKRResponseFrame - creationDate - 1458334840.966158 - statusCode - 200 - uniqueIdentifier - 22238FB7-6DBE-404F-83AC-2770AE487206 - - - class - BKRDataFrame - creationDate - 1458334840.966253 - data - WzEsIlNlbnQiLCIxNDU4MzM0ODQwOTIxNjQwNyJd - uniqueIdentifier - 22238FB7-6DBE-404F-83AC-2770AE487206 - - - uniqueIdentifier - 22238FB7-6DBE-404F-83AC-2770AE487206 - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348408864587&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334841.120867 - timeoutInterval - 60 - uniqueIdentifier - 828B1B11-960A-4822-BFF3-EDD0EABB006D - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348408864587&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334841.121016 - timeoutInterval - 60 - uniqueIdentifier - 828B1B11-960A-4822-BFF3-EDD0EABB006D - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348408864587&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 225 - Content-Type - text/javascript; charset="UTF-8" - Date - Fri, 18 Mar 2016 21:00:41 GMT - - class - BKRResponseFrame - creationDate - 1458334841.15982 - statusCode - 200 - uniqueIdentifier - 828B1B11-960A-4822-BFF3-EDD0EABB006D - - - class - BKRDataFrame - creationDate - 1458334841.15987 - data - eyJ0Ijp7InQiOiIxNDU4MzM0ODQwOTIyNTcxNiIsInIiOjF9LCJtIjpbeyJhIjoiNCIsImYiOjUxMiwiaSI6IjMyMkE3MEIzLUYwRUEtNDhDRC05QkIwLUQzRjBGNURFOTk2QyIsInAiOnsidCI6IjE0NTgzMzQ4NDA5MjE2NDA3IiwiciI6MX0sImsiOiJkZW1vLTM2IiwiYyI6IjMyMkE3MEIzLUYwRUEtNDhDRC05QkIwLUQzRjBGNURFOTk2QyIsImQiOiJUaW1lIHRva2VuIG1lc3NhZ2UgIzIifV19 - uniqueIdentifier - 828B1B11-960A-4822-BFF3-EDD0EABB006D - - - uniqueIdentifier - 828B1B11-960A-4822-BFF3-EDD0EABB006D - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0/%22Time%20token%20message%20%233%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334841.121836 - timeoutInterval - 60 - uniqueIdentifier - ED78C1BB-7FDC-4734-85EF-1CDA97DB042F - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0/%22Time%20token%20message%20%233%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334841.121963 - timeoutInterval - 60 - uniqueIdentifier - ED78C1BB-7FDC-4734-85EF-1CDA97DB042F - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0/%22Time%20token%20message%20%233%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Fri, 18 Mar 2016 21:00:41 GMT - - class - BKRResponseFrame - creationDate - 1458334841.161346 - statusCode - 200 - uniqueIdentifier - ED78C1BB-7FDC-4734-85EF-1CDA97DB042F - - - class - BKRDataFrame - creationDate - 1458334841.161368 - data - WzEsIlNlbnQiLCIxNDU4MzM0ODQxMTE2NjM0MyJd - uniqueIdentifier - ED78C1BB-7FDC-4734-85EF-1CDA97DB042F - - - uniqueIdentifier - ED78C1BB-7FDC-4734-85EF-1CDA97DB042F - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348409225716&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334841.324056 - timeoutInterval - 60 - uniqueIdentifier - 25324035-2D1E-4375-8016-32BDEC565DD5 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348409225716&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334841.324103 - timeoutInterval - 60 - uniqueIdentifier - 25324035-2D1E-4375-8016-32BDEC565DD5 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348409225716&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334841.324254 - timeoutInterval - 60 - uniqueIdentifier - 25324035-2D1E-4375-8016-32BDEC565DD5 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348409225716&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 225 - Content-Type - text/javascript; charset="UTF-8" - Date - Fri, 18 Mar 2016 21:00:41 GMT - - class - BKRResponseFrame - creationDate - 1458334841.353498 - statusCode - 200 - uniqueIdentifier - 25324035-2D1E-4375-8016-32BDEC565DD5 - - - class - BKRDataFrame - creationDate - 1458334841.353529 - data - eyJ0Ijp7InQiOiIxNDU4MzM0ODQxMTE3NTg3MyIsInIiOjF9LCJtIjpbeyJhIjoiNCIsImYiOjUxMiwiaSI6IjMyMkE3MEIzLUYwRUEtNDhDRC05QkIwLUQzRjBGNURFOTk2QyIsInAiOnsidCI6IjE0NTgzMzQ4NDExMTY2MzQzIiwiciI6MX0sImsiOiJkZW1vLTM2IiwiYyI6IjMyMkE3MEIzLUYwRUEtNDhDRC05QkIwLUQzRjBGNURFOTk2QyIsImQiOiJUaW1lIHRva2VuIG1lc3NhZ2UgIzMifV19 - uniqueIdentifier - 25324035-2D1E-4375-8016-32BDEC565DD5 - - - uniqueIdentifier - 25324035-2D1E-4375-8016-32BDEC565DD5 - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0/%22Time%20token%20message%20%234%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334841.331756 - timeoutInterval - 60 - uniqueIdentifier - 159ABC9F-02B1-4066-A02B-E4FAC8412D3C - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0/%22Time%20token%20message%20%234%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334841.331796 - timeoutInterval - 60 - uniqueIdentifier - 159ABC9F-02B1-4066-A02B-E4FAC8412D3C - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0/%22Time%20token%20message%20%234%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334841.331925 - timeoutInterval - 60 - uniqueIdentifier - 159ABC9F-02B1-4066-A02B-E4FAC8412D3C - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0/%22Time%20token%20message%20%234%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Fri, 18 Mar 2016 21:00:41 GMT - - class - BKRResponseFrame - creationDate - 1458334841.375022 - statusCode - 200 - uniqueIdentifier - 159ABC9F-02B1-4066-A02B-E4FAC8412D3C - - - class - BKRDataFrame - creationDate - 1458334841.375063 - data - WzEsIlNlbnQiLCIxNDU4MzM0ODQxMzI5ODI4NyJd - uniqueIdentifier - 159ABC9F-02B1-4066-A02B-E4FAC8412D3C - - - uniqueIdentifier - 159ABC9F-02B1-4066-A02B-E4FAC8412D3C - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348411175873&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334841.354187 - timeoutInterval - 60 - uniqueIdentifier - C3D5398D-5CC2-4B00-8AF7-F583AAE837E3 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348411175873&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334841.354349 - timeoutInterval - 60 - uniqueIdentifier - C3D5398D-5CC2-4B00-8AF7-F583AAE837E3 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348411175873&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 225 - Content-Type - text/javascript; charset="UTF-8" - Date - Fri, 18 Mar 2016 21:00:41 GMT - - class - BKRResponseFrame - creationDate - 1458334841.396254 - statusCode - 200 - uniqueIdentifier - C3D5398D-5CC2-4B00-8AF7-F583AAE837E3 - - - class - BKRDataFrame - creationDate - 1458334841.396349 - data - eyJ0Ijp7InQiOiIxNDU4MzM0ODQxMzMwNjY3MiIsInIiOjF9LCJtIjpbeyJhIjoiNCIsImYiOjUxMiwiaSI6IjMyMkE3MEIzLUYwRUEtNDhDRC05QkIwLUQzRjBGNURFOTk2QyIsInAiOnsidCI6IjE0NTgzMzQ4NDEzMjk4Mjg3IiwiciI6MX0sImsiOiJkZW1vLTM2IiwiYyI6IjMyMkE3MEIzLUYwRUEtNDhDRC05QkIwLUQzRjBGNURFOTk2QyIsImQiOiJUaW1lIHRva2VuIG1lc3NhZ2UgIzQifV19 - uniqueIdentifier - C3D5398D-5CC2-4B00-8AF7-F583AAE837E3 - - - uniqueIdentifier - C3D5398D-5CC2-4B00-8AF7-F583AAE837E3 - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348413306672&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334841.538642 - timeoutInterval - 60 - uniqueIdentifier - 294E9C5F-EB59-4513-A2E1-0F2661A3894F - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348413306672&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334841.538835 - timeoutInterval - 60 - uniqueIdentifier - 294E9C5F-EB59-4513-A2E1-0F2661A3894F - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348413306672&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 225 - Content-Type - text/javascript; charset="UTF-8" - Date - Fri, 18 Mar 2016 21:00:41 GMT - - class - BKRResponseFrame - creationDate - 1458334841.593456 - statusCode - 200 - uniqueIdentifier - 294E9C5F-EB59-4513-A2E1-0F2661A3894F - - - class - BKRDataFrame - creationDate - 1458334841.593503 - data - eyJ0Ijp7InQiOiIxNDU4MzM0ODQxNTQwMDE3MiIsInIiOjF9LCJtIjpbeyJhIjoiNCIsImYiOjUxMiwiaSI6IjMyMkE3MEIzLUYwRUEtNDhDRC05QkIwLUQzRjBGNURFOTk2QyIsInAiOnsidCI6IjE0NTgzMzQ4NDE1Mzk5NzU3IiwiciI6MX0sImsiOiJkZW1vLTM2IiwiYyI6IjMyMkE3MEIzLUYwRUEtNDhDRC05QkIwLUQzRjBGNURFOTk2QyIsImQiOiJUaW1lIHRva2VuIG1lc3NhZ2UgIzUifV19 - uniqueIdentifier - 294E9C5F-EB59-4513-A2E1-0F2661A3894F - - - uniqueIdentifier - 294E9C5F-EB59-4513-A2E1-0F2661A3894F - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0/%22Time%20token%20message%20%235%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334841.538793 - timeoutInterval - 60 - uniqueIdentifier - 73210576-7FC8-4F94-B9DC-2D1579159C4F - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0/%22Time%20token%20message%20%235%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334841.538972 - timeoutInterval - 60 - uniqueIdentifier - 73210576-7FC8-4F94-B9DC-2D1579159C4F - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/publish/demo-36/demo-36/0/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0/%22Time%20token%20message%20%235%22?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 30 - Content-Type - text/javascript; charset="UTF-8" - Date - Fri, 18 Mar 2016 21:00:41 GMT - - class - BKRResponseFrame - creationDate - 1458334841.587342 - statusCode - 200 - uniqueIdentifier - 73210576-7FC8-4F94-B9DC-2D1579159C4F - - - class - BKRDataFrame - creationDate - 1458334841.587406 - data - WzEsIlNlbnQiLCIxNDU4MzM0ODQxNTM5OTc1NyJd - uniqueIdentifier - 73210576-7FC8-4F94-B9DC-2D1579159C4F - - - uniqueIdentifier - 73210576-7FC8-4F94-B9DC-2D1579159C4F - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348415400172&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334841.594696 - timeoutInterval - 60 - uniqueIdentifier - 6BF44719-93AA-482F-9A1D-4A404613EADA - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348415400172&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334841.594999 - timeoutInterval - 60 - uniqueIdentifier - 6BF44719-93AA-482F-9A1D-4A404613EADA - - - class - BKRErrorFrame - code - -999 - creationDate - 1458334841.595308 - domain - NSURLErrorDomain - uniqueIdentifier - 6BF44719-93AA-482F-9A1D-4A404613EADA - userInfo - - BKRSceneUUIDKey - 6BF44719-93AA-482F-9A1D-4A404613EADA - NSErrorFailingURLKey - https://ps.pndsn.com/v2/subscribe/demo/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348415400172&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - NSErrorFailingURLStringKey - https://ps.pndsn.com/v2/subscribe/demo-36/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348415400172&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - NSLocalizedDescription - cancelled - - - - uniqueIdentifier - 6BF44719-93AA-482F-9A1D-4A404613EADA - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334841.595562 - timeoutInterval - 60 - uniqueIdentifier - EE4DA946-0D74-46D3-911C-0CF7D195DE0D - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334841.595733 - timeoutInterval - 60 - uniqueIdentifier - EE4DA946-0D74-46D3-911C-0CF7D195DE0D - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 44 - Content-Type - text/javascript; charset="UTF-8" - Date - Fri, 18 Mar 2016 21:00:41 GMT - - class - BKRResponseFrame - creationDate - 1458334841.741802 - statusCode - 200 - uniqueIdentifier - EE4DA946-0D74-46D3-911C-0CF7D195DE0D - - - class - BKRDataFrame - creationDate - 1458334841.741848 - data - eyJ0Ijp7InQiOiIxNDU4MzM0ODQxNTQwMDE3MiIsInIiOjF9LCJtIjpbXX0= - uniqueIdentifier - EE4DA946-0D74-46D3-911C-0CF7D195DE0D - - - uniqueIdentifier - EE4DA946-0D74-46D3-911C-0CF7D195DE0D - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348413298287&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334841.742418 - timeoutInterval - 60 - uniqueIdentifier - E42FEF8D-811E-4F73-9036-E6CEAEE5AC9D - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348413298287&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334841.742628 - timeoutInterval - 60 - uniqueIdentifier - E42FEF8D-811E-4F73-9036-E6CEAEE5AC9D - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348413298287&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 407 - Content-Type - text/javascript; charset="UTF-8" - Date - Fri, 18 Mar 2016 21:00:41 GMT - - class - BKRResponseFrame - creationDate - 1458334841.7834 - statusCode - 200 - uniqueIdentifier - E42FEF8D-811E-4F73-9036-E6CEAEE5AC9D - - - class - BKRDataFrame - creationDate - 1458334841.783432 - data - eyJ0Ijp7InQiOiIxNDU4MzM0ODQxNTQwMDE3MiIsInIiOjF9LCJtIjpbeyJhIjoiNCIsImYiOjUxMiwiaSI6IjMyMkE3MEIzLUYwRUEtNDhDRC05QkIwLUQzRjBGNURFOTk2QyIsInAiOnsidCI6IjE0NTgzMzQ4NDEzMjk4Mjg3IiwiciI6MX0sImsiOiJkZW1vLTM2IiwiYyI6IjMyMkE3MEIzLUYwRUEtNDhDRC05QkIwLUQzRjBGNURFOTk2QyIsImQiOiJUaW1lIHRva2VuIG1lc3NhZ2UgIzQifSx7ImEiOiI0IiwiZiI6NTEyLCJpIjoiMzIyQTcwQjMtRjBFQS00OENELTlCQjAtRDNGMEY1REU5OTZDIiwicCI6eyJ0IjoiMTQ1ODMzNDg0MTUzOTk3NTciLCJyIjoxfSwiayI6ImRlbW8tMzYiLCJjIjoiMzIyQTcwQjMtRjBFQS00OENELTlCQjAtRDNGMEY1REU5OTZDIiwiZCI6IlRpbWUgdG9rZW4gbWVzc2FnZSAjNSJ9XX0= - uniqueIdentifier - E42FEF8D-811E-4F73-9036-E6CEAEE5AC9D - - - uniqueIdentifier - E42FEF8D-811E-4F73-9036-E6CEAEE5AC9D - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348415400172&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334841.784273 - timeoutInterval - 60 - uniqueIdentifier - 27FD2EC4-BF2D-475E-9C22-1A8CF0C7F8A6 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348415400172&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334841.784304 - timeoutInterval - 60 - uniqueIdentifier - 27FD2EC4-BF2D-475E-9C22-1A8CF0C7F8A6 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348415400172&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334841.784455 - timeoutInterval - 60 - uniqueIdentifier - 27FD2EC4-BF2D-475E-9C22-1A8CF0C7F8A6 - - - class - BKRErrorFrame - code - -999 - creationDate - 1458334841.785045 - domain - NSURLErrorDomain - uniqueIdentifier - 27FD2EC4-BF2D-475E-9C22-1A8CF0C7F8A6 - userInfo - - BKRSceneUUIDKey - 27FD2EC4-BF2D-475E-9C22-1A8CF0C7F8A6 - NSErrorFailingURLKey - https://ps.pndsn.com/v2/subscribe/demo-36/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348415400172&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - NSErrorFailingURLStringKey - https://ps.pndsn.com/v2/subscribe/demo-36/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348415400172&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - NSLocalizedDescription - cancelled - - - - uniqueIdentifier - 27FD2EC4-BF2D-475E-9C22-1A8CF0C7F8A6 - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334841.785391 - timeoutInterval - 60 - uniqueIdentifier - 49465E88-BEC4-4DCA-BBFE-60AE294B17F3 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334841.785553 - timeoutInterval - 60 - uniqueIdentifier - 49465E88-BEC4-4DCA-BBFE-60AE294B17F3 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - OPTIONS, GET, POST - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 74 - Content-Type - text/javascript; charset="UTF-8" - Date - Fri, 18 Mar 2016 21:00:42 GMT - Server - Pubnub Presence - - class - BKRResponseFrame - creationDate - 1458334842.194833 - statusCode - 200 - uniqueIdentifier - 49465E88-BEC4-4DCA-BBFE-60AE294B17F3 - - - class - BKRDataFrame - creationDate - 1458334842.19493 - data - eyJzdGF0dXMiOiAyMDAsICJhY3Rpb24iOiAibGVhdmUiLCAibWVzc2FnZSI6ICJPSyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - uniqueIdentifier - 49465E88-BEC4-4DCA-BBFE-60AE294B17F3 - - - uniqueIdentifier - 49465E88-BEC4-4DCA-BBFE-60AE294B17F3 - - - version - 1.0 - - diff --git a/Tests/iOS Tests/Fixtures/PNSubscribeTests.bundle/testTimeTokenResetBetweenSubscriptionsWithUnsubscribe.plist b/Tests/iOS Tests/Fixtures/PNSubscribeTests.bundle/testTimeTokenResetBetweenSubscriptionsWithUnsubscribe.plist deleted file mode 100644 index 2e43b8c30..000000000 --- a/Tests/iOS Tests/Fixtures/PNSubscribeTests.bundle/testTimeTokenResetBetweenSubscriptionsWithUnsubscribe.plist +++ /dev/null @@ -1,723 +0,0 @@ - - - - - creationDate - 2016-03-18T21:00:42Z - scenes - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334842.20466 - timeoutInterval - 60 - uniqueIdentifier - 5183746E-1199-4CD2-871B-7CA869D192D2 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334842.204822 - timeoutInterval - 60 - uniqueIdentifier - 5183746E-1199-4CD2-871B-7CA869D192D2 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 44 - Content-Type - text/javascript; charset="UTF-8" - Date - Fri, 18 Mar 2016 21:00:42 GMT - - class - BKRResponseFrame - creationDate - 1458334842.333367 - statusCode - 200 - uniqueIdentifier - 5183746E-1199-4CD2-871B-7CA869D192D2 - - - class - BKRDataFrame - creationDate - 1458334842.333409 - data - eyJ0Ijp7InQiOiIxNDU4MzM0ODQyMTg4NDQ3NyIsInIiOjF9LCJtIjpbXX0= - uniqueIdentifier - 5183746E-1199-4CD2-871B-7CA869D192D2 - - - uniqueIdentifier - 5183746E-1199-4CD2-871B-7CA869D192D2 - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348421884477&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334842.334566 - timeoutInterval - 60 - uniqueIdentifier - 9C242089-07F0-40AB-B797-81C73E41BE3D - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348421884477&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334842.334854 - timeoutInterval - 60 - uniqueIdentifier - 9C242089-07F0-40AB-B797-81C73E41BE3D - - - class - BKRErrorFrame - code - -999 - creationDate - 1458334842.33528 - domain - NSURLErrorDomain - uniqueIdentifier - 9C242089-07F0-40AB-B797-81C73E41BE3D - userInfo - - BKRSceneUUIDKey - 9C242089-07F0-40AB-B797-81C73E41BE3D - NSErrorFailingURLKey - https://ps.pndsn.com/v2/subscribe/demo-36/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348421884477&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - NSErrorFailingURLStringKey - https://ps.pndsn.com/v2/subscribe/demo-36/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348421884477&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - NSLocalizedDescription - cancelled - - - - uniqueIdentifier - 9C242089-07F0-40AB-B797-81C73E41BE3D - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334842.33554 - timeoutInterval - 60 - uniqueIdentifier - 6EB0969C-BCE4-4913-AD27-E9465311806B - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334842.335791 - timeoutInterval - 60 - uniqueIdentifier - 6EB0969C-BCE4-4913-AD27-E9465311806B - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - OPTIONS, GET, POST - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 74 - Content-Type - text/javascript; charset="UTF-8" - Date - Fri, 18 Mar 2016 21:00:43 GMT - Server - Pubnub Presence - - class - BKRResponseFrame - creationDate - 1458334844.075753 - statusCode - 200 - uniqueIdentifier - 6EB0969C-BCE4-4913-AD27-E9465311806B - - - class - BKRDataFrame - creationDate - 1458334844.075816 - data - eyJzdGF0dXMiOiAyMDAsICJhY3Rpb24iOiAibGVhdmUiLCAibWVzc2FnZSI6ICJPSyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - uniqueIdentifier - 6EB0969C-BCE4-4913-AD27-E9465311806B - - - uniqueIdentifier - 6EB0969C-BCE4-4913-AD27-E9465311806B - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334844.076999 - timeoutInterval - 60 - uniqueIdentifier - 6AA9E071-DAEF-46A9-85DD-CE1AFC527849 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334844.077043 - timeoutInterval - 60 - uniqueIdentifier - 6AA9E071-DAEF-46A9-85DD-CE1AFC527849 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334844.077342 - timeoutInterval - 60 - uniqueIdentifier - 6AA9E071-DAEF-46A9-85DD-CE1AFC527849 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 44 - Content-Type - text/javascript; charset="UTF-8" - Date - Fri, 18 Mar 2016 21:00:44 GMT - - class - BKRResponseFrame - creationDate - 1458334844.109967 - statusCode - 200 - uniqueIdentifier - 6AA9E071-DAEF-46A9-85DD-CE1AFC527849 - - - class - BKRDataFrame - creationDate - 1458334844.110056 - data - eyJ0Ijp7InQiOiIxNDU4MzM0ODQzOTYzMzUyMCIsInIiOjF9LCJtIjpbXX0= - uniqueIdentifier - 6AA9E071-DAEF-46A9-85DD-CE1AFC527849 - - - uniqueIdentifier - 6AA9E071-DAEF-46A9-85DD-CE1AFC527849 - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348439633520&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334844.111069 - timeoutInterval - 60 - uniqueIdentifier - C9C8B7CA-09B9-44D0-8B70-98726CFF6435 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348439633520&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334844.111114 - timeoutInterval - 60 - uniqueIdentifier - C9C8B7CA-09B9-44D0-8B70-98726CFF6435 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348439633520&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334844.1113 - timeoutInterval - 60 - uniqueIdentifier - C9C8B7CA-09B9-44D0-8B70-98726CFF6435 - - - class - BKRErrorFrame - code - -999 - creationDate - 1458334844.111994 - domain - NSURLErrorDomain - uniqueIdentifier - C9C8B7CA-09B9-44D0-8B70-98726CFF6435 - userInfo - - BKRSceneUUIDKey - C9C8B7CA-09B9-44D0-8B70-98726CFF6435 - NSErrorFailingURLKey - https://ps.pndsn.com/v2/subscribe/demo-36/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348439633520&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - NSErrorFailingURLStringKey - https://ps.pndsn.com/v2/subscribe/demo-36/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348439633520&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - NSLocalizedDescription - cancelled - - - - uniqueIdentifier - C9C8B7CA-09B9-44D0-8B70-98726CFF6435 - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334844.11241 - timeoutInterval - 60 - uniqueIdentifier - 898659C2-6FF0-4E46-8CCC-B108741786F7 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334844.112737 - timeoutInterval - 60 - uniqueIdentifier - 898659C2-6FF0-4E46-8CCC-B108741786F7 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - OPTIONS, GET, POST - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 74 - Content-Type - text/javascript; charset="UTF-8" - Date - Fri, 18 Mar 2016 21:00:44 GMT - Server - Pubnub Presence - - class - BKRResponseFrame - creationDate - 1458334844.412992 - statusCode - 200 - uniqueIdentifier - 898659C2-6FF0-4E46-8CCC-B108741786F7 - - - class - BKRDataFrame - creationDate - 1458334844.413032 - data - eyJzdGF0dXMiOiAyMDAsICJhY3Rpb24iOiAibGVhdmUiLCAibWVzc2FnZSI6ICJPSyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - uniqueIdentifier - 898659C2-6FF0-4E46-8CCC-B108741786F7 - - - uniqueIdentifier - 898659C2-6FF0-4E46-8CCC-B108741786F7 - - - version - 1.0 - - diff --git a/Tests/iOS Tests/Fixtures/PNSubscribeTests.bundle/testTimeTokenResetBetweenSubscriptionsWithUnsubscribeAll.plist b/Tests/iOS Tests/Fixtures/PNSubscribeTests.bundle/testTimeTokenResetBetweenSubscriptionsWithUnsubscribeAll.plist deleted file mode 100644 index 287c0016d..000000000 --- a/Tests/iOS Tests/Fixtures/PNSubscribeTests.bundle/testTimeTokenResetBetweenSubscriptionsWithUnsubscribeAll.plist +++ /dev/null @@ -1,723 +0,0 @@ - - - - - creationDate - 2016-03-18T21:00:44Z - scenes - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334844.421557 - timeoutInterval - 60 - uniqueIdentifier - 31D33553-8048-4DE2-B4D3-7A3FABCD5F8F - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334844.421772 - timeoutInterval - 60 - uniqueIdentifier - 31D33553-8048-4DE2-B4D3-7A3FABCD5F8F - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 44 - Content-Type - text/javascript; charset="UTF-8" - Date - Fri, 18 Mar 2016 21:00:44 GMT - - class - BKRResponseFrame - creationDate - 1458334844.600106 - statusCode - 200 - uniqueIdentifier - 31D33553-8048-4DE2-B4D3-7A3FABCD5F8F - - - class - BKRDataFrame - creationDate - 1458334844.600133 - data - eyJ0Ijp7InQiOiIxNDU4MzM0ODQ0NDU0Njc5OSIsInIiOjF9LCJtIjpbXX0= - uniqueIdentifier - 31D33553-8048-4DE2-B4D3-7A3FABCD5F8F - - - uniqueIdentifier - 31D33553-8048-4DE2-B4D3-7A3FABCD5F8F - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348444546799&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334844.600738 - timeoutInterval - 60 - uniqueIdentifier - 12D10FFC-3BAD-4FE2-AFE6-9424B8F7E1B4 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348444546799&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334844.600889 - timeoutInterval - 60 - uniqueIdentifier - 12D10FFC-3BAD-4FE2-AFE6-9424B8F7E1B4 - - - class - BKRErrorFrame - code - -999 - creationDate - 1458334844.601194 - domain - NSURLErrorDomain - uniqueIdentifier - 12D10FFC-3BAD-4FE2-AFE6-9424B8F7E1B4 - userInfo - - BKRSceneUUIDKey - 12D10FFC-3BAD-4FE2-AFE6-9424B8F7E1B4 - NSErrorFailingURLKey - https://ps.pndsn.com/v2/subscribe/demo-36/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348444546799&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - NSErrorFailingURLStringKey - https://ps.pndsn.com/v2/subscribe/demo-36/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348444546799&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - NSLocalizedDescription - cancelled - - - - uniqueIdentifier - 12D10FFC-3BAD-4FE2-AFE6-9424B8F7E1B4 - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo/channel/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334844.60139 - timeoutInterval - 60 - uniqueIdentifier - 3E21A7CE-FF21-43F4-B344-26E5C26C25A2 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334844.601516 - timeoutInterval - 60 - uniqueIdentifier - 3E21A7CE-FF21-43F4-B344-26E5C26C25A2 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - OPTIONS, GET, POST - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 74 - Content-Type - text/javascript; charset="UTF-8" - Date - Fri, 18 Mar 2016 21:00:44 GMT - Server - Pubnub Presence - - class - BKRResponseFrame - creationDate - 1458334844.694779 - statusCode - 200 - uniqueIdentifier - 3E21A7CE-FF21-43F4-B344-26E5C26C25A2 - - - class - BKRDataFrame - creationDate - 1458334844.694854 - data - eyJzdGF0dXMiOiAyMDAsICJhY3Rpb24iOiAibGVhdmUiLCAibWVzc2FnZSI6ICJPSyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - uniqueIdentifier - 3E21A7CE-FF21-43F4-B344-26E5C26C25A2 - - - uniqueIdentifier - 3E21A7CE-FF21-43F4-B344-26E5C26C25A2 - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334844.696315 - timeoutInterval - 60 - uniqueIdentifier - A7D5B641-5638-497E-8964-C77885D5800F - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334844.696514 - timeoutInterval - 60 - uniqueIdentifier - A7D5B641-5638-497E-8964-C77885D5800F - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 44 - Content-Type - text/javascript; charset="UTF-8" - Date - Fri, 18 Mar 2016 21:00:44 GMT - - class - BKRResponseFrame - creationDate - 1458334844.724128 - statusCode - 200 - uniqueIdentifier - A7D5B641-5638-497E-8964-C77885D5800F - - - class - BKRDataFrame - creationDate - 1458334844.724203 - data - eyJ0Ijp7InQiOiIxNDU4MzM0ODQ0NTgwMTI3NCIsInIiOjF9LCJtIjpbXX0= - uniqueIdentifier - A7D5B641-5638-497E-8964-C77885D5800F - - - uniqueIdentifier - A7D5B641-5638-497E-8964-C77885D5800F - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348445801274&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334844.725166 - timeoutInterval - 60 - uniqueIdentifier - FBDAF2C2-51DF-4DF5-9C8A-D6D77470A649 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348445801274&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334844.725225 - timeoutInterval - 60 - uniqueIdentifier - FBDAF2C2-51DF-4DF5-9C8A-D6D77470A649 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348445801274&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334844.725509 - timeoutInterval - 60 - uniqueIdentifier - FBDAF2C2-51DF-4DF5-9C8A-D6D77470A649 - - - class - BKRErrorFrame - code - -999 - creationDate - 1458334844.726143 - domain - NSURLErrorDomain - uniqueIdentifier - FBDAF2C2-51DF-4DF5-9C8A-D6D77470A649 - userInfo - - BKRSceneUUIDKey - FBDAF2C2-51DF-4DF5-9C8A-D6D77470A649 - NSErrorFailingURLKey - https://ps.pndsn.com/v2/subscribe/demo-36/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348445801274&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - NSErrorFailingURLStringKey - https://ps.pndsn.com/v2/subscribe/demo-36/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348445801274&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - NSLocalizedDescription - cancelled - - - - uniqueIdentifier - FBDAF2C2-51DF-4DF5-9C8A-D6D77470A649 - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334844.726578 - timeoutInterval - 60 - uniqueIdentifier - 86BB6740-B36C-46DF-8A2C-4E0BF69F45C3 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334844.726638 - timeoutInterval - 60 - uniqueIdentifier - 86BB6740-B36C-46DF-8A2C-4E0BF69F45C3 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334844.726834 - timeoutInterval - 60 - uniqueIdentifier - 86BB6740-B36C-46DF-8A2C-4E0BF69F45C3 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/343D8550-B5E3-48A5-9564-3220EA50A500,5ABCEBF2-A887-491E-9D8C-52957BEDBCCA/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - OPTIONS, GET, POST - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 74 - Content-Type - text/javascript; charset="UTF-8" - Date - Fri, 18 Mar 2016 21:00:44 GMT - Server - Pubnub Presence - - class - BKRResponseFrame - creationDate - 1458334844.883293 - statusCode - 200 - uniqueIdentifier - 86BB6740-B36C-46DF-8A2C-4E0BF69F45C3 - - - class - BKRDataFrame - creationDate - 1458334844.883346 - data - eyJzdGF0dXMiOiAyMDAsICJhY3Rpb24iOiAibGVhdmUiLCAibWVzc2FnZSI6ICJPSyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - uniqueIdentifier - 86BB6740-B36C-46DF-8A2C-4E0BF69F45C3 - - - uniqueIdentifier - 86BB6740-B36C-46DF-8A2C-4E0BF69F45C3 - - - version - 1.0 - - diff --git a/Tests/iOS Tests/Fixtures/PNSubscribeToPresenceChannelsTests.bundle/testSimpleSubscribeToPresenceChannels.plist b/Tests/iOS Tests/Fixtures/PNSubscribeToPresenceChannelsTests.bundle/testSimpleSubscribeToPresenceChannels.plist deleted file mode 100755 index b0f9fa98c..000000000 --- a/Tests/iOS Tests/Fixtures/PNSubscribeToPresenceChannelsTests.bundle/testSimpleSubscribeToPresenceChannels.plist +++ /dev/null @@ -1,297 +0,0 @@ - - - - - - cancelled - - data - - data - eyJ0Ijp7InQiOiIxNDUwODE4Mjk4MTc1OTMxOSIsInIiOjU2fSwibSI6W119 - json - - m - - t - - r - 56 - t - 14508182981759319 - - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a-pnpres/0?tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a-pnpres/0?tt=0&pnsdk=PubNub-ObjC-iOS%2F4.3.3&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 45 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 21:09:24 GMT - - expectedContentLength - 45 - statusCode - 200 - suggestedFileName - 0.js - textEncodingName - "utf-8" - - - - - cancelled - - error - - code - -999 - description - The operation couldn’t be completed. (NSURLErrorDomain error -999.) - domain - NSURLErrorDomain - userInfo - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a-pnpres/0?tt=14508182981759319&pnsdk=PubNub-ObjC-iOS%2F4.3.3&tr=56&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a-pnpres/0?tt=14508182981759319&pnsdk=PubNub-ObjC-iOS%2F4.3.3&tr=56&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - - - cancelled - - data - - data - eyJzdGF0dXMiOiAyMDAsICJhY3Rpb24iOiAibGVhdmUiLCAibWVzc2FnZSI6ICJPSyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - json - - action - leave - message - OK - service - Presence - status - 200 - - - request - - currentRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/a/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - originalRequest - - HTTPMethod - GET - HTTPShouldHandleCookies - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/a/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 8.4 Version - - allowsCellularAccess - - timeoutInterval - 60 - - - response - - response - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub_key/demo/channel/a/leave?pnsdk=PubNub-ObjC-iOS%2F4.2.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 74 - Content-Type - text/javascript; charset="UTF-8" - Date - Tue, 22 Dec 2015 21:09:24 GMT - Server - Pubnub Presence - - expectedContentLength - 74 - statusCode - 200 - suggestedFileName - leave.js - textEncodingName - "utf-8" - - - - - diff --git a/Tests/iOS Tests/Fixtures/PNTimeTokenTests.bundle/testTimeToken.plist b/Tests/iOS Tests/Fixtures/PNTimeTokenTests.bundle/testTimeToken.plist deleted file mode 100644 index 79a30872d..000000000 --- a/Tests/iOS Tests/Fixtures/PNTimeTokenTests.bundle/testTimeToken.plist +++ /dev/null @@ -1,154 +0,0 @@ - - - - - creationDate - 2019-05-16T07:30:20Z - scenes - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/time/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1557991820.362325 - timeoutInterval - 60 - uniqueIdentifier - 099B28A7-5B32-4484-88E7-21F9E5A66BC6 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/time/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557991820.3625588 - timeoutInterval - 60 - uniqueIdentifier - 099B28A7-5B32-4484-88E7-21F9E5A66BC6 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/time/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 12.1.0 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1557991820.3631999 - timeoutInterval - 60 - uniqueIdentifier - 099B28A7-5B32-4484-88E7-21F9E5A66BC6 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/time/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&pnsdk=PubNub-ObjC-iOS%2F4.8.7 - allHeaderFields - - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 19 - Content-Type - text/javascript; charset="UTF-8" - Date - Thu, 16 May 2019 07:30:20 GMT - - class - BKRResponseFrame - creationDate - 1557991820.633029 - statusCode - 200 - uniqueIdentifier - 099B28A7-5B32-4484-88E7-21F9E5A66BC6 - - - class - BKRDataFrame - creationDate - 1557991820.633157 - data - - WzE1NTc5OTE4MjA2MTA2Nzg5XQ== - - uniqueIdentifier - 099B28A7-5B32-4484-88E7-21F9E5A66BC6 - - - uniqueIdentifier - 099B28A7-5B32-4484-88E7-21F9E5A66BC6 - - - version - 2.3.2 - - diff --git a/Tests/iOS Tests/Fixtures/PNUnsubscribeTests.bundle/testUnsubscribeFromAll.plist b/Tests/iOS Tests/Fixtures/PNUnsubscribeTests.bundle/testUnsubscribeFromAll.plist deleted file mode 100644 index ccb446815..000000000 --- a/Tests/iOS Tests/Fixtures/PNUnsubscribeTests.bundle/testUnsubscribeFromAll.plist +++ /dev/null @@ -1,822 +0,0 @@ - - - - - creationDate - 2016-03-18T21:00:44Z - scenes - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/unsubscribe-group-test?pnsdk=PubNub-ObjC-iOS%2F4.3.3&add=test-channel&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334844.930347 - timeoutInterval - 60 - uniqueIdentifier - 0AC61B52-7DDC-4351-A51F-0F7DAAC7A0DD - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/unsubscribe-group-test?pnsdk=PubNub-ObjC-iOS%2F4.3.3&add=test-channel&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334844.930378 - timeoutInterval - 60 - uniqueIdentifier - 0AC61B52-7DDC-4351-A51F-0F7DAAC7A0DD - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/unsubscribe-group-test?pnsdk=PubNub-ObjC-iOS%2F4.3.3&add=test-channel&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334844.9305 - timeoutInterval - 60 - uniqueIdentifier - 0AC61B52-7DDC-4351-A51F-0F7DAAC7A0DD - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v1/channel-registration/sub-key/demo-36/channel-group/unsubscribe-group-test?pnsdk=PubNub-ObjC-iOS%2F4.3.3&add=test-channel&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 79 - Content-Type - text/javascript; charset="UTF-8" - Date - Fri, 18 Mar 2016 21:00:45 GMT - Server - Pubnub - - class - BKRResponseFrame - creationDate - 1458334845.044776 - statusCode - 200 - uniqueIdentifier - 0AC61B52-7DDC-4351-A51F-0F7DAAC7A0DD - - - class - BKRDataFrame - creationDate - 1458334845.04483 - data - eyJzdGF0dXMiOiAyMDAsICJtZXNzYWdlIjogIk9LIiwgInNlcnZpY2UiOiAiY2hhbm5lbC1yZWdpc3RyeSIsICJlcnJvciI6IGZhbHNlfQ== - uniqueIdentifier - 0AC61B52-7DDC-4351-A51F-0F7DAAC7A0DD - - - uniqueIdentifier - 0AC61B52-7DDC-4351-A51F-0F7DAAC7A0DD - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/unsubscribe-channel-test,unsubscribe-channel-test-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334845.045765 - timeoutInterval - 60 - uniqueIdentifier - 151DFEBF-EEBF-450F-B20C-CDE302AF3C09 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/unsubscribe-channel-test,unsubscribe-channel-test-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334845.045787 - timeoutInterval - 60 - uniqueIdentifier - 151DFEBF-EEBF-450F-B20C-CDE302AF3C09 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/unsubscribe-channel-test,unsubscribe-channel-test-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334845.045912 - timeoutInterval - 60 - uniqueIdentifier - 151DFEBF-EEBF-450F-B20C-CDE302AF3C09 - - - class - BKRErrorFrame - code - -999 - creationDate - 1458334845.046106 - domain - NSURLErrorDomain - uniqueIdentifier - 151DFEBF-EEBF-450F-B20C-CDE302AF3C09 - userInfo - - BKRSceneUUIDKey - 151DFEBF-EEBF-450F-B20C-CDE302AF3C09 - NSErrorFailingURLKey - https://ps.pndsn.com/v2/subscribe/demo-36/unsubscribe-channel-test,unsubscribe-channel-test-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - NSErrorFailingURLStringKey - https://ps.pndsn.com/v2/subscribe/demo-36/unsubscribe-channel-test,unsubscribe-channel-test-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - NSLocalizedDescription - cancelled - - - - uniqueIdentifier - 151DFEBF-EEBF-450F-B20C-CDE302AF3C09 - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/unsubscribe-channel-test,unsubscribe-channel-test-pnpres/0?channel-group=unsubscribe-group-test,unsubscribe-group-test-pnpres&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334845.046285 - timeoutInterval - 60 - uniqueIdentifier - AF90A1A6-44AF-4B0D-9331-46AA704041FE - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/unsubscribe-channel-test,unsubscribe-channel-test-pnpres/0?channel-group=unsubscribe-group-test,unsubscribe-group-test-pnpres&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334845.046309 - timeoutInterval - 60 - uniqueIdentifier - AF90A1A6-44AF-4B0D-9331-46AA704041FE - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/unsubscribe-channel-test,unsubscribe-channel-test-pnpres/0?channel-group=unsubscribe-group-test,unsubscribe-group-test-pnpres&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334845.046425 - timeoutInterval - 60 - uniqueIdentifier - AF90A1A6-44AF-4B0D-9331-46AA704041FE - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/unsubscribe-channel-test,unsubscribe-channel-test-pnpres/0?channel-group=unsubscribe-group-test,unsubscribe-group-test-pnpres&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=0&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 44 - Content-Type - text/javascript; charset="UTF-8" - Date - Fri, 18 Mar 2016 21:00:45 GMT - - class - BKRResponseFrame - creationDate - 1458334845.191764 - statusCode - 200 - uniqueIdentifier - AF90A1A6-44AF-4B0D-9331-46AA704041FE - - - class - BKRDataFrame - creationDate - 1458334845.191791 - data - eyJ0Ijp7InQiOiIxNDU4MzM0ODQ1MDQ3Mzc5NyIsInIiOjF9LCJtIjpbXX0= - uniqueIdentifier - AF90A1A6-44AF-4B0D-9331-46AA704041FE - - - uniqueIdentifier - AF90A1A6-44AF-4B0D-9331-46AA704041FE - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/unsubscribe-channel-test,unsubscribe-channel-test-pnpres/0?channel-group=unsubscribe-group-test,unsubscribe-group-test-pnpres&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348450473797&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334845.192547 - timeoutInterval - 60 - uniqueIdentifier - 8034E5AA-99BF-412C-A529-F2BCDD8C3D86 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/unsubscribe-channel-test,unsubscribe-channel-test-pnpres/0?channel-group=unsubscribe-group-test,unsubscribe-group-test-pnpres&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348450473797&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334845.192591 - timeoutInterval - 60 - uniqueIdentifier - 8034E5AA-99BF-412C-A529-F2BCDD8C3D86 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/unsubscribe-channel-test,unsubscribe-channel-test-pnpres/0?channel-group=unsubscribe-group-test,unsubscribe-group-test-pnpres&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348450473797&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334845.192692 - timeoutInterval - 60 - uniqueIdentifier - 8034E5AA-99BF-412C-A529-F2BCDD8C3D86 - - - class - BKRErrorFrame - code - -999 - creationDate - 1458334845.194427 - domain - NSURLErrorDomain - uniqueIdentifier - 8034E5AA-99BF-412C-A529-F2BCDD8C3D86 - userInfo - - BKRSceneUUIDKey - 8034E5AA-99BF-412C-A529-F2BCDD8C3D86 - NSErrorFailingURLKey - https://ps.pndsn.com/v2/subscribe/demo-36/unsubscribe-channel-test,unsubscribe-channel-test-pnpres/0?channel-group=unsubscribe-group-test,unsubscribe-group-test-pnpres&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348450473797&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - NSErrorFailingURLStringKey - https://ps.pndsn.com/v2/subscribe/demo-36/unsubscribe-channel-test,unsubscribe-channel-test-pnpres/0?channel-group=unsubscribe-group-test,unsubscribe-group-test-pnpres&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348450473797&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - NSLocalizedDescription - cancelled - - - - uniqueIdentifier - 8034E5AA-99BF-412C-A529-F2BCDD8C3D86 - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/unsubscribe-channel-test/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334845.194598 - timeoutInterval - 60 - uniqueIdentifier - CB62A9B4-4C6D-43CF-8607-21982581521F - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/unsubscribe-channel-test/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334845.194638 - timeoutInterval - 60 - uniqueIdentifier - CB62A9B4-4C6D-43CF-8607-21982581521F - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/unsubscribe-channel-test/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334845.194743 - timeoutInterval - 60 - uniqueIdentifier - CB62A9B4-4C6D-43CF-8607-21982581521F - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/unsubscribe-channel-test/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - OPTIONS, GET, POST - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 74 - Content-Type - text/javascript; charset="UTF-8" - Date - Fri, 18 Mar 2016 21:00:45 GMT - Server - Pubnub Presence - - class - BKRResponseFrame - creationDate - 1458334845.388989 - statusCode - 200 - uniqueIdentifier - CB62A9B4-4C6D-43CF-8607-21982581521F - - - class - BKRDataFrame - creationDate - 1458334845.389029 - data - eyJzdGF0dXMiOiAyMDAsICJhY3Rpb24iOiAibGVhdmUiLCAibWVzc2FnZSI6ICJPSyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - uniqueIdentifier - CB62A9B4-4C6D-43CF-8607-21982581521F - - - uniqueIdentifier - CB62A9B4-4C6D-43CF-8607-21982581521F - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/unsubscribe-group-test/leave?channel-group=unsubscribe-group-test&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334845.390209 - timeoutInterval - 60 - uniqueIdentifier - 30953332-12A0-41BC-9ED1-825935AEA1EF - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo/channel/unsubscribe-group-test/leave?channel-group=unsubscribe-group-test&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334845.390424 - timeoutInterval - 60 - uniqueIdentifier - 30953332-12A0-41BC-9ED1-825935AEA1EF - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/unsubscribe-group-test/leave?channel-group=unsubscribe-group-test&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - OPTIONS, GET, POST - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 74 - Content-Type - text/javascript; charset="UTF-8" - Date - Fri, 18 Mar 2016 21:00:45 GMT - Server - Pubnub Presence - - class - BKRResponseFrame - creationDate - 1458334845.497351 - statusCode - 200 - uniqueIdentifier - 30953332-12A0-41BC-9ED1-825935AEA1EF - - - class - BKRDataFrame - creationDate - 1458334845.497383 - data - eyJzdGF0dXMiOiAyMDAsICJhY3Rpb24iOiAibGVhdmUiLCAibWVzc2FnZSI6ICJPSyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - uniqueIdentifier - 30953332-12A0-41BC-9ED1-825935AEA1EF - - - uniqueIdentifier - 30953332-12A0-41BC-9ED1-825935AEA1EF - - - version - 1.0 - - diff --git a/Tests/iOS Tests/Fixtures/PNUnsubscribeTests.bundle/testUnsubscribeWithPresence.plist b/Tests/iOS Tests/Fixtures/PNUnsubscribeTests.bundle/testUnsubscribeWithPresence.plist deleted file mode 100644 index 63dfb1ec9..000000000 --- a/Tests/iOS Tests/Fixtures/PNUnsubscribeTests.bundle/testUnsubscribeWithPresence.plist +++ /dev/null @@ -1,542 +0,0 @@ - - - - - creationDate - 2016-03-18T21:00:45Z - scenes - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo/a,a-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334845.505152 - timeoutInterval - 60 - uniqueIdentifier - 4D09D1E6-4567-411A-8D1A-D65E49AE31F0 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a,a-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334845.505297 - timeoutInterval - 60 - uniqueIdentifier - 4D09D1E6-4567-411A-8D1A-D65E49AE31F0 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a,a-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&tt=0 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 44 - Content-Type - text/javascript; charset="UTF-8" - Date - Fri, 18 Mar 2016 21:00:45 GMT - - class - BKRResponseFrame - creationDate - 1458334845.62413 - statusCode - 200 - uniqueIdentifier - 4D09D1E6-4567-411A-8D1A-D65E49AE31F0 - - - class - BKRDataFrame - creationDate - 1458334845.624199 - data - eyJ0Ijp7InQiOiIxNDU4MzM0ODQ0OTg1ODQ3NSIsInIiOjF9LCJtIjpbXX0= - uniqueIdentifier - 4D09D1E6-4567-411A-8D1A-D65E49AE31F0 - - - uniqueIdentifier - 4D09D1E6-4567-411A-8D1A-D65E49AE31F0 - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a,a-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348449858475&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334845.6249 - timeoutInterval - 60 - uniqueIdentifier - EDBF23C4-8619-4CEE-988D-43AC82FAC629 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a,a-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348449858475&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334845.62496 - timeoutInterval - 60 - uniqueIdentifier - EDBF23C4-8619-4CEE-988D-43AC82FAC629 - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a,a-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348449858475&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334845.625033 - timeoutInterval - 60 - uniqueIdentifier - EDBF23C4-8619-4CEE-988D-43AC82FAC629 - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a,a-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348449858475&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHeaderFields - - Access-Control-Allow-Methods - GET - Access-Control-Allow-Origin - * - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 176 - Content-Type - text/javascript; charset="UTF-8" - Date - Fri, 18 Mar 2016 21:00:46 GMT - - class - BKRResponseFrame - creationDate - 1458334846.278647 - statusCode - 200 - uniqueIdentifier - EDBF23C4-8619-4CEE-988D-43AC82FAC629 - - - class - BKRDataFrame - creationDate - 1458334846.278702 - data - eyJ0Ijp7InQiOiIxNDU4MzM0ODQ2MjI5NDU1MCIsInIiOjF9LCJtIjpbeyJhIjoiNCIsImYiOjUxMiwicCI6eyJ0IjoiMTQ1ODMzNDg0NjIyODk5MzQiLCJyIjoxfSwiayI6ImRlbW8tMzYiLCJjIjoiYSIsImQiOiIqKioqKioqKiouLi4uLi4gMjc2MiAtIDIwMTYtMDMtMTggMTQ6MDA6NDUiLCJiIjoiYSJ9XX0= - uniqueIdentifier - EDBF23C4-8619-4CEE-988D-43AC82FAC629 - - - uniqueIdentifier - EDBF23C4-8619-4CEE-988D-43AC82FAC629 - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a,a-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348462294550&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334846.280039 - timeoutInterval - 60 - uniqueIdentifier - 7D39E59D-CCAE-484B-8BDD-26AF85DCED1B - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a,a-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348462294550&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334846.280082 - timeoutInterval - 60 - uniqueIdentifier - 7D39E59D-CCAE-484B-8BDD-26AF85DCED1B - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/subscribe/demo-36/a,a-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348462294550&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334846.28026 - timeoutInterval - 60 - uniqueIdentifier - 7D39E59D-CCAE-484B-8BDD-26AF85DCED1B - - - class - BKRErrorFrame - code - -999 - creationDate - 1458334846.282265 - domain - NSURLErrorDomain - uniqueIdentifier - 7D39E59D-CCAE-484B-8BDD-26AF85DCED1B - userInfo - - BKRSceneUUIDKey - 7D39E59D-CCAE-484B-8BDD-26AF85DCED1B - NSErrorFailingURLKey - https://ps.pndsn.com/v2/subscribe/demo-36/a,a-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348462294550&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - NSErrorFailingURLStringKey - https://ps.pndsn.com/v2/subscribe/demo-36/a,a-pnpres/0?uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C&tt=14583348462294550&tr=1&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&pnsdk=PubNub-ObjC-iOS%2F4.3.3 - NSLocalizedDescription - cancelled - - - - uniqueIdentifier - 7D39E59D-CCAE-484B-8BDD-26AF85DCED1B - - - frames - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/a/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKROriginalRequestFrame - creationDate - 1458334846.282593 - timeoutInterval - 60 - uniqueIdentifier - C83ACA51-A7C1-417E-BC09-84EC2B617C7F - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/a/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334846.282628 - timeoutInterval - 60 - uniqueIdentifier - C83ACA51-A7C1-417E-BC09-84EC2B617C7F - - - HTTPMethod - GET - HTTPShouldHandleCookies - - HTTPShouldUsePipelining - - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/a/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHTTPHeaderFields - - Accept - */* - Accept-Encoding - gzip,deflate - Accept-Language - en-us - Connection - keep-alive - User-Agent - iPhone; CPU iPhone OS 9.2 Version - - allowsCellularAccess - - class - BKRCurrentRequestFrame - creationDate - 1458334846.282816 - timeoutInterval - 60 - uniqueIdentifier - C83ACA51-A7C1-417E-BC09-84EC2B617C7F - - - MIMEType - text/javascript - URL - https://ps.pndsn.com/v2/presence/sub_key/demo-36/channel/a/leave?pnsdk=PubNub-ObjC-iOS%2F4.3.3&deviceid=3650F534-FC54-4EE8-884C-EF1B83188BB7&instanceid=58EB05C9-9DE4-4118-B5D7-EE059FBF19A9&uuid=322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C - allHeaderFields - - Accept-Ranges - bytes - Access-Control-Allow-Methods - OPTIONS, GET, POST - Access-Control-Allow-Origin - * - Age - 0 - Cache-Control - no-cache - Connection - keep-alive - Content-Length - 74 - Content-Type - text/javascript; charset="UTF-8" - Date - Fri, 18 Mar 2016 21:00:46 GMT - Server - Pubnub Presence - - class - BKRResponseFrame - creationDate - 1458334846.690123 - statusCode - 200 - uniqueIdentifier - C83ACA51-A7C1-417E-BC09-84EC2B617C7F - - - class - BKRDataFrame - creationDate - 1458334846.690183 - data - eyJzdGF0dXMiOiAyMDAsICJhY3Rpb24iOiAibGVhdmUiLCAibWVzc2FnZSI6ICJPSyIsICJzZXJ2aWNlIjogIlByZXNlbmNlIn0= - uniqueIdentifier - C83ACA51-A7C1-417E-BC09-84EC2B617C7F - - - uniqueIdentifier - C83ACA51-A7C1-417E-BC09-84EC2B617C7F - - - version - 1.0 - - diff --git a/Tests/iOS Tests/Helpers/Categories/NSInvocation+PNTest.h b/Tests/iOS Tests/Helpers/Categories/NSInvocation+PNTest.h deleted file mode 100644 index 28d563855..000000000 --- a/Tests/iOS Tests/Helpers/Categories/NSInvocation+PNTest.h +++ /dev/null @@ -1,19 +0,0 @@ -#import - - -NS_ASSUME_NONNULL_BEGIN - -@interface NSInvocation (PNTest) - - -#pragma mark - Arguments - -- (BOOL)booleanForArgumentAtIndex:(NSUInteger)index; -- (id)objectForArgumentAtIndex:(NSUInteger)index; - -#pragma mark - - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Tests/iOS Tests/Helpers/NSArray+PNTest.h b/Tests/iOS Tests/Helpers/NSArray+PNTest.h deleted file mode 100644 index 377126679..000000000 --- a/Tests/iOS Tests/Helpers/NSArray+PNTest.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// NSArray+PNTest.h -// PubNub Tests -// -// Created by Jordan Zucker on 3/23/16. -// -// - -#import - -@interface NSArray (PNTest) - -- (NSString *)jsonDescription; -- (NSString *)codeFormatDescription; - -@end diff --git a/Tests/iOS Tests/Helpers/NSArray+PNTest.m b/Tests/iOS Tests/Helpers/NSArray+PNTest.m deleted file mode 100644 index e9c8563c3..000000000 --- a/Tests/iOS Tests/Helpers/NSArray+PNTest.m +++ /dev/null @@ -1,28 +0,0 @@ -// -// NSArray+PNTest.m -// PubNub Tests -// -// Created by Jordan Zucker on 3/23/16. -// -// - -#import "NSArray+PNTest.h" - -@implementation NSArray (PNTest) - -- (NSString *)jsonDescription { - NSData *jsonData = [NSJSONSerialization dataWithJSONObject:self options:NSJSONWritingPrettyPrinted error:nil]; - return [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; -} - -- (NSString *)codeFormatDescription { - NSString *res = [self jsonDescription]; - - res = [res stringByReplacingOccurrencesOfString:@" \"" withString:@" @\""]; - res = [res stringByReplacingOccurrencesOfString:@" [" withString:@" @["]; - res = [res stringByReplacingOccurrencesOfString:@" {" withString:@" @{"]; - - return res; -} - -@end diff --git a/Tests/iOS Tests/Helpers/NSDictionary+PNTest.h b/Tests/iOS Tests/Helpers/NSDictionary+PNTest.h deleted file mode 100644 index 5384b79bd..000000000 --- a/Tests/iOS Tests/Helpers/NSDictionary+PNTest.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// NSDictionary+PNTest.h -// PubNub Tests -// -// Created by Jordan Zucker on 3/23/16. -// -// - -#import - -@interface NSDictionary (PNTest) - -- (NSString *)jsonDescription; -- (NSString *)testAssertionFormat; - -@end diff --git a/Tests/iOS Tests/Helpers/NSDictionary+PNTest.m b/Tests/iOS Tests/Helpers/NSDictionary+PNTest.m deleted file mode 100644 index 8b26411f4..000000000 --- a/Tests/iOS Tests/Helpers/NSDictionary+PNTest.m +++ /dev/null @@ -1,27 +0,0 @@ -// -// NSDictionary+PNTest.m -// PubNub Tests -// -// Created by Jordan Zucker on 3/23/16. -// -// - -#import "NSDictionary+PNTest.h" - -@implementation NSDictionary (PNTest) - -- (NSString *)jsonDescription { - NSData *jsonData = [NSJSONSerialization dataWithJSONObject:self options:NSJSONWritingPrettyPrinted error:nil]; - return [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding]; -} - -- (NSString *)testAssertionFormat { - NSString *res = [self jsonDescription]; - - res = [res stringByReplacingOccurrencesOfString:@" \"" withString:@" @\""]; - res = [res stringByReplacingOccurrencesOfString:@" [" withString:@" @["]; - res = [res stringByReplacingOccurrencesOfString:@" {" withString:@" @{"]; - return res; -} - -@end \ No newline at end of file diff --git a/Tests/iOS Tests/Helpers/NSString+PNTest.h b/Tests/iOS Tests/Helpers/NSString+PNTest.h deleted file mode 100644 index e86df905c..000000000 --- a/Tests/iOS Tests/Helpers/NSString+PNTest.h +++ /dev/null @@ -1,17 +0,0 @@ -// -// NSString+PNTest.h -// PubNub Tests -// -// Created by Jordan Zucker on 3/23/16. -// -// - -#import - -@interface NSString (PNTest) - -+ (NSString *)randomAlphanumericStringWithLength:(NSInteger)length; - -- (NSData *)dataFromHexString:(NSString *)string; - -@end diff --git a/Tests/iOS Tests/Helpers/NSString+PNTest.m b/Tests/iOS Tests/Helpers/NSString+PNTest.m deleted file mode 100644 index 00561c0a8..000000000 --- a/Tests/iOS Tests/Helpers/NSString+PNTest.m +++ /dev/null @@ -1,44 +0,0 @@ -// -// NSString+Test.m -// PubNub Tests -// -// Created by Jordan Zucker on 3/23/16. -// -// - -#import "NSString+PNTest.h" - -@implementation NSString (PNTest) - -+ (NSString *)randomAlphanumericStringWithLength:(NSInteger)length -{ - NSString *letters = @"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; - NSMutableString *randomString = [NSMutableString stringWithCapacity:length]; - - for (int i = 0; i < length; i++) { - [randomString appendFormat:@"%C", [letters characterAtIndex:arc4random() % [letters length]]]; - } - - return randomString; -} - -- (NSData *)dataFromHexString:(NSString *)string { - string = [string lowercaseString]; - NSMutableData *data= [NSMutableData new]; - unsigned char whole_byte; - char byte_chars[3] = {'\0','\0','\0'}; - NSUInteger i = 0; - NSUInteger length = string.length; - while (i < length-1) { - char c = [string characterAtIndex:i++]; - if (c < '0' || (c > '9' && c < 'a') || c > 'f') - continue; - byte_chars[0] = c; - byte_chars[1] = [string characterAtIndex:i++]; - whole_byte = strtol(byte_chars, NULL, 16); - [data appendBytes:&whole_byte length:1]; - } - return data; -} - -@end diff --git a/Tests/iOS Tests/Helpers/PNBasicClientCryptTestCase.h b/Tests/iOS Tests/Helpers/PNBasicClientCryptTestCase.h deleted file mode 100644 index eb462a975..000000000 --- a/Tests/iOS Tests/Helpers/PNBasicClientCryptTestCase.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// PNBasicClientCryptTestCase.h -// PubNub Tests -// -// Created by Jordan Zucker on 3/23/16. -// -// - -#import "PNBasicClientTestCase.h" - -@interface PNBasicClientCryptTestCase : PNBasicClientTestCase - -@property (nonatomic) PubNub *cryptedClient; -@property (nonatomic) PNConfiguration *cryptedConfiguration; - -@end diff --git a/Tests/iOS Tests/Helpers/PNBasicClientCryptTestCase.m b/Tests/iOS Tests/Helpers/PNBasicClientCryptTestCase.m deleted file mode 100644 index 0aa09b9ae..000000000 --- a/Tests/iOS Tests/Helpers/PNBasicClientCryptTestCase.m +++ /dev/null @@ -1,25 +0,0 @@ -// -// PNBasicClientCryptTestCase.m -// PubNub Tests -// -// Created by Jordan Zucker on 3/23/16. -// -// - -#import "PNBasicClientCryptTestCase.h" -#import - -@implementation PNBasicClientCryptTestCase - -- (void)setUp { - [super setUp]; - - self.cryptedConfiguration = [PNConfiguration configurationWithPublishKey:self.publishKey - subscribeKey:self.subscribeKey]; - self.cryptedConfiguration.uuid = @"322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C"; - self.cryptedConfiguration.cipherKey = @"chiper key"; - self.cryptedClient = [PubNub clientWithConfiguration:self.cryptedConfiguration]; - [self.cryptedClient.logger setLogLevel:PNVerboseLogLevel]; -} - -@end diff --git a/Tests/iOS Tests/Helpers/PNBasicClientTestCase.h b/Tests/iOS Tests/Helpers/PNBasicClientTestCase.h deleted file mode 100644 index bca0d903b..000000000 --- a/Tests/iOS Tests/Helpers/PNBasicClientTestCase.h +++ /dev/null @@ -1,69 +0,0 @@ -// -// PNBasicClientTestCase.h -// PubNub Tests -// -// Created by Jordan Zucker on 6/16/15. -// -// - -#import -#import - -#define PNWeakify(__var) \ -__weak __typeof__(__var) __var ## _weak_ = (__var) - -#define PNStrongify(__var) \ -_Pragma("clang diagnostic push"); \ -_Pragma("clang diagnostic ignored \"-Wshadow\""); \ -__strong __typeof__(__var) __var = __var ## _weak_; \ -_Pragma("clang diagnostic pop") \ - -typedef void (^PNChannelGroupAssertions)(PNAcknowledgmentStatus *status); - -@class PubNub; - -@interface PNBasicClientTestCase : BKRTestCase - -@property (nonatomic) PNConfiguration *configuration; -@property (nonatomic, strong) PubNub *client; -@property (nonatomic, strong) XCTestExpectation *publishExpectation; - -/** - * @brief Loaded from \c 'Resources/keysset.plist' file PAM enabled PubNub subscribe key. - * - * @since 4.8.8 - */ -@property (nonatomic, readonly, strong) NSString *pamSubscribeKey; - -/** - * @brief Loaded from \c 'Resources/keysset.plist' file PAM enabled PubNub publish key. - * - * @since 4.8.8 - */ -@property (nonatomic, readonly, strong) NSString *pamPublishKey; - -/** - * @brief Loaded from \c 'Resources/keysset.plist' file PubNub subscribe key. - * - * @since 4.8.8 - */ -@property (nonatomic, readonly, strong) NSString *subscribeKey; - -/** - * @brief Loaded from \c 'Resources/keysset.plist' file PubNub publish key. - * - * @since 4.8.8 - */ -@property (nonatomic, readonly, strong) NSString *publishKey; - -- (PNConfiguration *)overrideClientConfiguration:(PNConfiguration *)configuration; - -- (void)PNTest_publish:(id)message toChannel:(NSString *)channel withMetadata:(NSDictionary *)metadata withCompletion:(PNPublishCompletionBlock)block; - -- (void)performVerifiedAddChannels:(NSArray *)channels toGroup:(NSString *)channelGroup withAssertions:(PNChannelGroupAssertions)assertions; - -- (void)performVerifiedRemoveAllChannelsFromGroup:(NSString *)channelGroup withAssertions:(PNChannelGroupAssertions)assertions; - -- (void)performVerifiedRemoveChannels:(NSArray *)channels fromGroup:(NSString *)channelGroup withAssertions:(PNChannelGroupAssertions)assertions; - -@end diff --git a/Tests/iOS Tests/Helpers/PNBasicClientTestCase.m b/Tests/iOS Tests/Helpers/PNBasicClientTestCase.m deleted file mode 100644 index 59e65f42e..000000000 --- a/Tests/iOS Tests/Helpers/PNBasicClientTestCase.m +++ /dev/null @@ -1,176 +0,0 @@ -// -// PNBasicClientTestCase.m -// PubNub Tests -// -// Created by Jordan Zucker on 6/16/15. -// -// -#import -#import -#import - -#import "PNDeviceIndependentMatcher.h" -#import "PNBasicClientTestCase.h" - - -NS_ASSUME_NONNULL_BEGIN - -#pragma mark Protected interface declaration - -@interface PNBasicClientTestCase () - -/** - * @brief Content of \c 'Resources/keysset.plist' which is used with this test. - * - * @return \a NSDictionary with 'pam' and 'regula' set of 'publish'/'subscribe' keys. - * - * @since 4.8.8 - */ -+ (NSDictionary *)testKeysSet; - -#pragma mark - - - -@end - -NS_ASSUME_NONNULL_END - - -@implementation PNBasicClientTestCase - - -#pragma mark - Information - -+ (NSDictionary *)testKeysSet { - - static NSDictionary *_testKeysSet; - static dispatch_once_t onceToken; - - dispatch_once(&onceToken, ^{ - NSBundle *testBundle = [NSBundle bundleForClass:self]; - NSString *keysPath = [testBundle pathForResource:@"keysset" ofType:@"plist"]; - _testKeysSet = [NSDictionary dictionaryWithContentsOfFile:keysPath]; - }); - - return _testKeysSet; -} - -- (NSString *)pamSubscribeKey { - - return [[[self class] testKeysSet] valueForKeyPath:@"pam.subscribe"]; -} - -- (NSString *)pamPublishKey { - - return [[[self class] testKeysSet] valueForKeyPath:@"pam.publish"]; -} - -- (NSString *)subscribeKey { - - return [[[self class] testKeysSet] valueForKeyPath:@"regular.subscribe"]; -} - -- (NSString *)publishKey { - - return [[[self class] testKeysSet] valueForKeyPath:@"regular.publish"]; -} - -- (void)setUp { - [super setUp]; - - dispatch_queue_t callbackQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); - self.configuration = [PNConfiguration configurationWithPublishKey:self.publishKey - subscribeKey:self.subscribeKey]; - self.configuration.uuid = @"322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C"; - self.configuration.origin = @"ps.pndsn.com"; - self.configuration = [self overrideClientConfiguration:self.configuration]; - self.client = [PubNub clientWithConfiguration:self.configuration callbackQueue:callbackQueue]; - self.client.logger.enabled = NO; - [self.client.logger setLogLevel:PNVerboseLogLevel]; -} - -- (void)tearDown { - - [self.client.sequenceManager reset]; - self.client = nil; - [super tearDown]; -} - -- (BKRTestConfiguration *)testConfiguration { - BKRTestConfiguration *defaultConfiguration = [super testConfiguration]; - defaultConfiguration.matcherClass = [PNDeviceIndependentMatcher class]; - defaultConfiguration.beginRecordingBlock = nil; - defaultConfiguration.endRecordingBlock = nil; - defaultConfiguration.shouldSaveEmptyCassette = YES; - defaultConfiguration.tearDownExpectationTimeout = 60.0; - return defaultConfiguration; -} - -//- (NSString *)baseFixturesDirectoryFilePath { -//// return [super baseFixturesDirectoryFilePath]; -// return [BKRTestCaseFilePathHelper fixtureWriteDirectoryInProject]; -//} - - -#pragma mark - Configuration override - -- (PNConfiguration *)overrideClientConfiguration:(PNConfiguration *)configuration { - - return configuration; -} - -#pragma mark - Publish Helpers - -- (void)PNTest_publish:(id)message toChannel:(NSString *)channel withMetadata:(NSDictionary *)metadata withCompletion:(PNPublishCompletionBlock)block { - self.publishExpectation = [self expectationWithDescription:@"publish"]; - [self.client publish:message toChannel:channel withMetadata:metadata completion:^(PNPublishStatus *status) { - if (block) { - block(status); - } - [self.publishExpectation fulfill]; - }]; -} - -#pragma mark - Channel Group Helpers - -- (void)performVerifiedAddChannels:(NSArray *)channels toGroup:(NSString *)channelGroup withAssertions:(PNChannelGroupAssertions)assertions { - XCTestExpectation *addChannelsToGroupExpectation = [self expectationWithDescription:@"addChannels"]; - [self.client addChannels:channels toGroup:channelGroup - withCompletion:^(PNAcknowledgmentStatus *status) { - if (assertions) { - assertions(status); - } - [addChannelsToGroupExpectation fulfill]; - }]; - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - XCTAssertNil(error); - }]; -} - -- (void)performVerifiedRemoveAllChannelsFromGroup:(NSString *)channelGroup withAssertions:(PNChannelGroupAssertions)assertions { - XCTestExpectation *removeChannels = [self expectationWithDescription:@"removeChannels"]; - [self.client removeChannelsFromGroup:channelGroup withCompletion:^(PNAcknowledgmentStatus *status) { - if (assertions) { - assertions(status); - } - [removeChannels fulfill]; - }]; - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - XCTAssertNil(error); - }]; -} - -- (void)performVerifiedRemoveChannels:(NSArray *)channels fromGroup:(NSString *)channelGroup withAssertions:(PNChannelGroupAssertions)assertions { - XCTestExpectation *removeSpecificChannels = [self expectationWithDescription:@"removeSpecificChannels"]; - [self.client removeChannels:channels fromGroup:channelGroup withCompletion:^(PNAcknowledgmentStatus *status) { - if (assertions) { - assertions(status); - } - [removeSpecificChannels fulfill]; - }]; - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - XCTAssertNil(error); - }]; -} - -@end diff --git a/Tests/iOS Tests/Helpers/PNBasicPresenceTestCase.h b/Tests/iOS Tests/Helpers/PNBasicPresenceTestCase.h deleted file mode 100644 index 033bf1f15..000000000 --- a/Tests/iOS Tests/Helpers/PNBasicPresenceTestCase.h +++ /dev/null @@ -1,24 +0,0 @@ -// -// PNBasicPresenceTestCase.h -// PubNub Tests -// -// Created by Jordan Zucker on 12/10/15. -// -// - -#import -#import "PNBasicSubscribeTestCase.h" - -@interface PNBasicPresenceTestCase : PNBasicSubscribeTestCase -@property (nonatomic) PubNub *otherClient; -- (NSString *)otherClientChannelName; -- (NSString *)channelGroupName; -@property (nonatomic, copy) PNClientDidReceivePresenceEventAssertions otherClientPresenceEventAssertions; -@property (nonatomic, strong) XCTestExpectation *presenceEventExpectation; - -// should call one or the other of these, result of calling both is unexpected -- (void)setUpChannelSubscription; -- (void)setUpChannelGroupSubscription; - -- (NSString *)presenceSubscribableFromString:(NSString *)subscribable; -@end \ No newline at end of file diff --git a/Tests/iOS Tests/Helpers/PNBasicPresenceTestCase.m b/Tests/iOS Tests/Helpers/PNBasicPresenceTestCase.m deleted file mode 100644 index 3cd5b1b79..000000000 --- a/Tests/iOS Tests/Helpers/PNBasicPresenceTestCase.m +++ /dev/null @@ -1,90 +0,0 @@ - -// -// PNBasicPresenceTestCase.m -// PubNub Tests -// -// Created by Jordan Zucker on 12/10/15. -// -// - -//#import -#import -#import "PNBasicPresenceTestCase.h" - -@interface PNBasicPresenceTestCase () -@property (nonatomic) XCTestExpectation *setUpExpectation; -@end -@implementation PNBasicPresenceTestCase - -- (NSString *)otherClientChannelName { - return @"2EC925F0-B996-47A4-AF54-A605E1A9AEBA"; -} - -- (NSString *)channelGroupName { - return @"testGroup"; -} - -- (NSString *)presenceSubscribableFromString:(NSString *)subscribable { - if ([subscribable hasSuffix:@"-pnpres"]) { - return subscribable; - } - return [subscribable stringByAppendingString:@"-pnpres"]; -} - -- (void)setUp { - [super setUp]; - PNConfiguration *config = [PNConfiguration configurationWithPublishKey:self.publishKey - subscribeKey:self.subscribeKey]; - config.uuid = @"58A6FB32-4323-45BE-97BF-2D070A3F8912"; - config.origin = @"ps.pndsn.com"; - config.presenceHeartbeatValue = 0; - self.otherClient = [PubNub clientWithConfiguration:config]; - [self.otherClient addListener:self]; -} - -- (void)setUpChannelSubscription { - self.setUpExpectation = [self expectationWithDescription:@"setUp"]; - [self.otherClient subscribeToChannels:@[[self otherClientChannelName]] withPresence:YES clientState:@{@"foo" : @"bar"}]; - [self waitForExpectationsWithTimeout:60 handler:^(NSError * _Nullable error) { - if (error) { - XCTFail(@"failed to set up"); - } - }]; -} - -- (void)setUpChannelGroupSubscription { - self.setUpExpectation = [self expectationWithDescription:@"setUp"]; - [self.otherClient subscribeToChannelGroups:@[[self channelGroupName]] withPresence:YES]; - [self waitForExpectationsWithTimeout:20 handler:^(NSError * _Nullable error) { - if (error) { - XCTFail(@"failed to set up channel group subscription"); - } - }]; -} - -- (void)tearDown { - self.presenceEventExpectation = nil; - self.otherClient = nil; - [super tearDown]; -} - -#pragma mark - PNObjectEventListener - -- (void)client:(PubNub *)client didReceiveStatus:(PNStatus *)status { - [super client:client didReceiveStatus:status]; - // just verifying self.otherClient is properly configured during set up - if ([client isEqual:self.otherClient]) { - XCTAssertEqual(status.category, PNConnectedCategory); - [self.setUpExpectation fulfill]; - self.setUpExpectation = nil; - } -} - -- (void)client:(PubNub *)client didReceivePresenceEvent:(PNPresenceEventResult *)event { - [super client:client didReceivePresenceEvent:event]; - if (self.otherClientPresenceEventAssertions) { - self.otherClientPresenceEventAssertions(client, event); - } -} - -@end diff --git a/Tests/iOS Tests/Helpers/PNBasicSubscribeTestCase.h b/Tests/iOS Tests/Helpers/PNBasicSubscribeTestCase.h deleted file mode 100644 index d343149e5..000000000 --- a/Tests/iOS Tests/Helpers/PNBasicSubscribeTestCase.h +++ /dev/null @@ -1,65 +0,0 @@ -// -// PNBasicSubscribeTestCase.h -// PubNub Tests -// -// Created by Jordan Zucker on 6/16/15. -// -// -#import - -#import "PNBasicClientTestCase.h" - -typedef void (^PNClientDidReceiveMessageAssertions)(PubNub *client, PNMessageResult *message); -typedef void (^PNClientDidReceivePresenceEventAssertions)(PubNub *client, PNPresenceEventResult *event); -typedef void (^PNClientDidReceiveStatusAssertions)(PubNub *client, PNSubscribeStatus *status); - -@class XCTestExpectation; - -@interface PNSubscribeTestData : NSObject -@property (nonatomic, strong) id publishMessage; -@property (nonatomic, assign) BOOL shouldReceiveMessage; // YES by default -@property (nonatomic, strong) NSDictionary *publishMetadata; -@property (nonatomic, strong) NSString *publishChannel; -@property (nonatomic, strong) NSNumber *expectedPublishTimetoken; -@property (nonatomic, strong) NSString *expectedPublishInformation; -@property (nonatomic, strong) NSArray *subscribedChannels; -@property (nonatomic, strong) NSArray *subscribedChannelGroups; -@property (nonatomic, strong) NSNumber *expectedStatusRegion; -@property (nonatomic, strong) NSString *expectedMessageActualChannel; -@property (nonatomic, strong) NSString *expectedMessageSubscribedChannel; -@property (nonatomic, strong) NSNumber *expectedMessageTimetoken; -@property (nonatomic, strong) NSNumber *expectedMessageRegion; -@end - -@interface PNBasicSubscribeTestCase : PNBasicClientTestCase - -@property (nonatomic) XCTestExpectation *subscribeExpectation; -@property (nonatomic) XCTestExpectation *unsubscribeExpectation; -@property (nonatomic) XCTestExpectation *channelGroupSubscribeExpectation; -@property (nonatomic) XCTestExpectation *channelGroupUnsubscribeExpectation; - -//@property (nonatomic) XCTestExpectation *presenceEventExpectation; - -@property (nonatomic, copy) PNClientDidReceiveMessageAssertions didReceiveMessageAssertions; -@property (nonatomic, copy) PNClientDidReceivePresenceEventAssertions didReceivePresenceEventAssertions; -@property (nonatomic, copy) PNClientDidReceiveStatusAssertions didReceiveStatusAssertions; - -- (void)PNTest_subscribeToChannels:(NSArray *)channels withPresence:(BOOL)shouldObservePresence; -- (void)PNTest_subscribeToChannels:(NSArray *)channels withPresence:(BOOL)shouldObservePresence usingTimeToken:(NSNumber *)timeToken; -- (void)PNTest_subscribeToPresenceChannels:(NSArray *)channels; -- (void)PNTest_subscribeToChannels:(NSArray *)channels withPresence:(BOOL)shouldObservePresence withClientState:(NSDictionary *)clientState; - -- (void)PNTest_unsubscribeFromAll; -- (void)PNTest_unsubscribeFromChannels:(NSArray *)channels; -- (void)PNTest_unsubscribeFromChannels:(NSArray *)channels withPresence:(BOOL)shouldObservePresence; -- (void)PNTest_unsubscribeFromPresenceChannels:(NSArray *)channels; - -- (void)PNTest_subscribeToChannelGroups:(NSArray *)groups withPresence:(BOOL)shouldObservePresence; -- (void)PNTest_subscribeToChannelGroups:(NSArray *)groups withPresence:(BOOL)shouldObservePresence usingTimeToken:(NSNumber *)timeToken; -- (void)PNTest_unsubscribeFromChannelGroups:(NSArray *)groups withPresence:(BOOL)shouldObservePresence; - -- (void)fulfillSubscribeExpectationAfterDelay:(NSTimeInterval)delay; - -- (void)PNTest_sendAndReceiveMessageWithTestData:(PNSubscribeTestData *)testData; - -@end \ No newline at end of file diff --git a/Tests/iOS Tests/Helpers/PNBasicSubscribeTestCase.m b/Tests/iOS Tests/Helpers/PNBasicSubscribeTestCase.m deleted file mode 100644 index d07c650d6..000000000 --- a/Tests/iOS Tests/Helpers/PNBasicSubscribeTestCase.m +++ /dev/null @@ -1,229 +0,0 @@ -// -// PNBasicSubscribeTestCase.m -// PubNub Tests -// -// Created by Jordan Zucker on 6/16/15. -// -// - -#import "PNBasicSubscribeTestCase.h" - -@implementation PNSubscribeTestData - -- (instancetype)init { - self = [super init]; - if (self) { - _shouldReceiveMessage = YES; - } - return self; -} - -@end - -@implementation PNBasicSubscribeTestCase - -- (void)setUp { - [super setUp]; - [self.client addListener:self]; - self.subscribeExpectation = nil; - self.unsubscribeExpectation = nil; -} - -- (void)tearDown { - self.subscribeExpectation = nil; - self.unsubscribeExpectation = nil; - [self.client removeListener:self]; - [super tearDown]; -} - -#pragma mark - Helpers - -- (void)PNTest_subscribeToChannels:(NSArray *)channels withPresence:(BOOL)shouldObservePresence { - - [self PNTest_subscribeToChannels:channels withPresence:shouldObservePresence usingTimeToken:nil]; -} - -- (void)PNTest_subscribeToChannels:(NSArray *)channels withPresence:(BOOL)shouldObservePresence - usingTimeToken:(NSNumber *)timeToken { - - self.subscribeExpectation = [self expectationWithDescription:@"subscribe"]; - [self.client subscribeToChannels:channels withPresence:shouldObservePresence usingTimeToken:timeToken]; - [self waitForExpectationsWithTimeout:25 handler:^(NSError *error) { - if (error) { - XCTAssertNotNil(error); - } - }]; -} - -- (void)PNTest_subscribeToChannels:(NSArray *)channels withPresence:(BOOL)shouldObservePresence withClientState:(NSDictionary *)clientState { - self.subscribeExpectation = [self expectationWithDescription:@"subscribe"]; - [self.client subscribeToChannels:channels withPresence:shouldObservePresence clientState:clientState]; - [self waitForExpectationsWithTimeout:20 handler:^(NSError * _Nullable error) { - XCTAssertNil(error); - }]; -} - -- (void)PNTest_subscribeToPresenceChannels:(NSArray *)channels { - self.subscribeExpectation = [self expectationWithDescription:@"subscribe"]; - [self.client subscribeToPresenceChannels:channels]; - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - XCTAssertNil(error); - }]; -} - -- (void)PNTest_unsubscribeFromAll { - - self.unsubscribeExpectation = [self expectationWithDescription:@"unsubscribe"]; - [self.client unsubscribeFromAll]; - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - XCTAssertNil(error); - }]; -} - -- (void)PNTest_unsubscribeFromChannels:(NSArray *)channels { - - [self PNTest_unsubscribeFromChannels:channels withPresence:NO]; -} - -- (void)PNTest_unsubscribeFromChannels:(NSArray *)channels withPresence:(BOOL)shouldObservePresence { - self.unsubscribeExpectation = [self expectationWithDescription:@"unsubscribe"]; - [self.client unsubscribeFromChannels:channels withPresence:shouldObservePresence]; - [self waitForExpectationsWithTimeout:15 handler:^(NSError *error) { - XCTAssertNil(error); - }]; -} - -- (void)PNTest_unsubscribeFromPresenceChannels:(NSArray *)channels { - self.subscribeExpectation = [self expectationWithDescription:@"subscribe"]; - [self.client unsubscribeFromPresenceChannels:channels]; - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - XCTAssertNil(error); - }]; -} - -- (void)PNTest_subscribeToChannelGroups:(NSArray *)groups withPresence:(BOOL)shouldObservePresence { - self.channelGroupSubscribeExpectation = [self expectationWithDescription:@"channelGroupSubscribe"]; - [self.client subscribeToChannelGroups:groups withPresence:shouldObservePresence]; - [self waitForExpectationsWithTimeout:15 handler:^(NSError *error) { - XCTAssertNil(error); - }]; -} - -- (void)PNTest_subscribeToChannelGroups:(NSArray *)groups withPresence:(BOOL)shouldObservePresence usingTimeToken:(NSNumber *)timeToken { - self.channelGroupSubscribeExpectation = [self expectationWithDescription:@"channelGroupSubscribe"]; - [self.client subscribeToChannelGroups:groups withPresence:shouldObservePresence usingTimeToken:timeToken]; - [self waitForExpectationsWithTimeout:15 handler:^(NSError * _Nullable error) { - XCTAssertNil(error); - }]; -} - -- (void)PNTest_unsubscribeFromChannelGroups:(NSArray *)groups withPresence:(BOOL)shouldObservePresence { - self.channelGroupUnsubscribeExpectation = [self expectationWithDescription:@"channelGroupUnsubscribe"]; - [self.client unsubscribeFromChannelGroups:groups withPresence:shouldObservePresence]; - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - XCTAssertNil(error); - }]; -} - -- (void)PNTest_sendAndReceiveMessageWithTestData:(PNSubscribeTestData *)testData { - PNWeakify(self); - __block BOOL hasPublishedMessage = NO; - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - XCTAssertEqualObjects(self.client, client); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.category, PNConnectedCategory); -// XCTAssertEqualObjects(status.subscribedChannels, @[kPNChannelTestName]); - XCTAssertEqualObjects([NSSet setWithArray:status.subscribedChannels], [NSSet setWithArray:testData.subscribedChannels]); - XCTAssertEqualObjects([NSSet setWithArray:status.subscribedChannelGroups], [NSSet setWithArray:testData.subscribedChannelGroups]); - - XCTAssertEqual(status.operation, PNSubscribeOperation); - NSLog(@"timeToken: %@", status.currentTimetoken); -// XCTAssertEqualObjects(status.currentTimetoken, @14490969656951470); - XCTAssertEqualObjects(status.currentTimetoken, status.data.timetoken); - if (hasPublishedMessage) { - return; - } - hasPublishedMessage = YES; - [self.client publish:testData.publishMessage toChannel:testData.publishChannel - withMetadata:testData.publishMetadata completion:^(PNPublishStatus *status) { - - NSLog(@"status: %@", status.debugDescription); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqualObjects(status.data.timetoken, testData.expectedPublishTimetoken); - XCTAssertEqualObjects(status.data.information, testData.expectedPublishInformation); - [self fulfillSubscribeExpectationAfterDelay:10]; - [self.publishExpectation fulfill]; - }]; - - }; - self.didReceiveMessageAssertions = ^void (PubNub *client, PNMessageResult *message) { - PNStrongify(self); - if (testData.shouldReceiveMessage) { - XCTAssertEqualObjects(self.client, client); - XCTAssertEqualObjects(client.uuid, message.uuid); - XCTAssertNotNil(message.uuid); - XCTAssertNil(message.authKey); - XCTAssertEqual(message.statusCode, 200); - XCTAssertTrue(message.TLSEnabled); - XCTAssertEqual(message.operation, PNSubscribeOperation); - NSLog(@"message:"); - NSLog(@"%@", message.data.message); - XCTAssertNotNil(message.data); - XCTAssertEqualObjects(message.data.message, testData.publishMessage); - XCTAssertEqualObjects(message.data.channel, testData.expectedMessageSubscribedChannel); - XCTAssertEqualObjects(message.data.timetoken, testData.expectedMessageTimetoken); - } else { - XCTFail(@"Should not receive a message, received: %@", message.debugDescription); - } - [self.subscribeExpectation fulfill]; - }; - self.publishExpectation = [self expectationWithDescription:@"publish"]; - if (testData.subscribedChannels.count) { - self.subscribeExpectation = [self expectationWithDescription:@"subscribe"]; - [self.client subscribeToChannels:testData.subscribedChannels withPresence:NO]; - } - if (testData.subscribedChannelGroups.count) { - self.channelGroupSubscribeExpectation = [self expectationWithDescription:@"channelGroupSubscribe"]; - [self.client subscribeToChannelGroups:testData.subscribedChannelGroups withPresence:NO]; - } - [self waitForExpectationsWithTimeout:15 handler:^(NSError * _Nullable error) { - XCTAssertNil(error, @"error is %@", error.localizedDescription); - }]; -} - -#pragma mark - Helpers - -- (void)fulfillSubscribeExpectationAfterDelay:(NSTimeInterval)delay { - PNWeakify(self); - dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delay * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{ - PNStrongify(self); - [self.channelGroupSubscribeExpectation fulfill]; - [self.subscribeExpectation fulfill]; - }); -} - -#pragma mark - PNObjectEventListener - -- (void)client:(PubNub *)client didReceiveMessage:(PNMessageResult *)message { - if (self.didReceiveMessageAssertions) { - self.didReceiveMessageAssertions(client, message); - } -} - -- (void)client:(PubNub *)client didReceivePresenceEvent:(PNPresenceEventResult *)event { - if (self.didReceivePresenceEventAssertions) { - self.didReceivePresenceEventAssertions(client, event); - } -} - -- (void)client:(PubNub *)client didReceiveStatus:(PNSubscribeStatus *)status { - if (self.didReceiveStatusAssertions) { - self.didReceiveStatusAssertions(client, status); - } -} - - -@end \ No newline at end of file diff --git a/Tests/iOS Tests/Tests/Integration/Actions/Messages/PNMessageActionsIntegrationTest.m b/Tests/iOS Tests/Tests/Integration/Actions/Messages/PNMessageActionsIntegrationTest.m deleted file mode 100644 index 418e6e5c3..000000000 --- a/Tests/iOS Tests/Tests/Integration/Actions/Messages/PNMessageActionsIntegrationTest.m +++ /dev/null @@ -1,447 +0,0 @@ -#import "PNTestCase.h" - - -NS_ASSUME_NONNULL_BEGIN - - -#pragma mark Test interface declaration - -@interface PNMessageActionsIntegrationTest : PNTestCase - - -#pragma mark - Information - -/** - * @brief Client which can be used to generate events. - */ -@property (nonatomic, strong) PubNub *client1; - -/** - * @brief Client which can be used to handle and verify actions of first client. - */ -@property (nonatomic, strong) PubNub *client2; - - -#pragma mark - Misc - -/** - * @brief Publish test messages to specified \c channel. - * - * @param messagesCount How many messages should be published to specified \c channel. - * @param channel Name of channel which will be used in test with pre-published messages. - * - * @return List of published messages timetokens. - */ -- (NSArray *)publishMessages:(NSUInteger)messagesCount toChannel:(NSString *)channel; - -/** - * @brief Publish test messages to specified \c channel. - * - * @param actionsCount How many actions should be added for each message. - * @param messages List of publish timetokens for messages to which \c actions will be added. - * @param channel Name of channel which contains references messages. - * - * @return List of message action timetokens. - */ -- (NSArray *)addActions:(NSUInteger)actionsCount - toMessages:(NSArray *)messages - inChannel:(NSString *)channel; - -#pragma mark - - - -@end - -NS_ASSUME_NONNULL_END - - -#pragma mark - Interface implementation - -@implementation PNMessageActionsIntegrationTest - - -#pragma mark - Setup / Tear down - -- (void)setUp { - [super setUp]; - - - dispatch_queue_t callbackQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); - PNConfiguration *configuration = [PNConfiguration configurationWithPublishKey:self.publishKey - subscribeKey:self.subscribeKey]; - - self.client1 = [PubNub clientWithConfiguration:configuration callbackQueue:callbackQueue]; - self.client2 = [PubNub clientWithConfiguration:configuration callbackQueue:callbackQueue]; -} - -- (void)tearDown { - [self removeAllHandlersForClient:self.client1]; - - if (self.client2) { - [self removeAllHandlersForClient:self.client2]; - [self.client2 removeListener:self]; - } - - [self.client1 removeListener:self]; - - - [super tearDown]; -} - - -#pragma mark - Tests :: Add Action - -- (void)testAddAction_ShouldAddAction_WhenCalled { - NSString *expectedChannel = [NSUUID UUID].UUIDString; - NSString *expectedValue = [NSUUID UUID].UUIDString; - NSString *expectedType = @"custom"; - - - NSArray *messageTimetokens = [self publishMessages:1 toChannel:expectedChannel]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.addMessageAction() - .channel(expectedChannel) - .messageTimetoken(messageTimetokens[0]) - .type(expectedType) - .value(expectedValue) - .performWithCompletion(^(PNAddMessageActionStatus *status) { - PNMessageAction *action = status.data.action; - XCTAssertFalse(status.isError); - XCTAssertNotNil(action); - XCTAssertEqualObjects(action.type, expectedType); - XCTAssertEqualObjects(action.value, expectedValue); - XCTAssertEqualObjects(action.uuid, self.client1.uuid); - XCTAssertEqualObjects(action.messageTimetoken, messageTimetokens[0]); - XCTAssertNotNil(action.actionTimetoken); - - handler(); - }); - }]; -} - -- (void)testAddAction_ShouldTriggerAddedEvent_WhenAddingAction { - NSString *expectedChannel = [NSUUID UUID].UUIDString; - NSString *expectedValue = [NSUUID UUID].UUIDString; - NSString *expectedType = @"custom"; - [self.client2 addListener:self]; - - - NSArray *messageTimetokens = [self publishMessages:1 toChannel:expectedChannel]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - [self addStatusHandlerForClient:self.client2 - withBlock:^(PubNub *client, PNSubscribeStatus *status, BOOL *remove) { - - if (status.category == PNConnectedCategory) { - *remove = YES; - - handler(); - } - }]; - - self.client2.subscribe().channels(@[expectedChannel]).perform(); - }]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - [self addActionHandlerForClient:self.client2 - withBlock:^(PubNub *client, PNMessageActionResult *event, BOOL *remove) { - *remove = YES; -#pragma GCC diagnostic push -#pragma clang diagnostic ignored "-Warc-retain-cycles" - PNMessageAction *action = event.data.action; - XCTAssertNotNil(action); - XCTAssertEqualObjects(action.type, expectedType); - XCTAssertEqualObjects(action.value, expectedValue); - XCTAssertEqualObjects(action.uuid, self.client1.uuid); - XCTAssertEqualObjects(action.messageTimetoken, messageTimetokens[0]); - XCTAssertNotNil(action.actionTimetoken); - XCTAssertEqualObjects(event.data.event, @"added"); -#pragma GCC diagnostic pop - - handler(); - }]; - - self.client1.addMessageAction() - .channel(expectedChannel) - .messageTimetoken(messageTimetokens[0]) - .type(expectedType) - .value(expectedValue) - .performWithCompletion(^(PNAddMessageActionStatus *status) { - XCTAssertFalse(status.isError); - }); - }]; -} - - -#pragma mark - Tests :: Remove Action - -- (void)testRemoveAction_ShouldRemoveAction_WhenCalled { - NSString *expectedChannel = [NSUUID UUID].UUIDString; - - - NSArray *messageTimetokens = [self publishMessages:1 toChannel:expectedChannel]; - NSArray *actionTimetokens = [self addActions:1 - toMessages:messageTimetokens - inChannel:expectedChannel]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.fetchMessageActions() - .channel(expectedChannel) - .performWithCompletion(^(PNFetchMessageActionsResult *result, PNErrorStatus *status) { - XCTAssertFalse(status.isError); - XCTAssertEqual(result.data.actions.count, actionTimetokens.count); - - handler(); - }); - }]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.removeMessageAction() - .channel(expectedChannel) - .messageTimetoken(messageTimetokens[0]) - .actionTimetoken(actionTimetokens[0]) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { - XCTAssertFalse(status.isError); - - handler(); - }); - }]; - - [self waitTask:@"actionDeletePropagation" completionFor:2.f]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.fetchMessageActions() - .channel(expectedChannel) - .performWithCompletion(^(PNFetchMessageActionsResult *result, PNErrorStatus *status) { - XCTAssertFalse(status.isError); - XCTAssertEqual(result.data.actions.count, 0); - - handler(); - }); - }]; -} - -- (void)testRemoveAction_ShouldTriggerRemoveEvent_WhenRemovingAction { - NSString *expectedChannel = [NSUUID UUID].UUIDString; - [self.client2 addListener:self]; - - - NSArray *messageTimetokens = [self publishMessages:1 toChannel:expectedChannel]; - NSArray *actionTimetokens = [self addActions:1 - toMessages:messageTimetokens - inChannel:expectedChannel]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - [self addStatusHandlerForClient:self.client2 - withBlock:^(PubNub *client, PNSubscribeStatus *status, BOOL *remove) { - - if (status.category == PNConnectedCategory) { - *remove = YES; - - handler(); - } - }]; - - self.client2.subscribe().channels(@[expectedChannel]).perform(); - }]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - [self addActionHandlerForClient:self.client2 - withBlock:^(PubNub *client, PNMessageActionResult *event, BOOL *remove) { - *remove = YES; -#pragma GCC diagnostic push -#pragma clang diagnostic ignored "-Warc-retain-cycles" - PNMessageAction *action = event.data.action; - XCTAssertNotNil(action); - XCTAssertEqualObjects(action.uuid, self.client1.uuid); - XCTAssertEqualObjects(action.messageTimetoken, messageTimetokens[0]); - XCTAssertNotNil(action.actionTimetoken); - XCTAssertEqualObjects(event.data.event, @"removed"); -#pragma GCC diagnostic pop - - handler(); - }]; - - self.client1.removeMessageAction() - .channel(expectedChannel) - .messageTimetoken(messageTimetokens[0]) - .actionTimetoken(actionTimetokens[0]) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { }); - }]; -} - - -#pragma mark - Tests :: Fetch Action - -- (void)testFetchActions_ShouldFetchActions_WhenCalled { - NSString *expectedChannel = [NSUUID UUID].UUIDString; - - - NSArray *messageTimetokens = [self publishMessages:2 toChannel:expectedChannel]; - NSArray *actionTimetokens = [self addActions:3 - toMessages:messageTimetokens - inChannel:expectedChannel]; - NSNumber *firstPublishedActionTimetoken = actionTimetokens[0]; - NSNumber *lastPublishedActionTimetoken = actionTimetokens[actionTimetokens.count - 1]; - - [self waitTask:@"actionsStore" completionFor:2.f]; - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.fetchMessageActions() - .channel(expectedChannel) - .performWithCompletion(^(PNFetchMessageActionsResult *result, PNErrorStatus *status) { - NSArray *fetchedActions = result.data.actions; - XCTAssertFalse(status.isError); - NSNumber *firstFetchedActionTimetoken = fetchedActions[0].actionTimetoken; - NSNumber *lastFetchedActionTimetoken = fetchedActions[fetchedActions.count - 1].actionTimetoken; - - XCTAssertEqual([firstFetchedActionTimetoken compare:firstPublishedActionTimetoken], - NSOrderedSame); - XCTAssertEqual([lastFetchedActionTimetoken compare:lastPublishedActionTimetoken], - NSOrderedSame); - XCTAssertEqual(fetchedActions.count, actionTimetokens.count); - XCTAssertEqual([result.data.start compare:firstPublishedActionTimetoken], - NSOrderedSame); - XCTAssertEqual([result.data.end compare:lastPublishedActionTimetoken], - NSOrderedSame); - - - handler(); - }); - }]; -} - -- (void)testFetchActions_ShouldFetchNextActionsPage_WhenCalledWithLimitAndStart { - NSString *expectedChannel = [NSUUID UUID].UUIDString; - - - NSArray *messageTimetokens = [self publishMessages:2 toChannel:expectedChannel]; - NSArray *actionTimetokens = [self addActions:5 - toMessages:messageTimetokens - inChannel:expectedChannel]; - NSNumber *firstPublishedActionTimetoken = actionTimetokens[0]; - NSNumber *lastPublishedActionTimetoken = actionTimetokens[actionTimetokens.count - 1]; - NSUInteger halfSize = (NSUInteger)(actionTimetokens.count * 0.5f); - NSNumber *middlePublishedActionTimetoken = actionTimetokens[halfSize]; - NSNumber *middleMinusOnePublishedActionTimetoken = actionTimetokens[halfSize - 1]; - - [self waitTask:@"actionsStore" completionFor:2.f]; - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.fetchMessageActions() - .channel(expectedChannel) - .limit(halfSize) - .performWithCompletion(^(PNFetchMessageActionsResult *result, PNErrorStatus *status) { - NSArray *fetchedActions = result.data.actions; - XCTAssertFalse(status.isError); - NSNumber *firstFetchedActionTimetoken = fetchedActions[0].actionTimetoken; - NSNumber *lastFetchedActionTimetoken = fetchedActions[fetchedActions.count - 1].actionTimetoken; - - XCTAssertEqual([firstFetchedActionTimetoken compare:middlePublishedActionTimetoken], - NSOrderedSame); - XCTAssertEqual([lastFetchedActionTimetoken compare:lastPublishedActionTimetoken], - NSOrderedSame); - XCTAssertEqual(fetchedActions.count, halfSize); - XCTAssertEqual([result.data.start compare:middlePublishedActionTimetoken], - NSOrderedSame); - XCTAssertEqual([result.data.end compare:lastPublishedActionTimetoken], - NSOrderedSame); - - handler(); - }); - }]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.fetchMessageActions() - .channel(expectedChannel) - .start(middlePublishedActionTimetoken) - .limit(halfSize) - .performWithCompletion(^(PNFetchMessageActionsResult *result, PNErrorStatus *status) { - NSArray *fetchedActions = result.data.actions; - XCTAssertFalse(status.isError); - NSNumber *firstFetchedActionTimetoken = fetchedActions[0].actionTimetoken; - NSNumber *lastFetchedActionTimetoken = fetchedActions[fetchedActions.count - 1].actionTimetoken; - - XCTAssertEqual([firstFetchedActionTimetoken compare:firstPublishedActionTimetoken], - NSOrderedSame); - XCTAssertEqual([lastFetchedActionTimetoken compare:middleMinusOnePublishedActionTimetoken], - NSOrderedSame); - XCTAssertEqual(fetchedActions.count, halfSize); - XCTAssertEqual([result.data.start compare:firstPublishedActionTimetoken], - NSOrderedSame); - XCTAssertEqual([result.data.end compare:middleMinusOnePublishedActionTimetoken], - NSOrderedSame); - - handler(); - }); - }]; -} - - -#pragma mark - Misc - -- (NSArray *)publishMessages:(NSUInteger)messagesCount toChannel:(NSString *)channel { - NSMutableArray *timetokens = [NSMutableArray new]; - - for (NSUInteger messageIdx = 0; messageIdx < messagesCount; messageIdx++) { - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.publish() - .message(@{ - @"messageIdx": @(messageIdx), - @"time": @([NSDate date].timeIntervalSince1970) - }) - .channel(channel) - .performWithCompletion(^(PNPublishStatus *status) { - if (!status.isError) { - [timetokens addObject:status.data.timetoken]; - } else { - NSLog(@"Publish did fail: %@", status.errorData.information); - } - - handler(); - }); - }]; - } - - return timetokens; -} - -- (NSArray *)addActions:(NSUInteger)actionsCount - toMessages:(NSArray *)messages - inChannel:(NSString *)channel { - NSArray *types = @[@"reaction", @"receipt", @"custom"]; - NSArray *values = @[ - [NSUUID UUID].UUIDString, [NSUUID UUID].UUIDString, - [NSUUID UUID].UUIDString, [NSUUID UUID].UUIDString, - [NSUUID UUID].UUIDString, [NSUUID UUID].UUIDString, - [NSUUID UUID].UUIDString, [NSUUID UUID].UUIDString, - [NSUUID UUID].UUIDString, [NSUUID UUID].UUIDString - ]; - NSMutableArray *timetokens = [NSMutableArray new]; - - for (NSUInteger messageIdx = 0; messageIdx < messages.count; messageIdx++) { - NSNumber *messageTimetoken = messages[messageIdx]; - - for (NSUInteger messageActionIdx = 0; messageActionIdx < actionsCount; messageActionIdx++) { - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.addMessageAction() - .channel(channel) - .messageTimetoken(messageTimetoken) - .type(types[(messageActionIdx + 1)%3]) - .value(values[(messageActionIdx + 1)%10]) - .performWithCompletion(^(PNAddMessageActionStatus *status) { - if (!status.isError) { - [timetokens addObject:status.data.action.actionTimetoken]; - } - handler(); - }); - }]; - } - } - - return timetokens; -} - -#pragma mark - - - -@end diff --git a/Tests/iOS Tests/Tests/Integration/History/PNHistoryIntegrationTest.m b/Tests/iOS Tests/Tests/Integration/History/PNHistoryIntegrationTest.m deleted file mode 100644 index cd1cf61bd..000000000 --- a/Tests/iOS Tests/Tests/Integration/History/PNHistoryIntegrationTest.m +++ /dev/null @@ -1,578 +0,0 @@ -#import "PNTestCase.h" - - -NS_ASSUME_NONNULL_BEGIN - - -#pragma mark Test interface declaration - -@interface PNHistoryIntegrationTest : PNTestCase - - -#pragma mark - Information - -@property (nonatomic, strong) PubNub *client; - - -#pragma mark - Misc - -/** - * @brief Publish test messages to specified \c channel. - * - * @param messagesCount How many messages should be published to specified \c channel. - * @param channel Name of channel which will be used in test with pre-published messages. - * - * @return List of published message and timetokens. - */ -- (NSArray *)publishMessages:(NSUInteger)messagesCount - toChannel:(NSString *)channel; - -/** - * @brief Publish test messages to set of specified \c channels. - * - * @param messagesCount How many messages should be published to specified \c channel. - * @param channels List of channel names which will be used in test with pre-published messages. - * - * @return List of published message and timetokens mapped to channel names. - */ -- (NSDictionary *> *)publishMessages:(NSUInteger)messagesCount - toChannels:(NSArray *)channels; - -/** - * @brief Publish test messages to specified \c channel. - * - * @param actionsCount How many actions should be added for each message. - * @param messages List of publish timetokens for messages to which \c actions will be added. - * @param channel Name of channel which contains references messages. - * - * @return List of message actions. - */ -- (NSArray *)addActions:(NSUInteger)actionsCount - toMessages:(NSArray *)messages - inChannel:(NSString *)channel; - -/** - * @brief Publish test messages to set of specified \c channels. - * - * @param actionsCount How many actions should be added for each message. - * @param messages List of publish timetokens for messages to which \c actions will be added. - * @param channel List of channel names which contains references messages. - * - * @return List of message actions mapped to channel names. - */ -- (NSDictionary *> *)addActions:(NSUInteger)actionsCount - toMessages:(NSArray *)messages - inChannels:(NSArray *)channels; - -#pragma mark - - - -@end - -NS_ASSUME_NONNULL_END - - -#pragma mark - Interface implementation - -@implementation PNHistoryIntegrationTest - - -#pragma mark - Setup / Tear down - -- (void)setUp { - [super setUp]; - - - dispatch_queue_t callbackQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); - PNConfiguration *configuration = [PNConfiguration configurationWithPublishKey:self.publishKey - subscribeKey:self.subscribeKey]; - - self.client = [PubNub clientWithConfiguration:configuration callbackQueue:callbackQueue]; -} - -- (void)tearDown { - [self removeAllHandlersForClient:self.client]; - [self.client removeListener:self]; - - - [super tearDown]; -} - - -#pragma mark - Tests :: History for channel - -- (void)testHistoryForChannel_ShouldFetchHistory_WhenCalled { - NSString *expectedChannel = [NSUUID UUID].UUIDString; - NSUInteger expectedCount = 4; - NSUInteger verifiedMessageIdx = (NSUInteger)(expectedCount * 0.5f); - - - NSArray *messages = [self publishMessages:expectedCount toChannel:expectedChannel]; - NSNumber *firstMessageTimetoken = messages[0][@"timetoken"]; - NSNumber *lastMessageTimetoken = messages[expectedCount - 1][@"timetoken"]; - - [self waitTask:@"propagateToStorage" completionFor:2.f]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.history() - .channel(expectedChannel) - .performWithCompletion(^(PNHistoryResult *result, PNErrorStatus *status) { - XCTAssertFalse(status.isError); - XCTAssertNotNil(result.data.messages); - XCTAssertEqualObjects(result.data.channels, @{}); - XCTAssertEqual(result.data.messages.count, messages.count); - XCTAssertEqualObjects(result.data.messages[verifiedMessageIdx], - messages[verifiedMessageIdx][@"message"]); - XCTAssertEqual([result.data.start compare:firstMessageTimetoken], NSOrderedSame); - XCTAssertEqual([result.data.end compare:lastMessageTimetoken], NSOrderedSame); - - handler(); - }); - }]; -} - -- (void)testHistoryForChannel_ShouldFetchHistoryWithMessageMetadata_WhenCalled { - NSString *expectedChannel = [NSUUID UUID].UUIDString; - NSUInteger expectedCount = 4; - NSUInteger verifiedMessageIdx = (NSUInteger)(expectedCount * 0.5f); - - - NSArray *messages = [self publishMessages:expectedCount toChannel:expectedChannel]; - NSNumber *firstMessageTimetoken = messages[0][@"timetoken"]; - NSNumber *lastMessageTimetoken = messages[expectedCount - 1][@"timetoken"]; - NSDictionary *verifiedMessage = messages[verifiedMessageIdx]; - - [self waitTask:@"propagateToStorage" completionFor:2.f]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.history() - .channel(expectedChannel) - .includeMetadata(YES) - .performWithCompletion(^(PNHistoryResult *result, PNErrorStatus *status) { - XCTAssertFalse(status.isError); - XCTAssertNotNil(result.data.messages); - XCTAssertEqualObjects(result.data.channels, @{}); - XCTAssertEqual(result.data.messages.count, messages.count); - XCTAssertEqualObjects(result.data.messages[verifiedMessageIdx][@"message"], - verifiedMessage[@"message"]); - XCTAssertEqualObjects(result.data.messages[verifiedMessageIdx][@"metadata"], - @{ @"time": verifiedMessage[@"message"][@"time"]}); - XCTAssertEqual([result.data.start compare:firstMessageTimetoken], NSOrderedSame); - XCTAssertEqual([result.data.end compare:lastMessageTimetoken], NSOrderedSame); - - handler(); - }); - }]; -} - -- (void)testHistoryForChannel_ShouldFetchNextMessagesPage_WhenCalledWithLimitAndStart { - NSString *expectedChannel = [NSUUID UUID].UUIDString; - NSUInteger expectedCount = 10; - NSUInteger halfSize = (NSUInteger)(expectedCount * 0.5f); - - - NSArray *messages = [self publishMessages:expectedCount toChannel:expectedChannel]; - [self waitTask:@"propagateToStorage" completionFor:2.f]; - NSNumber *firstMessageTimetoken = messages[0][@"timetoken"]; - NSNumber *lastMessageTimetoken = messages[expectedCount - 1][@"timetoken"]; - NSNumber *middlePublishedMessageTimetoken = messages[halfSize][@"timetoken"]; - NSNumber *middleMinusOnePublishedPublishedTimetoken = messages[halfSize - 1][@"timetoken"]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.history() - .channel(expectedChannel) - .includeTimeToken(YES) - .limit(halfSize) - .performWithCompletion(^(PNHistoryResult *result, PNErrorStatus *status) { - XCTAssertFalse(status.isError); - NSArray *fetchedMessages = result.data.messages; - NSNumber *firstFetchedMessageTimetoken = fetchedMessages[0][@"timetoken"]; - NSNumber *lastFetchedMessageTimetoken = fetchedMessages.lastObject[@"timetoken"]; - - XCTAssertEqual([firstFetchedMessageTimetoken compare:middlePublishedMessageTimetoken], - NSOrderedSame); - XCTAssertEqual([lastFetchedMessageTimetoken compare:lastMessageTimetoken], - NSOrderedSame); - XCTAssertEqual(fetchedMessages.count, halfSize); - XCTAssertEqual([result.data.start compare:middlePublishedMessageTimetoken], - NSOrderedSame); - XCTAssertEqual([result.data.end compare:lastMessageTimetoken], - NSOrderedSame); - - handler(); - }); - }]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.history() - .channel(expectedChannel) - .includeTimeToken(YES) - .start(middlePublishedMessageTimetoken) - .limit(halfSize) - .performWithCompletion(^(PNHistoryResult *result, PNErrorStatus *status) { - XCTAssertFalse(status.isError); - NSArray *fetchedMessages = result.data.messages; - NSNumber *firstFetchedMessageTimetoken = fetchedMessages[0][@"timetoken"]; - NSNumber *lastFetchedMessageTimetoken = fetchedMessages.lastObject[@"timetoken"]; - - XCTAssertEqual([firstFetchedMessageTimetoken compare:firstMessageTimetoken], - NSOrderedSame); - XCTAssertEqual([lastFetchedMessageTimetoken compare:middleMinusOnePublishedPublishedTimetoken], - NSOrderedSame); - XCTAssertEqual(fetchedMessages.count, halfSize); - XCTAssertEqual([result.data.start compare:firstMessageTimetoken], - NSOrderedSame); - XCTAssertEqual([result.data.end compare:middleMinusOnePublishedPublishedTimetoken], - NSOrderedSame); - - handler(); - }); - }]; -} - - -#pragma mark - Tests :: History for channel with actions - -- (void)testHistoryWithActions_ShouldFetchWithActions_WhenCalled { - NSString *expectedChannel = [NSUUID UUID].UUIDString; - NSUInteger expectedMessagesCount = 2; - NSUInteger expectedActionsCount = 4; - - - NSArray *messages = [self publishMessages:expectedMessagesCount - toChannel:expectedChannel]; - NSArray *messageTimetokens = [messages valueForKey:@"timetoken"]; - NSArray *actions = [self addActions:expectedActionsCount - toMessages:messageTimetokens - inChannel:expectedChannel]; - - [self waitTask:@"propagateToStorage" completionFor:2.f]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.history() - .channel(expectedChannel) - .includeMessageActions(YES) - .includeMetadata(YES) - .performWithCompletion(^(PNHistoryResult *result, PNErrorStatus *status) { - XCTAssertFalse(status.isError); - NSArray *messages = result.data.channels[expectedChannel]; - NSDictionary *actionsByType = [messages.firstObject valueForKey:@"actions"]; - NSUInteger historyActionsCount = 0; - - for (NSString *actionType in actionsByType) { - for (NSString *actionValue in actionsByType[actionType]) { - BOOL actionFound = NO; - historyActionsCount++; - - for (PNMessageAction *action in actions) { - if (![action.value isEqualToString:actionValue]) { - continue; - } - - actionFound = YES; - } - - XCTAssertTrue(actionFound); - } - }; - - XCTAssertEqual(historyActionsCount, expectedActionsCount); - XCTAssertEqualObjects(messages.firstObject[@"timetoken"], messageTimetokens.firstObject); - XCTAssertEqualObjects(messages.lastObject[@"timetoken"], messageTimetokens.lastObject); - - handler(); - }); - }]; -} - - -#pragma mark - Tests :: History for channels - -- (void)testHistoryForChannels_ShouldFetchOneMessageForEachChannel_WhenCalledWithOutLimit { - NSArray *expectedChannels = @[[NSUUID UUID].UUIDString, [NSUUID UUID].UUIDString]; - NSUInteger expectedCount = 4; - - - NSDictionary *messages = [self publishMessages:expectedCount - toChannels:expectedChannels]; - NSArray *messages1 = messages[expectedChannels.firstObject]; - NSArray *messages2 = messages[expectedChannels.lastObject]; - - [self waitTask:@"propagateToStorage" completionFor:2.f]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.history() - .channels(expectedChannels) - .performWithCompletion(^(PNHistoryResult *result, PNErrorStatus *status) { - XCTAssertFalse(status.isError); - XCTAssertNotEqualObjects(result.data.channels, @{}); - XCTAssertEqualObjects(result.data.messages, @[]); - NSDictionary *channels = result.data.channels; - NSArray *channel1Messages = channels[expectedChannels.firstObject]; - NSArray *channel2Messages = channels[expectedChannels.lastObject]; - XCTAssertEqual(channels.count, expectedChannels.count); - XCTAssertEqual(channel1Messages.count, 1); - XCTAssertEqual(channel2Messages.count, 1); - XCTAssertEqualObjects(channel1Messages.firstObject[@"message"], - messages1.lastObject[@"message"]); - XCTAssertEqualObjects(channel2Messages.firstObject[@"message"], - messages2.lastObject[@"message"]); - XCTAssertEqual([channel1Messages.firstObject[@"timetoken"] - compare:messages1.lastObject[@"timetoken"]], NSOrderedSame); - XCTAssertEqual([channel2Messages.firstObject[@"timetoken"] - compare:messages2.lastObject[@"timetoken"]], NSOrderedSame); - XCTAssertEqual([result.data.start compare:@(0)], NSOrderedSame); - XCTAssertEqual([result.data.end compare:@(0)], NSOrderedSame); - - handler(); - }); - }]; -} - -- (void)testHistoryForChannels_ShouldFetchMessagesForEachChannel_WhenCalledWithLimit { - NSArray *expectedChannels = @[[NSUUID UUID].UUIDString, [NSUUID UUID].UUIDString]; - NSUInteger expectedCount = 4; - NSUInteger verifiedMessageIdx = (NSUInteger)(expectedCount * 0.5f); - - NSDictionary *messages = [self publishMessages:expectedCount - toChannels:expectedChannels]; - NSArray *messages1 = messages[expectedChannels.firstObject]; - NSArray *messages2 = messages[expectedChannels.lastObject]; - NSNumber *firstChannl1MessageTimetoken = messages1.firstObject[@"timetoken"]; - NSNumber *lastChannl1MessageTimetoken = messages1.lastObject[@"timetoken"]; - NSNumber *firstChannl2MessageTimetoken = messages2.firstObject[@"timetoken"]; - NSNumber *lastChannl2MessageTimetoken = messages2.lastObject[@"timetoken"]; - - [self waitTask:@"propagateToStorage" completionFor:2.f]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.history() - .channels(expectedChannels) - .limit(25) - .includeMetadata(YES) - .performWithCompletion(^(PNHistoryResult *result, PNErrorStatus *status) { - XCTAssertFalse(status.isError); - XCTAssertNotEqualObjects(result.data.channels, @{}); - XCTAssertEqualObjects(result.data.messages, @[]); - NSDictionary *channels = result.data.channels; - NSArray *channel1Messages = channels[expectedChannels.firstObject]; - NSArray *channel2Messages = channels[expectedChannels.lastObject]; - XCTAssertEqual(channels.count, expectedChannels.count); - XCTAssertEqual(channel1Messages.count, messages1.count); - XCTAssertEqual(channel2Messages.count, messages2.count); - XCTAssertEqualObjects(channel1Messages[verifiedMessageIdx][@"message"], - messages1[verifiedMessageIdx][@"message"]); - XCTAssertEqualObjects(channel2Messages[verifiedMessageIdx][@"message"], - messages2[verifiedMessageIdx][@"message"]); - XCTAssertEqualObjects(channel1Messages[verifiedMessageIdx][@"metadata"], - @{ @"time": messages1[verifiedMessageIdx][@"message"][@"time"]}); - XCTAssertEqualObjects(channel2Messages[verifiedMessageIdx][@"metadata"], - @{ @"time": messages2[verifiedMessageIdx][@"message"][@"time"]}); - XCTAssertEqual([channel1Messages.firstObject[@"timetoken"] - compare:firstChannl1MessageTimetoken], NSOrderedSame); - XCTAssertEqual([channel1Messages.lastObject[@"timetoken"] - compare:lastChannl1MessageTimetoken], NSOrderedSame); - XCTAssertEqual([channel2Messages.firstObject[@"timetoken"] - compare:firstChannl2MessageTimetoken], NSOrderedSame); - XCTAssertEqual([channel2Messages.lastObject[@"timetoken"] - compare:lastChannl2MessageTimetoken], NSOrderedSame); - - handler(); - }); - }]; -} - - -#pragma mark - Tests :: Messages Count - -- (void)testMessageCounts_ShouldFetchCount_WhenSingleChannelAndTimetokenPassed { - NSArray *expectedChannels = @[[NSUUID UUID].UUIDString]; - NSUInteger expectedCount = 3; - - - NSDictionary *messages = [self publishMessages:expectedCount - toChannels:expectedChannels]; - NSArray *channelTimetokens = [messages[expectedChannels.firstObject] valueForKey:@"timetoken"]; - NSNumber *timetoken = channelTimetokens[channelTimetokens.count - 2]; - NSDictionary *expected = @{ expectedChannels.firstObject: @(1) }; - - [self waitTask:@"propagateToStorage" completionFor:2.f]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.messageCounts().channels(expectedChannels).timetokens(@[timetoken]) - .performWithCompletion(^(PNMessageCountResult *result, PNErrorStatus *status) { - XCTAssertNil(status); - XCTAssertEqualObjects(result.data.channels, expected); - handler(); - }); - }]; -} - -- (void)testMessageCounts_ShouldFetchCount_WhenSingleTimetokenAndMultipleChannelsPassed { - NSArray *expectedChannels = @[[NSUUID UUID].UUIDString, [NSUUID UUID].UUIDString]; - NSUInteger expectedCount = 3; - - - NSDictionary *messages = [self publishMessages:expectedCount - toChannels:expectedChannels]; - NSArray *channelTimetokens = [messages[expectedChannels.firstObject] valueForKey:@"timetoken"]; - NSNumber *timetoken = channelTimetokens[channelTimetokens.count - 2]; - NSDictionary *expected = @{ expectedChannels.firstObject: @(1), expectedChannels.lastObject: @(3) }; - - [self waitTask:@"propagateToStorage" completionFor:2.f]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.messageCounts().channels(expectedChannels).timetokens(@[timetoken]) - .performWithCompletion(^(PNMessageCountResult *result, PNErrorStatus *status) { - XCTAssertNil(status); - XCTAssertEqualObjects(result.data.channels, expected); - handler(); - }); - }]; -} - -- (void)testMessageCounts_ShouldFetchCount_WhenPerChannelTimetokenPassed { - NSArray *expectedChannels = @[[NSUUID UUID].UUIDString, [NSUUID UUID].UUIDString]; - NSUInteger expectedCount = 3; - - - NSDictionary *messages = [self publishMessages:expectedCount - toChannels:expectedChannels]; - NSArray *channelTimetokens1 = [messages[expectedChannels.firstObject] valueForKey:@"timetoken"]; - NSArray *channelTimetokens2 = [messages[expectedChannels.lastObject] valueForKey:@"timetoken"]; - NSNumber *timetoken1 = channelTimetokens1[channelTimetokens1.count - 2]; - NSNumber *timetoken2 = channelTimetokens2[channelTimetokens2.count - 2]; - NSArray *timetokens = @[timetoken1, timetoken2]; - NSDictionary *expected = @{ expectedChannels.firstObject: @(1), expectedChannels.lastObject: @(1) }; - - [self waitTask:@"propagateToStorage" completionFor:2.f]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.messageCounts().channels(expectedChannels).timetokens(timetokens) - .performWithCompletion(^(PNMessageCountResult *result, PNErrorStatus *status) { - XCTAssertNil(status); - XCTAssertEqualObjects(result.data.channels, expected); - handler(); - }); - }]; -} - -- (void)testMessageCounts_ShouldFail_WhenTimetokenNotPassed { - NSArray *channels = @[[NSUUID UUID].UUIDString, [NSUUID UUID].UUIDString]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.messageCounts().channels(channels) - .performWithCompletion(^(PNMessageCountResult *result, PNErrorStatus *status) { - XCTAssertNil(result); - XCTAssertTrue(status.isError); - handler(); - }); - }]; -} - - -#pragma mark - Misc - -- (NSArray *)publishMessages:(NSUInteger)messagesCount - toChannel:(NSString *)channel { - - NSMutableArray *messages = [NSMutableArray new]; - - for (NSUInteger messageIdx = 0; messageIdx < messagesCount; messageIdx++) { - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - NSDictionary *message = @{ - @"messageIdx": [@[channel, @(messageIdx)] componentsJoinedByString:@": "], - @"time": @([NSDate date].timeIntervalSince1970) - }; - - PNPublishAPICallBuilder *builder = self.client.publish().message(message).channel(channel); - if (messageIdx % 2 == 0) { - builder = builder.metadata(@{ @"time": message[@"time"] }); - } - - builder.performWithCompletion(^(PNPublishStatus *status) { - if (!status.isError) { - [messages addObject:@{ @"message": message, @"timetoken": status.data.timetoken }]; - } - - handler(); - }); - }]; - } - - return messages; -} - -- (NSDictionary *> *)publishMessages:(NSUInteger)messagesCount - toChannels:(NSArray *)channels { - - NSMutableDictionary *channelMessages = [NSMutableDictionary new]; - - for (NSString *channel in channels) { - channelMessages[channel] = [self publishMessages:messagesCount toChannel:channel]; - } - - return channelMessages; -} - -- (NSArray *)addActions:(NSUInteger)actionsCount - toMessages:(NSArray *)messages - inChannel:(NSString *)channel { - - NSArray *types = @[@"reaction", @"receipt", @"custom"]; - - static NSArray *_sharedHistoryActionValues; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - _sharedHistoryActionValues = @[ - [NSUUID UUID].UUIDString, [NSUUID UUID].UUIDString, - [NSUUID UUID].UUIDString, [NSUUID UUID].UUIDString, - [NSUUID UUID].UUIDString, [NSUUID UUID].UUIDString, - [NSUUID UUID].UUIDString, [NSUUID UUID].UUIDString, - [NSUUID UUID].UUIDString, [NSUUID UUID].UUIDString - ]; - }); - - NSMutableArray *actions = [NSMutableArray new]; - - for (NSUInteger messageIdx = 0; messageIdx < messages.count; messageIdx++) { - NSNumber *messageTimetoken = messages[messageIdx]; - - for (NSUInteger actionIdx = 0; actionIdx < actionsCount; actionIdx++) { - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.addMessageAction() - .channel(channel) - .messageTimetoken(messageTimetoken) - .type(types[(actionIdx + 1)%3]) - .value(_sharedHistoryActionValues[(actionIdx + 1)%10]) - .performWithCompletion(^(PNAddMessageActionStatus *status) { - if (!status.isError) { - [actions addObject:status.data.action]; - } - handler(); - }); - }]; - } - } - - return actions; -} - -- (NSDictionary *> *)addActions:(NSUInteger)actionsCount - toMessages:(NSArray *)messages - inChannels:(NSArray *)channels { - - NSMutableDictionary *channelActions = [NSMutableDictionary new]; - - for (NSString *channel in channels) { - channelActions[channel] = [self addActions:actionsCount - toMessages:messages - inChannel:channel]; - } - - return channelActions; -} - -#pragma mark - - -@end diff --git a/Tests/iOS Tests/Tests/Integration/Objects/PNMemberIntegrationTest.m b/Tests/iOS Tests/Tests/Integration/Objects/PNMemberIntegrationTest.m deleted file mode 100644 index 580cead6a..000000000 --- a/Tests/iOS Tests/Tests/Integration/Objects/PNMemberIntegrationTest.m +++ /dev/null @@ -1,666 +0,0 @@ -/** - * @author Serhii Mamontov - * @copyright © 2010-2019 PubNub, Inc. - */ -#import "PNObjectsTestCase.h" -#import -#import - - -NS_ASSUME_NONNULL_BEGIN - -#pragma mark Test interface declaration - -@interface PNMemberIntegrationTest : PNObjectsTestCase - - -#pragma mark - - - -@end - -NS_ASSUME_NONNULL_END - - -#pragma mark - Tests - -@implementation PNMemberIntegrationTest - - -#pragma mark - Setup / Tear down - -- (void)setUp { - [super setUp]; - - - if ([self.name rangeOfString:@"testFetch"].location != NSNotFound) { - self.testUsersCount = 6; - } else { - self.testUsersCount = 2; - } - - self.testSpacesCount = 1; - - if ([self.name rangeOfString:@"testFetch"].location != NSNotFound || - ([self.name rangeOfString:@"testDelete"].location != NSNotFound && - [self.name rangeOfString:@"Fail"].location == NSNotFound) ) { - - [self cleanUpUserObjects]; - [self cleanUpSpaceObjects]; - } -} - - -#pragma mark - Tests :: Create - -- (void)testCreate_ShouldCreateAddMembers_WhenCalled { - NSArray *spaces = [self createTestSpaces]; - NSArray *members = [self createTestUsers]; - NSArray *customs = @[ - @{ @"user-member-custom": [NSUUID UUID].UUIDString }, - @{ @"user-member-custom": [NSUUID UUID].UUIDString } - ]; - - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.manageMembers().spaceId(spaces[0][@"id"]) - .includeFields(PNMemberCustomField) - .add(@[ - @{ @"userId": members[0][@"id"], @"custom": customs[0] }, - @{ @"userId": members[1][@"id"], @"custom": customs[1] } - ]) - .performWithCompletion(^(PNManageMembersStatus *status) { - NSArray *addedMembers = status.data.members; - - for (PNMember *addedMember in addedMembers) { - for (NSUInteger memberIdx = 0; memberIdx < members.count; memberIdx++) { - NSDictionary *member = members[memberIdx]; - - if ([addedMember.userId isEqualToString:member[@"id"]]) { - XCTAssertEqualObjects(addedMember.custom, customs[memberIdx]); - break; - } - } - } - - handler(); - }); - }]; -} - -- (void)testCreate_ShouldCreateAndReturnUserInformation_WhenUserAndUserCustomFlagsSet { - NSArray *spaces = [self createTestSpaces]; - NSArray *members = [self createTestUsers]; - - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.manageMembers().spaceId(spaces[0][@"id"]) - .includeFields(PNMemberUserField|PNMemberUserCustomField) - .add(@[@{ @"userId": members[0][@"id"] }, @{ @"userId": members[1][@"id"] }]) - .performWithCompletion(^(PNManageMembersStatus *status) { - NSArray *addedMembers = status.data.members; - - for (PNMember *addedMember in addedMembers) { - XCTAssertNotNil(addedMember.user); - - for (NSDictionary *member in members) { - if ([addedMember.user.identifier isEqualToString:member[@"id"]]) { - XCTAssertEqualObjects(addedMember.user.custom, member[@"custom"]); - break; - } - } - } - - handler(); - }); - }]; -} - -- (void)testCreate_ShouldTriggerCreateEventOnSpaceChannel_WhenNewMembersAdded { - NSArray *spaces = [self createTestSpaces]; - NSArray *members = [self createTestUsers]; - NSMutableArray *createdMemberships = [NSMutableArray new]; - NSString *channel = spaces[0][@"id"]; - [self.client2 addListener:self]; - - - [self subscribeOnObjectChannels:@[channel]]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - [self addMembershipHandlerForClient:self.client2 - withBlock:^(PubNub *client, PNMembershipEventResult *event, BOOL *remove) { - if ([createdMemberships indexOfObject:event.data.userId] == NSNotFound) { - [createdMemberships addObject:event.data.userId]; - } - - *remove = createdMemberships.count == members.count; -#pragma GCC diagnostic push -#pragma clang diagnostic ignored "-Warc-retain-cycles" - XCTAssertEqualObjects(event.data.event, @"create"); - XCTAssertNotNil(event.data.created); - XCTAssertNotNil(event.data.timestamp); - - if (createdMemberships.count == members.count) { - XCTAssertNotEqual([createdMemberships indexOfObject:members[0][@"id"]], NSNotFound); - XCTAssertNotEqual([createdMemberships indexOfObject:members[1][@"id"]], NSNotFound); - handler(); - } -#pragma GCC diagnostic pop - }]; - - self.client1.manageMembers().spaceId(spaces[0][@"id"]) - .add(@[@{ @"userId": members[0][@"id"] }, @{ @"userId": members[1][@"id"] }]) - .performWithCompletion(^(PNManageMembersStatus *status) { }); - }]; -} - -- (void)testCreate_ShouldTriggerCreateEventOnUserChannel_WhenNewMemberAdded { - NSArray *spaces = [self createTestSpaces]; - NSArray *members = [self createTestUsers]; - NSString *channel = members[0][@"id"]; - [self.client2 addListener:self]; - - - [self subscribeOnObjectChannels:@[channel]]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - [self addMembershipHandlerForClient:self.client2 - withBlock:^(PubNub *client, PNMembershipEventResult *event, BOOL *remove) { - - *remove = YES; -#pragma GCC diagnostic push -#pragma clang diagnostic ignored "-Warc-retain-cycles" - XCTAssertEqualObjects(event.data.event, @"create"); - XCTAssertNotNil(event.data.created); - XCTAssertNotNil(event.data.timestamp); - - handler(); -#pragma GCC diagnostic pop - }]; - - self.client1.manageMembers().spaceId(spaces[0][@"id"]) - .add(@[@{ @"userId": members[0][@"id"] }, @{ @"userId": members[1][@"id"] }]) - .performWithCompletion(^(PNManageMembersStatus *status) { }); - }]; -} - - - (void)testCreate_ShouldFail_WhenSpacesAlreadyHasTargetMembersInList { - NSArray *spaces = [self createTestSpaces]; - NSArray *members = [self createTestUsers]; - - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.manageMembers().spaceId(spaces[0][@"id"]) - .add(@[ @{ @"userId": members[0][@"id"] }, @{ @"userId": members[1][@"id"] }]) - .performWithCompletion(^(PNManageMembersStatus *status) { - XCTAssertFalse(status.isError); - handler(); - }); - }]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.manageMembers().spaceId(spaces[0][@"id"]) - .add(@[ @{ @"userId": members[0][@"id"] }, @{ @"userId": members[1][@"id"] }]) - .performWithCompletion(^(PNManageMembersStatus *status) { - XCTAssertTrue(status.isError); - XCTAssertEqual(status.statusCode, 400); - handler(); - }); - }]; -} - - -#pragma mark - Tests :: Update - -- (void)testUpdate_ShouldUpdate_WhenExistingMembers { - NSArray *spaces = [self createTestSpaces]; - NSArray *members = [self createTestUsers]; - NSArray *customs = @[ - @{ @"user-member-custom": [NSUUID UUID].UUIDString }, - @{ @"user-member-custom": [NSUUID UUID].UUIDString } - ]; - NSArray *expectedCustoms = @[ - @{ @"user-member-custom": [NSUUID UUID].UUIDString }, - @{ @"user-member-custom": [NSUUID UUID].UUIDString } - ]; - - - [self addMembers:members toSpaces:spaces withCustoms:customs]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.manageMembers().spaceId(spaces[0][@"id"]) - .includeFields(PNMemberCustomField) - .update(@[ - @{ @"userId": members[0][@"id"], @"custom": expectedCustoms[0] }, - @{ @"userId": members[1][@"id"], @"custom": expectedCustoms[1] } - ]) - .performWithCompletion(^(PNManageMembersStatus *status) { - NSArray *updatedMembers = status.data.members; - - for (PNMember *updatedMember in updatedMembers) { - for (NSUInteger memberIdx = 0; memberIdx < members.count; memberIdx++) { - NSDictionary *member = members[memberIdx]; - - if ([updatedMember.userId isEqualToString:member[@"id"]]) { - XCTAssertEqualObjects(updatedMember.custom, expectedCustoms[memberIdx]); - break; - } - } - } - - handler(); - }); - }]; -} - -- (void)testUpdate_ShouldUpdateAndReturnUserInformation_WhenUserAndUserCustomFlagsSet { - NSArray *spaces = [self createTestSpaces]; - NSArray *members = [self createTestUsers]; - NSArray *customs = @[ - @{ @"user-member-custom": [NSUUID UUID].UUIDString }, - @{ @"user-member-custom": [NSUUID UUID].UUIDString } - ]; - - - [self addMembers:members toSpaces:spaces withCustoms:nil]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.manageMembers().spaceId(spaces[0][@"id"]) - .includeFields(PNMemberUserField|PNMemberUserCustomField) - .update(@[ - @{ @"userId": members[0][@"id"], @"custom": customs[0] }, - @{ @"userId": members[1][@"id"], @"custom": customs[1] } - ]) - .performWithCompletion(^(PNManageMembersStatus *status) { - NSArray *updatedMembers = status.data.members; - - for (PNMember *updatedMember in updatedMembers) { - XCTAssertNotNil(updatedMember.user); - - for (NSDictionary *member in members) { - if ([updatedMember.user.identifier isEqualToString:member[@"id"]]) { - XCTAssertEqualObjects(updatedMember.user.custom, member[@"custom"]); - break; - } - } - } - - handler(); - }); - }]; -} - -- (void)testUpdate_ShouldTriggerUpdateEventOnSpaceChannel_WhenMembersUpdated { - NSArray *spaces = [self createTestSpaces]; - NSArray *members = [self createTestUsers]; - NSMutableArray *updatedMemberships = [NSMutableArray new]; - NSString *channel = spaces[0][@"id"]; - NSArray *customs = @[ - @{ @"user-member-custom": [NSUUID UUID].UUIDString }, - @{ @"user-member-custom": [NSUUID UUID].UUIDString } - ]; - [self.client2 addListener:self]; - - - [self addMembers:members toSpaces:spaces withCustoms:nil]; - [self subscribeOnObjectChannels:@[channel]]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - [self addMembershipHandlerForClient:self.client2 - withBlock:^(PubNub *client, PNMembershipEventResult *event, BOOL *remove) { - if ([updatedMemberships indexOfObject:event.data.userId] == NSNotFound) { - [updatedMemberships addObject:event.data.userId]; - } - - *remove = updatedMemberships.count == members.count; -#pragma GCC diagnostic push -#pragma clang diagnostic ignored "-Warc-retain-cycles" - XCTAssertEqualObjects(event.data.event, @"update"); - XCTAssertNotNil(event.data.updated); - XCTAssertNotNil(event.data.timestamp); - - if (updatedMemberships.count == members.count) { - XCTAssertNotEqual([updatedMemberships indexOfObject:members[0][@"id"]], NSNotFound); - XCTAssertNotEqual([updatedMemberships indexOfObject:members[1][@"id"]], NSNotFound); - handler(); - } -#pragma GCC diagnostic pop - }]; - - self.client1.manageMembers().spaceId(spaces[0][@"id"]).update(@[ - @{ @"userId": members[0][@"id"], @"custom": customs[0] }, - @{ @"userId": members[1][@"id"], @"custom": customs[1] } - ]) - .performWithCompletion(^(PNManageMembersStatus *status) { }); - }]; -} - -- (void)testUpdate_ShouldTriggerUpdateEventOnUserChannel_WhenMembersUpdated { - NSArray *spaces = [self createTestSpaces]; - NSArray *members = [self createTestUsers]; - NSArray *customs = @[ - @{ @"user-member-custom": [NSUUID UUID].UUIDString }, - @{ @"user-member-custom": [NSUUID UUID].UUIDString } - ]; - NSString *channel = members[0][@"id"]; - [self.client2 addListener:self]; - - - [self addMembers:members toSpaces:spaces withCustoms:nil]; - [self subscribeOnObjectChannels:@[channel]]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - [self addMembershipHandlerForClient:self.client2 - withBlock:^(PubNub *client, PNMembershipEventResult *event, BOOL *remove) { - - *remove = YES; -#pragma GCC diagnostic push -#pragma clang diagnostic ignored "-Warc-retain-cycles" - XCTAssertEqualObjects(event.data.event, @"update"); - XCTAssertEqualObjects(event.data.userId, members[0][@"id"]); - XCTAssertNotNil(event.data.updated); - XCTAssertNotNil(event.data.timestamp); - - handler(); -#pragma GCC diagnostic pop - }]; - - self.client1.manageMembers().spaceId(spaces[0][@"id"]) - .update(@[ - @{ @"userId": members[0][@"id"], @"custom": customs[0] }, - @{ @"userId": members[1][@"id"], @"custom": customs[1] } - ]) - .performWithCompletion(^(PNManageMembersStatus *status) { }); - }]; -} - - - (void)testUpdate_ShouldFail_WhenTargetUsersNotSpaceMembers { - NSArray *spaces = [self createTestSpaces]; - NSArray *members = [self createTestUsers]; - NSArray *customs = @[ - @{ @"user-member-custom": [NSUUID UUID].UUIDString }, - @{ @"user-member-custom": [NSUUID UUID].UUIDString } - ]; - - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.manageMembers().spaceId(spaces[0][@"id"]) - .update(@[ - @{ @"userId": members[0][@"id"], @"custom": customs[0] }, - @{ @"userId": members[1][@"id"], @"custom": customs[1] } - ]) - .performWithCompletion(^(PNManageMembersStatus *status) { - XCTAssertTrue(status.isError); - XCTAssertEqual(status.statusCode, 400); - handler(); - }); - }]; -} - - -#pragma mark - Tests :: Delete - -- (void)testDelete_ShouldDelete_WhenMemberExists { - NSArray *spaces = [self createTestSpaces]; - NSArray *members = [self createTestUsers]; - - - [self addMembers:members toSpaces:spaces withCustoms:nil]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.manageMembers().spaceId(spaces[0][@"id"]) - .remove(@[ members[0][@"id"] ]) - .performWithCompletion(^(PNManageMembersStatus *status) { - XCTAssertFalse(status.isError); - XCTAssertEqual(status.data.members.count, 1); - XCTAssertEqualObjects(status.data.members[0].userId, members[1][@"id"]); - XCTAssertNil(status.data.members[0].user); - - handler(); - }); - }]; -} - -- (void)testDelete_ShouldDeleteAndReturnRestOfUsersInformation_WhenUserAndUserCustomFlagsSet { - NSArray *spaces = [self createTestSpaces]; - NSArray *members = [self createTestUsers]; - - - [self addMembers:members toSpaces:spaces withCustoms:nil]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.manageMembers().spaceId(spaces[0][@"id"]) - .includeFields(PNMemberUserField|PNMemberUserCustomField) - .remove(@[ members[0][@"id"] ]) - .performWithCompletion(^(PNManageMembersStatus *status) { - XCTAssertFalse(status.isError); - XCTAssertEqual(status.data.members.count, 1); - XCTAssertNotNil(status.data.members[0].user); - XCTAssertEqualObjects(status.data.members[0].user.identifier, members[1][@"id"]); - XCTAssertEqualObjects(status.data.members[0].user.custom, members[1][@"custom"]); - - handler(); - }); - }]; -} - -- (void)testDelete_ShouldTriggerDeleteEventOnSpaceChannel_WhenMemberRemoved { - NSArray *spaces = [self createTestSpaces]; - NSArray *members = [self createTestUsers]; - NSMutableArray *deletedMemberships = [NSMutableArray new]; - NSString *channel = spaces[0][@"id"]; - [self.client2 addListener:self]; - - - [self addMembers:members toSpaces:spaces withCustoms:nil]; - [self subscribeOnObjectChannels:@[channel]]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - [self addMembershipHandlerForClient:self.client2 - withBlock:^(PubNub *client, PNMembershipEventResult *event, BOOL *remove) { - if ([deletedMemberships indexOfObject:event.data.userId] == NSNotFound) { - [deletedMemberships addObject:event.data.userId]; - } - - *remove = deletedMemberships.count == members.count; -#pragma GCC diagnostic push -#pragma clang diagnostic ignored "-Warc-retain-cycles" - XCTAssertEqualObjects(event.data.event, @"delete"); - XCTAssertNotNil(event.data.timestamp); - - if (deletedMemberships.count == members.count) { - XCTAssertNotEqual([deletedMemberships indexOfObject:members[0][@"id"]], NSNotFound); - XCTAssertNotEqual([deletedMemberships indexOfObject:members[1][@"id"]], NSNotFound); - handler(); - } -#pragma GCC diagnostic pop - }]; - - self.client1.manageMembers().spaceId(spaces[0][@"id"]) - .remove(@[ members[0][@"id"], members[1][@"id"] ]) - .performWithCompletion(^(PNManageMembersStatus *status) { }); - }]; -} - -- (void)testDelete_ShouldTriggerDeleteEventOnUserChannel_WhenMemberRemoved { - NSArray *spaces = [self createTestSpaces]; - NSArray *members = [self createTestUsers]; - NSString *channel = members[0][@"id"]; - [self.client2 addListener:self]; - - - [self addMembers:members toSpaces:spaces withCustoms:nil]; - [self subscribeOnObjectChannels:@[channel]]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - [self addMembershipHandlerForClient:self.client2 - withBlock:^(PubNub *client, PNMembershipEventResult *event, BOOL *remove) { - - *remove = YES; -#pragma GCC diagnostic push -#pragma clang diagnostic ignored "-Warc-retain-cycles" - XCTAssertEqualObjects(event.data.event, @"delete"); - XCTAssertEqualObjects(event.data.userId, members[0][@"id"]); - XCTAssertNotNil(event.data.timestamp); - - handler(); -#pragma GCC diagnostic pop - }]; - - self.client1.manageMembers().spaceId(spaces[0][@"id"]) - .remove(@[ members[0][@"id"], members[1][@"id"] ]) - .performWithCompletion(^(PNManageMembersStatus *status) { }); - }]; -} - - -#pragma mark - Tests :: Fetch - -- (void)testFetch_ShouldFetch_WhenCalledWithDefauls { - NSArray *spaces = [self createTestSpaces]; - NSArray *members = [self createTestUsers]; - NSMutableArray *customs = [NSMutableArray new]; - - for (NSUInteger memberIdx = 0; memberIdx < members.count; memberIdx++) { - [customs addObject:@{ @"user-member-custom": [NSUUID UUID].UUIDString }]; - } - - - [self addMembers:members toSpaces:spaces withCustoms:nil]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.fetchMembers().spaceId(spaces[0][@"id"]) - .performWithCompletion(^(PNFetchMembersResult *result, PNErrorStatus *status) { - XCTAssertEqual(result.data.members.count, members.count); - XCTAssertEqual(result.data.totalCount, 0); - - handler(); - }); - }]; -} - -- (void)testFetch_ShouldFetchLimited_WhenCalledWithLimit { - NSArray *spaces = [self createTestSpaces]; - NSArray *members = [self createTestUsers]; - NSMutableArray *customs = [NSMutableArray new]; - NSUInteger expectedCount = 2; - - for (NSUInteger memberIdx = 0; memberIdx < members.count; memberIdx++) { - [customs addObject:@{ @"user-member-custom": [NSUUID UUID].UUIDString }]; - } - - - [self addMembers:members toSpaces:spaces withCustoms:nil]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.fetchMembers().spaceId(spaces[0][@"id"]).limit(expectedCount) - .includeFields(PNMemberCustomField).includeCount(YES) - .performWithCompletion(^(PNFetchMembersResult *result, PNErrorStatus *status) { - XCTAssertEqual(result.data.members.count, expectedCount); - XCTAssertEqual(result.data.totalCount, members.count); - XCTAssertNotNil(result.data.members[0].custom); - - handler(); - }); - }]; -} - -- (void)testFetch_ShouldFetchNextPage_WhenCalledWithStart { - NSArray *spaces = [self createTestSpaces]; - NSArray *members = [self createTestUsers]; - __block NSString *next = nil; - - - [self addMembers:members toSpaces:spaces withCustoms:nil]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.fetchMembers().spaceId(spaces[0][@"id"]).limit(members.count - 2) - .includeCount(YES) - .performWithCompletion(^(PNFetchMembersResult *result, PNErrorStatus *status) { - XCTAssertFalse(status.isError); - XCTAssertEqual(result.data.members.count, members.count - 2); - next = result.data.next; - handler(); - }); - }]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.fetchMembers().spaceId(spaces[0][@"id"]).start(next).includeCount(YES) - .performWithCompletion(^(PNFetchMembersResult *result, PNErrorStatus *status) { - XCTAssertEqual(result.data.members.count, 2); - - handler(); - }); - }]; -} - - -#pragma mark - Tests :: Member events - -- (void)testUser_ShouldTriggerUpdateEventOnSpaceChannel_WhenUserFromSpaceMembersUpdated { - NSArray *spaces = [self createTestSpaces]; - NSArray *users = [self createTestUsers]; - NSString *channel = spaces[0][@"id"]; - NSArray *customs = @[ - @{ @"user-membership-custom": [NSUUID UUID].UUIDString }, - @{ @"user-membership-custom": [NSUUID UUID].UUIDString } - ]; - [self.client2 addListener:self]; - - - [self addMembers:users toSpaces:spaces withCustoms:nil]; - [self subscribeOnObjectChannels:@[channel]]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - [self addUserHandlerForClient:self.client2 - withBlock:^(PubNub *client, PNUserEventResult *event, BOOL *remove) { - *remove = YES; -#pragma GCC diagnostic push -#pragma clang diagnostic ignored "-Warc-retain-cycles" - XCTAssertEqualObjects(event.data.event, @"update"); - XCTAssertEqualObjects(event.data.identifier, users[0][@"id"]); - XCTAssertNotNil(event.data.updated); - XCTAssertNotNil(event.data.timestamp); - - handler(); -#pragma GCC diagnostic pop - }]; - - self.client1.updateUser().userId(users[0][@"id"]).custom(customs[0]) - .performWithCompletion(^(PNUpdateUserStatus *status) { }); - }]; -} - -- (void)testUser_ShouldTriggerDeleteEventOnSpaceChannel_WhenUserFromSpaceMembersRemoved { - NSArray *spaces = [self createTestSpaces]; - NSArray *users = [self createTestUsers]; - NSString *channel = spaces[0][@"id"]; - [self.client2 addListener:self]; - - - [self addMembers:users toSpaces:spaces withCustoms:nil]; - [self subscribeOnObjectChannels:@[channel]]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - [self addUserHandlerForClient:self.client2 - withBlock:^(PubNub *client, PNUserEventResult *event, BOOL *remove) { - *remove = YES; -#pragma GCC diagnostic push -#pragma clang diagnostic ignored "-Warc-retain-cycles" - XCTAssertEqualObjects(event.data.event, @"delete"); - XCTAssertEqualObjects(event.data.identifier, users[0][@"id"]); - XCTAssertNotNil(event.data.timestamp); - - handler(); -#pragma GCC diagnostic pop - }]; - - self.client1.deleteUser().userId(users[0][@"id"]) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { }); - }]; -} - -#pragma mark - - - -@end diff --git a/Tests/iOS Tests/Tests/Integration/Objects/PNMembershipIntegrationTest.m b/Tests/iOS Tests/Tests/Integration/Objects/PNMembershipIntegrationTest.m deleted file mode 100644 index e1078a27a..000000000 --- a/Tests/iOS Tests/Tests/Integration/Objects/PNMembershipIntegrationTest.m +++ /dev/null @@ -1,638 +0,0 @@ -/** - * @author Serhii Mamontov - * @copyright © 2010-2019 PubNub, Inc. - */ -#import "PNObjectsTestCase.h" -#import -#import - - -NS_ASSUME_NONNULL_BEGIN - -#pragma mark Test interface declaration - -@interface PNMembershipIntegrationTest : PNObjectsTestCase - - -#pragma mark - - - -@end - -NS_ASSUME_NONNULL_END - - -#pragma mark - Tests - -@implementation PNMembershipIntegrationTest - - -#pragma mark - Setup / Tear down - -- (void)setUp { - [super setUp]; - - - if ([self.name rangeOfString:@"testFetch"].location != NSNotFound) { - self.testSpacesCount = 6; - } else { - self.testSpacesCount = 2; - } - - self.testUsersCount = 1; - - if ([self.name rangeOfString:@"testFetch"].location != NSNotFound || - ([self.name rangeOfString:@"testDelete"].location != NSNotFound && - [self.name rangeOfString:@"Fail"].location == NSNotFound) ) { - - [self cleanUpUserObjects]; - [self cleanUpSpaceObjects]; - } -} - - -#pragma mark - Tests :: Create - -- (void)testCreate_ShouldCreateNewMembership_WhenCalled { - NSArray *spaces = [self createTestSpaces]; - NSArray *users = [self createTestUsers]; - NSArray *customs = @[ - @{ @"user-membership-custom": [NSUUID UUID].UUIDString }, - @{ @"user-membership-custom": [NSUUID UUID].UUIDString } - ]; - - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.manageMemberships().userId(users[0][@"id"]) - .includeFields(PNMembershipCustomField) - .add(@[ - @{ @"spaceId": spaces[0][@"id"], @"custom": customs[0] }, - @{ @"spaceId": spaces[1][@"id"], @"custom": customs[1] } - ]) - .performWithCompletion(^(PNManageMembershipsStatus *status) { - NSArray *memberships = status.data.memberships; - - for (PNMembership *membership in memberships) { - for (NSUInteger spaceIdx = 0; spaceIdx < spaces.count; spaceIdx++) { - NSDictionary *space = spaces[spaceIdx]; - - if ([membership.spaceId isEqualToString:space[@"id"]]) { - XCTAssertEqualObjects(membership.custom, customs[spaceIdx]); - break; - } - } - } - - handler(); - }); - }]; -} - -- (void)testCreate_ShouldCreateAndReturnSpaceInformation_WhenSpaceAndSpaceCustomFlagsSet { - NSArray *spaces = [self createTestSpaces]; - NSArray *users = [self createTestUsers]; - - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.manageMemberships().userId(users[0][@"id"]) - .includeFields(PNMembershipSpaceField|PNMembershipSpaceCustomField) - .add(@[@{ @"spaceId": spaces[0][@"id"] }, @{ @"spaceId": spaces[1][@"id"] }]) - .performWithCompletion(^(PNManageMembershipsStatus *status) { - NSArray *memberships = status.data.memberships; - - for (PNMembership *membership in memberships) { - XCTAssertNotNil(membership.space); - - for (NSDictionary *space in spaces) { - if ([membership.space.identifier isEqualToString:space[@"id"]]) { - XCTAssertEqualObjects(membership.space.custom, space[@"custom"]); - break; - } - } - } - - handler(); - }); - }]; -} - -- (void)testCreate_ShouldTriggerCreateEventOnUserChannel_WhenNewMembershipCreated { - NSArray *spaces = [self createTestSpaces]; - NSArray *users = [self createTestUsers]; - NSMutableArray *createdMemberships = [NSMutableArray new]; - NSString *channel = users[0][@"id"]; - [self.client2 addListener:self]; - - - [self subscribeOnObjectChannels:@[channel]]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - [self addMembershipHandlerForClient:self.client2 - withBlock:^(PubNub *client, PNMembershipEventResult *event, BOOL *remove) { - if ([createdMemberships indexOfObject:event.data.spaceId] == NSNotFound) { - [createdMemberships addObject:event.data.spaceId]; - } - - *remove = createdMemberships.count == spaces.count; -#pragma GCC diagnostic push -#pragma clang diagnostic ignored "-Warc-retain-cycles" - XCTAssertEqualObjects(event.data.event, @"create"); - XCTAssertNotNil(event.data.created); - XCTAssertNotNil(event.data.timestamp); - - if (createdMemberships.count == spaces.count) { - XCTAssertNotEqual([createdMemberships indexOfObject:spaces[0][@"id"]], NSNotFound); - XCTAssertNotEqual([createdMemberships indexOfObject:spaces[1][@"id"]], NSNotFound); - handler(); - } -#pragma GCC diagnostic pop - }]; - - self.client1.manageMemberships().userId(users[0][@"id"]) - .includeFields(PNMembershipSpaceField|PNMembershipSpaceCustomField) - .add(@[@{ @"spaceId": spaces[0][@"id"] }, @{ @"spaceId": spaces[1][@"id"] }]) - .performWithCompletion(^(PNManageMembershipsStatus *status) { }); - }]; -} - -- (void)testCreate_ShouldTriggerCreateEventOnSpaceChannel_WhenNewMembershipCreated { - NSArray *spaces = [self createTestSpaces]; - NSArray *users = [self createTestUsers]; - NSString *channel = spaces[0][@"id"]; - [self.client2 addListener:self]; - - - [self subscribeOnObjectChannels:@[channel]]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - [self addMembershipHandlerForClient:self.client2 - withBlock:^(PubNub *client, PNMembershipEventResult *event, BOOL *remove) { - - *remove = YES; -#pragma GCC diagnostic push -#pragma clang diagnostic ignored "-Warc-retain-cycles" - XCTAssertEqualObjects(event.data.event, @"create"); - XCTAssertNotNil(event.data.created); - XCTAssertNotNil(event.data.timestamp); - - handler(); -#pragma GCC diagnostic pop - }]; - - self.client1.manageMemberships().userId(users[0][@"id"]) - .includeFields(PNMembershipSpaceField|PNMembershipSpaceCustomField) - .add(@[@{ @"spaceId": spaces[0][@"id"] }, @{ @"spaceId": spaces[1][@"id"] }]) - .performWithCompletion(^(PNManageMembershipsStatus *status) { }); - }]; -} - - - (void)testCreate_ShouldFail_WhenCreatingUserHasMembershipWithTargetSpaces { - NSArray *spaces = [self createTestSpaces]; - NSArray *users = [self createTestUsers]; - - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.manageMemberships().userId(users[0][@"id"]) - .add(@[ @{ @"spaceId": spaces[0][@"id"] }, @{ @"spaceId": spaces[1][@"id"] }]) - .performWithCompletion(^(PNManageMembershipsStatus *status) { - XCTAssertFalse(status.isError); - handler(); - }); - }]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.manageMemberships().userId(users[0][@"id"]) - .includeFields(PNMembershipCustomField) - .add(@[ @{ @"spaceId": spaces[0][@"id"] }, @{ @"spaceId": spaces[1][@"id"] }]) - .performWithCompletion(^(PNManageMembershipsStatus *status) { - XCTAssertTrue(status.isError); - XCTAssertEqual(status.statusCode, 400); - handler(); - }); - }]; -} - - -#pragma mark - Tests :: Update - -- (void)testUpdate_ShouldUpdate_WhenMembershipExists { - NSArray *spaces = [self createTestSpaces]; - NSArray *users = [self createTestUsers]; - NSArray *customs = @[ - @{ @"user-membership-custom": [NSUUID UUID].UUIDString }, - @{ @"user-membership-custom": [NSUUID UUID].UUIDString } - ]; - NSArray *expectedCustoms = @[ - @{ @"user-membership-custom": [NSUUID UUID].UUIDString }, - @{ @"user-membership-custom": [NSUUID UUID].UUIDString } - ]; - - - [self createUsersMembership:users inSpaces:spaces withCustoms:customs]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.manageMemberships().userId(users[0][@"id"]) - .includeFields(PNMembershipCustomField) - .update(@[ - @{ @"spaceId": spaces[0][@"id"], @"custom": expectedCustoms[0] }, - @{ @"spaceId": spaces[1][@"id"], @"custom": expectedCustoms[1] } - ]) - .performWithCompletion(^(PNManageMembershipsStatus *status) { - NSArray *memberships = status.data.memberships; - - for (PNMembership *membership in memberships) { - for (NSUInteger spaceIdx = 0; spaceIdx < spaces.count; spaceIdx++) { - NSDictionary *space = spaces[spaceIdx]; - - if ([membership.spaceId isEqualToString:space[@"id"]]) { - XCTAssertEqualObjects(membership.custom, expectedCustoms[spaceIdx]); - break; - } - } - } - - handler(); - }); - }]; -} - -- (void)testUpdate_ShouldUpdateAndReturnSpaceInformation_WhenSpaceAndSpaceCustomFlagsSet { - NSArray *spaces = [self createTestSpaces]; - NSArray *users = [self createTestUsers]; - NSArray *customs = @[ - @{ @"user-membership-custom": [NSUUID UUID].UUIDString }, - @{ @"user-membership-custom": [NSUUID UUID].UUIDString } - ]; - - - [self createUsersMembership:users inSpaces:spaces withCustoms:nil]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.manageMemberships().userId(users[0][@"id"]) - .includeFields(PNMembershipSpaceField|PNMembershipSpaceCustomField) - .update(@[ - @{ @"spaceId": spaces[0][@"id"], @"custom": customs[0] }, - @{ @"spaceId": spaces[1][@"id"], @"custom": customs[1] } - ]) - .performWithCompletion(^(PNManageMembershipsStatus *status) { - NSArray *memberships = status.data.memberships; - - for (PNMembership *membership in memberships) { - XCTAssertNotNil(membership.space); - - for (NSDictionary *space in spaces) { - if ([membership.space.identifier isEqualToString:space[@"id"]]) { - XCTAssertEqualObjects(membership.space.custom, space[@"custom"]); - break; - } - } - } - - handler(); - }); - }]; -} - -- (void)testUpdate_ShouldTriggerUpdateEventOnUserChannel_WhenMembershipUpdated { - NSArray *spaces = [self createTestSpaces]; - NSArray *users = [self createTestUsers]; - NSMutableArray *updatedMemberships = [NSMutableArray new]; - NSArray *customs = @[ - @{ @"user-membership-custom": [NSUUID UUID].UUIDString }, - @{ @"user-membership-custom": [NSUUID UUID].UUIDString } - ]; - NSString *channel = users[0][@"id"]; - [self.client2 addListener:self]; - - - [self createUsersMembership:users inSpaces:spaces withCustoms:nil]; - [self subscribeOnObjectChannels:@[channel]]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - [self addMembershipHandlerForClient:self.client2 - withBlock:^(PubNub *client, PNMembershipEventResult *event, BOOL *remove) { - if ([updatedMemberships indexOfObject:event.data.spaceId] == NSNotFound) { - [updatedMemberships addObject:event.data.spaceId]; - } - - *remove = updatedMemberships.count == spaces.count; -#pragma GCC diagnostic push -#pragma clang diagnostic ignored "-Warc-retain-cycles" - XCTAssertEqualObjects(event.data.event, @"update"); - XCTAssertNotNil(event.data.updated); - XCTAssertNotNil(event.data.timestamp); - - if (updatedMemberships.count == spaces.count) { - XCTAssertNotEqual([updatedMemberships indexOfObject:spaces[0][@"id"]], NSNotFound); - XCTAssertNotEqual([updatedMemberships indexOfObject:spaces[1][@"id"]], NSNotFound); - handler(); - } -#pragma GCC diagnostic pop - }]; - - self.client1.manageMemberships().userId(users[0][@"id"]) - .includeFields(PNMembershipSpaceField|PNMembershipSpaceCustomField) - .update(@[ - @{ @"spaceId": spaces[0][@"id"], @"custom": customs[0] }, - @{ @"spaceId": spaces[1][@"id"], @"custom": customs[1] } - ]) - .performWithCompletion(^(PNManageMembershipsStatus *status) { }); - }]; -} - -- (void)testUpdate_ShouldTriggerUpdateEventOnSpaceChannel_WhenMembershipUpdated { - NSArray *spaces = [self createTestSpaces]; - NSArray *users = [self createTestUsers]; - NSString *channel = spaces[0][@"id"]; - NSArray *customs = @[ - @{ @"user-membership-custom": [NSUUID UUID].UUIDString }, - @{ @"user-membership-custom": [NSUUID UUID].UUIDString } - ]; - [self.client2 addListener:self]; - - - [self createUsersMembership:users inSpaces:spaces withCustoms:nil]; - [self subscribeOnObjectChannels:@[channel]]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - [self addMembershipHandlerForClient:self.client2 - withBlock:^(PubNub *client, PNMembershipEventResult *event, BOOL *remove) { - *remove = YES; -#pragma GCC diagnostic push -#pragma clang diagnostic ignored "-Warc-retain-cycles" - XCTAssertEqualObjects(event.data.event, @"update"); - XCTAssertEqualObjects(event.data.spaceId, spaces[0][@"id"]); - XCTAssertNotNil(event.data.updated); - XCTAssertNotNil(event.data.timestamp); - - handler(); -#pragma GCC diagnostic pop - }]; - - self.client1.manageMemberships().userId(users[0][@"id"]).update(@[ - @{ @"spaceId": spaces[0][@"id"], @"custom": customs[0] }, - @{ @"spaceId": spaces[1][@"id"], @"custom": customs[1] } - ]) - .performWithCompletion(^(PNManageMembershipsStatus *status) { }); - }]; -} - - - (void)testUpdate_ShouldFail_WhenUserDoesntHaveMembershipWithTargetSpaces { - NSArray *spaces = [self createTestSpaces]; - NSArray *users = [self createTestUsers]; - NSArray *customs = @[ - @{ @"user-membership-custom": [NSUUID UUID].UUIDString }, - @{ @"user-membership-custom": [NSUUID UUID].UUIDString } - ]; - - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.manageMemberships().userId(users[0][@"id"]) - .includeFields(PNMembershipCustomField) - .update(@[ - @{ @"spaceId": spaces[0][@"id"], @"custom": customs[0] }, - @{ @"spaceId": spaces[1][@"id"], @"custom": customs[1] } - ]) - .performWithCompletion(^(PNManageMembershipsStatus *status) { - XCTAssertTrue(status.isError); - XCTAssertEqual(status.statusCode, 400); - handler(); - }); - }]; -} - - -#pragma mark - Tests :: Delete - -- (void)testDelete_ShouldDelete_WhenMembershipExists { - NSArray *spaces = [self createTestSpaces]; - NSArray *users = [self createTestUsers]; - - - [self createUsersMembership:users inSpaces:spaces withCustoms:nil]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.manageMemberships().userId(users[0][@"id"]) - .includeFields(PNMembershipCustomField) - .remove(@[ spaces[0][@"id"] ]) - .performWithCompletion(^(PNManageMembershipsStatus *status) { - XCTAssertFalse(status.isError); - XCTAssertEqual(status.data.memberships.count, 1); - XCTAssertEqualObjects(status.data.memberships[0].spaceId, spaces[1][@"id"]); - XCTAssertNil(status.data.memberships[0].space); - - handler(); - }); - }]; -} - -- (void)testDelete_ShouldUpdateAndReturnSpaceInformation_WhenSpaceAndSpaceCustomFlagsSet { - NSArray *spaces = [self createTestSpaces]; - NSArray *users = [self createTestUsers]; - - - [self createUsersMembership:users inSpaces:spaces withCustoms:nil]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.manageMemberships().userId(users[0][@"id"]) - .includeFields(PNMembershipSpaceField|PNMembershipSpaceCustomField) - .remove(@[ spaces[0][@"id"] ]) - .performWithCompletion(^(PNManageMembershipsStatus *status) { - XCTAssertFalse(status.isError); - XCTAssertEqual(status.data.memberships.count, 1); - XCTAssertNotNil(status.data.memberships[0].space); - XCTAssertEqualObjects(status.data.memberships[0].space.identifier, spaces[1][@"id"]); - XCTAssertEqualObjects(status.data.memberships[0].space.custom, spaces[1][@"custom"]); - - handler(); - }); - }]; -} - -- (void)testDelete_ShouldTriggerDeleteEventOnUserChannel_WhenMembershipRemoved { - NSArray *spaces = [self createTestSpaces]; - NSArray *users = [self createTestUsers]; - NSMutableArray *deletedMemberships = [NSMutableArray new]; - NSString *channel = users[0][@"id"]; - [self.client2 addListener:self]; - - - [self createUsersMembership:users inSpaces:spaces withCustoms:nil]; - [self subscribeOnObjectChannels:@[channel]]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - [self addMembershipHandlerForClient:self.client2 - withBlock:^(PubNub *client, PNMembershipEventResult *event, BOOL *remove) { - if ([deletedMemberships indexOfObject:event.data.spaceId] == NSNotFound) { - [deletedMemberships addObject:event.data.spaceId]; - } - - *remove = deletedMemberships.count == spaces.count; -#pragma GCC diagnostic push -#pragma clang diagnostic ignored "-Warc-retain-cycles" - XCTAssertEqualObjects(event.data.event, @"delete"); - XCTAssertNotNil(event.data.timestamp); - - if (deletedMemberships.count == spaces.count) { - XCTAssertNotEqual([deletedMemberships indexOfObject:spaces[0][@"id"]], NSNotFound); - XCTAssertNotEqual([deletedMemberships indexOfObject:spaces[1][@"id"]], NSNotFound); - handler(); - } -#pragma GCC diagnostic pop - }]; - - self.client1.manageMemberships().userId(users[0][@"id"]) - .includeFields(PNMembershipSpaceField|PNMembershipSpaceCustomField) - .remove(@[ spaces[0][@"id"], spaces[1][@"id"] ]) - .performWithCompletion(^(PNManageMembershipsStatus *status) { }); - }]; -} - -- (void)testDelete_ShouldTriggerDeleteEventOnSpaceChannel_WhenMembershipRemoved { - NSArray *spaces = [self createTestSpaces]; - NSArray *users = [self createTestUsers]; - NSString *channel = spaces[0][@"id"]; - [self.client2 addListener:self]; - - - [self createUsersMembership:users inSpaces:spaces withCustoms:nil]; - [self subscribeOnObjectChannels:@[channel]]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - [self addMembershipHandlerForClient:self.client2 - withBlock:^(PubNub *client, PNMembershipEventResult *event, BOOL *remove) { - *remove = YES; -#pragma GCC diagnostic push -#pragma clang diagnostic ignored "-Warc-retain-cycles" - XCTAssertEqualObjects(event.data.event, @"delete"); - XCTAssertEqualObjects(event.data.spaceId, spaces[0][@"id"]); - XCTAssertNotNil(event.data.timestamp); - - handler(); -#pragma GCC diagnostic pop - }]; - - self.client1.manageMemberships().userId(users[0][@"id"]) - .includeFields(PNMembershipSpaceField|PNMembershipSpaceCustomField) - .remove(@[ spaces[0][@"id"], spaces[1][@"id"] ]) - .performWithCompletion(^(PNManageMembershipsStatus *status) { }); - }]; -} - - -#pragma mark - Tests :: Fetch - -- (void)testFetch_ShouldFetch_WhenCalledWithDefauls { - NSArray *spaces = [self createTestSpaces]; - NSArray *users = [self createTestUsers]; - NSMutableArray *customs = [NSMutableArray new]; - - for (NSUInteger spaceIdx = 0; spaceIdx < spaces.count; spaceIdx++) { - [customs addObject:@{ @"user-membership-custom": [NSUUID UUID].UUIDString }]; - } - - - [self createUsersMembership:users inSpaces:spaces withCustoms:customs]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.fetchMemberships().userId(users[0][@"id"]) - .performWithCompletion(^(PNFetchMembershipsResult *result, PNErrorStatus *status) { - XCTAssertEqual(result.data.memberships.count, spaces.count); - XCTAssertEqual(result.data.totalCount, 0); - - handler(); - }); - }]; -} - -- (void)testFetch_ShouldFetchLimited_WhenCalledWithLimit { - NSArray *spaces = [self createTestSpaces]; - NSArray *users = [self createTestUsers]; - NSMutableArray *customs = [NSMutableArray new]; - NSUInteger expectedCount = 2; - - for (NSUInteger spaceIdx = 0; spaceIdx < spaces.count; spaceIdx++) { - [customs addObject:@{ @"user-membership-custom": [NSUUID UUID].UUIDString }]; - } - - - [self createUsersMembership:users inSpaces:spaces withCustoms:customs]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.fetchMemberships().userId(users[0][@"id"]).limit(expectedCount) - .includeFields(PNMembershipCustomField).includeCount(YES) - .performWithCompletion(^(PNFetchMembershipsResult *result, PNErrorStatus *status) { - XCTAssertEqual(result.data.memberships.count, expectedCount); - XCTAssertEqual(result.data.totalCount, spaces.count); - XCTAssertNotNil(result.data.memberships[0].custom); - - handler(); - }); - }]; -} - -- (void)testFetch_ShouldFetchNextPage_WhenCalledWithStart { - NSArray *spaces = [self createTestSpaces]; - NSArray *users = [self createTestUsers]; - __block NSString *next = nil; - - - [self createUsersMembership:users inSpaces:spaces withCustoms:nil]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.fetchMemberships().userId(users[0][@"id"]).limit(spaces.count - 2) - .includeCount(YES) - .performWithCompletion(^(PNFetchMembershipsResult *result, PNErrorStatus *status) { - XCTAssertFalse(status.isError); - XCTAssertEqual(result.data.memberships.count, spaces.count - 2); - next = result.data.next; - handler(); - }); - }]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.fetchMemberships().userId(users[0][@"id"]).start(next).includeCount(YES) - .performWithCompletion(^(PNFetchMembershipsResult *result, PNErrorStatus *status) { - XCTAssertEqual(result.data.memberships.count, 2); - - handler(); - }); - }]; -} - - -#pragma mark - Tests :: Member events - -- (void)testUser_ShouldTriggerDeleteEventOnSpaceChannel_WhenUserFromMembershipsDeleted { - NSArray *spaces = [self createTestSpaces]; - NSArray *users = [self createTestUsers]; - NSString *channel = spaces[0][@"id"]; - [self.client2 addListener:self]; - - - [self createUsersMembership:users inSpaces:spaces withCustoms:nil]; - [self subscribeOnObjectChannels:@[channel]]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - [self addUserHandlerForClient:self.client2 - withBlock:^(PubNub *client, PNUserEventResult *event, BOOL *remove) { - *remove = YES; -#pragma GCC diagnostic push -#pragma clang diagnostic ignored "-Warc-retain-cycles" - XCTAssertEqualObjects(event.data.event, @"delete"); - XCTAssertEqualObjects(event.data.identifier, users[0][@"id"]); - XCTAssertNotNil(event.data.timestamp); - - handler(); -#pragma GCC diagnostic pop - }]; - - self.client1.deleteUser().userId(users[0][@"id"]) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { }); - }]; -} - -#pragma mark - - - -@end diff --git a/Tests/iOS Tests/Tests/Integration/Objects/PNObjectsTestCase.h b/Tests/iOS Tests/Tests/Integration/Objects/PNObjectsTestCase.h deleted file mode 100644 index 4d7e3a52f..000000000 --- a/Tests/iOS Tests/Tests/Integration/Objects/PNObjectsTestCase.h +++ /dev/null @@ -1,102 +0,0 @@ -#import "PNTestCase.h" - - -NS_ASSUME_NONNULL_BEGIN - -/** - * @brief Base test case for Object API integration tests. - * - * @discussion Class will perform initial setups (two \b PubNub clients) and provide set of useful - * methods. - * - * @author Serhii Mamontov - * @copyright © 2009-2019 PubNub, Inc. - */ -@interface PNObjectsTestCase : PNTestCase - - -#pragma mark - Information - -/** - * @brief Client which can be used to generate events. - */ -@property (nonatomic, readonly, strong) PubNub *client1; - -/** - * @brief Client which can be used to handle and verify actions of first client. - */ -@property (nonatomic, readonly, strong) PubNub *client2; - -/** - * @brief How many test \c users should be created for current test case. - */ -@property (nonatomic, assign) NSUInteger testUsersCount; - -/** - * @brief How many test \c spaces should be created for current test case. - */ -@property (nonatomic, assign) NSUInteger testSpacesCount; - - -#pragma mark - Objects helper - -/** - * @brief Subscribe and wait for completion for channels which is used by Object API to deliver - * events. - * - * @param channels List of object channels on which observing \b PubNub client should be subscribed. - */ -- (void)subscribeOnObjectChannels:(NSArray *)channels; - -/** - * @brief Create configured number of test \c spaces. - * - * @return List of test users information (id, name and custom fields). - */ -- (NSArray *)createTestSpaces; - -/** - * @brief Create configured number of test \c users. - * - * @return List of test users information (id, name and custom fields). - */ -- (NSArray *)createTestUsers; - -/** - * @brief Create membership of \c users in passed \c spaces. - * - * @param users List of test users for which membership should be created. - * @param spaces List of test spaces with which membership should be created. - * @param customs List of dictionaries with \c custom data which should be set for membership. - */ -- (void)createUsersMembership:(NSArray *)users - inSpaces:(NSArray *)spaces - withCustoms:(nullable NSArray *)customs; - -/** - * @brief Add members to passed \c spaces. - * - * @param members List of test users which should be added to \c spaces members list. - * @param spaces List of test spaces for which members list should be modified. - * @param customs List of dictionaries with \c custom data which should be associated with \c user - * in \c space's members list. - */ -- (void)addMembers:(NSArray *)members - toSpaces:(NSArray *)spaces - withCustoms:(nullable NSArray *)customs; -/** - * @brief Remove all \c space objects which has been created so far. - */ -- (void)cleanUpSpaceObjects; - -/** - * @brief Remove all \c user objects which has been created so far. - */ -- (void)cleanUpUserObjects; - -#pragma mark - - - -@end - -NS_ASSUME_NONNULL_END diff --git a/Tests/iOS Tests/Tests/Integration/Objects/PNObjectsTestCase.m b/Tests/iOS Tests/Tests/Integration/Objects/PNObjectsTestCase.m deleted file mode 100644 index d6ff4b6a6..000000000 --- a/Tests/iOS Tests/Tests/Integration/Objects/PNObjectsTestCase.m +++ /dev/null @@ -1,271 +0,0 @@ -/** - * @author Serhii Mamontov - * @copyright © 2009-2019 PubNub, Inc. - */ -#import "PNObjectsTestCase.h" -#import - - -NS_ASSUME_NONNULL_BEGIN - -#pragma mark Protected interface declaration - -@interface PNObjectsTestCase () - - -#pragma mark - Information - -/** - * @brief Client which can be used to generate events. - */ -@property (nonatomic, strong) PubNub *client1; - -/** - * @brief Client which can be used to handle and verify actions of first client. - */ -@property (nonatomic, strong) PubNub *client2; - -#pragma mark - - - -@end - -NS_ASSUME_NONNULL_END - - -#pragma mark - Interface implementation - -@implementation PNObjectsTestCase - - -#pragma mark - Setup / Tear down - -- (void)setUp { - [super setUp]; - - - dispatch_queue_t callbackQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); - PNConfiguration *configuration = [PNConfiguration configurationWithPublishKey:self.publishKey - subscribeKey:self.subscribeKey]; - - self.client1 = [PubNub clientWithConfiguration:configuration callbackQueue:callbackQueue]; - self.client2 = [PubNub clientWithConfiguration:configuration callbackQueue:callbackQueue]; -} - -- (void)tearDown { - [self removeAllHandlersForClient:self.client1]; - - if (self.client2) { - [self removeAllHandlersForClient:self.client2]; - [self.client2 removeListener:self]; - } - - [self.client1 removeListener:self]; - - - [super tearDown]; -} - - -#pragma mark - Objects helper - -- (void)subscribeOnObjectChannels:(NSArray *)channels { - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - [self addStatusHandlerForClient:self.client2 - withBlock:^(PubNub *client, PNSubscribeStatus *status, BOOL *remove) { - - if (status.category == PNConnectedCategory) { - *remove = YES; - - handler(); - } - }]; - - self.client2.subscribe().channels(channels).perform(); - }]; -} - -- (NSArray *)createTestSpaces { - NSMutableArray *spaces = [NSMutableArray new]; - - for (NSUInteger spaceIdx = 0; spaceIdx < self.testSpacesCount; spaceIdx++) { - [spaces addObject:@{ - @"id": [NSUUID UUID].UUIDString, - @"name": [NSUUID UUID].UUIDString, - @"custom": @{ - @"space-custom1": [NSUUID UUID].UUIDString, - @"space-custom2": [NSUUID UUID].UUIDString - } - }]; - } - - for (NSDictionary *space in spaces) { - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.createSpace().spaceId(space[@"id"]).name(space[@"name"]).custom(space[@"custom"]) - .performWithCompletion(^(PNCreateSpaceStatus *status) { - - handler(); - }); - }]; - } - - return spaces; -} - -- (NSArray *)createTestUsers { - NSMutableArray *users = [NSMutableArray new]; - - for (NSUInteger userIdx = 0; userIdx < self.testUsersCount; userIdx++) { - [users addObject:@{ - @"id": [NSUUID UUID].UUIDString, - @"name": [NSUUID UUID].UUIDString, - @"custom": @{ - @"user-custom1": [NSUUID UUID].UUIDString, - @"user-custom2": [NSUUID UUID].UUIDString - } - }]; - } - - for (NSDictionary *user in users) { - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.createUser().userId(user[@"id"]).name(user[@"name"]).custom(user[@"custom"]) - .performWithCompletion(^(PNCreateUserStatus *status) { - - handler(); - }); - }]; - } - - return users; -} - -- (void)createUsersMembership:(NSArray *)users - inSpaces:(NSArray *)spaces - withCustoms:(NSArray *)customs { - - NSMutableArray *spacesForMembership = [NSMutableArray new]; - - for (NSUInteger spaceIdx = 0; spaceIdx < spaces.count; spaceIdx++) { - NSMutableDictionary *spaceData = [@{ @"spaceId": spaces[spaceIdx][@"id"] } mutableCopy]; - - if (customs && spaceIdx < customs.count) { - spaceData[@"custom"] = customs[spaceIdx]; - } - - [spacesForMembership addObject:spaceData]; - } - - for (NSDictionary *user in users) { - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.manageMemberships().userId(user[@"id"]).add(spacesForMembership) - .performWithCompletion(^(PNManageMembershipsStatus *status) { - XCTAssertFalse(status.isError); - XCTAssertNotNil(status.data.memberships); - handler(); - }); - }]; - } -} - -- (void)addMembers:(NSArray *)members - toSpaces:(NSArray *)spaces - withCustoms:(NSArray *)customs { - - NSMutableArray *spaceMembers = [NSMutableArray new]; - - for (NSUInteger memberIdx = 0; memberIdx < members.count; memberIdx++) { - NSMutableDictionary *memberData = [@{ @"userId": members[memberIdx][@"id"] } mutableCopy]; - - if (customs && memberIdx < customs.count) { - memberData[@"custom"] = customs[memberIdx]; - } - - [spaceMembers addObject:memberData]; - } - - for (NSDictionary *space in spaces) { - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.manageMembers().spaceId(space[@"id"]).add(spaceMembers) - .performWithCompletion(^(PNManageMembersStatus *status) { - XCTAssertFalse(status.isError); - XCTAssertNotNil(status.data.members); - handler(); - }); - }]; - } -} - -- (void)cleanUpSpaceObjects { - NSMutableArray *spaces = [NSMutableArray new]; - __block BOOL shouldFetchMore = YES; - __block NSString *start = nil; - - while(shouldFetchMore) { - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.fetchSpaces().start(start).includeCount(YES) - .performWithCompletion(^(PNFetchSpacesResult *result, PNErrorStatus *status) { - shouldFetchMore = result.data.spaces.count == 100; - start = result.data.next; - - [spaces addObjectsFromArray:(result.data.spaces ?: @[])]; - - handler(); - }); - }]; - } - - for (PNSpace *space in spaces) { - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.deleteSpace().spaceId(space.identifier) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { - if (status.isError) { - NSLog(@"'%@' SPACE REMOVE ERROR: %@\n%@", - space.identifier, status.errorData.information, - [status valueForKey:@"clientRequest"]); - } - - handler(); - }); - }]; - } -} - -- (void)cleanUpUserObjects { - NSMutableArray *users = [NSMutableArray new]; - __block BOOL shouldFetchMore = YES; - __block NSString *start = nil; - - while(shouldFetchMore) { - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.fetchUsers().start(start).includeCount(YES) - .performWithCompletion(^(PNFetchUsersResult *result, PNErrorStatus *status) { - shouldFetchMore = result.data.users.count == 100; - start = result.data.next; - - [users addObjectsFromArray:(result.data.users ?: @[])]; - - handler(); - }); - }]; - } - - for (PNUser *user in users) { - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.deleteUser().userId(user.identifier) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { - if (status.isError) { - NSLog(@"'%@' USER REMOVE ERROR: %@\n%@", - user.identifier, status.errorData.information, - [status valueForKey:@"clientRequest"]); - } - - handler(); - }); - }]; - } -} - -#pragma mark - - - -@end diff --git a/Tests/iOS Tests/Tests/Integration/Objects/PNSpaceIntegrationTest.m b/Tests/iOS Tests/Tests/Integration/Objects/PNSpaceIntegrationTest.m deleted file mode 100644 index 3f305ee82..000000000 --- a/Tests/iOS Tests/Tests/Integration/Objects/PNSpaceIntegrationTest.m +++ /dev/null @@ -1,415 +0,0 @@ -/** - * @author Serhii Mamontov - * @copyright © 2010-2019 PubNub, Inc. - */ -#import "PNObjectsTestCase.h" -#import -#import - - -NS_ASSUME_NONNULL_BEGIN - -#pragma mark Test interface declaration - -@interface PNSpaceIntegrationTest : PNObjectsTestCase - - -#pragma mark - - - -@end - -NS_ASSUME_NONNULL_END - - -#pragma mark - Tests - -@implementation PNSpaceIntegrationTest - - -#pragma mark - Setup / Tear down - -- (void)setUp { - [super setUp]; - - - if ([self.name rangeOfString:@"testFetchAll"].location != NSNotFound) { - self.testSpacesCount = 6; - [self cleanUpSpaceObjects]; - } -} - - -#pragma mark - Tests :: Create - -- (void)testCreate_ShouldCreateNewSpace_WhenCalledWithNameIdentifierOnly { - NSString *spaceId = [NSUUID UUID].UUIDString; - NSString *name = [NSUUID UUID].UUIDString; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.createSpace().spaceId(spaceId).name(name).includeFields(PNSpaceCustomField) - .performWithCompletion(^(PNCreateSpaceStatus *status) { - PNSpace *space = status.data.space; - XCTAssertFalse(status.isError); - XCTAssertNotNil(space); - XCTAssertEqualObjects(space.custom, [NSNull null]); - XCTAssertEqualObjects(space.identifier, spaceId); - XCTAssertEqualObjects(space.name, name); - XCTAssertNotNil(space.created); - XCTAssertNotNil(space.updated); - XCTAssertNotNil(space.eTag); - - handler(); - }); - }]; -} - -- (void)testCreate_ShouldCreateNewSpace_WhenCalledWithAdditionalFields { - NSString *information = [NSUUID UUID].UUIDString; - NSString *spaceId = [NSUUID UUID].UUIDString; - NSString *name = [NSUUID UUID].UUIDString; - NSDictionary *custom = @{ - @"space-custom1": [NSUUID UUID].UUIDString, - @"space-custom2": [NSUUID UUID].UUIDString - }; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.createSpace().spaceId(spaceId).name(name).information(information).custom(custom) - .includeFields(PNSpaceCustomField) - .performWithCompletion(^(PNCreateSpaceStatus *status) { - PNSpace *space = status.data.space; - XCTAssertFalse(status.isError); - XCTAssertNotNil(space); - XCTAssertEqualObjects(space.information, information); - XCTAssertEqualObjects(space.identifier, spaceId); - XCTAssertEqualObjects(space.custom, custom); - XCTAssertEqualObjects(space.name, name); - XCTAssertNotNil(space.created); - XCTAssertNotNil(space.updated); - XCTAssertNotNil(space.eTag); - - handler(); - }); - }]; -} - -- (void)testCreate_ShouldFail_WhenCreatingSecondSpaceWithSameIdentifier { - NSString *spaceId = [NSUUID UUID].UUIDString; - NSString *name = [NSUUID UUID].UUIDString; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.createSpace().spaceId(spaceId).name(name) - .performWithCompletion(^(PNCreateSpaceStatus *status) { - XCTAssertFalse(status.isError); - XCTAssertNotNil(status.data.space); - - handler(); - }); - }]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.createSpace().spaceId(spaceId).name(name) - .performWithCompletion(^(PNCreateSpaceStatus *status) { - XCTAssertTrue(status.isError); - XCTAssertEqual(status.statusCode, 409); - XCTAssertNil(status.data.space); - - handler(); - }); - }]; -} - - -#pragma mark - Tests :: Update - -- (void)testUpdate_ShouldUpdate_WhenSpaceExists { - NSString *spaceId = [NSUUID UUID].UUIDString; - NSString *name = [NSUUID UUID].UUIDString; - NSString *expectedName = [NSUUID UUID].UUIDString; - __block NSDate *createDate = nil; - __block NSDate *updateDate = nil; - __block NSString *eTag = nil; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.createSpace().spaceId(spaceId).name(name).includeFields(PNSpaceCustomField) - .performWithCompletion(^(PNCreateSpaceStatus *status) { - PNSpace *space = status.data.space; - createDate = space.created; - updateDate = space.updated; - eTag = space.eTag; - - handler(); - }); - }]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.updateSpace().spaceId(spaceId).name(expectedName).includeFields(PNSpaceCustomField) - .performWithCompletion(^(PNUpdateSpaceStatus *status) { - PNSpace *space = status.data.space; - XCTAssertNotEqualObjects(space.updated, updateDate); - XCTAssertEqualObjects(space.created, createDate); - XCTAssertEqualObjects(space.name, expectedName); - XCTAssertNotEqualObjects(space.eTag, eTag); - - handler(); - }); - }]; -} - -- (void)testUpdate_ShouldTriggerUpdateEvent_WhenUpdatingExistingSpace { - NSString *spaceId = [NSUUID UUID].UUIDString; - NSString *name = [NSUUID UUID].UUIDString; - NSString *channel = spaceId; - NSDictionary *expectedCustom = @{ @"space-custom": [NSUUID UUID].UUIDString }; - NSString *expectedName = [NSUUID UUID].UUIDString; - [self.client2 addListener:self]; - - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.createSpace().spaceId(spaceId).name(name).includeFields(PNSpaceCustomField) - .performWithCompletion(^(PNCreateSpaceStatus *status) { - handler(); - }); - }]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - [self addStatusHandlerForClient:self.client2 - withBlock:^(PubNub *client, PNSubscribeStatus *status, BOOL *remove) { - - if (status.category == PNConnectedCategory) { - *remove = YES; - - handler(); - } - }]; - - self.client2.subscribe().channels(@[channel]).perform(); - }]; - - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - [self addSpaceHandlerForClient:self.client2 - withBlock:^(PubNub *client, PNSpaceEventResult *event, BOOL *remove) { - *remove = YES; -#pragma GCC diagnostic push -#pragma clang diagnostic ignored "-Warc-retain-cycles" - XCTAssertEqualObjects(event.data.event, @"update"); - XCTAssertEqualObjects(event.data.name, expectedName); - XCTAssertEqualObjects(event.data.custom, expectedCustom); - XCTAssertNotNil(event.data.updated); - XCTAssertNotNil(event.data.timestamp); -#pragma GCC diagnostic pop - - handler(); - }]; - - self.client1.updateSpace().spaceId(spaceId).name(expectedName).custom(expectedCustom) - .performWithCompletion(^(PNUpdateSpaceStatus *status) { }); - }]; - -} - -- (void)testUpdate_ShouldFail_WhenSpaceNotExist { - NSString *spaceId = [NSUUID UUID].UUIDString; - NSString *name = [NSUUID UUID].UUIDString; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.updateSpace().spaceId(spaceId).name(name) - .performWithCompletion(^(PNUpdateSpaceStatus *status) { - XCTAssertTrue(status.isError); - XCTAssertEqual(status.statusCode, 404); - XCTAssertNil(status.data.space); - - handler(); - }); - }]; -} - - -#pragma mark - Tests :: Delete - -- (void)testDelete_ShouldDelete_WhenSpaceExists { - NSString *spaceId = [NSUUID UUID].UUIDString; - NSString *name = [NSUUID UUID].UUIDString; - - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.createSpace().spaceId(spaceId).name(name) - .performWithCompletion(^(PNCreateSpaceStatus *status) { - handler(); - }); - }]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.deleteSpace().spaceId(spaceId) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { - handler(); - }); - }]; -} - -- (void)testDelete_ShouldTriggerDeleteEvent_WhenDeletingExistingSpace { - NSString *spaceId = [NSUUID UUID].UUIDString; - NSString *name = [NSUUID UUID].UUIDString; - NSString *channel = spaceId; - [self.client2 addListener:self]; - - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.createSpace().spaceId(spaceId).name(name) - .performWithCompletion(^(PNCreateSpaceStatus *status) { - handler(); - }); - }]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - [self addStatusHandlerForClient:self.client2 - withBlock:^(PubNub *client, PNSubscribeStatus *status, BOOL *remove) { - - if (status.category == PNConnectedCategory) { - *remove = YES; - - handler(); - } - }]; - - self.client2.subscribe().channels(@[channel]).perform(); - }]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - [self addSpaceHandlerForClient:self.client2 - withBlock:^(PubNub *client, PNSpaceEventResult *event, BOOL *remove) { - *remove = YES; -#pragma GCC diagnostic push -#pragma clang diagnostic ignored "-Warc-retain-cycles" - XCTAssertEqualObjects(event.data.event, @"delete"); - XCTAssertEqualObjects(event.data.identifier, spaceId); - XCTAssertNotNil(event.data.timestamp); -#pragma GCC diagnostic pop - - handler(); - }]; - - self.client1.deleteSpace().spaceId(spaceId).performWithCompletion(^(PNAcknowledgmentStatus *status) { }); - }]; -} - - -#pragma mark - Tests :: Fetch - -- (void)testFetch_ShouldFetch_WhenSpaceExists { - NSString *spaceId = [NSUUID UUID].UUIDString; - NSString *name = [NSUUID UUID].UUIDString; - NSDictionary *custom = @{ - @"space-custom1": [NSUUID UUID].UUIDString, - @"space-custom2": [NSUUID UUID].UUIDString - }; - __block NSDate *createDate = nil; - __block NSDate *updateDate = nil; - __block NSString *eTag = nil; - - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.createSpace().spaceId(spaceId).name(name).custom(custom) - .performWithCompletion(^(PNCreateSpaceStatus *status) { - PNSpace *space = status.data.space; - createDate = space.created; - updateDate = space.updated; - eTag = space.eTag; - - handler(); - }); - }]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.fetchSpace().spaceId(spaceId).includeFields(PNSpaceCustomField) - .performWithCompletion(^(PNFetchSpaceResult *result, PNErrorStatus *status) { - PNSpace *space = result.data.space; - XCTAssertNotNil(space); - XCTAssertEqualObjects(space.created, createDate); - XCTAssertEqualObjects(space.updated, updateDate); - XCTAssertEqualObjects(space.eTag, eTag); - - handler(); - }); - }]; -} - -- (void)testFetch_ShouldFail_WhenSpaceNotExist { - NSString *spaceId = [NSUUID UUID].UUIDString; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.fetchSpace().spaceId(spaceId) - .performWithCompletion(^(PNFetchSpaceResult *result, PNErrorStatus *status) { - XCTAssertNil(result); - XCTAssertTrue(status.isError); - XCTAssertEqual(status.statusCode, 404); - - handler(); - }); - }]; -} - - -#pragma mark - Tests :: Fetch all - -- (void)testFetchAll_ShouldFetch_WhenCalledWithDefauls { - NSArray *spaces = [self createTestSpaces]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.fetchSpaces() - .performWithCompletion(^(PNFetchSpacesResult *result, PNErrorStatus *status) { - XCTAssertEqual(result.data.spaces.count, spaces.count); - XCTAssertEqual(result.data.totalCount, 0); - - handler(); - }); - }]; -} - -- (void)testFetchAll_ShouldFetchLimited_WhenCalledWithLimit { - NSArray *spaces = [self createTestSpaces]; - NSUInteger expectedCount = 2; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.fetchSpaces().limit(expectedCount).includeFields(PNSpaceCustomField) - .includeCount(YES) - .performWithCompletion(^(PNFetchSpacesResult *result, PNErrorStatus *status) { - XCTAssertEqual(result.data.spaces.count, expectedCount); - XCTAssertEqual(result.data.totalCount, spaces.count); - XCTAssertNotNil(result.data.spaces[0].custom); - - handler(); - }); - }]; -} - -- (void)testFetchAll_ShouldFetchNextPage_WhenCalledWithStart { - NSArray *spaces = [self createTestSpaces]; - __block NSString *next = nil; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.fetchSpaces().limit(spaces.count - 2) - .includeCount(YES) - .performWithCompletion(^(PNFetchSpacesResult *result, PNErrorStatus *status) { - XCTAssertEqual(result.data.spaces.count, spaces.count - 2); - next = result.data.next; - - handler(); - }); - }]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.fetchSpaces().start(next).includeCount(YES) - .performWithCompletion(^(PNFetchSpacesResult *result, PNErrorStatus *status) { - XCTAssertEqual(result.data.spaces.count, 2); - - handler(); - }); - }]; -} - -#pragma mark - - - -@end diff --git a/Tests/iOS Tests/Tests/Integration/Objects/PNUserIntegrationTest.m b/Tests/iOS Tests/Tests/Integration/Objects/PNUserIntegrationTest.m deleted file mode 100644 index f021b1de4..000000000 --- a/Tests/iOS Tests/Tests/Integration/Objects/PNUserIntegrationTest.m +++ /dev/null @@ -1,427 +0,0 @@ -/** - * @author Serhii Mamontov - * @copyright © 2010-2019 PubNub, Inc. - */ -#import "PNObjectsTestCase.h" -#import -#import - - -NS_ASSUME_NONNULL_BEGIN - -#pragma mark Test interface declaration - -@interface PNUserIntegrationTest : PNObjectsTestCase - - -#pragma mark - - - -@end - -NS_ASSUME_NONNULL_END - - -#pragma mark - Tests - -@implementation PNUserIntegrationTest - - -#pragma mark - Setup / Tear down - -- (void)setUp { - [super setUp]; - - - if ([self.name rangeOfString:@"testFetchAll"].location != NSNotFound) { - self.testUsersCount = 6; - [self cleanUpUserObjects]; - } -} - - -#pragma mark - Tests :: Create - -- (void)testCreate_ShouldCreateNewUser_WhenCalledWithNameIdentifierOnly { - NSString *userId = [NSUUID UUID].UUIDString; - NSString *name = [NSUUID UUID].UUIDString; - - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.createUser().userId(userId).name(name).includeFields(PNUserCustomField) - .performWithCompletion(^(PNCreateUserStatus *status) { - PNUser *user = status.data.user; - XCTAssertFalse(status.isError); - XCTAssertNotNil(user); - XCTAssertEqualObjects(user.externalId, [NSNull null]); - XCTAssertEqualObjects(user.profileUrl, [NSNull null]); - XCTAssertEqualObjects(user.custom, [NSNull null]); - XCTAssertEqualObjects(user.email, [NSNull null]); - XCTAssertEqualObjects(user.identifier, userId); - XCTAssertEqualObjects(user.name, name); - XCTAssertNotNil(user.created); - XCTAssertNotNil(user.updated); - XCTAssertNotNil(user.eTag); - - handler(); - }); - }]; -} - -- (void)testCreate_ShouldCreateNewUser_WhenCalledWithAdditionalFields { - NSString *externalId = [NSUUID UUID].UUIDString; - NSString *profileUrl = @"https://pubnub.com"; - NSString *userId = [NSUUID UUID].UUIDString; - NSString *email = [NSUUID UUID].UUIDString; - NSString *name = [NSUUID UUID].UUIDString; - NSDictionary *custom = @{ - @"user-custom1": [NSUUID UUID].UUIDString, - @"user-custom2": [NSUUID UUID].UUIDString - }; - - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.createUser().userId(userId).name(name).externalId(externalId) - .profileUrl(profileUrl).email(email).custom(custom) - .includeFields(PNUserCustomField) - .performWithCompletion(^(PNCreateUserStatus *status) { - PNUser *user = status.data.user; - XCTAssertFalse(status.isError); - XCTAssertNotNil(user); - XCTAssertEqualObjects(user.externalId, externalId); - XCTAssertEqualObjects(user.profileUrl, profileUrl); - XCTAssertEqualObjects(user.identifier, userId); - XCTAssertEqualObjects(user.custom, custom); - XCTAssertEqualObjects(user.email, email); - XCTAssertEqualObjects(user.name, name); - XCTAssertNotNil(user.created); - XCTAssertNotNil(user.updated); - XCTAssertNotNil(user.eTag); - - handler(); - }); - }]; -} - -- (void)testCreate_ShouldFail_WhenCreatingSecondUserWithSameIdentifier { - NSString *userId = [NSUUID UUID].UUIDString; - NSString *name = [NSUUID UUID].UUIDString; - - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.createUser().userId(userId).name(name) - .performWithCompletion(^(PNCreateUserStatus *status) { - XCTAssertFalse(status.isError); - XCTAssertNotNil(status.data.user); - - handler(); - }); - }]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.createUser().userId(userId).name(name) - .performWithCompletion(^(PNCreateUserStatus *status) { - XCTAssertTrue(status.isError); - XCTAssertEqual(status.statusCode, 409); - XCTAssertNil(status.data.user); - - handler(); - }); - }]; -} - - -#pragma mark - Tests :: Update - -- (void)testUpdate_ShouldUpdate_WhenUserExists { - NSString *userId = [NSUUID UUID].UUIDString; - NSString *name = [NSUUID UUID].UUIDString; - NSString *expectedName = [NSUUID UUID].UUIDString; - __block NSDate *createDate = nil; - __block NSDate *updateDate = nil; - __block NSString *eTag = nil; - - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.createUser().userId(userId).name(name).includeFields(PNUserCustomField) - .performWithCompletion(^(PNCreateUserStatus *status) { - createDate = status.data.user.created; - updateDate = status.data.user.updated; - eTag = status.data.user.eTag; - - handler(); - }); - }]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.updateUser().userId(userId).name(expectedName).includeFields(PNUserCustomField) - .performWithCompletion(^(PNUpdateUserStatus *status) { - XCTAssertEqualObjects(status.data.user.name, expectedName); - XCTAssertEqualObjects(status.data.user.created, createDate); - XCTAssertNotEqualObjects(status.data.user.updated, updateDate); - XCTAssertNotEqualObjects(status.data.user.name, eTag); - - handler(); - }); - }]; -} - -- (void)testUpdate_ShouldTriggerUpdateEvent_WhenUpdatingExistingUser { - NSString *userId = [NSUUID UUID].UUIDString; - NSString *name = [NSUUID UUID].UUIDString; - NSDictionary *custom = @{ @"user-custom": [NSUUID UUID].UUIDString }; - NSDictionary *expectedCustom = @{ @"user-custom": [NSUUID UUID].UUIDString }; - NSString *expectedName = [NSUUID UUID].UUIDString; - [self.client2 addListener:self]; - NSString *channel = userId; - - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.createUser().userId(userId).name(name).custom(custom) - .performWithCompletion(^(PNCreateUserStatus *status) { - handler(); - }); - }]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - [self addStatusHandlerForClient:self.client2 - withBlock:^(PubNub *client, PNSubscribeStatus *status, BOOL *remove) { - - if (status.category == PNConnectedCategory) { - *remove = YES; - - handler(); - } - }]; - - self.client2.subscribe().channels(@[channel]).perform(); - }]; - - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - [self addUserHandlerForClient:self.client2 - withBlock:^(PubNub *client, PNUserEventResult *event, BOOL *remove) { - *remove = YES; -#pragma GCC diagnostic push -#pragma clang diagnostic ignored "-Warc-retain-cycles" - XCTAssertEqualObjects(event.data.event, @"update"); - XCTAssertEqualObjects(event.data.name, expectedName); - XCTAssertEqualObjects(event.data.custom, expectedCustom); - XCTAssertNotNil(event.data.updated); - XCTAssertNotNil(event.data.timestamp); -#pragma GCC diagnostic pop - - handler(); - }]; - - self.client1.updateUser().userId(userId).name(expectedName).custom(expectedCustom) - .performWithCompletion(^(PNUpdateUserStatus *status) { }); - }]; -} - -- (void)testUpdate_ShouldFail_WhenUserNotExist { - NSString *userId = [NSUUID UUID].UUIDString; - NSString *name = [NSUUID UUID].UUIDString; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.updateUser().userId(userId).name(name) - .performWithCompletion(^(PNUpdateUserStatus *status) { - XCTAssertTrue(status.isError); - XCTAssertEqual(status.statusCode, 404); - XCTAssertNil(status.data.user); - - handler(); - }); - }]; -} - - -#pragma mark - Tests :: Delete - -- (void)testDelete_ShouldDelete_WhenUserExists { - NSString *userId = [NSUUID UUID].UUIDString; - NSString *name = [NSUUID UUID].UUIDString; - - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.createUser().userId(userId).name(name) - .performWithCompletion(^(PNCreateUserStatus *status) { - - handler(); - }); - }]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.deleteUser().userId(userId) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { - handler(); - }); - }]; -} - -- (void)testDelete_ShouldTriggerDeleteEvent_WhenDeletingExistingUser { - NSString *userId = [NSUUID UUID].UUIDString; - NSString *name = [NSUUID UUID].UUIDString; - [self.client2 addListener:self]; - NSString *channel = userId; - - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.createUser().userId(userId).name(name) - .performWithCompletion(^(PNCreateUserStatus *status) { - - handler(); - }); - }]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - [self addStatusHandlerForClient:self.client2 - withBlock:^(PubNub *client, PNSubscribeStatus *status, BOOL *remove) { - - if (status.category == PNConnectedCategory) { - *remove = YES; - - handler(); - } - }]; - - self.client2.subscribe().channels(@[channel]).perform(); - }]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - [self addUserHandlerForClient:self.client2 - withBlock:^(PubNub *client, PNUserEventResult *event, BOOL *remove) { - *remove = YES; -#pragma GCC diagnostic push -#pragma clang diagnostic ignored "-Warc-retain-cycles" - XCTAssertEqualObjects(event.data.event, @"delete"); - XCTAssertEqualObjects(event.data.identifier, userId); - XCTAssertNotNil(event.data.timestamp); -#pragma GCC diagnostic pop - - handler(); - }]; - - self.client1.deleteUser().userId(userId).performWithCompletion(^(PNAcknowledgmentStatus *status) { }); - }]; -} - - -#pragma mark - Tests :: Fetch - -- (void)testFetch_ShouldFetch_WhenUserExists { - NSString *userId = [NSUUID UUID].UUIDString; - NSString *name = [NSUUID UUID].UUIDString; - NSDictionary *custom = @{ - @"user-custom1": [NSUUID UUID].UUIDString, - @"user-custom2": [NSUUID UUID].UUIDString - }; - __block NSDate *createDate = nil; - __block NSDate *updateDate = nil; - __block NSString *eTag = nil; - - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.createUser().userId(userId).name(name).custom(custom) - .performWithCompletion(^(PNCreateUserStatus *status) { - PNUser *user = status.data.user; - createDate = user.created; - updateDate = user.updated; - eTag = user.eTag; - - handler(); - }); - }]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.fetchUser().userId(userId).includeFields(PNUserCustomField) - .performWithCompletion(^(PNFetchUserResult *result, PNErrorStatus *status) { - PNUser *user = result.data.user; - XCTAssertNotNil(user); - XCTAssertEqualObjects(user.created, createDate); - XCTAssertEqualObjects(user.updated, updateDate); - XCTAssertEqualObjects(user.eTag, eTag); - - handler(); - }); - }]; -} - -- (void)testFetch_ShouldFail_WhenUserNotExist { - NSString *userId = [NSUUID UUID].UUIDString; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.fetchUser().userId(userId) - .performWithCompletion(^(PNFetchUserResult *result, PNErrorStatus *status) { - XCTAssertNil(result); - XCTAssertTrue(status.isError); - XCTAssertEqual(status.statusCode, 404); - - handler(); - }); - }]; -} - - -#pragma mark - Tests :: Fetch all - -- (void)testFetchAll_ShouldFetch_WhenCalledWithDefauls { - NSArray *users = [self createTestUsers]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.fetchUsers() - .performWithCompletion(^(PNFetchUsersResult *result, PNErrorStatus *status) { - XCTAssertEqual(result.data.users.count, users.count); - XCTAssertEqual(result.data.totalCount, 0); - - handler(); - }); - }]; -} - -- (void)testFetchAll_ShouldFetchLimited_WhenCalledWithLimit { - NSArray *users = [self createTestUsers]; - NSUInteger expectedCount = 2; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.fetchUsers().limit(expectedCount).includeFields(PNUserCustomField) - .includeCount(YES) - .performWithCompletion(^(PNFetchUsersResult *result, PNErrorStatus *status) { - XCTAssertEqual(result.data.users.count, expectedCount); - XCTAssertEqual(result.data.totalCount, users.count); - XCTAssertNotNil(result.data.users[0].custom); - - handler(); - }); - }]; -} - -- (void)testFetchAll_ShouldFetchNextPage_WhenCalledWithStart { - NSArray *users = [self createTestUsers]; - __block NSString *next = nil; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.fetchUsers().limit(users.count - 2) - .includeCount(YES) - .performWithCompletion(^(PNFetchUsersResult *result, PNErrorStatus *status) { - XCTAssertEqual(result.data.users.count, users.count - 2); - next = result.data.next; - - handler(); - }); - }]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client1.fetchUsers().start(next).includeCount(YES) - .performWithCompletion(^(PNFetchUsersResult *result, PNErrorStatus *status) { - XCTAssertEqual(result.data.users.count, 2); - - handler(); - }); - }]; -} - -#pragma mark - - - -@end diff --git a/Tests/iOS Tests/Tests/Integration/PNSubscribeIntegrationTest.m b/Tests/iOS Tests/Tests/Integration/PNSubscribeIntegrationTest.m deleted file mode 100644 index d498a41c2..000000000 --- a/Tests/iOS Tests/Tests/Integration/PNSubscribeIntegrationTest.m +++ /dev/null @@ -1,96 +0,0 @@ -/** - * @author Serhii Mamontov - * @copyright © 2010-2019 PubNub, Inc. - */ -#import -#import "PNTestCase.h" - - -#pragma mark Test interface declaration - -@interface PNSubscribeIntegrationTest : PNTestCase - - -#pragma mark - Information - -@property (nonatomic, strong) PubNub *client; - -#pragma mark - - - -@end - - -#pragma mark - Tests - -@implementation PNSubscribeIntegrationTest - - -#pragma mark - Setup / Tear down - -- (void)setUp { - - [super setUp]; - - - dispatch_queue_t callbackQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); - PNConfiguration *configuration = [PNConfiguration configurationWithPublishKey:self.publishKey - subscribeKey:self.subscribeKey]; - - if ([self.name rangeOfString:@"SubscriptionIdleTimeout_ShouldReconnect_WhenRequestTimeout"].location != NSNotFound) { - configuration.subscribeMaximumIdleTime = 10.f; - } - - self.client = [PubNub clientWithConfiguration:configuration callbackQueue:callbackQueue]; -} - -- (void)tearDown { - - if ([self.name rangeOfString:@"SubscriptionIdleTimeout_ShouldReconnect_WhenRequestTimeout"].location != NSNotFound) { - [self removeAllHandlersForClient:self.client]; - [self.client removeListener:self]; - } - - [super tearDown]; -} - - -#pragma mark - Tests :: subscription idle - -/** - * @brief Fix of \b CE-3744 ensure, what after unexpected disconnect client will report - * 'reconnected' at the next second after 'unexpected disconnect'. - */ -- (void)testSubscriptionIdleTimeout_ShouldReconnect_WhenRequestTimeout { - - NSTimeInterval delay = self.client.currentConfiguration.subscribeMaximumIdleTime * 0.5f; - NSString *expectedChannel = [NSUUID UUID].UUIDString; - [self.client addListener:self]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - [self addStatusHandlerForClient:self.client withBlock:^(PubNub * client, PNSubscribeStatus * status, BOOL * shouldRemove) { - if (status.category == PNUnexpectedDisconnectCategory) { - *shouldRemove = YES; - - handler(); - } - }]; - - self.client.subscribe().channels(@[expectedChannel]).perform(); - }]; - - [self waitToCompleteIn:delay codeBlock:^(dispatch_block_t handler) { - [self addStatusHandlerForClient:self.client withBlock:^(PubNub * client, PNSubscribeStatus * status, BOOL * shouldRemove) { - if (status.category == PNReconnectedCategory) { - *shouldRemove = YES; - - handler(); - } - }]; - }]; -} - -#pragma mark - - - -@end diff --git a/Tests/iOS Tests/Tests/Integration/Publish/PNSignalIntegrationTest.m b/Tests/iOS Tests/Tests/Integration/Publish/PNSignalIntegrationTest.m deleted file mode 100644 index a2d11bb10..000000000 --- a/Tests/iOS Tests/Tests/Integration/Publish/PNSignalIntegrationTest.m +++ /dev/null @@ -1,138 +0,0 @@ -/** - * @author Serhii Mamontov - * @copyright © 2010-2019 PubNub, Inc. - */ -#import -#import -#import "PNTestCase.h" - - -#pragma mark Test interface declaration - -@interface PNSignalIntegrationTest : PNTestCase - - -#pragma mark - Information - -@property (nonatomic, strong) PubNub *client; -@property (nonatomic, strong) PubNub *client2; - -#pragma mark - - - -@end - - -#pragma mark - Tests - -@implementation PNSignalIntegrationTest - - -#pragma mark - Setup / Tear down - -- (void)setUp { - [super setUp]; - - - dispatch_queue_t callbackQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); - PNConfiguration *configuration = [PNConfiguration configurationWithPublishKey:self.publishKey - subscribeKey:self.subscribeKey]; - - self.client = [PubNub clientWithConfiguration:configuration callbackQueue:callbackQueue]; - - if ([self.name rangeOfString:@"Encrypt"].location != NSNotFound) { - configuration.cipherKey = @"myCipherKey"; - self.client2 = [PubNub clientWithConfiguration:configuration callbackQueue:callbackQueue]; - } -} - -- (void)tearDown { - [self removeAllHandlersForClient:self.client]; - - if (self.client2) { - [self removeAllHandlersForClient:self.client2]; - } - - [self.client removeListener:self]; - - - [super tearDown]; -} - - -#pragma mark - Tests :: signal - -- (void)testSignal_ShouldSendString_WhenStringMessagePassed { - NSString *channel = [NSUUID UUID].UUIDString; - id message = @"Hello real-time!"; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.signal().message(message).channel(channel) - .performWithCompletion(^(PNSignalStatus *status) { - XCTAssertFalse(status.isError); - XCTAssertNotNil(status.data.timetoken); - handler(); - }); - }]; -} - -- (void)testSignal_ShouldReceiveNotEncrypted_WhenCipherKeySpecified { - NSString *channel = [NSUUID UUID].UUIDString; - id message = @{ @"hello": @"real-time!" }; - [self.client addListener:self]; - [self.client2 addListener:self]; - - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - [self addStatusHandlerForClient:self.client2 - withBlock:^(PubNub * client, PNSubscribeStatus * status, BOOL * shouldRemove) { - - if (status.category == PNConnectedCategory) { - *shouldRemove = YES; - - handler(); - } - }]; - - self.client2.subscribe().channels(@[channel]).perform(); - }]; - - // Ensure encryption key cause error for regular messages. - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - [self addStatusHandlerForClient:self.client2 withBlock:^(PubNub *client, PNSubscribeStatus *status, BOOL *shouldRemove) { - *shouldRemove = YES; -#pragma GCC diagnostic push -#pragma clang diagnostic ignored "-Warc-retain-cycles" - XCTAssertTrue(status.isError); -#pragma GCC diagnostic pop - handler(); - }]; - - self.client.publish().message(message).channel(channel) - .performWithCompletion(^(PNPublishStatus *status) { - XCTAssertFalse(status.isError); - }); - }]; - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - [self addSignalHandlerForClient:self.client2 - withBlock:^(PubNub *client, PNSignalResult *signal, BOOL *shouldRemove) { - *shouldRemove = YES; -#pragma GCC diagnostic push -#pragma clang diagnostic ignored "-Warc-retain-cycles" - XCTAssertEqualObjects(signal.data.message, message); -#pragma GCC diagnostic pop - - handler(); - }]; - - self.client.signal().message(message).channel(channel) - .performWithCompletion(^(PNSignalStatus *status) { - XCTAssertFalse(status.isError); - }); - }]; -} - -#pragma mark - - - -@end diff --git a/Tests/iOS Tests/Tests/Integration/Push Notifications/PNAPNSIntegrationTest.m b/Tests/iOS Tests/Tests/Integration/Push Notifications/PNAPNSIntegrationTest.m deleted file mode 100644 index 302f48199..000000000 --- a/Tests/iOS Tests/Tests/Integration/Push Notifications/PNAPNSIntegrationTest.m +++ /dev/null @@ -1,871 +0,0 @@ -/** - * @author Serhii Mamontov - * @copyright © 2010-2019 PubNub, Inc. - */ -#import "NSString+PNTest.h" -#import -#import -#import "PNTestCase.h" - - -#pragma mark Test interface declaration - -@interface PNAPNSIntegrationTest : PNTestCase - - -#pragma mark - Information - -@property (nonatomic, strong) PubNub *client; - - -#pragma mark - Misc - -/** - * @brief Generate random string which can be used as device push token. - */ -- (NSString *)randomTokenString; - -#pragma mark - - - -@end - - -#pragma mark - Tests - -@implementation PNAPNSIntegrationTest - -#pragma mark - Setup / Tear down - -- (void)setUp { - - [super setUp]; - - - dispatch_queue_t callbackQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0); - PNConfiguration *configuration = [PNConfiguration configurationWithPublishKey:self.publishKey - subscribeKey:self.subscribeKey]; - - self.client = [PubNub clientWithConfiguration:configuration callbackQueue:callbackQueue]; -} - - -#pragma mark - Tests :: enable - -- (void)testEnable_ShouldFallbackToTokenAndPushType_WhenCalledWithAPNSTokenParameter { - NSString *pushKey = [self randomTokenString]; - NSData *pushToken = [pushKey dataFromHexString:pushKey]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - self.client.push() - .enable() - .channels(@[@"channel1"]) - .apnsToken(pushToken) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { - NSString *url = status.clientRequest.URL.absoluteString; - - XCTAssertFalse(status.isError); - XCTAssertNotEqual([url rangeOfString:@"type=apns"].location, NSNotFound); - handler(); - }); -#pragma clang diagnostic pop - }]; -} - -- (void)testEnable_ShouldFallbackToTokenAndPushType_WhenCalledWithFCMTokenParameter { - NSString *pushKey = [self randomTokenString]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - self.client.push() - .enable() - .channels(@[@"channel1"]) - .fcmToken(pushKey) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { - NSString *url = status.clientRequest.URL.absoluteString; - - XCTAssertFalse(status.isError); - XCTAssertNotEqual([url rangeOfString:@"type=gcm"].location, NSNotFound); - handler(); - }); -#pragma clang diagnostic pop - }]; -} - -- (void)testEnable_ShouldCallWithAPNSToken_WhenCalledExplicitlyWithAPNSPushTypeParameter { - NSString *pushKey = [self randomTokenString]; - NSData *pushToken = [pushKey dataFromHexString:pushKey]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .enable() - .channels(@[@"channel1"]) - .token(pushToken) - .pushType(PNAPNSPush) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { - NSString *url = status.clientRequest.URL.absoluteString; - - XCTAssertFalse(status.isError); - XCTAssertNotEqual([url rangeOfString:@"type=apns"].location, NSNotFound); - handler(); - }); - }]; -} - -- (void)testEnable_ShouldCallWithAPNS2Token_WhenCalledExplicitlyWithAPNS2PushTypeParameter { - NSString *pushKey = [self randomTokenString]; - NSData *pushToken = [pushKey dataFromHexString:pushKey]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .enable() - .channels(@[@"channel1"]) - .token(pushToken) - .pushType(PNAPNS2Push) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { - NSString *url = status.clientRequest.URL.absoluteString; - - XCTAssertFalse(status.isError); - XCTAssertNotEqual([url rangeOfString:@"type=apns"].location, NSNotFound); - XCTAssertNotEqual([url rangeOfString:@"devices-apns2"].location, NSNotFound); - handler(); - }); - }]; -} - -- (void)testEnable_ShouldCallWithFCMToken_WhenCalledExplicitlyWithFCMPushTypeParameter { - NSString *pushKey = [self randomTokenString]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .enable() - .channels(@[@"channel1"]) - .token(pushKey) - .pushType(PNFCMPush) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { - NSString *url = status.clientRequest.URL.absoluteString; - - XCTAssertFalse(status.isError); - XCTAssertNotEqual([url rangeOfString:@"type=gcm"].location, NSNotFound); - handler(); - }); - }]; -} - -- (void)testEnable_ShouldCallWithMPNSToken_WhenCalledExplicitlyWithMPNSPushTypeParameter { - NSString *pushKey = [self randomTokenString]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .enable() - .channels(@[@"channel1"]) - .token(pushKey) - .pushType(PNMPNSPush) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { - NSString *url = status.clientRequest.URL.absoluteString; - - XCTAssertFalse(status.isError); - XCTAssertNotEqual([url rangeOfString:@"type=mpns"].location, NSNotFound); - handler(); - }); - }]; -} - -- (void)testEnable_ShouldFailCallAPNS_WhenCalledWithEmptyToken { - NSData *pushToken = nil; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .enable() - .channels(@[@"channel1"]) - .token(pushToken) - .pushType(PNAPNSPush) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { - XCTAssertTrue(status.isError); - handler(); - }); - }]; -} - -- (void)testEnable_ShouldFailCallAPNS_WhenCalledWithNonNSDataToken { - NSData *pushToken = (id)@""; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .enable() - .channels(@[@"channel1"]) - .token(pushToken) - .pushType(PNAPNSPush) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { - XCTAssertTrue(status.isError); - handler(); - }); - }]; -} - -- (void)testEnable_ShouldFailCallFCM_WhenCalledWithEmptyToken { - NSString *pushToken = nil; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .enable() - .channels(@[@"channel1"]) - .token(pushToken) - .pushType(PNFCMPush) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { - XCTAssertTrue(status.isError); - handler(); - }); - }]; -} - -- (void)testEnable_ShouldFailCallFCM_WhenCalledWithNonNSStringToken { - NSString *pushToken = (id)@2010; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .enable() - .channels(@[@"channel1"]) - .token(pushToken) - .pushType(PNFCMPush) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { - XCTAssertTrue(status.isError); - handler(); - }); - }]; -} - -- (void)testEnable_ShouldFailCallMPNS_WhenCalledWithEmptyToken { - NSString *pushToken = nil; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .enable() - .channels(@[@"PNMPNSPush"]) - .token(pushToken) - .pushType(PNFCMPush) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { - XCTAssertTrue(status.isError); - handler(); - }); - }]; -} - -- (void)testEnable_ShouldFailCallMPNS_WhenCalledWithNonNSStringToken { - NSString *pushToken = (id)@2010; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .enable() - .channels(@[@"channel1"]) - .token(pushToken) - .pushType(PNMPNSPush) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { - XCTAssertTrue(status.isError); - handler(); - }); - }]; -} - - -#pragma mark - Tests :: disable - -- (void)testDisable_ShouldFallbackToTokenAndPushType_WhenCalledWithAPNSTokenParameter { - NSString *pushKey = [self randomTokenString]; - NSData *pushToken = [pushKey dataFromHexString:pushKey]; - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .enable() - .channels(@[@"channel1"]) - .apnsToken(pushToken) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { - handler(); - }); - }]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .disable() - .channels(@[@"channel1"]) - .apnsToken(pushToken) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { - NSString *url = status.clientRequest.URL.absoluteString; - - XCTAssertFalse(status.isError); - XCTAssertNotEqual([url rangeOfString:@"type=apns"].location, NSNotFound); - handler(); - }); - }]; -#pragma clang diagnostic pop -} - -- (void)testDisable_ShouldFallbackToTokenAndPushType_WhenCalledWithFCMTokenParameter { - NSString *pushKey = [self randomTokenString]; - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .enable() - .channels(@[@"channel1"]) - .fcmToken(pushKey) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { - handler(); - }); - }]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .disable() - .channels(@[@"channel1"]) - .fcmToken(pushKey) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { - NSString *url = status.clientRequest.URL.absoluteString; - - XCTAssertFalse(status.isError); - XCTAssertNotEqual([url rangeOfString:@"type=gcm"].location, NSNotFound); - handler(); - }); - }]; -#pragma clang diagnostic pop -} - -- (void)testDisable_ShouldCallWithAPNSToken_WhenCalledExplicitlyWithAPNSPushTypeParameter { - NSString *pushKey = [self randomTokenString]; - NSData *pushToken = [pushKey dataFromHexString:pushKey]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .enable() - .channels(@[@"channel1"]) - .token(pushToken) - .pushType(PNAPNSPush) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { - handler(); - }); - }]; - - [self waitTask:@"pushNotificationEnable" completionFor:0.5f]; - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .disableAll() - .token(pushToken) - .pushType(PNAPNSPush) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { - handler(); - }); - }]; - - [self waitTask:@"pushNotificationDisable" completionFor:0.5f]; - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .audit() - .token(pushToken) - .pushType(PNAPNSPush) - .performWithCompletion(^(PNAPNSEnabledChannelsResult *result, PNErrorStatus *status) { - NSString *url = result.clientRequest.URL.absoluteString; - - XCTAssertNil(status); - XCTAssertNotEqual([url rangeOfString:@"type=apns"].location, NSNotFound); - XCTAssertEqual(result.data.channels.count, 0); - handler(); - }); - }]; -} - -- (void)testDisable_ShouldCallWithAPNS2Token_WhenCalledExplicitlyWithAPNS2PushTypeParameter { - NSString *pushKey = [self randomTokenString]; - NSData *pushToken = [pushKey dataFromHexString:pushKey]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .enable() - .channels(@[@"channel1"]) - .token(pushToken) - .pushType(PNAPNS2Push) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { - handler(); - }); - }]; - - [self waitTask:@"pushNotificationEnable" completionFor:0.5f]; - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .disableAll() - .token(pushToken) - .pushType(PNAPNS2Push) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { - handler(); - }); - }]; - - [self waitTask:@"pushNotificationDisable" completionFor:0.5f]; - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .audit() - .token(pushToken) - .pushType(PNAPNS2Push) - .performWithCompletion(^(PNAPNSEnabledChannelsResult *result, PNErrorStatus *status) { - NSString *url = result.clientRequest.URL.absoluteString; - - XCTAssertNil(status); - XCTAssertNotEqual([url rangeOfString:@"type=apns"].location, NSNotFound); - XCTAssertNotEqual([url rangeOfString:@"devices-apns2"].location, NSNotFound); - XCTAssertEqual(result.data.channels.count, 0); - handler(); - }); - }]; -} - -- (void)testDisable_ShouldCallWithFCMToken_WhenCalledExplicitlyWithFCMPushTypeParameter { - NSString *pushKey = [self randomTokenString]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .enable() - .channels(@[@"channel1"]) - .token(pushKey) - .pushType(PNFCMPush) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { - handler(); - }); - }]; - - [self waitTask:@"pushNotificationEnable" completionFor:0.5f]; - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .disableAll() - .token(pushKey) - .pushType(PNFCMPush) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { - handler(); - }); - }]; - - [self waitTask:@"pushNotificationDisable" completionFor:0.5f]; - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .audit() - .token(pushKey) - .pushType(PNFCMPush) - .performWithCompletion(^(PNAPNSEnabledChannelsResult *result, PNErrorStatus *status) { - NSString *url = result.clientRequest.URL.absoluteString; - - XCTAssertNil(status); - XCTAssertNotEqual([url rangeOfString:@"type=gcm"].location, NSNotFound); - XCTAssertEqual(result.data.channels.count, 0); - handler(); - }); - }]; -} - -- (void)testDisable_ShouldCallWithMPNSToken_WhenCalledExplicitlyWithMPNSPushTypeParameter { - NSString *pushKey = [self randomTokenString]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .enable() - .channels(@[@"channel1"]) - .token(pushKey) - .pushType(PNMPNSPush) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { - handler(); - }); - }]; - - [self waitTask:@"pushNotificationEnable" completionFor:0.5f]; - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .disableAll() - .token(pushKey) - .pushType(PNMPNSPush) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { - handler(); - }); - }]; - - [self waitTask:@"pushNotificationDisable" completionFor:0.5f]; - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .audit() - .token(pushKey) - .pushType(PNMPNSPush) - .performWithCompletion(^(PNAPNSEnabledChannelsResult *result, PNErrorStatus *status) { - NSString *url = result.clientRequest.URL.absoluteString; - - XCTAssertNil(status); - XCTAssertNotEqual([url rangeOfString:@"type=mpns"].location, NSNotFound); - XCTAssertEqual(result.data.channels.count, 0); - handler(); - }); - }]; -} - -- (void)testDisable_ShouldFailCall_WhenCalledWithEmptyChannelsList { - NSString *pushKey = [self randomTokenString]; - NSData *pushToken = [pushKey dataFromHexString:pushKey]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .disable() - .token(pushToken) - .pushType(PNAPNSPush) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { - XCTAssertTrue(status.isError); - handler(); - }); - }]; -} - -- (void)testDisable_ShouldFailCallAPNS_WhenCalledWithEmptyToken { - NSData *pushToken = nil; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .disable() - .channels(@[@"channel1"]) - .token(pushToken) - .pushType(PNAPNSPush) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { - XCTAssertTrue(status.isError); - handler(); - }); - }]; -} - -- (void)testDisable_ShouldFailCallAPNS_WhenCalledWithNonNSDataToken { - NSData *pushToken = (id)@""; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .disable() - .channels(@[@"channel1"]) - .token(pushToken) - .pushType(PNAPNSPush) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { - XCTAssertTrue(status.isError); - handler(); - }); - }]; -} - -- (void)testDisable_ShouldFailCallFCM_WhenCalledWithEmptyToken { - NSString *pushToken = nil; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .disable() - .channels(@[@"channel1"]) - .token(pushToken) - .pushType(PNFCMPush) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { - XCTAssertTrue(status.isError); - handler(); - }); - }]; -} - -- (void)testDisable_ShouldFailCallFCM_WhenCalledWithNonNSStringToken { - NSString *pushToken = (id)@2010; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .disable() - .channels(@[@"channel1"]) - .token(pushToken) - .pushType(PNFCMPush) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { - XCTAssertTrue(status.isError); - handler(); - }); - }]; -} - -- (void)testDisable_ShouldFailCallMPNS_WhenCalledWithEmptyToken { - NSString *pushToken = nil; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .disable() - .channels(@[@"PNMPNSPush"]) - .token(pushToken) - .pushType(PNFCMPush) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { - XCTAssertTrue(status.isError); - handler(); - }); - }]; -} - -- (void)testDisable_ShouldFailCallMPNS_WhenCalledWithNonNSStringToken { - NSString *pushToken = (id)@2010; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .disable() - .channels(@[@"channel1"]) - .token(pushToken) - .pushType(PNMPNSPush) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { - XCTAssertTrue(status.isError); - handler(); - }); - }]; -} - - -#pragma mark - Tests :: audit - -- (void)testAudit_ShouldFallbackToTokenAndPushType_WhenCalledWithAPNSTokenParameter { - NSString *pushKey = [self randomTokenString]; - NSData *pushToken = [pushKey dataFromHexString:pushKey]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - self.client.push() - .audit() - .apnsToken(pushToken) - .performWithCompletion(^(PNAPNSEnabledChannelsResult *result, PNErrorStatus *status) { - NSString *url = result.clientRequest.URL.absoluteString; - - XCTAssertNil(status); - XCTAssertNotEqual([url rangeOfString:@"type=apns"].location, NSNotFound); - handler(); - }); -#pragma clang diagnostic pop - }]; -} - -- (void)testAudit_ShouldFallbackToTokenAndPushType_WhenCalledWithFCMTokenParameter { - NSString *pushKey = [self randomTokenString]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - self.client.push() - .audit() - .fcmToken(pushKey) - .performWithCompletion(^(PNAPNSEnabledChannelsResult *result, PNErrorStatus *status) { - NSString *url = result.clientRequest.URL.absoluteString; - - XCTAssertNil(status); - XCTAssertNotEqual([url rangeOfString:@"type=gcm"].location, NSNotFound); - handler(); - }); -#pragma clang diagnostic pop - }]; -} - -- (void)testAudit_ShouldCallWithAPNSToken_WhenCalledExplicitlyWithAPNSPushTypeParameter { - NSString *pushKey = [self randomTokenString]; - NSData *pushToken = [pushKey dataFromHexString:pushKey]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .audit() - .token(pushToken) - .pushType(PNAPNSPush) - .performWithCompletion(^(PNAPNSEnabledChannelsResult *result, PNErrorStatus *status) { - NSString *url = result.clientRequest.URL.absoluteString; - - XCTAssertNil(status); - XCTAssertNotEqual([url rangeOfString:@"type=apns"].location, NSNotFound); - handler(); - }); - }]; -} - -- (void)testAudit_ShouldCallWithAPNS2Token_WhenCalledExplicitlyWithAPNS2PushTypeParameter { - NSString *pushKey = [self randomTokenString]; - NSData *pushToken = [pushKey dataFromHexString:pushKey]; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .audit() - .token(pushToken) - .pushType(PNAPNS2Push) - .performWithCompletion(^(PNAPNSEnabledChannelsResult *result, PNErrorStatus *status) { - NSString *url = result.clientRequest.URL.absoluteString; - - XCTAssertNil(status); - XCTAssertNotEqual([url rangeOfString:@"type=apns"].location, NSNotFound); - XCTAssertNotEqual([url rangeOfString:@"devices-apns2"].location, NSNotFound); - handler(); - }); - }]; -} - -- (void)testAudit_ShouldCallWithFCMToken_WhenCalledExplicitlyWithFCMPushTypeParameter { - NSString *pushKey = [self randomTokenString]; - NSString *channel = NSUUID.UUID.UUIDString; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .enable() - .channels(@[channel]) - .token(pushKey) - .pushType(PNFCMPush) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { - handler(); - }); - }]; - - [self waitTask:@"pushNotificationEnable" completionFor:0.5f]; - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .audit() - .token(pushKey) - .pushType(PNFCMPush) - .performWithCompletion(^(PNAPNSEnabledChannelsResult *result, PNErrorStatus *status) { - NSString *url = result.clientRequest.URL.absoluteString; - - XCTAssertNil(status); - XCTAssertNotEqual([url rangeOfString:@"type=gcm"].location, NSNotFound); - XCTAssertTrue([result.data.channels containsObject:channel]); - handler(); - }); - }]; -} - -- (void)testAudit_ShouldCallWithMPNSToken_WhenCalledExplicitlyWithMPNSPushTypeParameter { - NSString *pushKey = [self randomTokenString]; - NSString *channel = NSUUID.UUID.UUIDString; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .enable() - .channels(@[channel]) - .token(pushKey) - .pushType(PNMPNSPush) - .performWithCompletion(^(PNAcknowledgmentStatus *status) { - handler(); - }); - }]; - - [self waitTask:@"pushNotificationEnable" completionFor:0.5f]; - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .audit() - .token(pushKey) - .pushType(PNMPNSPush) - .performWithCompletion(^(PNAPNSEnabledChannelsResult *result, PNErrorStatus *status) { - NSString *url = result.clientRequest.URL.absoluteString; - - XCTAssertNil(status); - XCTAssertNotEqual([url rangeOfString:@"type=mpns"].location, NSNotFound); - XCTAssertTrue([result.data.channels containsObject:channel]); - handler(); - }); - }]; -} - -- (void)testAudit_ShouldFailCallAPNS_WhenCalledWithEmptyToken { - NSData *pushToken = nil; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .audit() - .token(pushToken) - .pushType(PNAPNSPush) - .performWithCompletion(^(PNAPNSEnabledChannelsResult *result, PNErrorStatus *status) { - XCTAssertTrue(status.isError); - handler(); - }); - }]; -} - -- (void)testAudit_ShouldFailCallAPNS_WhenCalledWithNonNSDataToken { - NSData *pushToken = (id)@""; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .audit() - .token(pushToken) - .pushType(PNAPNSPush) - .performWithCompletion(^(PNAPNSEnabledChannelsResult *result, PNErrorStatus *status) { - XCTAssertTrue(status.isError); - handler(); - }); - }]; -} - -- (void)testAudit_ShouldFailCallFCM_WhenCalledWithEmptyToken { - NSString *pushToken = nil; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .audit() - .token(pushToken) - .pushType(PNFCMPush) - .performWithCompletion(^(PNAPNSEnabledChannelsResult *result, PNErrorStatus *status) { - XCTAssertTrue(status.isError); - handler(); - }); - }]; -} - -- (void)testAudit_ShouldFailCallFCM_WhenCalledWithNonNSStringToken { - NSString *pushToken = (id)@2010; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .audit() - .token(pushToken) - .pushType(PNFCMPush) - .performWithCompletion(^(PNAPNSEnabledChannelsResult *result, PNErrorStatus *status) { - XCTAssertTrue(status.isError); - handler(); - }); - }]; -} - -- (void)testAudit_ShouldFailCallMPNS_WhenCalledWithEmptyToken { - NSString *pushToken = nil; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .audit() - .token(pushToken) - .pushType(PNFCMPush) - .performWithCompletion(^(PNAPNSEnabledChannelsResult *result, PNErrorStatus *status) { - XCTAssertTrue(status.isError); - handler(); - }); - }]; -} - -- (void)testAudit_ShouldFailCallMPNS_WhenCalledWithNonNSStringToken { - NSString *pushToken = (id)@2010; - - [self waitToCompleteIn:self.testCompletionDelay codeBlock:^(dispatch_block_t handler) { - self.client.push() - .audit() - .token(pushToken) - .pushType(PNMPNSPush) - .performWithCompletion(^(PNAPNSEnabledChannelsResult *result, PNErrorStatus *status) { - XCTAssertTrue(status.isError); - handler(); - }); - }]; -} - - -#pragma mark - Misc - -- (NSString *)randomTokenString { - NSString *uuidString = [@[[NSUUID UUID].UUIDString, [NSUUID UUID].UUIDString] componentsJoinedByString:@""]; - - return [[uuidString componentsSeparatedByString:@"-"] componentsJoinedByString:@""].lowercaseString; -} - -#pragma mark - - - -@end diff --git a/Tests/iOS Tests/Tests/NSURLSessionConfigurationCategoryTest.m b/Tests/iOS Tests/Tests/NSURLSessionConfigurationCategoryTest.m deleted file mode 100644 index 17666c396..000000000 --- a/Tests/iOS Tests/Tests/NSURLSessionConfigurationCategoryTest.m +++ /dev/null @@ -1,256 +0,0 @@ -#import -#import "NSURLSessionConfiguration+PNConfigurationPrivate.h" -#import - - -#pragma mark NSURLProtocol - -@interface SessionConfigurationCategoryTestProtocol : NSURLProtocol - -@end - -@implementation SessionConfigurationCategoryTestProtocol - -@end - - -/** - @brief NSURLSessionConfiguration testing. - @discussion Verify NSURLSessionConfiguration category apply passed parameters to default \b PubNub session - configuration. - - @author Sergey Mamontov - @copyright © 2009-2016 PubNub, Inc. - */ -@interface NSURLSessionConfigurationCategoryTest : XCTestCase - - -#pragma mark - Properties - -/** - @brief Stores reference on shared session configuration which is used to configure \c NSURLSession which - is used to call \b PubNub REST API. - */ -@property (nonatomic, weak) NSURLSessionConfiguration *configuration; - -/** - @brief Storing reference on original set of protocol classes which may be used by mocking libraries. - */ -@property (nonatomic, strong) NSArray *originalProtocolClasses; - - -#pragma mark - Misc - -/** - @brief Allow to construct set of headers which should be used for network requests. - - @return Dictionary with headers which should be added to each request. - */ -+ (NSDictionary *)pn_testHeaders; - -#pragma mark - - - -@end - - - -#pragma mark - Test case implementation - -@implementation NSURLSessionConfigurationCategoryTest - - -- (void)setUp { - - // Forward method call to the super class. - [super setUp]; - - self.configuration = [NSURLSessionConfiguration pn_ephemeralSessionConfigurationWithIdentifier:@"testConfiguration"]; - self.originalProtocolClasses = [self.configuration.protocolClasses copy]; - - // Reset shared session configuration instance. - [NSURLSessionConfiguration pn_setHTTPAdditionalHeaders:nil]; - [NSURLSessionConfiguration pn_setNetworkServiceType:NSURLNetworkServiceTypeDefault]; - [NSURLSessionConfiguration pn_setAllowsCellularAccess:YES]; - [NSURLSessionConfiguration pn_setProtocolClasses:nil]; - [NSURLSessionConfiguration pn_setConnectionProxyDictionary:nil]; -} - -- (void)tearDown { - - // Forward method call to the super class. - [super tearDown]; - - // Restoring original set of protocol classes. - self.configuration.protocolClasses = self.originalProtocolClasses; -} - -/** - @brief Checking what changes inside of two configuration for non-shared values won't affect second instance. - */ -- (void)testConfigurationsScopedModification { - - NSURLSessionConfiguration *configuration1 = nil; - NSURLSessionConfiguration *configuration2 = nil; - - // Setup first configuration data. - configuration1 = [NSURLSessionConfiguration pn_ephemeralSessionConfigurationWithIdentifier:@"testConfiguration1"]; - configuration1.HTTPShouldUsePipelining = YES; - configuration1.timeoutIntervalForRequest = 10.f; - configuration1.HTTPMaximumConnectionsPerHost = 3; - - // Setup second configuration data. - configuration2 = [NSURLSessionConfiguration pn_ephemeralSessionConfigurationWithIdentifier:@"testConfiguration2"]; - configuration2.HTTPShouldUsePipelining = NO; - configuration2.timeoutIntervalForRequest = 310.f; - configuration2.HTTPMaximumConnectionsPerHost = 1; - - // Set custom HTTP header. - NSDictionary *customHeaders = @{@"X-Powered-By": @"PubNub"}; - [NSURLSessionConfiguration pn_setHTTPAdditionalHeaders:customHeaders]; - - XCTAssertNotEqual(configuration1.HTTPShouldUsePipelining, configuration2.HTTPShouldUsePipelining, - @"HTTPShouldUsePipelining value expected to be different for independent configuration " - "instances."); - XCTAssertNotEqual(configuration1.timeoutIntervalForRequest, configuration2.timeoutIntervalForRequest, - @"Request timeout value expected to be different for independent configuration " - "instances."); - XCTAssertNotEqual(configuration1.HTTPMaximumConnectionsPerHost, configuration2.HTTPMaximumConnectionsPerHost, - @"HTTPMaximumConnectionsPerHost value expected to be different for independent " - "configuration instances."); - - XCTAssertEqualObjects(configuration1.HTTPAdditionalHeaders, configuration2.HTTPAdditionalHeaders, - @"Independent configurations expected to has same value for shared additional HTTP " - "headers."); -} - -- (void)testDefaultSessionConfiguration { - - XCTAssertEqual(self.configuration.requestCachePolicy, NSURLRequestReloadIgnoringLocalCacheData, - @"Unexpected requests cache policy."); - XCTAssertNil(self.configuration.URLCache, @"NSURLCache should be 'nil' for default NSURLSession " - "configuration."); - XCTAssertEqualObjects([NSURLSessionConfiguration pn_HTTPAdditionalHeaders], nil, - @"Custome HTTP headers should be 'nil'."); - XCTAssertEqualObjects(self.configuration.HTTPAdditionalHeaders, [[self class] pn_testHeaders], - @"Unexpected default set of additional HTTP headers."); -} - -- (void)testSetAdditionalHeaders { - - // Set custom HTTP header. - NSDictionary *customHeaders = @{@"X-Powered-By": @"PubNub"}; - [NSURLSessionConfiguration pn_setHTTPAdditionalHeaders:customHeaders]; - - // Construct expected set of headers. - NSMutableDictionary *expectedHeaders = [customHeaders mutableCopy]; - [expectedHeaders addEntriesFromDictionary:[[self class] pn_testHeaders]]; - - XCTAssertEqualObjects([NSURLSessionConfiguration pn_HTTPAdditionalHeaders], customHeaders, - @"Unexpected additional HTTP headers."); - XCTAssertEqualObjects(self.configuration.HTTPAdditionalHeaders, expectedHeaders, - @"Unexpected additional HTTP headers."); -} - -- (void)testSetAdditionalHeadersWithCustomUserAgent { - - // Set custom HTTP header. - NSDictionary *customHeaders = @{@"X-Powered-By": @"PubNub", @"User-Agent": @"PubNub-Test"}; - [NSURLSessionConfiguration pn_setHTTPAdditionalHeaders:customHeaders]; - - // Construct expected set of headers. - // Custom 'User-Agent' should be ignored. - NSMutableDictionary *expectedHeaders = [customHeaders mutableCopy]; - [expectedHeaders addEntriesFromDictionary:[[self class] pn_testHeaders]]; - - XCTAssertEqualObjects([NSURLSessionConfiguration pn_HTTPAdditionalHeaders], - [customHeaders dictionaryWithValuesForKeys:@[@"X-Powered-By"]], - @"Unexpected additional HTTP headers."); - XCTAssertEqualObjects(self.configuration.HTTPAdditionalHeaders, expectedHeaders, - @"Unexpected additional HTTP headers."); -} - -- (void)testResetAdditionalHeadersToNil { - - // Set custom HTTP header. - NSMutableDictionary *customHeaders = [@{@"X-Powered-By": @"PubNub", - @"User-Agent": @"PubNub-Test"} mutableCopy]; - [NSURLSessionConfiguration pn_setHTTPAdditionalHeaders:customHeaders]; - [NSURLSessionConfiguration pn_setHTTPAdditionalHeaders:nil]; - - // Construct expected set of headers. - NSDictionary *expectedHeaders = [[self class] pn_testHeaders]; - - XCTAssertEqualObjects([NSURLSessionConfiguration pn_HTTPAdditionalHeaders], nil, - @"Custome HTTP headers should be 'nil'."); - XCTAssertEqualObjects(self.configuration.HTTPAdditionalHeaders, expectedHeaders, - @"Expected only default HTTP header fields."); -} - -- (void)testSetNetworkServiceType { - - [NSURLSessionConfiguration pn_setNetworkServiceType:NSURLNetworkServiceTypeBackground]; - - XCTAssertEqual([NSURLSessionConfiguration pn_networkServiceType], NSURLNetworkServiceTypeBackground, - @"Unexpected network service type is set."); - XCTAssertEqual(self.configuration.networkServiceType, NSURLNetworkServiceTypeBackground, - @"Unexpected network service type is set."); -} - -- (void)testSetAllowsCellularAccess { - - [NSURLSessionConfiguration pn_setAllowsCellularAccess:NO]; - - XCTAssertEqual([NSURLSessionConfiguration pn_allowsCellularAccess], NO, - @"Expected cellular access to be disabled."); - XCTAssertEqual(self.configuration.allowsCellularAccess, NO, @"Expected cellular access to be disabled."); -} - -- (void)testSetProtocolClasses { - - NSUInteger systemProvidedProtocolsCount = self.configuration.protocolClasses.count; - Class testProtocolClass = [SessionConfigurationCategoryTestProtocol class]; - [NSURLSessionConfiguration pn_setProtocolClasses:@[testProtocolClass]]; - - XCTAssertEqual([NSURLSessionConfiguration pn_protocolClasses].count, 1, - @"Unexpected number of custom request handlign protocol classes."); - XCTAssertEqual(self.configuration.protocolClasses.count, (systemProvidedProtocolsCount + 1), - @"Unexpected number of custom request handlign protocol classes."); - XCTAssertEqualObjects([NSURLSessionConfiguration pn_protocolClasses].firstObject, testProtocolClass, - @"Expected test protocol class."); - XCTAssertEqualObjects(self.configuration.protocolClasses.lastObject, testProtocolClass, - @"Expected test protocol class."); -} - - -- (void)testSetConnectionProxy { - - // Prepare and apply connection proxy dictionary. - NSDictionary *proxyDictionary = @{(NSString *)kCFStreamPropertySOCKSProxyHost : @"ps.pndsn.com", - (NSString *)kCFStreamPropertySOCKSProxyPort : @(80) }; - [NSURLSessionConfiguration pn_setConnectionProxyDictionary:proxyDictionary]; - - XCTAssertEqualObjects([NSURLSessionConfiguration pn_connectionProxyDictionary], proxyDictionary, - @"Unexpected connection proxy dictionary content."); - XCTAssertEqualObjects(self.configuration.connectionProxyDictionary, proxyDictionary, - @"Unexpected connection proxy dictionary content."); -} - - -#pragma mark - Misc - -+ (NSDictionary *)pn_testHeaders { - - NSString *device = @"iPhone"; - NSString *osVersion = pn_operating_system_version(); - NSString *userAgent = [NSString stringWithFormat:@"iPhone; CPU %@ OS %@ Version", - device, osVersion]; - - return @{@"Accept":@"*/*", @"Accept-Encoding":@"gzip,deflate", @"User-Agent":userAgent, - @"Connection":@"keep-alive"}; -} - -#pragma mark - - - -@end diff --git a/Tests/iOS Tests/Tests/PNAPNSTests.m b/Tests/iOS Tests/Tests/PNAPNSTests.m deleted file mode 100644 index 32869ef5f..000000000 --- a/Tests/iOS Tests/Tests/PNAPNSTests.m +++ /dev/null @@ -1,355 +0,0 @@ -// -// PNAPNSTests.m -// PubNub Tests -// -// Created by Jordan Zucker on 3/23/16. -// -// - -#import - -#import "PNBasicSubscribeTestCase.h" - -#import "NSString+PNTest.h" - -@interface PNAPNSTests : PNBasicClientTestCase - -@property XCTestExpectation *testExpectation; - -@end - -@implementation PNAPNSTests - -- (void)setUp { - [super setUp]; - - // On Account you put there we obligatory need to enable Push Notifications - // using PubNub Developer Console - self.configuration = [PNConfiguration configurationWithPublishKey:self.publishKey - subscribeKey:self.subscribeKey]; - self.configuration.uuid = @"322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C"; - - self.client = [PubNub clientWithConfiguration:self.configuration]; -} - -- (BOOL)isRecording{ - return NO; -} - -#pragma mark - Tests - -- (void)testAddPushOnChannels { - - self.testExpectation = [self expectationWithDescription:@"Add Push Expectation."]; - - NSArray *channels = @[@"1", @"2", @"3"]; - NSString *pushKey = @"6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091"; - - NSData *pushToken = [pushKey dataFromHexString:pushKey]; - - PNWeakify(self); - - [self.client addPushNotificationsOnChannels:channels - withDevicePushToken:pushToken - andCompletion:^(PNAcknowledgmentStatus *status) { - - PNStrongify(self); - - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.statusCode, 200, @"Response status code is not 200"); - - [self.testExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - XCTAssertNil(error); - }]; -} - -- (void)testAddPushOnNilChannels { - - self.testExpectation = [self expectationWithDescription:@"Add Push Expectation."]; - - NSArray *channels = nil; - NSString *pushKey = @"6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091"; - - NSData *pushToken = [pushKey dataFromHexString:pushKey]; - - PNWeakify(self); - - [self.client addPushNotificationsOnChannels:channels - withDevicePushToken:pushToken - andCompletion:^(PNAcknowledgmentStatus *status) { - - PNStrongify(self); - - XCTAssertNotNil(status); - XCTAssertTrue(status.isError); - XCTAssertEqual(status.statusCode, 400, @"Response status code is not 400"); - - [self.testExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - XCTAssertNil(error); - }]; - -} - -- (void)testAddPushOnChannelsWithNilPushToken { - self.testExpectation = [self expectationWithDescription:@"Add Push Expectation."]; - - NSArray *channels = @[@"1", @"2", @"3"]; - NSData *pushToken = nil; - - PNWeakify(self); - - [self.client addPushNotificationsOnChannels:channels - withDevicePushToken:pushToken - andCompletion:^(PNAcknowledgmentStatus *status) { - - PNStrongify(self); - - XCTAssertNotNil(status); - XCTAssertTrue(status.isError); - XCTAssertEqual(status.statusCode, 400, @"Response status code is not 400"); - - [self.testExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - XCTAssertNil(error); - }]; -} - - -- (void)testRemovePushNotificationFromChannel { - self.testExpectation = [self expectationWithDescription:@"Remove Push Expectation."]; - - NSArray *channels = @[@"1", @"2", @"3"];; - NSString *pushKey = @"6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091"; - - NSData *pushToken = [pushKey dataFromHexString:pushKey]; - - PNWeakify(self); - - [self.client removePushNotificationsFromChannels:channels - withDevicePushToken:pushToken - andCompletion:^(PNAcknowledgmentStatus *status) { - - PNStrongify(self); - - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.operation, PNRemovePushNotificationsFromChannelsOperation, @"Wrong operation."); - - XCTAssertEqual(status.statusCode, 200, @"Response status code is not 200"); - - - [self.testExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - XCTAssertNil(error); - }]; -} - -- (void)testRemovePushNotificationFromNilChannel { - self.testExpectation = [self expectationWithDescription:@"Remove Push Expectation."]; - - NSArray *channels = nil; - NSString *pushKey = @"6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091"; - - NSData *pushToken = [pushKey dataFromHexString:pushKey]; - - PNWeakify(self); - - [self.client removePushNotificationsFromChannels:channels - withDevicePushToken:pushToken - andCompletion:^(PNAcknowledgmentStatus *status) { - - PNStrongify(self); - - XCTAssertNotNil(status); - XCTAssertTrue(status.isError); - XCTAssertEqual(status.operation, PNRemovePushNotificationsFromChannelsOperation, @"Wrong operation."); - - XCTAssertEqual(status.statusCode, 400, @"Response status code is not 400"); - - [self.testExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - XCTAssertNil(error); - }]; -} - -- (void)testRemovePushNotificationFromNilChannelWithNilDevicePushToken { - self.testExpectation = [self expectationWithDescription:@"Remove Push Expectation."]; - - NSArray *channels = nil; - NSData *pushToken = nil; - - PNWeakify(self); - - [self.client removePushNotificationsFromChannels:channels - withDevicePushToken:pushToken - andCompletion:^(PNAcknowledgmentStatus *status) { - - PNStrongify(self); - - XCTAssertNotNil(status); - XCTAssertTrue(status.isError); - XCTAssertEqual(status.operation, PNRemovePushNotificationsFromChannelsOperation, @"Wrong operation."); - - XCTAssertEqual(status.statusCode, 400, @"Response status code is not 400"); - - [self.testExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - XCTAssertNil(error); - }]; -} - -- (void)testRemovePushNotificationFromChannelWithNilDevicePushToken { - self.testExpectation = [self expectationWithDescription:@"Remove Push Expectation."]; - - NSArray *channels = @[@"1", @"2", @"3"]; - - NSData *pushToken = nil; - - PNWeakify(self); - - [self.client removePushNotificationsFromChannels:channels - withDevicePushToken:pushToken - andCompletion:^(PNAcknowledgmentStatus *status) { - - PNStrongify(self); - - XCTAssertNotNil(status); - XCTAssertTrue(status.isError); - XCTAssertEqual(status.operation, PNRemovePushNotificationsFromChannelsOperation, @"Wrong operation."); - XCTAssertEqual(status.statusCode, 400, @"Response status code is not 400"); - - [self.testExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - XCTAssertNil(error); - }]; -} - -- (void)testRemoveAllPushNotificationFromDevice { - self.testExpectation = [self expectationWithDescription:@"Remove Push Expectation."]; - - NSString *pushKey = @"6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091"; - - NSData *pushToken = [pushKey dataFromHexString:pushKey]; - - PNWeakify(self); - - [self.client removeAllPushNotificationsFromDeviceWithPushToken:pushToken - andCompletion:^(PNAcknowledgmentStatus *status) { - - PNStrongify(self); - - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.operation, PNRemoveAllPushNotificationsOperation, @"Wrong operation."); - - XCTAssertEqual(status.statusCode, 200, @"Response status code is not 200"); - - [self.testExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - XCTAssertNil(error); - }]; - -} - -- (void)testRemoveAllPushNotificationFromDeviceWithNilToken { - self.testExpectation = [self expectationWithDescription:@"Remove Push Expectation."]; - - NSData *pushToken = nil; - - PNWeakify(self); - - [self.client removeAllPushNotificationsFromDeviceWithPushToken:pushToken - andCompletion:^(PNAcknowledgmentStatus *status) { - - PNStrongify(self); - - XCTAssertNotNil(status); - XCTAssertTrue(status.isError); - XCTAssertEqual(status.operation, PNRemoveAllPushNotificationsOperation, @"Wrong operation."); - - XCTAssertEqual(status.statusCode, 400, @"Response status code is not 400"); - - [self.testExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - XCTAssertNil(error); - }]; -} - -- (void)testAuditPushNotificationStatus { - self.testExpectation = [self expectationWithDescription:@"Remove Push Expectation."]; - - NSString *pushKey = @"6652cff7f17536c86bc353527017741ec07a91699661abaf68c5977a83013091"; - - NSData *pushToken = [pushKey dataFromHexString:pushKey]; - - PNWeakify(self); - - [self.client pushNotificationEnabledChannelsForDeviceWithPushToken:pushToken - andCompletion:^(PNAPNSEnabledChannelsResult *result, PNErrorStatus *status) { - - PNStrongify(self); - - XCTAssertNil(status); - XCTAssertEqual(result.operation, PNPushNotificationEnabledChannelsOperation, @"Wrong operation."); - - XCTAssertEqual(result.statusCode, 200, @"Response status code is not 200"); - - XCTAssertTrue([result.data.channels count] == 3, @"Channel list is not equal."); - - [self.testExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - XCTAssertNil(error); - }]; -} - -- (void)testAuditPushNotificationStatusWithNilPushToken { - self.testExpectation = [self expectationWithDescription:@"Remove Push Expectation."]; - - NSData *pushToken = nil; - - PNWeakify(self); - - [self.client pushNotificationEnabledChannelsForDeviceWithPushToken:pushToken - andCompletion:^(PNAPNSEnabledChannelsResult *result, PNErrorStatus *status) { - - PNStrongify(self); - - XCTAssertNil(result); - XCTAssertNotNil(status); - XCTAssertEqual(status.operation, PNPushNotificationEnabledChannelsOperation, @"Wrong operation."); - - XCTAssertEqual(status.statusCode, 400, @"Response status code is not 400"); - - [self.testExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - XCTAssertNil(error); - }]; - -} - -@end diff --git a/Tests/iOS Tests/Tests/PNChannelGroupFilteringSubscribeTests.m b/Tests/iOS Tests/Tests/PNChannelGroupFilteringSubscribeTests.m deleted file mode 100644 index 60931cf5c..000000000 --- a/Tests/iOS Tests/Tests/PNChannelGroupFilteringSubscribeTests.m +++ /dev/null @@ -1,533 +0,0 @@ -// -// PNChannelGroupFilteringSubscribeTests.m -// PubNub Tests -// -// Created by Jordan Zucker on 12/19/15. -// -// - -#import "PNBasicSubscribeTestCase.h" - -static NSString * const kPNChannelTestName = @"PNFilterSubscribeTests"; -static NSString * const kPNOtherTestChannelName = @"PNOtherTestChannelName"; -static NSString * const kPNChannelGroupTestName = @"PNChannelGroupFilterSubscribeTests"; - -@interface PNChannelGroupFilteringSubscribeTests : PNBasicSubscribeTestCase -@property (nonatomic, assign) BOOL hasPublished; -@end - -@implementation PNChannelGroupFilteringSubscribeTests - -- (BOOL)isRecording{ - return NO; -} - -- (void)setUp { - [super setUp]; - [self setupMessageFiltering]; - self.hasPublished = NO; - self.subscribeExpectation = nil; - self.channelGroupSubscribeExpectation = nil; - self.channelGroupUnsubscribeExpectation = nil; - // Put setup code here. This method is called before the invocation of each test method in the class. - PNWeakify(self); - [self performVerifiedAddChannels:@[kPNChannelTestName, kPNOtherTestChannelName] toGroup:kPNChannelGroupTestName withAssertions:^(PNAcknowledgmentStatus *status) { - PNStrongify(self); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.operation, PNAddChannelsToGroupOperation); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.statusCode, 200); - }]; -} - -- (void)tearDown { - // Put teardown code here. This method is called after the invocation of each test method in the class. - self.publishExpectation = nil; - self.subscribeExpectation = nil; - PNWeakify(self); - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - NSLog(@"***************** status: %@", status.debugDescription); - if (status.operation == PNSubscribeOperation) { - return; - } - XCTAssertEqualObjects(self.client, client); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); -// XCTAssertEqual(status.operation, PNUnsubscribeOperation); -// XCTAssertEqual(status.category, PNDisconnectedCategory); -// / `/ XCTAssertEqual(status.subscribedChannels.count, 0); - XCTAssertEqual(status.subscribedChannelGroups.count, 0); - XCTAssertEqual(status.subscribedChannels.count, 0); - XCTAssertEqual(status.operation, PNUnsubscribeOperation); - XCTAssertEqual(status.category, PNDisconnectedCategory); -// XCTAssertEqual(status.operation, PNUnsubscribeOperation); - NSLog(@"tearDown status: %@", status.debugDescription); - NSLog(@"timeToken: %@", status.currentTimetoken); -// XCTAssertEqualObjects(status.currentTimetoken, @14355626738514132); -// XCTAssertEqualObjects(status.currentTimetoken, status.data.timetoken); - [self.channelGroupUnsubscribeExpectation fulfill]; - self.channelGroupSubscribeExpectation = nil; - - }; - [self PNTest_unsubscribeFromChannelGroups:@[kPNChannelGroupTestName] withPresence:NO]; - [super tearDown]; -} - -- (void)setupMessageFiltering { - - if ( - (self.invocation.selector == @selector(testPublishWithNoMetadataAndReceivedMessageForSubscribeWithNoFiltering)) || - (self.invocation.selector == @selector(testPublishWithNoMetadataAndReceiveMultipleMessagesForSubscribeWithNoFiltering)) - ) { - // No filter expression - } else if (self.invocation.selector == @selector(testPublishWithMetadataAndNoReceivedMessageForSubscribeWithDifferentFiltering)) { - [self.client setFilterExpression:@"(a == 'b')"]; - } else if (self.invocation.selector == @selector(testPublishWithMetadataAndNoReceivedMessageForSubscribeWithFilteringWithSameKeyAndDifferentValue)) { - [self.client setFilterExpression:@"(foo == 'b')"]; - } else if (self.invocation.selector == @selector(testPublishWithMetadataAndNoReceivedMessageForSubscribeWithFilteringWithSwitchedKeysAndValues)) { - [self.client setFilterExpression:@"(bar == 'foo')"]; - } else { - - [self.client setFilterExpression:@"(foo=='bar')"]; - } -} - -- (void)testPublishWithNoMetadataAndReceivedMessageForSubscribeWithNoFiltering { - PNWeakify(self); - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - XCTAssertEqualObjects(self.client, client); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.category, PNConnectedCategory); - XCTAssertEqual(status.subscribedChannels.count, 0); - XCTAssertEqualObjects(status.subscribedChannelGroups, @[kPNChannelGroupTestName]); - - XCTAssertEqual(status.operation, PNSubscribeOperation); - NSLog(@"timeToken: %@", status.currentTimetoken); -// XCTAssertEqualObjects(status.currentTimetoken, @14490969656951470); - XCTAssertEqualObjects(status.currentTimetoken, status.data.timetoken); - if (self.hasPublished) { - return; - } - self.hasPublished = YES; - [self.client publish:@"message" toChannel:kPNChannelTestName withMetadata:nil completion:^(PNPublishStatus *status) { - NSLog(@"status: %@", status.debugDescription); - [self fulfillSubscribeExpectationAfterDelay:10]; - [self.publishExpectation fulfill]; - }]; - - }; - self.didReceiveMessageAssertions = ^void (PubNub *client, PNMessageResult *message) { - PNStrongify(self); - XCTAssertEqualObjects(self.client, client); - XCTAssertEqualObjects(client.uuid, message.uuid); - XCTAssertNotNil(message.uuid); - XCTAssertNil(message.authKey); - XCTAssertEqual(message.statusCode, 200); - XCTAssertTrue(message.TLSEnabled); - XCTAssertEqual(message.operation, PNSubscribeOperation); - NSLog(@"message:"); - NSLog(@"%@", message.data.message); - XCTAssertNotNil(message.data); - XCTAssertEqualObjects(message.data.message, @"message"); - XCTAssertEqualObjects(message.data.channel, kPNChannelTestName); - XCTAssertEqualObjects(message.data.subscription, kPNChannelGroupTestName); - XCTAssertEqualObjects(message.data.timetoken, @14513349814151806); - [self.channelGroupSubscribeExpectation fulfill]; - self.channelGroupSubscribeExpectation = nil; - }; - self.publishExpectation = [self expectationWithDescription:@"publish"]; - [self PNTest_subscribeToChannelGroups:@[kPNChannelGroupTestName] withPresence:NO]; -} - -- (void)testPublishWithNoMetadataAndReceiveMultipleMessagesForSubscribeWithNoFiltering { - PNWeakify(self); - __block XCTestExpectation *secondPublishExpectation = [self expectationWithDescription:@"secondPublishExpectation"]; - __block NSInteger messageNumber = 0; - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - XCTAssertEqualObjects(self.client, client); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.category, PNConnectedCategory); - XCTAssertEqual(status.subscribedChannels.count, 0); - XCTAssertEqualObjects(status.subscribedChannelGroups, @[kPNChannelGroupTestName]); - - XCTAssertEqual(status.operation, PNSubscribeOperation); - NSLog(@"timeToken: %@", status.currentTimetoken); -// XCTAssertEqualObjects(status.currentTimetoken, @14490969656951470); - }; - self.didReceiveMessageAssertions = ^void (PubNub *client, PNMessageResult *message) { - PNStrongify(self); - XCTAssertEqualObjects(self.client, client); - XCTAssertEqualObjects(client.uuid, message.uuid); - XCTAssertNotNil(message.uuid); - XCTAssertNil(message.authKey); - XCTAssertEqual(message.statusCode, 200); - XCTAssertTrue(message.TLSEnabled); - XCTAssertEqual(message.operation, PNSubscribeOperation); - NSLog(@"message:"); - NSLog(@"%@", message.data.message); - XCTAssertNotNil(message.data); - switch (messageNumber) { - case 0: - { - XCTAssertEqualObjects(message.data.message, @"message"); - XCTAssertEqualObjects(message.data.channel, kPNChannelTestName); - XCTAssertEqualObjects(message.data.subscription, kPNChannelGroupTestName); - XCTAssertEqualObjects(message.data.timetoken, @14521907558018569); - } - break; - case 1: - { - XCTAssertEqualObjects(message.data.message, @"message1"); - XCTAssertEqualObjects(message.data.channel, kPNChannelTestName); - XCTAssertEqualObjects(message.data.subscription, kPNChannelGroupTestName); - XCTAssertEqualObjects(message.data.timetoken, @14521907559875616); - [self.channelGroupSubscribeExpectation fulfill]; - self.channelGroupSubscribeExpectation = nil; - } - break; - default: - { - XCTFail(@"shouldn't be here!. Should only receive two messages."); - } - break; - } - messageNumber++; - }; - self.publishExpectation = [self expectationWithDescription:@"publish"]; - __block NSNumber *firstPublishTimeToken = nil; - __block NSNumber *secondPublishTimeToken = nil; - [self.client publish:@"message" toChannel:kPNChannelTestName withMetadata:nil completion:^(PNPublishStatus *status) { - NSLog(@"status: %@", status.debugDescription); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - firstPublishTimeToken = status.data.timetoken; -// [self fulfillSubscribeExpectationAfterDelay:10]; - [self.publishExpectation fulfill]; - }]; - [self.client publish:@"message1" toChannel:kPNChannelTestName withMetadata:nil completion:^(PNPublishStatus *status) { - NSLog(@"status: %@", status.debugDescription); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - secondPublishTimeToken = status.data.timetoken; - [secondPublishExpectation fulfill]; -// secondPublishExpectation = nil; - }]; - [self waitForExpectationsWithTimeout:5 handler:^(NSError * _Nullable error) { - XCTAssertNil(error); - }]; - self.publishExpectation = nil; - secondPublishExpectation = nil; - NSNumber *finalTimeToken = nil; - if ([firstPublishTimeToken compare:secondPublishTimeToken] == NSOrderedAscending) { - finalTimeToken = firstPublishTimeToken; - } else if ([firstPublishTimeToken compare:secondPublishTimeToken] == NSOrderedDescending) { - finalTimeToken = secondPublishTimeToken; - } else { - finalTimeToken = firstPublishTimeToken; - } - [self PNTest_subscribeToChannelGroups:@[kPNChannelGroupTestName] withPresence:NO usingTimeToken:finalTimeToken]; -} - -- (void)testPublishWithMetadataAndReceiveMultipleMessagesForSubscribeWithMatchingFiltering { - PNWeakify(self); - __block XCTestExpectation *secondPublishExpectation = [self expectationWithDescription:@"secondPublishExpectation"]; - __block NSInteger messageNumber = 0; - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - XCTAssertEqualObjects(self.client, client); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.category, PNConnectedCategory); - XCTAssertEqual(status.subscribedChannels.count, 0); - XCTAssertEqualObjects(status.subscribedChannelGroups, @[kPNChannelGroupTestName]); - - XCTAssertEqual(status.operation, PNSubscribeOperation); - NSLog(@"timeToken: %@", status.currentTimetoken); - // XCTAssertEqualObjects(status.currentTimetoken, @14490969656951470); - }; - self.didReceiveMessageAssertions = ^void (PubNub *client, PNMessageResult *message) { - PNStrongify(self); - XCTAssertEqualObjects(self.client, client); - XCTAssertEqualObjects(client.uuid, message.uuid); - XCTAssertNotNil(message.uuid); - XCTAssertNil(message.authKey); - XCTAssertEqual(message.statusCode, 200); - XCTAssertTrue(message.TLSEnabled); - XCTAssertEqual(message.operation, PNSubscribeOperation); - NSLog(@"message:"); - NSLog(@"%@", message.data.message); - XCTAssertNotNil(message.data); - switch (messageNumber) { - case 0: - { - XCTAssertEqualObjects(message.data.message, @"message"); - XCTAssertEqualObjects(message.data.channel, kPNChannelTestName); - XCTAssertEqualObjects(message.data.subscription, kPNChannelGroupTestName); - XCTAssertEqualObjects(message.data.timetoken, @14521919903633129); - } - break; - case 1: - { - XCTAssertEqualObjects(message.data.message, @"message1"); - XCTAssertEqualObjects(message.data.channel, kPNChannelTestName); - XCTAssertEqualObjects(message.data.subscription, kPNChannelGroupTestName); - XCTAssertEqualObjects(message.data.timetoken, @14521919904785185); - [self.channelGroupSubscribeExpectation fulfill]; - self.channelGroupSubscribeExpectation = nil; - } - break; - default: - { - XCTFail(@"shouldn't be here!. Should only receive two messages."); - } - break; - } - messageNumber++; - }; - self.publishExpectation = [self expectationWithDescription:@"publish"]; - __block NSNumber *firstPublishTimeToken = nil; - __block NSNumber *secondPublishTimeToken = nil; - [self.client publish:@"message" toChannel:kPNChannelTestName withMetadata:@{@"foo":@"bar"} completion:^(PNPublishStatus *status) { - NSLog(@"status: %@", status.debugDescription); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - firstPublishTimeToken = status.data.timetoken; -// [self fulfillSubscribeExpectationAfterDelay:10]; - [self.publishExpectation fulfill]; - }]; - [self.client publish:@"message1" toChannel:kPNChannelTestName withMetadata:@{@"foo":@"bar"} completion:^(PNPublishStatus *status) { - NSLog(@"status: %@", status.debugDescription); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - secondPublishTimeToken = status.data.timetoken; - [secondPublishExpectation fulfill]; -// secondPublishExpectation = nil; - }]; - [self waitForExpectationsWithTimeout:5 handler:^(NSError * _Nullable error) { - XCTAssertNil(error); - }]; - self.publishExpectation = nil; - secondPublishExpectation = nil; - NSNumber *finalTimeToken = nil; - if ([firstPublishTimeToken compare:secondPublishTimeToken] == NSOrderedAscending) { - finalTimeToken = firstPublishTimeToken; - } else if ([firstPublishTimeToken compare:secondPublishTimeToken] == NSOrderedDescending) { - finalTimeToken = secondPublishTimeToken; - } else { - finalTimeToken = firstPublishTimeToken; - } - [self PNTest_subscribeToChannelGroups:@[kPNChannelGroupTestName] withPresence:NO usingTimeToken:finalTimeToken]; -} - -- (void)testPublishWithMetadataAndNoReceivedMessageForSubscribeWithDifferentFiltering { - PNWeakify(self); - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - XCTAssertEqualObjects(self.client, client); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.category, PNConnectedCategory); - XCTAssertEqual(status.subscribedChannels.count, 0); - XCTAssertEqualObjects(status.subscribedChannelGroups, @[kPNChannelGroupTestName]); - - XCTAssertEqual(status.operation, PNSubscribeOperation); - NSLog(@"timeToken: %@", status.currentTimetoken); -// XCTAssertEqualObjects(status.currentTimetoken, @14490969656951470); - XCTAssertEqualObjects(status.currentTimetoken, status.data.timetoken); - if (self.hasPublished) { - return; - } - self.hasPublished = YES; - [self.client publish:@"message" toChannel:kPNChannelTestName withMetadata:@{@"foo":@"bar"} - completion:^(PNPublishStatus *status) { - NSLog(@"status: %@", status.debugDescription); - [self fulfillSubscribeExpectationAfterDelay:10]; - [self.publishExpectation fulfill]; - }]; - }; - self.didReceiveMessageAssertions = ^void (PubNub *client, PNMessageResult *message) { - PNStrongify(self); - NSLog(@"message: %@", message.data.message); - XCTFail(@"Should not receive a message"); - [self.channelGroupSubscribeExpectation fulfill]; - self.channelGroupSubscribeExpectation = nil; - }; - self.publishExpectation = [self expectationWithDescription:@"publish"]; - [self PNTest_subscribeToChannelGroups:@[kPNChannelGroupTestName] withPresence:NO]; -} - -- (void)testPublishWithMetadataAndNoReceivedMessageForSubscribeWithFilteringWithSameKeyAndDifferentValue { - PNWeakify(self); - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - XCTAssertEqualObjects(self.client, client); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.category, PNConnectedCategory); - XCTAssertEqualObjects(status.subscribedChannelGroups, @[kPNChannelGroupTestName]); - - XCTAssertEqual(status.operation, PNSubscribeOperation); - NSLog(@"timeToken: %@", status.currentTimetoken); -// XCTAssertEqualObjects(status.currentTimetoken, @14490969656951470); - XCTAssertEqualObjects(status.currentTimetoken, status.data.timetoken); - if (self.hasPublished) { - return; - } - self.hasPublished = YES; - [self.client publish:@"message" toChannel:kPNChannelTestName withMetadata:@{@"foo":@"bar"} - completion:^(PNPublishStatus *status) { - NSLog(@"status: %@", status.debugDescription); - [self fulfillSubscribeExpectationAfterDelay:10]; - [self.publishExpectation fulfill]; - }]; - - }; - self.didReceiveMessageAssertions = ^void (PubNub *client, PNMessageResult *message) { - PNStrongify(self); - NSLog(@"message: %@", message.data.message); - XCTFail(@"Should not receive a message"); - [self.channelGroupSubscribeExpectation fulfill]; - self.channelGroupSubscribeExpectation = nil; - }; - self.publishExpectation = [self expectationWithDescription:@"publish"]; - [self PNTest_subscribeToChannelGroups:@[kPNChannelGroupTestName] withPresence:NO]; -} - -- (void)testPublishWithNoMetadataAndNoReceivedMessageForSubscribeWithFiltering { - PNWeakify(self); - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - XCTAssertEqualObjects(self.client, client); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.category, PNConnectedCategory); - XCTAssertEqualObjects(status.subscribedChannelGroups, @[kPNChannelGroupTestName]); - - XCTAssertEqual(status.operation, PNSubscribeOperation); - NSLog(@"timeToken: %@", status.currentTimetoken); -// XCTAssertEqualObjects(status.currentTimetoken, @14490969656951470); - XCTAssertEqualObjects(status.currentTimetoken, status.data.timetoken); - if (self.hasPublished) { - return; - } - self.hasPublished = YES; - [self.client publish:@"message" toChannel:kPNChannelTestName withCompletion:^(PNPublishStatus *status) { - NSLog(@"status: %@", status.debugDescription); - PNStrongify(self); - [self fulfillSubscribeExpectationAfterDelay:10]; - [self.publishExpectation fulfill]; - }]; - - }; - self.didReceiveMessageAssertions = ^void (PubNub *client, PNMessageResult *message) { - PNStrongify(self); - NSLog(@"message: %@", message.data.message); - XCTFail(@"Should not receive a message"); - [self.channelGroupSubscribeExpectation fulfill]; - self.channelGroupSubscribeExpectation = nil; - }; - self.publishExpectation = [self expectationWithDescription:@"publish"]; - [self PNTest_subscribeToChannelGroups:@[kPNChannelGroupTestName] withPresence:NO]; -} - -- (void)testPublishWithMetadataAndNoReceivedMessageForSubscribeWithFilteringWithSwitchedKeysAndValues { - PNWeakify(self); - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - XCTAssertEqualObjects(self.client, client); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.category, PNConnectedCategory); - XCTAssertEqualObjects(status.subscribedChannelGroups, @[kPNChannelGroupTestName]); - - XCTAssertEqual(status.operation, PNSubscribeOperation); - NSLog(@"timeToken: %@", status.currentTimetoken); -// XCTAssertEqualObjects(status.currentTimetoken, @14490969656951470); - XCTAssertEqualObjects(status.currentTimetoken, status.data.timetoken); - if (self.hasPublished) { - return; - } - self.hasPublished = YES; - [self.client publish:@"message" toChannel:kPNChannelTestName withMetadata:@{@"foo":@"bar"} - completion:^(PNPublishStatus *status) { - NSLog(@"status: %@", status.debugDescription); - [self fulfillSubscribeExpectationAfterDelay:10]; - [self.publishExpectation fulfill]; - }]; - - }; - self.didReceiveMessageAssertions = ^void (PubNub *client, PNMessageResult *message) { - PNStrongify(self); - NSLog(@"message: %@", message.data.message); - XCTFail(@"Should not receive a message"); - [self.channelGroupSubscribeExpectation fulfill]; - self.channelGroupSubscribeExpectation = nil; - }; - self.publishExpectation = [self expectationWithDescription:@"publish"]; - [self PNTest_subscribeToChannelGroups:@[kPNChannelGroupTestName] withPresence:NO]; -} - -- (void)testPublishWithMetadataAndReceiveMessageForSubscribeWithMatchingFiltering { - PNWeakify(self); - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - XCTAssertEqualObjects(self.client, client); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.category, PNConnectedCategory); - XCTAssertEqualObjects(status.subscribedChannelGroups, @[kPNChannelGroupTestName]); - - XCTAssertEqual(status.operation, PNSubscribeOperation); - NSLog(@"timeToken: %@", status.currentTimetoken); -// XCTAssertEqualObjects(status.currentTimetoken, @14490969656951470); - XCTAssertEqualObjects(status.currentTimetoken, status.data.timetoken); - if (self.hasPublished) { - return; - } - self.hasPublished = YES; - [self.client publish:@"message" toChannel:kPNChannelTestName withMetadata:@{@"foo":@"bar"} - completion:^(PNPublishStatus *status) { - NSLog(@"status: %@", status.debugDescription); - [self fulfillSubscribeExpectationAfterDelay:10]; - [self.publishExpectation fulfill]; - }]; - - }; - self.didReceiveMessageAssertions = ^void (PubNub *client, PNMessageResult *message) { - PNStrongify(self); - XCTAssertEqualObjects(self.client, client); - XCTAssertEqualObjects(client.uuid, message.uuid); - XCTAssertNotNil(message.uuid); - XCTAssertNil(message.authKey); - XCTAssertEqual(message.statusCode, 200); - XCTAssertTrue(message.TLSEnabled); - XCTAssertEqual(message.operation, PNSubscribeOperation); - NSLog(@"message:"); - NSLog(@"%@", message.data.message); - XCTAssertNotNil(message.data); - XCTAssertEqualObjects(message.data.message, @"message"); - XCTAssertEqualObjects(message.data.channel, kPNChannelTestName); - XCTAssertEqualObjects(message.data.subscription, kPNChannelGroupTestName); - XCTAssertEqualObjects(message.data.timetoken, @14508303357934556); - [self.channelGroupSubscribeExpectation fulfill]; - self.channelGroupSubscribeExpectation = nil; - }; - self.publishExpectation = [self expectationWithDescription:@"publish"]; - [self PNTest_subscribeToChannelGroups:@[kPNChannelGroupTestName] withPresence:NO]; -} - -@end \ No newline at end of file diff --git a/Tests/iOS Tests/Tests/PNChannelGroupPresenceEventTests.m b/Tests/iOS Tests/Tests/PNChannelGroupPresenceEventTests.m deleted file mode 100644 index 760b1ec21..000000000 --- a/Tests/iOS Tests/Tests/PNChannelGroupPresenceEventTests.m +++ /dev/null @@ -1,312 +0,0 @@ -// -// PNChannelGroupPresenceEventTests.m -// PubNub Tests -// -// Created by Jordan Zucker on 12/16/15. -// -// - -#import "PNBasicPresenceTestCase.h" - -@interface PNChannelGroupPresenceEventTests : PNBasicPresenceTestCase -@end - -@implementation PNChannelGroupPresenceEventTests - -- (void)setUp { - [super setUp]; - - PNWeakify(self); - [self performVerifiedAddChannels:@[@"a", [self otherClientChannelName]] toGroup:[self channelGroupName] withAssertions:^(PNAcknowledgmentStatus *status) { - PNStrongify(self); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.operation, PNAddChannelsToGroupOperation); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.statusCode, 200); - }]; - [self setUpChannelGroupSubscription]; - if ( - (self.invocation.selector == @selector(testLeaveEvent)) && - (self.invocation.selector == @selector(testTimeoutEvent)) && - (self.invocation.selector == @selector(testStateChangeEvent)) - ) { - PNWeakify(self); - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - XCTAssertNotNil(client); - XCTAssertNotNil(status); - XCTAssertEqualObjects(self.client, client); - XCTAssertEqual(status.category, PNConnectedCategory); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.statusCode, 200); - XCTAssertTrue([status.subscribedChannels containsObject:[self otherClientChannelName]]); - XCTAssertTrue([client.channels containsObject:[self otherClientChannelName]]); - XCTAssertEqual(status.operation, PNSubscribeOperation); - [self.subscribeExpectation fulfill]; - self.subscribeExpectation = nil; - }; - [self PNTest_subscribeToChannels:@[[self otherClientChannelName]] withPresence:YES]; - } else if (self.invocation.selector == @selector(testJoinEvent)) { - PNWeakify(self); - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - XCTAssertNotNil(client); - XCTAssertNotNil(status); - if (self.client != client) { - return; - } - // XCTAssertEqualObjects(self.client, client); - XCTAssertEqual(status.category, PNDisconnectedCategory); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.statusCode, 200); - XCTAssertEqual(status.operation, PNUnsubscribeOperation); - XCTAssertFalse([status.subscribedChannels containsObject:[self otherClientChannelName]]); - XCTAssertFalse([client.channels containsObject:[self otherClientChannelName]]); - [self.unsubscribeExpectation fulfill]; - self.unsubscribeExpectation = nil; - }; - [self PNTest_unsubscribeFromChannels:@[[self otherClientChannelName]] withPresence:YES]; - } -} - -- (PNConfiguration *)overrideClientConfiguration:(PNConfiguration *)configuration { - if (self.invocation.selector == @selector(testTimeoutEvent)) { - configuration.presenceHeartbeatValue = 5; - } - return configuration; -} - -- (BOOL)isRecording{ - return NO; -} - -- (void)tearDown { - if ( - (self.invocation.selector == @selector(testJoinEvent)) && - (self.invocation.selector == @selector(testStateChangeEvent)) - ) { - PNWeakify(self); - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - XCTAssertNotNil(client); - XCTAssertNotNil(status); - XCTAssertEqualObjects(self.client, client); - XCTAssertEqual(status.category, PNDisconnectedCategory); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.statusCode, 200); - XCTAssertEqual(status.operation, PNUnsubscribeOperation); - XCTAssertFalse([status.subscribedChannels containsObject:[self otherClientChannelName]]); - XCTAssertFalse([client.channels containsObject:[self otherClientChannelName]]); - [self.unsubscribeExpectation fulfill]; - }; - [self PNTest_unsubscribeFromChannels:@[[self otherClientChannelName]] withPresence:YES]; - } - - - [super tearDown]; -} - -/** - All tests according to events we have in: https://github.com/pubnub/pubnub-docs/blob/master/components/presence/design/overview.asciidoc - */ - -- (void)testJoinEvent { - PNWeakify(self); - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - if (self.client != client) { - return; - } - // XCTAssertEqualObjects(self.client, client); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.operation, PNSubscribeOperation); - XCTAssertEqual(status.category, PNConnectedCategory); - [self.subscribeExpectation fulfill]; - self.subscribeExpectation = nil; - }; - self.otherClientPresenceEventAssertions = ^void (PubNub *client, PNPresenceEventResult *event) { - PNStrongify(self); - NSLog(@"------------------------"); - NSLog(@"event: %@", event.debugDescription); - if ( - ![event.data.presenceEvent isEqualToString:@"join"] || - ![self.otherClient isEqual:client] - ) { - NSLog(@"------------------------"); - return; - } - XCTAssertEqualObjects(self.otherClient, client); - XCTAssertNotNil(event); - XCTAssertTrue(event.statusCode == 200, @"Status code is not right"); - - XCTAssertEqual(event.operation, PNSubscribeOperation); - - XCTAssertEqualObjects(event.data.presence.occupancy, @3, @"Occupancy is not equal"); - XCTAssertEqualObjects(event.data.presence.uuid, @"322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C", @"Occupancy is not equal"); - XCTAssertEqualObjects(event.data.presence.timetoken, @1450828381, @"Timetoken is not the same."); - XCTAssertEqualObjects(event.data.presenceEvent, @"join"); - XCTAssertEqualObjects(event.data.channel, [self otherClientChannelName]); - XCTAssertEqualObjects(event.data.subscription, [self channelGroupName], @"Subscribed channel are not equal."); - XCTAssertNil(event.data.presence.channel); - XCTAssertNil(event.data.presence.subscription); - XCTAssertEqualObjects(event.data.timetoken, @14508283810178448, @"Timetoken is not the same."); - NSLog(@"------------------------"); - [self.presenceEventExpectation fulfill]; - self.presenceEventExpectation = nil; - }; - self.presenceEventExpectation = [self expectationWithDescription:@"presenceEvent"]; - [self PNTest_subscribeToChannels:@[[self otherClientChannelName]] withPresence:YES]; -} - -- (void)testLeaveEvent { - PNWeakify(self); - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - if (self.client != client) { - return; - } - // XCTAssertEqualObjects(self.client, client); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.operation, PNUnsubscribeOperation); - XCTAssertEqual(status.category, PNDisconnectedCategory); - [self.unsubscribeExpectation fulfill]; - }; - self.otherClientPresenceEventAssertions = ^void (PubNub *client, PNPresenceEventResult *event) { - PNStrongify(self); - NSLog(@"------------------------"); - NSLog(@"event: %@", event.debugDescription); - if ( - ![event.data.presenceEvent isEqualToString:@"leave"] || - ![self.otherClient isEqual:client] - ) { - NSLog(@"------------------------"); - return; - } - XCTAssertEqualObjects(self.otherClient, client); - XCTAssertNotNil(event); - XCTAssertTrue(event.statusCode == 200, @"Status code is not right"); - - XCTAssertEqual(event.operation, PNSubscribeOperation); - - XCTAssertEqualObjects(event.data.presence.occupancy, @2, @"Occupancy is not equal"); - XCTAssertEqualObjects(event.data.presence.uuid, @"322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C", @"Occupancy is not equal"); - XCTAssertEqualObjects(event.data.presence.timetoken, @1450828450, @"Timetoken is not the same."); - XCTAssertEqualObjects(event.data.presenceEvent, @"leave"); - XCTAssertEqualObjects(event.data.channel, [self otherClientChannelName]); - XCTAssertEqualObjects(event.data.subscription, [self channelGroupName], @"Subscribed channel are not equal."); - XCTAssertNil(event.data.presence.channel); - XCTAssertNil(event.data.presence.subscription); - XCTAssertEqualObjects(event.data.timetoken, @14508284502420269, @"Timetoken is not the same."); - NSLog(@"------------------------"); - [self.presenceEventExpectation fulfill]; - self.presenceEventExpectation = nil; - }; - self.presenceEventExpectation = [self expectationWithDescription:@"presenceEvent"]; - [self PNTest_unsubscribeFromChannels:@[[self otherClientChannelName]] withPresence:YES]; -} - -- (void)testTimeoutEvent { - PNWeakify(self); - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - if (self.client != client) { - return; - } - // XCTAssertEqualObjects(self.client, client); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.operation, PNSubscribeOperation); - XCTAssertEqual(status.category, PNConnectedCategory); - [self.subscribeExpectation fulfill]; - self.subscribeExpectation = nil; - self.client = nil; - }; - self.otherClientPresenceEventAssertions = ^void (PubNub *client, PNPresenceEventResult *event) { - PNStrongify(self); - NSLog(@"------------------------"); - NSLog(@"event: %@", event.debugDescription); - if ( - ![event.data.presenceEvent isEqualToString:@"timeout"] || - ![self.otherClient isEqual:client] - ) { - NSLog(@"------------------------"); - return; - } - XCTAssertEqualObjects(self.otherClient, client); - XCTAssertNotNil(event); - XCTAssertTrue(event.statusCode == 200, @"Status code is not right"); - - XCTAssertEqual(event.operation, PNSubscribeOperation); - - XCTAssertEqualObjects(event.data.presence.occupancy, @2, @"Occupancy is not equal"); - XCTAssertEqualObjects(event.data.presence.uuid, @"322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C", @"UUID is not equal"); - XCTAssertEqualObjects(event.data.presence.timetoken, @1450828568, @"Timetoken is not the same."); - XCTAssertEqualObjects(event.data.channel, [self otherClientChannelName]); - XCTAssertEqualObjects(event.data.subscription, [self channelGroupName], @"Subscribed channel are not equal."); - XCTAssertNil(event.data.presence.channel); - XCTAssertNil(event.data.presence.subscription); - XCTAssertEqualObjects(event.data.presenceEvent, @"timeout"); - XCTAssertEqualObjects(event.data.timetoken, @14508285682541255, @"Timetoken is not the same."); - NSLog(@"------------------------"); - [self.presenceEventExpectation fulfill]; - }; - self.presenceEventExpectation = [self expectationWithDescription:@"presenceEvent"]; - [self PNTest_subscribeToChannels:@[[self otherClientChannelName]] withPresence:YES]; -} - -- (void)testStateChangeEvent { - NSDictionary *expectedState = @{@"foo" : @"bar"}; - PNWeakify(self); - self.otherClientPresenceEventAssertions = ^void (PubNub *client, PNPresenceEventResult *event) { - PNStrongify(self); - NSLog(@"------------------------"); - NSLog(@"event: %@", event.debugDescription); - if ( - ![event.data.presenceEvent isEqualToString:@"state-change"] || - ![self.otherClient isEqual:client] - ) { - NSLog(@"------------------------"); - return; - } - XCTAssertEqualObjects(self.otherClient, client); - XCTAssertNotNil(event); - XCTAssertTrue(event.statusCode == 200, @"Status code is not right"); - - XCTAssertEqual(event.operation, PNSubscribeOperation); - - // XCTAssertEqualObjects(event.data.presence.occupancy, @2, @"Occupancy is not equal"); - XCTAssertEqualObjects(event.data.presence.uuid, @"322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C", @"UUID is not equal"); - XCTAssertEqualObjects(event.data.presence.timetoken, @1450828671, @"Timetoken is not the same."); - XCTAssertEqualObjects(event.data.presenceEvent, @"state-change"); - XCTAssertEqualObjects(event.data.channel, [self otherClientChannelName]); - XCTAssertEqualObjects(event.data.subscription, [self channelGroupName], @"Subscribed channel are not equal."); - XCTAssertNil(event.data.presence.channel); - XCTAssertNil(event.data.presence.subscription); - XCTAssertEqualObjects(event.data.presence.state, expectedState, @"State are not equal"); - XCTAssertEqualObjects(event.data.timetoken, @14508286718288561, @"Timetoken is not the same."); - NSLog(@"------------------------"); - [self.presenceEventExpectation fulfill]; - }; - self.presenceEventExpectation = [self expectationWithDescription:@"presenceEvent"]; - XCTestExpectation *stateExpectation = [self expectationWithDescription:@"stateExpectation"]; - [self.client setState:expectedState forUUID:self.client.uuid onChannel:[self otherClientChannelName] withCompletion:^(PNClientStateUpdateStatus *status) { - NSLog(@"state status: %@", status.debugDescription); - PNStrongify(self); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.operation, PNSetStateOperation); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.statusCode, 200); - XCTAssertNotNil(status.data.state); - XCTAssertEqualObjects(status.data.state, expectedState); - [stateExpectation fulfill]; - }]; - [self waitForExpectationsWithTimeout:10 handler:^(NSError * _Nullable error) { - XCTAssertNil(error); - }]; -} - -@end \ No newline at end of file diff --git a/Tests/iOS Tests/Tests/PNChannelGroupSubscribeTests.m b/Tests/iOS Tests/Tests/PNChannelGroupSubscribeTests.m deleted file mode 100644 index 062b0095f..000000000 --- a/Tests/iOS Tests/Tests/PNChannelGroupSubscribeTests.m +++ /dev/null @@ -1,132 +0,0 @@ -// -// PNChannelGroupSubscribeTests.m -// PubNub Tests -// -// Created by Jordan Zucker on 6/28/15. -// -// - -#import - -#import "PNBasicSubscribeTestCase.h" - -static NSString * const kPNChannelGroupTestsName = @"PNChannelGroupSubscribeTests"; - -@interface PNChannelGroupSubscribeTests : PNBasicSubscribeTestCase -@end - -@implementation PNChannelGroupSubscribeTests - -- (BOOL)isRecording{ - return NO; -} - -- (NSArray *)channelGroups { - return @[ - kPNChannelGroupTestsName - ]; -} - -- (void)setUp { - [super setUp]; - [self performVerifiedRemoveAllChannelsFromGroup:kPNChannelGroupTestsName withAssertions:nil]; - PNWeakify(self); - [self performVerifiedAddChannels:@[@"a", @"b"] toGroup:kPNChannelGroupTestsName withAssertions:^(PNAcknowledgmentStatus *status) { - PNStrongify(self); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.operation, PNAddChannelsToGroupOperation); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.statusCode, 200); - }]; -} - -- (void)testSimpleSubscribeWithPresence { - PNWeakify(self); - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - XCTAssertEqualObjects(self.client, client); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.category, PNConnectedCategory); - NSArray *expectedChannelGroups = @[ - kPNChannelGroupTestsName, - [kPNChannelGroupTestsName stringByAppendingString:@"-pnpres"] - ]; - XCTAssertEqual(status.subscribedChannels.count, 0); - XCTAssertEqualObjects([NSSet setWithArray:status.subscribedChannelGroups], - [NSSet setWithArray:expectedChannelGroups]); - - XCTAssertEqual(status.operation, PNSubscribeOperation); - NSLog(@"timeToken: %@", status.currentTimetoken); - XCTAssertEqualObjects(status.currentTimetoken, @14508287398196981); - XCTAssertEqualObjects(status.currentTimetoken, status.data.timetoken); - - }; - self.didReceiveMessageAssertions = ^void (PubNub *client, PNMessageResult *message) { - PNStrongify(self); - XCTAssertEqualObjects(self.client, client); - XCTAssertEqualObjects(client.uuid, message.uuid); - XCTAssertNotNil(message.uuid); - XCTAssertNil(message.authKey); - XCTAssertEqual(message.statusCode, 200); - XCTAssertTrue(message.TLSEnabled); - XCTAssertEqual(message.operation, PNSubscribeOperation); - NSLog(@"message:"); - NSLog(@"%@", message.data.message); - XCTAssertNotNil(message.data); - XCTAssertEqualObjects(message.data.message, @"******......... 6158 - 2015-12-22 15:59:00"); - XCTAssertEqualObjects(message.data.channel, @"a"); - XCTAssertEqualObjects(message.data.subscription, kPNChannelGroupTestsName); - XCTAssertEqualObjects(message.data.timetoken, @14508287407081173); - [self.channelGroupSubscribeExpectation fulfill]; - }; - [self PNTest_subscribeToChannelGroups:[self channelGroups] withPresence:YES]; -} - -- (void)testSimpleSubscribeWithNoPresence { - PNWeakify(self); - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - XCTAssertEqualObjects(self.client, client); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.category, PNConnectedCategory); - NSArray *expectedChannelGroups = @[ - kPNChannelGroupTestsName - ]; - XCTAssertEqual(status.subscribedChannels.count, 0); - XCTAssertEqualObjects([NSSet setWithArray:status.subscribedChannelGroups], - [NSSet setWithArray:expectedChannelGroups]); - - XCTAssertEqual(status.operation, PNSubscribeOperation); - NSLog(@"timeToken: %@", status.currentTimetoken); - XCTAssertEqualObjects(status.currentTimetoken, @14508287387303892); - XCTAssertEqualObjects(status.currentTimetoken, status.data.timetoken); - - }; - self.didReceiveMessageAssertions = ^void (PubNub *client, PNMessageResult *message) { - PNStrongify(self); - XCTAssertEqualObjects(self.client, client); - XCTAssertEqualObjects(client.uuid, message.uuid); - XCTAssertNotNil(message.uuid); - XCTAssertNil(message.authKey); - XCTAssertEqual(message.statusCode, 200); - XCTAssertTrue(message.TLSEnabled); - XCTAssertEqual(message.operation, PNSubscribeOperation); - NSLog(@"message:"); - NSLog(@"%@", message.data.message); - XCTAssertNotNil(message.data); - // the string from this channel is absurd, should simplify at some point, but want to just keep cranking for now - // cast to NSData to compare - - XCTAssertEqualObjects(message.data.message, @"*****.......... 6157 - 2015-12-22 15:58:59"); - XCTAssertEqualObjects(message.data.channel, @"a"); - XCTAssertEqualObjects(message.data.subscription, kPNChannelGroupTestsName); - XCTAssertEqualObjects(message.data.timetoken, @14508287395303885); - [self.channelGroupSubscribeExpectation fulfill]; - }; - [self PNTest_subscribeToChannelGroups:[self channelGroups] withPresence:NO]; -} - -@end \ No newline at end of file diff --git a/Tests/iOS Tests/Tests/PNChannelGroupTests.m b/Tests/iOS Tests/Tests/PNChannelGroupTests.m deleted file mode 100644 index 498657433..000000000 --- a/Tests/iOS Tests/Tests/PNChannelGroupTests.m +++ /dev/null @@ -1,117 +0,0 @@ -// -// PNChannelGroupTests.m -// PubNub Tests -// -// Created by Jordan Zucker on 6/16/15. -// -// - -#import - -#import "PNBasicClientTestCase.h" - -static NSString * const kPNChannelGroupTestsName = @"PNChannelGroupTestsName"; - -@interface PNChannelGroupTests : PNBasicClientTestCase -@end - -@implementation PNChannelGroupTests - -- (BOOL)isRecording{ - return NO; -} - -- (void)setUp { - [super setUp]; - [self performVerifiedRemoveAllChannelsFromGroup:kPNChannelGroupTestsName withAssertions:nil]; -} - -- (void)tearDown { - [self performVerifiedRemoveAllChannelsFromGroup:kPNChannelGroupTestsName withAssertions:nil]; - [super tearDown]; -} - -- (void)testChannelGroupAdd { - PNWeakify(self); - [self performVerifiedAddChannels:@[@"a", @"c"] toGroup:kPNChannelGroupTestsName withAssertions:^(PNAcknowledgmentStatus *status) { - PNStrongify(self); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.operation, PNAddChannelsToGroupOperation); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.statusCode, 200); - }]; -} - -- (void)testChannelsForGroup { - PNWeakify(self); - NSArray *channelGroups = @[@"a", @"c"]; - [self performVerifiedAddChannels:channelGroups toGroup:kPNChannelGroupTestsName withAssertions:^(PNAcknowledgmentStatus *status) { - PNStrongify(self); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.operation, PNAddChannelsToGroupOperation); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.statusCode, 200); - }]; - - XCTestExpectation *channelsForGroup = [self expectationWithDescription:@"channelsForGroup"]; - [self.client channelsForGroup:kPNChannelGroupTestsName withCompletion:^(PNChannelGroupChannelsResult *result, PNErrorStatus *status) { - PNStrongify(self); - XCTAssertNil(status.errorData.information); - XCTAssertNotNil(result); - XCTAssertEqual(result.statusCode, 200); - XCTAssertEqual(result.operation, PNChannelsForGroupOperation); - XCTAssertEqualObjects([NSSet setWithArray:result.data.channels], - [NSSet setWithArray:channelGroups]); - [channelsForGroup fulfill]; - }]; - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - XCTAssertNil(error); - }]; -} - -- (void)testChannelGroupRemoveAll { - PNWeakify(self); - [self performVerifiedAddChannels:@[@"a", @"c"] toGroup:kPNChannelGroupTestsName withAssertions:^(PNAcknowledgmentStatus *status) { - PNStrongify(self); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.operation, PNAddChannelsToGroupOperation); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.statusCode, 200); - }]; - - [self performVerifiedRemoveAllChannelsFromGroup:kPNChannelGroupTestsName withAssertions:^(PNAcknowledgmentStatus *status) { - PNStrongify(self); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.operation, PNRemoveGroupOperation); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.statusCode, 200); - - }]; - -} - -- (void)testRemoveSpecificChannelsFromGroup { - PNWeakify(self); - [self performVerifiedAddChannels:@[@"a", @"c"] toGroup:kPNChannelGroupTestsName withAssertions:^(PNAcknowledgmentStatus *status) { - PNStrongify(self); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.operation, PNAddChannelsToGroupOperation); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.statusCode, 200); - }]; - [self performVerifiedRemoveChannels:@[@"a"] fromGroup:kPNChannelGroupTestsName withAssertions:^(PNAcknowledgmentStatus *status) { - PNStrongify(self); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.operation, PNRemoveChannelsFromGroupOperation); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.statusCode, 200); - }]; -} - -@end diff --git a/Tests/iOS Tests/Tests/PNChannelGroupUnsubscribeTests.m b/Tests/iOS Tests/Tests/PNChannelGroupUnsubscribeTests.m deleted file mode 100644 index 4c1be24d5..000000000 --- a/Tests/iOS Tests/Tests/PNChannelGroupUnsubscribeTests.m +++ /dev/null @@ -1,151 +0,0 @@ -// -// PNChannelGroupUnsubscribeTests.m -// PubNub Tests -// -// Created by Jordan Zucker on 6/28/15. -// -// - -#import - -#import "PNBasicSubscribeTestCase.h" - -static NSString * const kPNChannelGroupTestsName = @"PNChannelGroupUnsubscribeTests"; - -@interface PNChannelGroupUnsubscribeTests : PNBasicSubscribeTestCase - -@end - -@implementation PNChannelGroupUnsubscribeTests - -- (BOOL)isRecording{ - return NO; -} - -- (NSArray *)channelGroups { - return @[ - kPNChannelGroupTestsName - ]; -} - -- (void)setUp { - [super setUp]; - [self performVerifiedRemoveAllChannelsFromGroup:kPNChannelGroupTestsName withAssertions:nil]; - PNWeakify(self); - [self performVerifiedAddChannels:@[@"a", @"b"] toGroup:kPNChannelGroupTestsName withAssertions:^(PNAcknowledgmentStatus *status) { - PNStrongify(self); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.operation, PNAddChannelsToGroupOperation); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.statusCode, 200); - }]; - - BOOL shouldObservePresence = NO; - NSString *expectedMessage; - NSNumber *expectedTimeToken; - NSArray *expectedChannelGroups; - if (self.invocation.selector == @selector(testSimpleUnsubscribeWithNoPresence)) { - shouldObservePresence = NO; - expectedMessage = @"********....... 8449 - 2015-12-22 13:28:00"; - expectedTimeToken = @14508196796692323; - expectedChannelGroups = @[ - kPNChannelGroupTestsName - ]; - } else if (self.invocation.selector == @selector(testSimpleUnsubscribeWithPresence)) { - shouldObservePresence = YES; - expectedMessage = @"*********...... 8450 - 2015-12-22 13:28:01"; - expectedTimeToken = @14508196810395526; - expectedChannelGroups = @[ - kPNChannelGroupTestsName, - [kPNChannelGroupTestsName stringByAppendingString:@"-pnpres"] - ]; - } else { - XCTFail(@"unexpected presence state for channel group unsubscribe test"); - } - - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - XCTAssertEqualObjects(self.client, client); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.category, PNConnectedCategory); - XCTAssertEqual(status.subscribedChannels.count, 0); - XCTAssertEqualObjects([NSSet setWithArray:status.subscribedChannelGroups], - [NSSet setWithArray:expectedChannelGroups]); - XCTAssertEqual(status.operation, PNSubscribeOperation); - NSLog(@"timeToken: %@", status.currentTimetoken); - XCTAssertEqualObjects(status.currentTimetoken, expectedTimeToken); - XCTAssertEqualObjects(status.currentTimetoken, status.data.timetoken); - - }; - self.didReceiveMessageAssertions = ^void (PubNub *client, PNMessageResult *message) { - PNStrongify(self); - XCTAssertEqualObjects(self.client, client); - XCTAssertEqualObjects(client.uuid, message.uuid); - XCTAssertNotNil(message.uuid); - XCTAssertNil(message.authKey); - XCTAssertEqual(message.statusCode, 200); - XCTAssertTrue(message.TLSEnabled); - XCTAssertEqual(message.operation, PNSubscribeOperation); - NSLog(@"message:"); - NSLog(@"%@", message.data.message); - XCTAssertEqualObjects(message.data.channel, @"a"); - XCTAssertEqualObjects(message.data.subscription, kPNChannelGroupTestsName); - XCTAssertEqualObjects(message.data.message, expectedMessage); - [self.channelGroupSubscribeExpectation fulfill]; - self.channelGroupSubscribeExpectation = nil; - }; - - [self PNTest_subscribeToChannelGroups:[self channelGroups] withPresence:shouldObservePresence]; -} - -- (void)testSimpleUnsubscribeWithPresence { - PNWeakify(self); - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - XCTAssertNotNil(client); - XCTAssertNotNil(status); - XCTAssertEqualObjects(self.client, client); - if ( - !( - (status.category == PNDisconnectedCategory) || - (status.category == PNCancelledCategory) - ) - ) { - return; - } - XCTAssertEqual(status.category, PNDisconnectedCategory); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.statusCode, 200); - XCTAssertEqual(status.operation, PNUnsubscribeOperation); - [self.channelGroupUnsubscribeExpectation fulfill]; - }; - [self PNTest_unsubscribeFromChannelGroups:[self channelGroups] withPresence:YES]; -} - -- (void)testSimpleUnsubscribeWithNoPresence { - PNWeakify(self); - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - XCTAssertNotNil(client); - XCTAssertNotNil(status); - XCTAssertEqualObjects(self.client, client); - if ( - !( - (status.category == PNDisconnectedCategory) || - (status.category == PNCancelledCategory) - ) - ) { - return; - } - XCTAssertEqual(status.category, PNDisconnectedCategory); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.statusCode, 200); - XCTAssertEqual(status.operation, PNUnsubscribeOperation); - [self.channelGroupUnsubscribeExpectation fulfill]; - }; - [self PNTest_unsubscribeFromChannelGroups:[self channelGroups] withPresence:NO]; -} - -@end diff --git a/Tests/iOS Tests/Tests/PNClientConfigurationTests.m b/Tests/iOS Tests/Tests/PNClientConfigurationTests.m deleted file mode 100644 index 6fd290787..000000000 --- a/Tests/iOS Tests/Tests/PNClientConfigurationTests.m +++ /dev/null @@ -1,173 +0,0 @@ -// -// PNClientConfigurationTests.m -// PubNub Tests -// -// Created by Jordan Zucker on 6/29/15. -// -// - -#import - -#import "PNBasicSubscribeTestCase.h" - -@interface PNClientConfigurationTests : PNBasicSubscribeTestCase -@end - -@implementation PNClientConfigurationTests - -- (BOOL)isRecording{ - return NO; -} - -- (NSArray *)subscriptionChannels { - return @[@"a"]; -} - -- (void)setUp { - [super setUp]; - - if (self.invocation.selector != @selector(testCopyConfigurationWithSubscribedChannels) && - self.invocation.selector != @selector(testCopyConfigurationWithSubscribedChannelsAndCallbackQueue)) { - - return; - } - - PNWeakify(self); - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - XCTAssertEqualObjects(self.client, client); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.category, PNConnectedCategory); - XCTAssertEqual(status.subscribedChannelGroups.count, 0); - NSArray *expectedPresenceSubscriptions = @[@"a"]; - XCTAssertEqualObjects([NSSet setWithArray:status.subscribedChannels], - [NSSet setWithArray:expectedPresenceSubscriptions]); - XCTAssertEqual(status.operation, PNSubscribeOperation); - NSLog(@"timeToken: %@", status.currentTimetoken); - if (self.invocation.selector == @selector(testCopyConfigurationWithSubscribedChannels)) { - XCTAssertEqualObjects(status.currentTimetoken, @14508105355672413); - } else if (self.invocation.selector == @selector(testCopyConfigurationWithSubscribedChannelsAndCallbackQueue)) { - XCTAssertEqualObjects(status.currentTimetoken, @14508105367362132); - } - XCTAssertEqualObjects(status.currentTimetoken, status.data.timetoken); - [self.subscribeExpectation fulfill]; - - }; - [self PNTest_subscribeToChannels:[self subscriptionChannels] withPresence:NO]; - self.didReceiveStatusAssertions = nil; -} - -- (void)testHeartbeatValue_ShouldWrap_WhenValueSmallerThan20 { - PNConfiguration *config = [PNConfiguration configurationWithPublishKey:self.publishKey - subscribeKey:self.subscribeKey]; - config.presenceHeartbeatValue = 10; - - XCTAssertEqual(config.presenceHeartbeatValue, 20); - XCTAssertEqual(config.presenceHeartbeatInterval, 9); -} - -- (void)testHeartbeatValue_ShouldNotWrap_WhenValueEqualOrGreaterThan20 { - PNConfiguration *config = [PNConfiguration configurationWithPublishKey:self.publishKey - subscribeKey:self.subscribeKey]; - - config.presenceHeartbeatValue = 20; - XCTAssertEqual(config.presenceHeartbeatValue, 20); - XCTAssertEqual(config.presenceHeartbeatInterval, 9); - - config.presenceHeartbeatValue = 30; - XCTAssertEqual(config.presenceHeartbeatValue, 30); - XCTAssertEqual(config.presenceHeartbeatInterval, 14); -} - -- (void)testCreateClientWithBasicConfiguration { - PNConfiguration *config = [PNConfiguration configurationWithPublishKey:self.publishKey - subscribeKey:self.subscribeKey]; - XCTAssertNotNil(config); - PubNub *simpleClient = [PubNub clientWithConfiguration:config]; - XCTAssertNotNil(simpleClient); -} - -- (void)testCreateClientWithCallbackQueue { - PNConfiguration *config = [PNConfiguration configurationWithPublishKey:self.publishKey - subscribeKey:self.subscribeKey]; - XCTAssertNotNil(config); - dispatch_queue_t callbackQueue = dispatch_queue_create("com.testCreateClientWithCallbackQueue", DISPATCH_QUEUE_SERIAL); - PubNub *simpleClient = [PubNub clientWithConfiguration:config callbackQueue:callbackQueue]; - XCTAssertNotNil(simpleClient); -} - -// we should do something if we are trying to make a copy with no changes, instead of silently failing -- (void)testSimpleCopyConfigurationWithNoSubscriptions { - XCTAssertNotNil(self.client); - XCTAssertEqualObjects(self.client.uuid, @"322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C"); - PNWeakify(self); - XCTestExpectation *copyExpectation = [self expectationWithDescription:@"copy"]; - NSString *changedUUID = @"changed"; - self.configuration.uuid = changedUUID; - [self.client copyWithConfiguration:self.configuration completion:^(PubNub *client) { - PNStrongify(self); - XCTAssertNotEqualObjects(self.client, client.uuid); - XCTAssertEqual(client.uuid, changedUUID); - [copyExpectation fulfill]; - }]; - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - XCTAssertNil(error); - }]; -} - -- (void)testSimpleCopyConfigurationWithNoSubscriptionAndCallbackQueue { - XCTAssertNotNil(self.client); - XCTAssertEqualObjects(self.client.uuid, @"322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C"); - PNWeakify(self); - XCTestExpectation *copyExpectation = [self expectationWithDescription:@"copy"]; - [self.client copyWithConfiguration:self.configuration completion:^(PubNub *client) { - PNStrongify(self); - XCTAssertNotEqualObjects(self.client, client.uuid); - XCTAssertEqual(client.uuid, self.client.uuid); - [copyExpectation fulfill]; - }]; - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - XCTAssertNil(error); - }]; -} - -- (void)testCopyConfigurationWithSubscribedChannels { - self.didReceiveStatusAssertions = nil; - XCTAssertNotNil(self.client); - XCTAssertEqualObjects(self.client.uuid, @"322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C"); - PNWeakify(self); - XCTestExpectation *copyExpectation = [self expectationWithDescription:@"copy"]; - NSString *changedUUID = @"changed"; - self.configuration.uuid = changedUUID; - [self.client copyWithConfiguration:self.configuration completion:^(PubNub *client) { - PNStrongify(self); - XCTAssertNotEqualObjects(self.client, client.uuid); - XCTAssertEqual(client.uuid, changedUUID); - [copyExpectation fulfill]; - }]; - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - XCTAssertNil(error); - }]; -} - -- (void)testCopyConfigurationWithSubscribedChannelsAndCallbackQueue { - self.didReceiveStatusAssertions = nil; - XCTAssertNotNil(self.client); - XCTAssertEqualObjects(self.client.uuid, @"322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C"); - PNWeakify(self); - XCTestExpectation *copyExpectation = [self expectationWithDescription:@"copy"]; - NSString *changedUUID = @"changed"; - self.configuration.uuid = changedUUID; - [self.client copyWithConfiguration:self.configuration callbackQueue:dispatch_queue_create("com.testCopyCallbackQueue", DISPATCH_QUEUE_SERIAL) completion:^(PubNub *client) { - PNStrongify(self); - XCTAssertNotEqualObjects(self.client, client.uuid); - XCTAssertEqual(client.uuid, changedUUID); - [copyExpectation fulfill]; - }]; - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - XCTAssertNil(error); - }]; -} - -@end diff --git a/Tests/iOS Tests/Tests/PNClientStateChannelGroupTests.m b/Tests/iOS Tests/Tests/PNClientStateChannelGroupTests.m deleted file mode 100644 index caac37e0b..000000000 --- a/Tests/iOS Tests/Tests/PNClientStateChannelGroupTests.m +++ /dev/null @@ -1,184 +0,0 @@ -// -// PNClientStateChannelGroupTests.m -// PubNub Tests -// -// Created by Jordan Zucker on 6/29/15. -// -// - -#import -#import "PNBasicSubscribeTestCase.h" - -static NSString * const kPNChannelGroupTestsName = @"PNClientStateChannelGroupTests"; - -@interface PNClientStateChannelGroupTests : PNBasicSubscribeTestCase - -@end - -@implementation PNClientStateChannelGroupTests - -- (BOOL)isRecording{ - return NO; -} - -- (NSArray *)channelGroups { - return @[ - kPNChannelGroupTestsName - ]; -} - -- (NSString *)nonExistentChannelGroup { - return @"42"; -} - -- (void)setUp { - [super setUp]; - [self performVerifiedRemoveAllChannelsFromGroup:kPNChannelGroupTestsName withAssertions:nil]; - if ( - (self.invocation.selector != @selector(testSetClientStateOnSubscribedChannelGroup)) && - (self.invocation.selector != @selector(testStateForUUIDOnSubscribedChannelGroup)) - ) { - return; - } - PNWeakify(self); - [self performVerifiedAddChannels:@[@"a", @"b"] toGroup:kPNChannelGroupTestsName withAssertions:^(PNAcknowledgmentStatus *status) { - PNStrongify(self); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.operation, PNAddChannelsToGroupOperation); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.statusCode, 200); - }]; - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - XCTAssertEqualObjects(self.client, client); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.category, PNConnectedCategory); - NSArray *expectedChannelGroups = @[ - kPNChannelGroupTestsName, - [kPNChannelGroupTestsName stringByAppendingString:@"-pnpres"] - ]; - XCTAssertEqual(status.subscribedChannelGroups.count, expectedChannelGroups.count); - XCTAssertEqualObjects([NSSet setWithArray:status.subscribedChannelGroups], [NSSet setWithArray:expectedChannelGroups]); - - NSArray *expectedPresenceSubscriptions = @[]; - XCTAssertEqualObjects([NSSet setWithArray:status.subscribedChannels], [NSSet setWithArray:expectedPresenceSubscriptions]); - XCTAssertEqual(status.operation, PNSubscribeOperation); - NSLog(@"timeToken: %@", status.currentTimetoken); - if (self.invocation.selector == @selector(testSetClientStateOnSubscribedChannelGroup)) { - XCTAssertEqualObjects(status.currentTimetoken, @14508134350376968); - } else if (self.invocation.selector == @selector(testStateForUUIDOnSubscribedChannelGroup)) { - XCTAssertEqualObjects(status.currentTimetoken, @14508134362087936); - } else { - XCTFail(@"not supposed to be handling this tests"); - } - XCTAssertEqualObjects(status.currentTimetoken, status.data.timetoken); - [self.channelGroupSubscribeExpectation fulfill]; - - }; - [self PNTest_subscribeToChannelGroups:[self channelGroups] withPresence:YES]; - self.didReceiveStatusAssertions = nil; -} - -- (void)tearDown { - [self performVerifiedRemoveAllChannelsFromGroup:kPNChannelGroupTestsName withAssertions:nil]; - [super tearDown]; -} - -- (void)testSetClientStateOnSubscribedChannelGroup { - self.didReceiveStatusAssertions = nil; - XCTestExpectation *stateExpectation = [self expectationWithDescription:@"clientState"]; - NSDictionary *state = @{ - @"test" : @"test" - }; - PNWeakify(self); - [self.client setState:state forUUID:self.client.uuid onChannelGroup:[self channelGroups].firstObject withCompletion:^(PNClientStateUpdateStatus *status) { - PNStrongify(self); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.operation, PNSetStateOperation); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.statusCode, 200); - NSDictionary *expectedState = @{ - @"test" : @"test" - }; - XCTAssertEqualObjects(status.data.state, expectedState); - [stateExpectation fulfill]; - }]; - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - XCTAssertNil(error); - }]; -} - -- (void)testSetClientStateOnNotExistingChannelGroup { - self.didReceiveStatusAssertions = nil; - XCTestExpectation *stateExpectation = [self expectationWithDescription:@"clientState"]; - NSDictionary *state = @{ - @"test" : @"test" - }; - PNWeakify(self); - [self.client setState:state forUUID:self.client.uuid onChannelGroup:[self nonExistentChannelGroup] - withCompletion:^(PNClientStateUpdateStatus *status) { - PNStrongify(self); - XCTAssertNotNil(status); - XCTAssertTrue(status.isError); - XCTAssertEqual(status.operation, PNSetStateOperation); - XCTAssertEqual(status.category, PNBadRequestCategory); - XCTAssertEqual(status.statusCode, 400); - // XCTAssertNil(status.data.state); - // TOOD: there should be a property for this? - // XCTAssertEqualObjects(status.data, @"No valid channels specified"); - NSLog(@"Information %@", status.errorData.information); - [stateExpectation fulfill]; - }]; - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - XCTAssertNil(error); - }]; -} - -- (void)testStateForUUIDOnSubscribedChannelGroup { - PNWeakify(self); - XCTestExpectation *stateExpectation = [self expectationWithDescription:@"clientState"]; - NSDictionary *channels = @{ - @"a" : @{ - @"test" : @"test" - }, - @"b" : @{ - @"test" : @"test" - } - }; - [self.client stateForUUID:self.client.uuid onChannelGroup:[self channelGroups].firstObject withCompletion:^(PNChannelGroupClientStateResult *result, PNErrorStatus *status) { - PNStrongify(self); - XCTAssertNil(status); - XCTAssertNotNil(result); - XCTAssertEqual(result.operation, PNStateForChannelGroupOperation); - XCTAssertEqual(result.statusCode, 200); - XCTAssertEqualObjects(result.data.channels, channels, @"result.data.channels: %@", result.data.channels); - [stateExpectation fulfill]; - }]; - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - XCTAssertNil(error); - }]; -} - -- (void)testStateForUUIDOnNonExistentChannelGroup { - PNWeakify(self); - XCTestExpectation *stateExpectation = [self expectationWithDescription:@"clientState"]; - [self.client stateForUUID:self.client.uuid onChannelGroup:[self nonExistentChannelGroup] withCompletion:^(PNChannelGroupClientStateResult *result, PNErrorStatus *status) { - PNStrongify(self); - XCTAssertNil(result); - XCTAssertNotNil(status); - XCTAssertTrue(status.isError); - XCTAssertEqual(status.category, PNBadRequestCategory); - XCTAssertEqual(status.operation, PNStateForChannelGroupOperation); - XCTAssertEqual(status.statusCode, 400); - XCTAssertEqualObjects(status.errorData.information, @"No valid channels specified"); - [stateExpectation fulfill]; - }]; - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - XCTAssertNil(error); - }]; -} - -@end \ No newline at end of file diff --git a/Tests/iOS Tests/Tests/PNClientStateChannelTests.m b/Tests/iOS Tests/Tests/PNClientStateChannelTests.m deleted file mode 100644 index d00bbbb60..000000000 --- a/Tests/iOS Tests/Tests/PNClientStateChannelTests.m +++ /dev/null @@ -1,174 +0,0 @@ -// -// PNClientStateChannelTests.m -// PubNub Tests -// -// Created by Jordan Zucker on 6/29/15. -// -// - -#import - -#import "PNBasicSubscribeTestCase.h" - -@interface PNClientStateChannelTests : PNBasicSubscribeTestCase - -@end - -@implementation PNClientStateChannelTests - -- (BOOL)isRecording{ - return NO; -} - -- (NSArray *)subscriptionChannels { - return @[ - @"a" - ]; -} - -- (NSString *)unsubscribedChannel { - return @"21"; -} - -- (void)setUp { - [super setUp]; - PNWeakify(self); - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - XCTAssertEqualObjects(self.client, client); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.category, PNConnectedCategory); - XCTAssertEqual(status.subscribedChannelGroups.count, 0); - NSArray *expectedPresenceSubscriptions = @[@"a"]; - XCTAssertEqualObjects([NSSet setWithArray:status.subscribedChannels], - [NSSet setWithArray:expectedPresenceSubscriptions]); - XCTAssertEqual(status.operation, PNSubscribeOperation); - NSLog(@"timeToken: %@", status.currentTimetoken); - - if (self.invocation.selector == @selector(testSetClientStateOnNotSubscribedChannel)) { - XCTAssertEqualObjects(status.currentTimetoken, @14508133561731382); - } else if (self.invocation.selector == @selector(testSetClientStateOnSubscribedChannel)) { - XCTAssertEqualObjects(status.currentTimetoken, @14508133561731382); - } else if (self.invocation.selector == @selector(testStateForUUIDOnSubscribedChannel)) { - XCTAssertEqualObjects(status.currentTimetoken, @14508133573449905); - } else if (self.invocation.selector == @selector(testStateForUUIDOnUnsubscribedChannel)) { - XCTAssertEqualObjects(status.currentTimetoken, @14508133573449905); - } else { - XCTFail(@"we haven't done anything to prepare for %@", NSStringFromSelector(self.invocation.selector)); - } - XCTAssertEqualObjects(status.currentTimetoken, status.data.timetoken); - [self.subscribeExpectation fulfill]; - - }; - [self PNTest_subscribeToChannels:[self subscriptionChannels] withPresence:NO]; - self.didReceiveStatusAssertions = nil; -} - -- (void)tearDown { - PNWeakify(self); - // TODO: assertions during teardown - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - XCTAssertEqualObjects(self.client, client); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - // XCTAssertEqual(status.operation, PNUnsubscribeOperation); - // XCTAssertEqual(status.category, PNDisconnectedCategory); - // XCTAssertEqual(status.subscribedChannels.count, 0); - XCTAssertEqual(status.subscribedChannelGroups.count, 0); - // XCTAssertEqual(status.operation, PNSubscribeOperation); - NSLog(@"timeToken: %@", status.currentTimetoken); - // XCTAssertEqualObjects(status.currentTimetoken, @14355626738514132); - // XCTAssertEqualObjects(status.currentTimetoken, status.data.timetoken); - [self.unsubscribeExpectation fulfill]; - - }; - NSArray *channelsToRemove = [[self subscriptionChannels] arrayByAddingObjectsFromArray:@[[self unsubscribedChannel]]]; - [self PNTest_unsubscribeFromChannels:channelsToRemove withPresence:YES]; - [super tearDown]; -} - -- (void)testSetClientStateOnSubscribedChannel { - PNWeakify(self); - XCTestExpectation *stateExpectation = [self expectationWithDescription:@"clientState"]; - NSDictionary *state = @{ - @"test" : @"test" - }; - [self.client setState:state forUUID:self.client.uuid onChannel:[self subscriptionChannels].firstObject withCompletion:^(PNClientStateUpdateStatus *status) { - PNStrongify(self); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.operation, PNSetStateOperation); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.statusCode, 200); - XCTAssertEqualObjects(status.data.state, state); - [stateExpectation fulfill]; - }]; - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - XCTAssertNil(error); - }]; -} - -- (void)testSetClientStateOnNotSubscribedChannel { - PNWeakify(self); - XCTestExpectation *stateExpectation = [self expectationWithDescription:@"clientState"]; - NSDictionary *state = @{ - @"test" : @"test" - }; - [self.client setState:state forUUID:self.client.uuid onChannel:[self unsubscribedChannel] withCompletion:^(PNClientStateUpdateStatus *status) { - PNStrongify(self); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.operation, PNSetStateOperation); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.statusCode, 200); - XCTAssertEqualObjects(status.data.state, state); - [stateExpectation fulfill]; - }]; - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - XCTAssertNil(error); - }]; -} - -- (void)testStateForUUIDOnSubscribedChannel { - PNWeakify(self); - XCTestExpectation *stateExpectation = [self expectationWithDescription:@"clientState"]; - NSDictionary *state = @{ - @"test" : @"test" - }; - [self.client stateForUUID:self.client.uuid onChannel:[self subscriptionChannels].firstObject withCompletion:^(PNChannelClientStateResult *result, PNErrorStatus *status) { - PNStrongify(self); - XCTAssertNil(status); - XCTAssertNotNil(result); - XCTAssertEqual(result.operation, PNStateForChannelOperation); - XCTAssertEqualObjects(result.data.state, state); - XCTAssertEqual(result.statusCode, 200); - [stateExpectation fulfill]; - }]; - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - XCTAssertNil(error); - }]; -} - -- (void)testStateForUUIDOnUnsubscribedChannel { - PNWeakify(self); - XCTestExpectation *stateExpectation = [self expectationWithDescription:@"clientState"]; - NSDictionary *state = @{ - @"test" : @"test" - }; - [self.client stateForUUID:self.client.uuid onChannel:[self unsubscribedChannel] withCompletion:^(PNChannelClientStateResult *result, PNErrorStatus *status) { - PNStrongify(self); - XCTAssertNil(status); - XCTAssertNotNil(result); - XCTAssertEqual(result.operation, PNStateForChannelOperation); - XCTAssertEqualObjects(result.data.state, state); - XCTAssertEqual(result.statusCode, 200); - [stateExpectation fulfill]; - }]; - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - XCTAssertNil(error); - }]; -} - -@end \ No newline at end of file diff --git a/Tests/iOS Tests/Tests/PNConfigurationChiperKeyTests.h b/Tests/iOS Tests/Tests/PNConfigurationChiperKeyTests.h deleted file mode 100644 index 0f6868879..000000000 --- a/Tests/iOS Tests/Tests/PNConfigurationChiperKeyTests.h +++ /dev/null @@ -1,13 +0,0 @@ -// -// ChiperKeyTests.h -// PubNub Tests -// -// Created by Vadim Osovets on 9/11/15. -// -// - -#import "PNBasicClientCryptTestCase.h" - -@interface PNConfigurationChiperKeyTests : PNBasicClientCryptTestCase - -@end diff --git a/Tests/iOS Tests/Tests/PNConfigurationChiperKeyTests.m b/Tests/iOS Tests/Tests/PNConfigurationChiperKeyTests.m deleted file mode 100644 index 21260381e..000000000 --- a/Tests/iOS Tests/Tests/PNConfigurationChiperKeyTests.m +++ /dev/null @@ -1,207 +0,0 @@ -// -// ChiperKeyTests.m -// PubNub Tests -// -// Created by Jordan Zucker on 3/23/16. -// -// -#import - -#import "PNConfigurationChiperKeyTests.h" -#import "PNBasicClientTestCase.h" - -#import "NSArray+PNTest.h" - -@implementation PNConfigurationChiperKeyTests - -- (BOOL)isRecording { - return NO; -} - -- (NSString *)channelString { - return @"9BA810C6-985D-4797-926F-CC81749CC774"; -} - -- (NSString *)cryptedChannelName { - return @"9FA810C6-985D-4797-926F-CC81749CC774"; -} - -- (void)testHistoryWithChiperKey { - - NSArray *messages = @[@"Test 1", @"Test 2", @"Test 3"]; - NSMutableArray *expectations = [NSMutableArray new]; - - for (NSString *message in messages) { - - XCTestExpectation *expectation = [self expectationWithDescription:message]; - [expectations addObject:expectation]; - - [self.cryptedClient publish:message - toChannel:[self channelString] - storeInHistory:YES - withCompletion:^(PNPublishStatus *status) { - if (status != nil) { - [expectation fulfill]; - } else { - - } - }]; - - } - - - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - NSLog(@"error: %@", error); - }]; - - XCTestExpectation *historyExpectation = [self expectationWithDescription:@"history"]; - - [self.cryptedClient historyForChannel:[self channelString] - withCompletion:^(PNHistoryResult *result, PNErrorStatus *status) { - XCTAssertNotNil(status, @"Status shouldn't be nil"); - XCTAssertNil(result, @"Results should be nil."); - - XCTAssertEqual(status.statusCode, 400, @"Status codes are not equal."); - XCTAssertEqual(status.category, PNDecryptionErrorCategory, @"Categories are not equal."); - XCTAssertEqual(status.operation, PNHistoryOperation, @"Operations are not equal."); - - NSArray *messages = @[ - @{ - @"test" : @"test" - }, - @"test", - @{ - @"test" : @"test" - }, - @"test", - @{ - @"test" : @"test" - }, - @"test", - @{ - @"test" : @"test" - }, - @"test", - @{ - @"test" : @"test" - }, - @"test", - @{ - @"test" : @"test" - }, - @"test", - @{ - @"test" : @"test" - }, - @"test", - @{ - @"test" : @"test" - }, - @"test", - @{ - @"test" : @"test" - }, - @"test", - @{ - @"test" : @"test" - }, - @"test", - @{ - @"test" : @"test" - }, - @{ - @"test" : @"test" - }, - @"test", - @{ - @"test" : @"test" - }, - @"test", - @{ - @"test" : @"test" - }, - @"test", - @{ - @"test" : @"test" - }, - @"test", - @{ - @"test" : @"test" - }, - @"test", - @{ - @"test" : @"test" - }, - @"test", - @"Test 3", - @"Test 2", - @"Test 1" - ]; - XCTAssertEqualObjects(messages, [(PNHistoryData *)status.associatedObject messages], @"Messages are not equal."); - - NSLog(@"Result: %@", result); - [historyExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - NSLog(@"error: %@", error); - }]; -} - -- (void)testHistoryWithChiperKeyOnlyCryptedMessages { - - // Uncomment only if you want to upload refresh data in fixtures. -// NSArray *messages = @[@"Test 2", @"Test 3", @"Test 1"]; -// NSMutableArray *expectations = [NSMutableArray new]; -// -// for (NSString *message in messages) { -// -// XCTestExpectation *expectation = [self expectationWithDescription:message]; -// [expectations addObject:expectation]; -// -// [self.cryptedClient publish:message -// toChannel:[self cryptedChannelName] -// storeInHistory:YES -// withCompletion:^(PNPublishStatus *status) { -// if (status != nil) { -// [expectation fulfill]; -// } else { -// -// } -// }]; -// -// } -// -// [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { -// NSLog(@"error: %@", error); -// }]; - - XCTestExpectation *historyExpectation = [self expectationWithDescription:@"history"]; - - [self.cryptedClient historyForChannel:[self cryptedChannelName] - withCompletion:^(PNHistoryResult *result, PNErrorStatus *status) { - XCTAssertNotNil(result, @"Result shouldn't be nil"); - XCTAssertNil(status, @"Status should be nil."); - - XCTAssertEqual(result.statusCode, 200, @"Status codes are not equal."); - XCTAssertEqual(result.operation, PNHistoryOperation, @"Operations are not equal."); - - NSArray *messages = @[ - @"Test 2", - @"Test 3", - @"Test 1", - ]; - XCTAssertEqualObjects(messages, [[result data] messages], @"Messages are not equal."); - XCTAssertEqualObjects(@14422371436802799, [[result data] end], @"Messages are not equal."); - XCTAssertEqualObjects(@14422371428544005, [[result data] start], @"Messages are not equal."); - - NSLog(@"Result: %@", result); - [historyExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - NSLog(@"error: %@", error); - }]; -} - -@end diff --git a/Tests/iOS Tests/Tests/PNFilteringSubscribeTests.m b/Tests/iOS Tests/Tests/PNFilteringSubscribeTests.m deleted file mode 100644 index f4fadb75a..000000000 --- a/Tests/iOS Tests/Tests/PNFilteringSubscribeTests.m +++ /dev/null @@ -1,412 +0,0 @@ -// -// PNFilteringSubscribeTests.m -// PubNub Tests -// -// Created by Jordan Zucker on 12/16/15. -// -// - -#import "PNBasicSubscribeTestCase.h" - -static NSString * const kPNChannelTestName = @"PNFilterSubscribeTests"; - -@interface PNFilteringSubscribeTests : PNBasicSubscribeTestCase -@property (nonatomic, assign) BOOL hasPublished; -@property (nonatomic, strong) PNSubscribeTestData *testData; -@end - -@implementation PNFilteringSubscribeTests - -- (BOOL)isRecording{ - return NO; -} - -- (void)setUp { - [super setUp]; - [self setupMessageFiltering]; - self.hasPublished = NO; - // Put setup code here. This method is called before the invocation of each test method in the class. - self.testData = [[PNSubscribeTestData alloc] init]; - self.testData.publishMessage = @"message"; - self.testData.publishChannel = kPNChannelTestName; - self.testData.subscribedChannels = @[kPNChannelTestName]; - self.testData.expectedStatusRegion = @56; - self.testData.expectedPublishInformation = @"Sent"; -} - -- (void)tearDown { - // Put teardown code here. This method is called after the invocation of each test method in the class. - self.publishExpectation = nil; - self.subscribeExpectation = nil; - PNWeakify(self); - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - NSLog(@"***************** status: %@", status.debugDescription); - if (status.operation == PNSubscribeOperation) { - return; - } - XCTAssertEqualObjects(self.client, client); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.subscribedChannelGroups.count, 0); - XCTAssertEqual(status.subscribedChannels.count, 0); - XCTAssertEqual(status.operation, PNUnsubscribeOperation); - XCTAssertEqual(status.category, PNDisconnectedCategory); - NSLog(@"tearDown status: %@", status.debugDescription); - NSLog(@"timeToken: %@", status.currentTimetoken); - [self.unsubscribeExpectation fulfill]; - - }; - [self PNTest_unsubscribeFromChannels:@[kPNChannelTestName] withPresence:NO]; - [super tearDown]; -} - -- (void)setupMessageFiltering { - - if ( - (self.invocation.selector == @selector(testPublishWithNoMetadataAndReceivedMessageForSubscribeWithNoFiltering)) || - (self.invocation.selector == @selector(testPublishWithNoMetadataAndReceiveMultipleMessagesForSubscribeWithNoFiltering)) - ) { - // No filter expression - } else if (self.invocation.selector == @selector(testPublishWithMetadataAndNoReceivedMessageForSubscribeWithDifferentFiltering)) { - [self.client setFilterExpression:@"(a == 'b')"]; - } else if (self.invocation.selector == @selector(testPublishWithMetadataAndNoReceivedMessageForSubscribeWithFilteringWithSameKeyAndDifferentValue)) { - [self.client setFilterExpression:@"(foo == 'b')"]; - } else if (self.invocation.selector == @selector(testPublishWithMetadataAndNoReceivedMessageForSubscribeWithFilteringWithSwitchedKeysAndValues)) { - [self.client setFilterExpression:@"(bar == 'foo')"]; - } else { - [self.client setFilterExpression:@"(foo=='bar')"]; - } -} - -- (void)testPublishWithNoMetadataAndReceiveMultipleMessagesForSubscribeWithNoFiltering { - PNWeakify(self); - __block XCTestExpectation *secondPublishExpectation = [self expectationWithDescription:@"secondPublishExpectation"]; - __block NSInteger messageNumber = 0; - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - XCTAssertEqualObjects(self.client, client); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.category, PNConnectedCategory); - XCTAssertEqual(status.subscribedChannels.count, 1); - XCTAssertEqual(status.subscribedChannelGroups.count, 0); - - XCTAssertEqual(status.operation, PNSubscribeOperation); - NSLog(@"timeToken: %@", status.currentTimetoken); -// XCTAssertEqualObjects(status.currentTimetoken, @14490969656951470); - }; - self.didReceiveMessageAssertions = ^void (PubNub *client, PNMessageResult *message) { - PNStrongify(self); - XCTAssertEqualObjects(self.client, client); - XCTAssertEqualObjects(client.uuid, message.uuid); - XCTAssertNotNil(message.uuid); - XCTAssertNil(message.authKey); - XCTAssertEqual(message.statusCode, 200); - XCTAssertTrue(message.TLSEnabled); - XCTAssertEqual(message.operation, PNSubscribeOperation); - NSLog(@"message:"); - NSLog(@"%@", message.data.message); - XCTAssertNotNil(message.data); - switch (messageNumber) { - case 0: - { - XCTAssertEqualObjects(message.data.message, @"message"); - XCTAssertEqualObjects(message.data.subscription, kPNChannelTestName); - XCTAssertEqualObjects(message.data.timetoken, @14521912345094137); - } - break; - case 1: - { - XCTAssertEqualObjects(message.data.message, @"message1"); - XCTAssertEqualObjects(message.data.subscription, kPNChannelTestName); - XCTAssertEqualObjects(message.data.timetoken, @14521912346468431); - [self.subscribeExpectation fulfill]; - self.subscribeExpectation = nil; - } - break; - default: - { - XCTFail(@"shouldn't be here!. Should only receive two messages."); - } - break; - } - messageNumber++; - }; - self.publishExpectation = [self expectationWithDescription:@"publish"]; - __block NSNumber *firstPublishTimeToken = nil; - __block NSNumber *secondPublishTimeToken = nil; - [self.client publish:@"message" toChannel:kPNChannelTestName withMetadata:nil completion:^(PNPublishStatus *status) { - NSLog(@"status: %@", status.debugDescription); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - firstPublishTimeToken = status.data.timetoken; -// [self fulfillSubscribeExpectationAfterDelay:10]; - [self.publishExpectation fulfill]; - }]; - [self.client publish:@"message1" toChannel:kPNChannelTestName withMetadata:nil completion:^(PNPublishStatus *status) { - NSLog(@"status: %@", status.debugDescription); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - secondPublishTimeToken = status.data.timetoken; - [secondPublishExpectation fulfill]; -// secondPublishExpectation = nil; - }]; - [self waitForExpectationsWithTimeout:5 handler:^(NSError * _Nullable error) { - XCTAssertNil(error); - }]; - self.publishExpectation = nil; - secondPublishExpectation = nil; - NSNumber *finalTimeToken = nil; - if ([firstPublishTimeToken compare:secondPublishTimeToken] == NSOrderedAscending) { - finalTimeToken = firstPublishTimeToken; - } else if ([firstPublishTimeToken compare:secondPublishTimeToken] == NSOrderedDescending) { - finalTimeToken = secondPublishTimeToken; - } else { - finalTimeToken = firstPublishTimeToken; - } - [self PNTest_subscribeToChannels:@[kPNChannelTestName] withPresence:NO usingTimeToken:finalTimeToken]; -} - -- (void)testPublishWithMetadataAndReceiveMultipleMessagesForSubscribeWithMatchingFiltering { - PNWeakify(self); - __block XCTestExpectation *secondPublishExpectation = [self expectationWithDescription:@"secondPublishExpectation"]; - __block NSInteger messageNumber = 0; - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - XCTAssertEqualObjects(self.client, client); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.category, PNConnectedCategory); - XCTAssertEqual(status.subscribedChannels.count, 1); - XCTAssertEqual(status.subscribedChannelGroups.count, 0); - - XCTAssertEqual(status.operation, PNSubscribeOperation); - NSLog(@"timeToken: %@", status.currentTimetoken); -// XCTAssertEqualObjects(status.currentTimetoken, @14490969656951470); - }; - self.didReceiveMessageAssertions = ^void (PubNub *client, PNMessageResult *message) { - PNStrongify(self); - XCTAssertEqualObjects(self.client, client); - XCTAssertEqualObjects(client.uuid, message.uuid); - XCTAssertNotNil(message.uuid); - XCTAssertNil(message.authKey); - XCTAssertEqual(message.statusCode, 200); - XCTAssertTrue(message.TLSEnabled); - XCTAssertEqual(message.operation, PNSubscribeOperation); - NSLog(@"message:"); - NSLog(@"%@", message.data.message); - XCTAssertNotNil(message.data); - switch (messageNumber) { - case 0: - { - XCTAssertEqualObjects(message.data.message, @"message"); - XCTAssertEqualObjects(message.data.channel, kPNChannelTestName); - XCTAssertEqualObjects(message.data.timetoken, @14521919071550816); - } - break; - case 1: - { - XCTAssertEqualObjects(message.data.message, @"message1"); - XCTAssertEqualObjects(message.data.channel, kPNChannelTestName); - XCTAssertEqualObjects(message.data.timetoken, @14521919072760992); - [self.subscribeExpectation fulfill]; - self.subscribeExpectation = nil; - } - break; - default: - { - XCTFail(@"shouldn't be here!. Should only receive two messages."); - } - break; - } - messageNumber++; - }; - self.publishExpectation = [self expectationWithDescription:@"publish"]; - __block NSNumber *firstPublishTimeToken = nil; - __block NSNumber *secondPublishTimeToken = nil; - [self.client publish:@"message" toChannel:kPNChannelTestName withMetadata:@{@"foo":@"bar"} - completion:^(PNPublishStatus *status) { - NSLog(@"status: %@", status.debugDescription); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - firstPublishTimeToken = status.data.timetoken; -// [self fulfillSubscribeExpectationAfterDelay:10]; - [self.publishExpectation fulfill]; - }]; - [self.client publish:@"message1" toChannel:kPNChannelTestName withMetadata:@{@"foo":@"bar"} - completion:^(PNPublishStatus *status) { - NSLog(@"status: %@", status.debugDescription); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - secondPublishTimeToken = status.data.timetoken; - [secondPublishExpectation fulfill]; -// secondPublishExpectation = nil; - }]; - [self waitForExpectationsWithTimeout:5 handler:^(NSError * _Nullable error) { - XCTAssertNil(error); - }]; - self.publishExpectation = nil; - secondPublishExpectation = nil; - NSNumber *finalTimeToken = nil; - if ([firstPublishTimeToken compare:secondPublishTimeToken] == NSOrderedAscending) { - finalTimeToken = firstPublishTimeToken; - } else if ([firstPublishTimeToken compare:secondPublishTimeToken] == NSOrderedDescending) { - finalTimeToken = secondPublishTimeToken; - } else { - finalTimeToken = firstPublishTimeToken; - } - [self PNTest_subscribeToChannels:@[kPNChannelTestName] withPresence:NO usingTimeToken:finalTimeToken]; -} - -- (void)testPublishWithDifferentMetadataAndReceiveEachMessagesForSubscribeWithMatchingFilteringChangedBetweenPublishes { - PNWeakify(self); - __block NSInteger messageNumber = 0; - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - XCTAssertEqualObjects(self.client, client); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.category, PNConnectedCategory); - XCTAssertEqual(status.subscribedChannels.count, 1); // no presence - XCTAssertEqual(status.subscribedChannelGroups.count, 0); - - XCTAssertEqual(status.operation, PNSubscribeOperation); - NSLog(@"timeToken: %@", status.currentTimetoken); - // XCTAssertEqualObjects(status.currentTimetoken, @14490969656951470); - }; - self.didReceiveMessageAssertions = ^void (PubNub *client, PNMessageResult *message) { - PNStrongify(self); - XCTAssertEqualObjects(self.client, client); - XCTAssertEqualObjects(client.uuid, message.uuid); - XCTAssertNotNil(message.uuid); - XCTAssertNil(message.authKey); - XCTAssertEqual(message.statusCode, 200); - XCTAssertTrue(message.TLSEnabled); - XCTAssertEqual(message.operation, PNSubscribeOperation); - NSLog(@"message:"); - NSLog(@"%@", message.data.message); - XCTAssertNotNil(message.data); - switch (messageNumber) { - case 0: - { - XCTAssertEqualObjects(message.data.message, @"message"); - XCTAssertEqualObjects(message.data.channel, kPNChannelTestName); - XCTAssertEqualObjects(message.data.timetoken, @14570385560170716); - } - break; - case 1: - { - XCTAssertEqualObjects(message.data.message, @"message1"); - XCTAssertEqualObjects(message.data.channel, kPNChannelTestName); - XCTAssertEqualObjects(message.data.timetoken, @14570385561462085); - } - break; - default: - { - XCTFail(@"shouldn't be here!. Should only receive two messages."); - } - break; - } - [self.subscribeExpectation fulfill]; - self.subscribeExpectation = nil; - messageNumber++; - }; - self.publishExpectation = [self expectationWithDescription:@"publish"]; - __block NSNumber *firstPublishTimeToken = nil; - __block NSNumber *secondPublishTimeToken = nil; - self.subscribeExpectation = [self expectationWithDescription:@"subscribe"]; - [self.client subscribeToChannels:@[kPNChannelTestName] withPresence:NO]; - [self.client publish:@"message" toChannel:kPNChannelTestName withMetadata:@{@"foo":@"bar"} - completion:^(PNPublishStatus *status) { - NSLog(@"status: %@", status.debugDescription); - PNStrongify(self); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - firstPublishTimeToken = status.data.timetoken; - // before fulfilling, change the filter - - [self.publishExpectation fulfill]; - }]; - [self waitForExpectationsWithTimeout:5 handler:^(NSError * _Nullable error) { - XCTAssertNil(error); - }]; - __block XCTestExpectation *secondPublishExpectation = [self expectationWithDescription:@"secondPublishExpectation"]; - [self.client setFilterExpression:@"(foo=='baz')"]; - self.subscribeExpectation = [self expectationWithDescription:@"subscribe"]; - [self.client publish:@"message1" toChannel:kPNChannelTestName withMetadata:@{@"foo":@"baz"} - completion:^(PNPublishStatus *status) { - NSLog(@"status: %@", status.debugDescription); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - secondPublishTimeToken = status.data.timetoken; - [secondPublishExpectation fulfill]; - }]; - [self waitForExpectationsWithTimeout:5 handler:^(NSError * _Nullable error) { - XCTAssertNil(error); - }]; -} - -- (void)testPublishWithNoMetadataAndReceivedMessageForSubscribeWithNoFiltering { - self.testData.shouldReceiveMessage = YES; - self.testData.publishMetadata = nil; - self.testData.expectedMessageActualChannel = kPNChannelTestName; - self.testData.expectedMessageSubscribedChannel = kPNChannelTestName; - self.testData.expectedMessageRegion = @56; - self.testData.expectedMessageTimetoken = @14513346572989885; - self.testData.expectedPublishTimetoken = @14513346572989885; - [self PNTest_sendAndReceiveMessageWithTestData:self.testData]; -} - -- (void)testPublishWithMetadataAndNoReceivedMessageForSubscribeWithDifferentFiltering { - self.testData.shouldReceiveMessage = NO; - self.testData.publishMetadata = @{@"foo":@"bar"}; - self.testData.expectedPublishTimetoken = @14508292456923915; - [self PNTest_sendAndReceiveMessageWithTestData:self.testData]; -} - -- (void)testPublishWithMetadataAndNoReceivedMessageForSubscribeWithFilteringWithSameKeyAndDifferentValue { - self.testData.shouldReceiveMessage = NO; - self.testData.publishMetadata = @{@"foo":@"bar"}; - self.testData.expectedPublishTimetoken = @14508292569630117; - [self PNTest_sendAndReceiveMessageWithTestData:self.testData]; -} - -- (void)testPublishWithNoMetadataAndNoReceivedMessageForSubscribeWithFiltering { - self.testData.shouldReceiveMessage = NO; - self.testData.publishMetadata = nil; - self.testData.expectedPublishTimetoken = @14508292796804876; - [self PNTest_sendAndReceiveMessageWithTestData:self.testData]; -} - -- (void)testPublishWithMetadataAndNoReceivedMessageForSubscribeWithFilteringWithSwitchedKeysAndValues { - self.testData.shouldReceiveMessage = NO; - self.testData.publishMetadata = @{@"foo":@"bar"}; - self.testData.expectedPublishTimetoken = @14508292679788748; - [self PNTest_sendAndReceiveMessageWithTestData:self.testData]; -} - -- (void)testPublishWithMetadataAndReceiveMessageForSubscribeWithMatchingFiltering { - self.testData.shouldReceiveMessage = YES; - self.testData.publishMetadata = @{@"foo":@"bar"}; - self.testData.expectedMessageActualChannel = kPNChannelTestName; - self.testData.expectedMessageSubscribedChannel = kPNChannelTestName; - self.testData.expectedMessageRegion = @56; - self.testData.expectedMessageTimetoken = @14508292791980402; - self.testData.expectedPublishTimetoken = @14508292791980402; - [self PNTest_sendAndReceiveMessageWithTestData:self.testData]; -} - -@end \ No newline at end of file diff --git a/Tests/iOS Tests/Tests/PNHeartbeatTests.m b/Tests/iOS Tests/Tests/PNHeartbeatTests.m deleted file mode 100644 index fc24c9545..000000000 --- a/Tests/iOS Tests/Tests/PNHeartbeatTests.m +++ /dev/null @@ -1,59 +0,0 @@ -// -// PNHeartbeatTests.m -// PubNub Tests -// -// Created by Jordan Zucker on 6/30/15. -// -// - -#import -#import "PNBasicSubscribeTestCase.h" - -@interface PNHeartbeatTests : PNBasicSubscribeTestCase - -@end - - -@implementation PNHeartbeatTests - -- (PNConfiguration *)overrideClientConfiguration:(PNConfiguration *)configuration { - - configuration.presenceHeartbeatInterval = 5; - configuration.presenceHeartbeatValue = 60; - return configuration; -} - -- (BOOL)isRecording{ - return NO; -} - -- (void)testSimpleHeartbeat { - PNConfiguration *configuration = [PNConfiguration configurationWithPublishKey:self.publishKey - subscribeKey:self.subscribeKey]; - XCTAssertNotNil(configuration); - configuration.presenceHeartbeatInterval = 5; - PubNub *heartbeatClient = [PubNub clientWithConfiguration:configuration]; - XCTAssertNotNil(heartbeatClient); -} - -- (void)testHeartbeatCallbackFail { - - PNWeakify(self); - XCTestExpectation *heartbeatExpectation = [self expectationWithDescription:@"heartbeatFailure"]; - self.didReceiveStatusAssertions = ^(PubNub *client, PNStatus *status) { - PNStrongify(self); - if (status.operation == PNSubscribeOperation) { - - XCTAssertFalse(status.isError, @"Subscription should be successful to test heartbeat."); - [self.subscribeExpectation fulfill]; - } - else if (status.operation == PNHeartbeatOperation) { - - XCTAssertTrue(status.isError, @"Only failed heartbeat status should be passed."); - [heartbeatExpectation fulfill]; - } - }; - [self PNTest_subscribeToChannels:@[@"heartbeat-test"] withPresence:NO]; -} - -@end diff --git a/Tests/iOS Tests/Tests/PNHistoryTests.m b/Tests/iOS Tests/Tests/PNHistoryTests.m deleted file mode 100644 index e88f413e5..000000000 --- a/Tests/iOS Tests/Tests/PNHistoryTests.m +++ /dev/null @@ -1,578 +0,0 @@ -// -// PNHistoryTests.m -// PubNub Tests -// -// Created by Jordan Zucker on 6/23/15. -// -// - -#import - -#import "PNBasicClientTestCase.h" - -#import "NSArray+PNTest.h" - -@interface PNHistoryTests : PNBasicClientTestCase -@end - -@implementation PNHistoryTests - -- (BOOL)isRecording { - return NO; -} - -- (void)testHistory { - XCTestExpectation *historyExpectation = [self expectationWithDescription:@"history"]; - [self.client historyForChannel:@"a" start:@14356962344283504 end:@14356962619609342 withCompletion:^(PNHistoryResult *result, PNErrorStatus *status) { - XCTAssertNil(status.errorData.information); - XCTAssertNotNil(result); - XCTAssertEqual(result.statusCode, 200); - XCTAssertEqualObjects(result.data.start, @14356962364490888); - XCTAssertEqualObjects(result.data.end, @14356962609521455); - XCTAssertEqual(result.operation, PNHistoryOperation); - // might want to assert message array is exactly equal, for now just get count - XCTAssertNotNil(result.data.messages); - XCTAssertEqual(result.data.messages.count, 13); - NSArray *expectedMessages = @[ - @"*********...... 1244 - 2015-06-30 13:30:35", - @"**********..... 1245 - 2015-06-30 13:30:37", - @"***********.... 1246 - 2015-06-30 13:30:39", - @"************... 1247 - 2015-06-30 13:30:41", - @"*************.. 1248 - 2015-06-30 13:30:43", - @"**************. 1249 - 2015-06-30 13:30:45", - @"*************** 1250 - 2015-06-30 13:30:47", - @"*.............. 1251 - 2015-06-30 13:30:49", - @"**............. 1252 - 2015-06-30 13:30:51", - @"***............ 1253 - 2015-06-30 13:30:53", - @"****........... 1254 - 2015-06-30 13:30:55", - @"*****.......... 1255 - 2015-06-30 13:30:58", - @"******......... 1256 - 2015-06-30 13:31:00" - ]; - NSLog(@"result: %@", result.data.messages); - XCTAssertEqualObjects(result.data.messages, expectedMessages); - NSLog(@"status: %@", status); - [historyExpectation fulfill]; - }]; - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - NSLog(@"error: %@", error); - }]; - -} - -- (void)testHistoryWithTimeToken { - XCTestExpectation *historyExpectation = [self expectationWithDescription:@"history"]; - [self.client historyForChannel:@"a" start:@14356962344283504 end:@14356962619609342 includeTimeToken:YES withCompletion:^(PNHistoryResult *result, PNErrorStatus *status) { - XCTAssertNil(status.errorData.information); - XCTAssertNotNil(result); - XCTAssertEqual(result.statusCode, 200); - XCTAssertEqualObjects(result.data.start, @14356962364490888); - XCTAssertEqualObjects(result.data.end, @14356962609521455); - XCTAssertEqual(result.operation, PNHistoryOperation); - // might want to assert message array is exactly equal, for now just get count - XCTAssertNotNil(result.data.messages); - XCTAssertEqual(result.data.messages.count, 13); - NSArray *expectedMessages = @[ - @{ - @"message" : @"*********...... 1244 - 2015-06-30 13:30:35", - @"timetoken" : @14356962364490888 - }, - @{ - @"message" : @"**********..... 1245 - 2015-06-30 13:30:37", - @"timetoken" : @14356962384898753 - }, - @{ - @"message" : @"***********.... 1246 - 2015-06-30 13:30:39", - @"timetoken" : @14356962405294305 - }, - @{ - @"message" : @"************... 1247 - 2015-06-30 13:30:41", - @"timetoken" : @14356962425704863 - }, - @{ - @"message" : @"*************.. 1248 - 2015-06-30 13:30:43", - @"timetoken" : @14356962446126788 - }, - @{ - @"message" : @"**************. 1249 - 2015-06-30 13:30:45", - @"timetoken" : @14356962466542248 - }, - @{ - @"message" : @"*************** 1250 - 2015-06-30 13:30:47", - @"timetoken" : @14356962486987818 - }, - @{ - @"message" : @"*.............. 1251 - 2015-06-30 13:30:49", - @"timetoken" : @14356962507478694 - }, - @{ - @"message" : @"**............. 1252 - 2015-06-30 13:30:51", - @"timetoken" : @14356962527885179 - }, - @{ - @"message" : @"***............ 1253 - 2015-06-30 13:30:53", - @"timetoken" : @14356962548281499 - }, - @{ - @"message" : @"****........... 1254 - 2015-06-30 13:30:55", - @"timetoken" : @14356962568708660 - }, - @{ - @"message" : @"*****.......... 1255 - 2015-06-30 13:30:58", - @"timetoken" : @14356962589101722 - }, - @{ - @"message" : @"******......... 1256 - 2015-06-30 13:31:00", - @"timetoken" : @14356962609521455 - } - ]; - NSLog(@"result: %@", result.data.messages); - XCTAssertEqualObjects(result.data.messages, expectedMessages); - NSLog(@"status: %@", status); - [historyExpectation fulfill]; - }]; - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - NSLog(@"error: %@", error); - }]; -} - -- (void)testHistoryWithLimit { - XCTestExpectation *historyExpectation = [self expectationWithDescription:@"history"]; - [self.client historyForChannel:@"a" start:@14356962344283504 end:@14356962619609342 limit:3 withCompletion:^(PNHistoryResult *result, PNErrorStatus *status) { - XCTAssertNil(status.errorData.information); - XCTAssertNotNil(result); - XCTAssertEqual(result.statusCode, 200); - XCTAssertEqualObjects(result.data.start, @14356962364490888); - XCTAssertEqualObjects(result.data.end, @14356962405294305); - XCTAssertEqual(result.operation, PNHistoryOperation); - // might want to assert message array is exactly equal, for now just get count - XCTAssertNotNil(result.data.messages); - XCTAssertEqual(result.data.messages.count, 3); - NSArray *expectedMessages = @[ - @"*********...... 1244 - 2015-06-30 13:30:35", - @"**********..... 1245 - 2015-06-30 13:30:37", - @"***********.... 1246 - 2015-06-30 13:30:39" - ]; - NSLog(@"result: %@", result.data.messages); - XCTAssertEqualObjects(result.data.messages, expectedMessages); - NSLog(@"status: %@", status); - [historyExpectation fulfill]; - }]; - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - NSLog(@"error: %@", error); - }]; -} - -- (void)testHistoryWithLimitAndTimeToken { - XCTestExpectation *historyExpectation = [self expectationWithDescription:@"history"]; - [self.client historyForChannel:@"a" start:@14356962344283504 end:@14356962619609342 limit:3 includeTimeToken:YES withCompletion:^(PNHistoryResult *result, PNErrorStatus *status) { - XCTAssertNil(status.errorData.information); - XCTAssertNotNil(result); - XCTAssertEqual(result.statusCode, 200); - XCTAssertEqualObjects(result.data.start, @14356962364490888); - XCTAssertEqualObjects(result.data.end, @14356962405294305); - XCTAssertEqual(result.operation, PNHistoryOperation); - // might want to assert message array is exactly equal, for now just get count - XCTAssertNotNil(result.data.messages); - XCTAssertEqual(result.data.messages.count, 3); - NSArray *expectedMessages = @[ - @{ - @"message" : @"*********...... 1244 - 2015-06-30 13:30:35", - @"timetoken" : @14356962364490888 - }, - @{ - @"message" : @"**********..... 1245 - 2015-06-30 13:30:37", - @"timetoken" : @14356962384898753 - }, - @{ - @"message" : @"***********.... 1246 - 2015-06-30 13:30:39", - @"timetoken" : @14356962405294305 - } - ]; - NSLog(@"result: %@", result.data.messages); - XCTAssertEqualObjects(result.data.messages, expectedMessages); - NSLog(@"status: %@", status); - [historyExpectation fulfill]; - }]; - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - NSLog(@"error: %@", error); - }]; -} - -#pragma mark - Negative tests - -- (void)testHistoryWithNilStart { - - XCTestExpectation *historyExpectation = [self expectationWithDescription:@"history"]; - - [self.client historyForChannel:@"a" start:nil end:@14356962619609342 withCompletion:^(PNHistoryResult *result, PNErrorStatus *status) { - XCTAssertNil(status.errorData.information); - XCTAssertNotNil(result); - XCTAssertEqual(result.statusCode, 200); - XCTAssertEqualObjects(result.data.start, @14370552240720549); - XCTAssertEqualObjects(result.data.end, @14370554273730457); - XCTAssertEqual(result.operation, PNHistoryOperation); - // might want to assert message array is exactly equal, for now just get count - XCTAssertNotNil(result.data.messages); - XCTAssertEqual(result.data.messages.count, 100); - NSArray *expectedMessages = @[ - @"*****.......... 5857 - 2015-07-16 07:00:23", - @"******......... 5858 - 2015-07-16 07:00:25", - @"*******........ 5859 - 2015-07-16 07:00:27", - @"********....... 5860 - 2015-07-16 07:00:29", - @"*********...... 5861 - 2015-07-16 07:00:31", - @"**********..... 5862 - 2015-07-16 07:00:33", - @"***********.... 5863 - 2015-07-16 07:00:35", - @"************... 5864 - 2015-07-16 07:00:37", - @"*************.. 5865 - 2015-07-16 07:00:39", - @"**************. 5866 - 2015-07-16 07:00:41", - @"*************** 5867 - 2015-07-16 07:00:44", - @"*.............. 5868 - 2015-07-16 07:00:46", - @"**............. 5869 - 2015-07-16 07:00:48", - @"***............ 5870 - 2015-07-16 07:00:50", - @"****........... 5871 - 2015-07-16 07:00:52", - @"*****.......... 5872 - 2015-07-16 07:00:54", - @"******......... 5873 - 2015-07-16 07:00:56", - @"*******........ 5874 - 2015-07-16 07:00:58", - @"********....... 5875 - 2015-07-16 07:01:00", - @"*********...... 5876 - 2015-07-16 07:01:03", - @"**********..... 5877 - 2015-07-16 07:01:05", - @"***********.... 5878 - 2015-07-16 07:01:07", - @"************... 5879 - 2015-07-16 07:01:09", - @"*************.. 5880 - 2015-07-16 07:01:11", - @"**************. 5881 - 2015-07-16 07:01:13", - @"*************** 5882 - 2015-07-16 07:01:15", - @"*.............. 5883 - 2015-07-16 07:01:17", - @"**............. 5884 - 2015-07-16 07:01:19", - @"***............ 5885 - 2015-07-16 07:01:21", - @"****........... 5886 - 2015-07-16 07:01:23", - @"*****.......... 5887 - 2015-07-16 07:01:25", - @"******......... 5888 - 2015-07-16 07:01:27", - @"*******........ 5889 - 2015-07-16 07:01:29", - @"********....... 5890 - 2015-07-16 07:01:31", - @"*********...... 5891 - 2015-07-16 07:01:33", - @"**********..... 5892 - 2015-07-16 07:01:35", - @"***********.... 5893 - 2015-07-16 07:01:37", - @"************... 5894 - 2015-07-16 07:01:39", - @"*************.. 5895 - 2015-07-16 07:01:41", - @"**************. 5896 - 2015-07-16 07:01:43", - @"*************** 5897 - 2015-07-16 07:01:45", - @"*.............. 5898 - 2015-07-16 07:01:47", - @"**............. 5899 - 2015-07-16 07:01:49", - @"***............ 5900 - 2015-07-16 07:01:52", - @"****........... 5901 - 2015-07-16 07:01:54", - @"*****.......... 5902 - 2015-07-16 07:01:56", - @"******......... 5903 - 2015-07-16 07:01:58", - @"*******........ 5904 - 2015-07-16 07:02:00", - @"********....... 5905 - 2015-07-16 07:02:02", - @"*********...... 5906 - 2015-07-16 07:02:04", - @"**********..... 5907 - 2015-07-16 07:02:06", - @"***********.... 5908 - 2015-07-16 07:02:08", - @"************... 5909 - 2015-07-16 07:02:10", - @"*************.. 5910 - 2015-07-16 07:02:12", - @"**************. 5911 - 2015-07-16 07:02:14", - @"*************** 5912 - 2015-07-16 07:02:16", - @"*.............. 5913 - 2015-07-16 07:02:18", - @"**............. 5914 - 2015-07-16 07:02:20", - @"***............ 5915 - 2015-07-16 07:02:22", - @"****........... 5916 - 2015-07-16 07:02:24", - @"*****.......... 5917 - 2015-07-16 07:02:26", - @"******......... 5918 - 2015-07-16 07:02:28", - @"*******........ 5919 - 2015-07-16 07:02:30", - @"********....... 5920 - 2015-07-16 07:02:32", - @"*********...... 5921 - 2015-07-16 07:02:35", - @"**********..... 5922 - 2015-07-16 07:02:37", - @"***********.... 5923 - 2015-07-16 07:02:39", - @"************... 5924 - 2015-07-16 07:02:41", - @"*************.. 5925 - 2015-07-16 07:02:43", - @"**************. 5926 - 2015-07-16 07:02:45", - @"*************** 5927 - 2015-07-16 07:02:47", - @"*.............. 5928 - 2015-07-16 07:02:49", - @"**............. 5929 - 2015-07-16 07:02:51", - @"***............ 5930 - 2015-07-16 07:02:53", - @"****........... 5931 - 2015-07-16 07:02:55", - @"*****.......... 5932 - 2015-07-16 07:02:57", - @"******......... 5933 - 2015-07-16 07:02:59", - @"*******........ 5934 - 2015-07-16 07:03:01", - @"********....... 5935 - 2015-07-16 07:03:03", - @"*********...... 5936 - 2015-07-16 07:03:05", - @"**********..... 5937 - 2015-07-16 07:03:07", - @"***********.... 5938 - 2015-07-16 07:03:09", - @"************... 5939 - 2015-07-16 07:03:11", - @"*************.. 5940 - 2015-07-16 07:03:13", - @"**************. 5941 - 2015-07-16 07:03:15", - @"*************** 5942 - 2015-07-16 07:03:17", - @"*.............. 5943 - 2015-07-16 07:03:19", - @"**............. 5944 - 2015-07-16 07:03:21", - @"***............ 5945 - 2015-07-16 07:03:24", - @"****........... 5946 - 2015-07-16 07:03:26", - @"*****.......... 5947 - 2015-07-16 07:03:28", - @"******......... 5948 - 2015-07-16 07:03:30", - @"*******........ 5949 - 2015-07-16 07:03:32", - @"********....... 5950 - 2015-07-16 07:03:34", - @"*********...... 5951 - 2015-07-16 07:03:36", - @"**********..... 5952 - 2015-07-16 07:03:38", - @"***********.... 5953 - 2015-07-16 07:03:40", - @"************... 5954 - 2015-07-16 07:03:42", - @"*************.. 5955 - 2015-07-16 07:03:44", - @"**************. 5956 - 2015-07-16 07:03:46" - ]; - XCTAssertEqualObjects(result.data.messages, expectedMessages); - [historyExpectation fulfill]; - }]; - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - NSLog(@"error: %@", error); - }]; - -} - -- (void)testHistoryWithNilEnd { - - XCTestExpectation *historyExpectation = [self expectationWithDescription:@"history"]; - [self.client historyForChannel:@"a" start:@14370749493660012 end:nil withCompletion:^(PNHistoryResult *result, PNErrorStatus *status) { - - XCTAssertNil(status.errorData.information); - XCTAssertNotNil(result); - XCTAssertEqual(result.statusCode, 200); - XCTAssertEqualObjects(result.data.start, @14370747463988719); - XCTAssertEqualObjects(result.data.end, @14370749484421496); - XCTAssertEqual(result.operation, PNHistoryOperation); - // might want to assert message array is exactly equal, for now just get count - XCTAssertNotNil(result.data.messages); - XCTAssertEqual(result.data.messages.count, 100); - - NSArray *expectedMessages = @[ - @"********....... 5521 - 2015-07-16 12:25:45", - @"*********...... 5522 - 2015-07-16 12:25:47", - @"**********..... 5523 - 2015-07-16 12:25:49", - @"***********.... 5524 - 2015-07-16 12:25:51", - @"************... 5525 - 2015-07-16 12:25:53", - @"*************.. 5526 - 2015-07-16 12:25:55", - @"**************. 5527 - 2015-07-16 12:25:57", - @"*************** 5528 - 2015-07-16 12:25:59", - @"*.............. 5529 - 2015-07-16 12:26:01", - @"**............. 5530 - 2015-07-16 12:26:03", - @"***............ 5531 - 2015-07-16 12:26:05", - @"****........... 5532 - 2015-07-16 12:26:07", - @"*****.......... 5533 - 2015-07-16 12:26:09", - @"******......... 5534 - 2015-07-16 12:26:12", - @"*******........ 5535 - 2015-07-16 12:26:14", - @"********....... 5536 - 2015-07-16 12:26:16", - @"*********...... 5537 - 2015-07-16 12:26:18", - @"**********..... 5538 - 2015-07-16 12:26:20", - @"***********.... 5539 - 2015-07-16 12:26:22", - @"************... 5540 - 2015-07-16 12:26:24", - @"*************.. 5541 - 2015-07-16 12:26:26", - @"**************. 5542 - 2015-07-16 12:26:28", - @"*************** 5543 - 2015-07-16 12:26:30", - @"*.............. 5544 - 2015-07-16 12:26:32", - @"**............. 5545 - 2015-07-16 12:26:34", - @"***............ 5546 - 2015-07-16 12:26:36", - @"****........... 5547 - 2015-07-16 12:26:38", - @"*****.......... 5548 - 2015-07-16 12:26:40", - @"******......... 5549 - 2015-07-16 12:26:42", - @"*******........ 5550 - 2015-07-16 12:26:44", - @"********....... 5551 - 2015-07-16 12:26:46", - @"*********...... 5552 - 2015-07-16 12:26:48", - @"**********..... 5553 - 2015-07-16 12:26:50", - @"***********.... 5554 - 2015-07-16 12:26:52", - @"************... 5555 - 2015-07-16 12:26:54", - @"*************.. 5556 - 2015-07-16 12:26:56", - @"**************. 5557 - 2015-07-16 12:26:58", - @"*************** 5558 - 2015-07-16 12:27:00", - @"*.............. 5559 - 2015-07-16 12:27:03", - @"**............. 5560 - 2015-07-16 12:27:05", - @"***............ 5561 - 2015-07-16 12:27:07", - @"****........... 5562 - 2015-07-16 12:27:09", - @"*****.......... 5563 - 2015-07-16 12:27:11", - @"******......... 5564 - 2015-07-16 12:27:13", - @"*******........ 5565 - 2015-07-16 12:27:15", - @"********....... 5566 - 2015-07-16 12:27:17", - @"*********...... 5567 - 2015-07-16 12:27:19", - @"**********..... 5568 - 2015-07-16 12:27:21", - @"***********.... 5569 - 2015-07-16 12:27:23", - @"************... 5570 - 2015-07-16 12:27:25", - @"*************.. 5571 - 2015-07-16 12:27:27", - @"**************. 5572 - 2015-07-16 12:27:29", - @"*************** 5573 - 2015-07-16 12:27:31", - @"*.............. 5574 - 2015-07-16 12:27:33", - @"**............. 5575 - 2015-07-16 12:27:35", - @"***............ 5576 - 2015-07-16 12:27:37", - @"****........... 5577 - 2015-07-16 12:27:39", - @"*****.......... 5578 - 2015-07-16 12:27:41", - @"******......... 5579 - 2015-07-16 12:27:43", - @"*******........ 5580 - 2015-07-16 12:27:45", - @"********....... 5581 - 2015-07-16 12:27:47", - @"*********...... 5582 - 2015-07-16 12:27:50", - @"**********..... 5583 - 2015-07-16 12:27:52", - @"***********.... 5584 - 2015-07-16 12:27:54", - @"************... 5585 - 2015-07-16 12:27:56", - @"*************.. 5586 - 2015-07-16 12:27:58", - @"**************. 5587 - 2015-07-16 12:28:00", - @"*************** 5588 - 2015-07-16 12:28:02", - @"*.............. 5589 - 2015-07-16 12:28:04", - @"**............. 5590 - 2015-07-16 12:28:06", - @"***............ 5591 - 2015-07-16 12:28:08", - @"****........... 5592 - 2015-07-16 12:28:10", - @"*****.......... 5593 - 2015-07-16 12:28:12", - @"******......... 5594 - 2015-07-16 12:28:14", - @"*******........ 5595 - 2015-07-16 12:28:16", - @"********....... 5596 - 2015-07-16 12:28:18", - @"*********...... 5597 - 2015-07-16 12:28:20", - @"**********..... 5598 - 2015-07-16 12:28:22", - @"***********.... 5599 - 2015-07-16 12:28:24", - @"************... 5600 - 2015-07-16 12:28:26", - @"*************.. 5601 - 2015-07-16 12:28:28", - @"**************. 5602 - 2015-07-16 12:28:30", - @"*************** 5603 - 2015-07-16 12:28:32", - @"*.............. 5604 - 2015-07-16 12:28:34", - @"**............. 5605 - 2015-07-16 12:28:36", - @"***............ 5606 - 2015-07-16 12:28:39", - @"****........... 5607 - 2015-07-16 12:28:41", - @"*****.......... 5608 - 2015-07-16 12:28:43", - @"******......... 5609 - 2015-07-16 12:28:45", - @"*******........ 5610 - 2015-07-16 12:28:47", - @"********....... 5611 - 2015-07-16 12:28:49", - @"*********...... 5612 - 2015-07-16 12:28:51", - @"**********..... 5613 - 2015-07-16 12:28:53", - @"***********.... 5614 - 2015-07-16 12:28:55", - @"************... 5615 - 2015-07-16 12:28:57", - @"*************.. 5616 - 2015-07-16 12:28:59", - @"**************. 5617 - 2015-07-16 12:29:01", - @"*************** 5618 - 2015-07-16 12:29:03", - @"*.............. 5619 - 2015-07-16 12:29:05", - @"**............. 5620 - 2015-07-16 12:29:07" - ]; - XCTAssertEqualObjects(result.data.messages, expectedMessages); - [historyExpectation fulfill]; - }]; - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - NSLog(@"error: %@", error); - }]; - -} - -- (void)testHistoryWithNilStartEnd { - - XCTestExpectation *historyExpectation = [self expectationWithDescription:@"history"]; - [self.client historyForChannel:@"a" start:nil end:nil withCompletion:^(PNHistoryResult *result, PNErrorStatus *status) { - XCTAssertNil(status.errorData.information); - XCTAssertNotNil(result); - XCTAssertEqual(result.statusCode, 200); - XCTAssertEqualObjects(result.data.start, @14370790071455550); - XCTAssertEqualObjects(result.data.end, @14370792106187530); - XCTAssertEqual(result.operation, PNHistoryOperation); - // might want to assert message array is exactly equal, for now just get count - XCTAssertNotNil(result.data.messages); - XCTAssertEqual(result.data.messages.count, 100); - NSArray *expectedMessages = @[ - @"*************** 7628 - 2015-07-16 13:36:46", - @"*.............. 7629 - 2015-07-16 13:36:48", - @"**............. 7630 - 2015-07-16 13:36:50", - @"***............ 7631 - 2015-07-16 13:36:52", - @"****........... 7632 - 2015-07-16 13:36:54", - @"*****.......... 7633 - 2015-07-16 13:36:56", - @"******......... 7634 - 2015-07-16 13:36:58", - @"*******........ 7635 - 2015-07-16 13:37:00", - @"********....... 7636 - 2015-07-16 13:37:02", - @"*********...... 7637 - 2015-07-16 13:37:04", - @"**********..... 7638 - 2015-07-16 13:37:06", - @"***********.... 7639 - 2015-07-16 13:37:08", - @"************... 7640 - 2015-07-16 13:37:10", - @"*************.. 7641 - 2015-07-16 13:37:12", - @"**************. 7642 - 2015-07-16 13:37:14", - @"*************** 7643 - 2015-07-16 13:37:16", - @"*.............. 7644 - 2015-07-16 13:37:18", - @"**............. 7645 - 2015-07-16 13:37:20", - @"***............ 7646 - 2015-07-16 13:37:22", - @"****........... 7647 - 2015-07-16 13:37:25", - @"*****.......... 7648 - 2015-07-16 13:37:27", - @"******......... 7649 - 2015-07-16 13:37:29", - @"*******........ 7650 - 2015-07-16 13:37:31", - @"********....... 7651 - 2015-07-16 13:37:33", - @"*********...... 7652 - 2015-07-16 13:37:35", - @"**********..... 7653 - 2015-07-16 13:37:37", - @"***********.... 7654 - 2015-07-16 13:37:39", - @"************... 7655 - 2015-07-16 13:37:41", - @"*************.. 7656 - 2015-07-16 13:37:43", - @"**************. 7657 - 2015-07-16 13:37:45", - @"*************** 7658 - 2015-07-16 13:37:47", - @"*.............. 7659 - 2015-07-16 13:37:49", - @"**............. 7660 - 2015-07-16 13:37:51", - @"***............ 7661 - 2015-07-16 13:37:53", - @"****........... 7662 - 2015-07-16 13:37:55", - @"*****.......... 7663 - 2015-07-16 13:37:57", - @"******......... 7664 - 2015-07-16 13:37:59", - @"*******........ 7665 - 2015-07-16 13:38:02", - @"********....... 7666 - 2015-07-16 13:38:04", - @"*********...... 7667 - 2015-07-16 13:38:06", - @"**********..... 7668 - 2015-07-16 13:38:08", - @"***********.... 7669 - 2015-07-16 13:38:11", - @"************... 7670 - 2015-07-16 13:38:13", - @"*************.. 7671 - 2015-07-16 13:38:15", - @"**************. 7672 - 2015-07-16 13:38:17", - @"*************** 7673 - 2015-07-16 13:38:19", - @"*.............. 7674 - 2015-07-16 13:38:21", - @"**............. 7675 - 2015-07-16 13:38:23", - @"***............ 7676 - 2015-07-16 13:38:25", - @"****........... 7677 - 2015-07-16 13:38:27", - @"*****.......... 7678 - 2015-07-16 13:38:29", - @"******......... 7679 - 2015-07-16 13:38:31", - @"*******........ 7680 - 2015-07-16 13:38:33", - @"********....... 7681 - 2015-07-16 13:38:35", - @"*********...... 7682 - 2015-07-16 13:38:37", - @"**********..... 7683 - 2015-07-16 13:38:39", - @"***********.... 7684 - 2015-07-16 13:38:41", - @"************... 7685 - 2015-07-16 13:38:43", - @"*************.. 7686 - 2015-07-16 13:38:45", - @"**************. 7687 - 2015-07-16 13:38:48", - @"*************** 7688 - 2015-07-16 13:38:50", - @"*.............. 7689 - 2015-07-16 13:38:52", - @"**............. 7690 - 2015-07-16 13:38:54", - @"***............ 7691 - 2015-07-16 13:38:56", - @"****........... 7692 - 2015-07-16 13:38:58", - @"*****.......... 7693 - 2015-07-16 13:39:00", - @"******......... 7694 - 2015-07-16 13:39:02", - @"*******........ 7695 - 2015-07-16 13:39:04", - @"********....... 7696 - 2015-07-16 13:39:06", - @"*********...... 7697 - 2015-07-16 13:39:08", - @"**********..... 7698 - 2015-07-16 13:39:10", - @"***********.... 7699 - 2015-07-16 13:39:12", - @"************... 7700 - 2015-07-16 13:39:14", - @"*************.. 7701 - 2015-07-16 13:39:16", - @"**************. 7702 - 2015-07-16 13:39:18", - @"*************** 7703 - 2015-07-16 13:39:20", - @"*.............. 7704 - 2015-07-16 13:39:22", - @"**............. 7705 - 2015-07-16 13:39:24", - @"***............ 7706 - 2015-07-16 13:39:26", - @"****........... 7707 - 2015-07-16 13:39:28", - @"*****.......... 7708 - 2015-07-16 13:39:30", - @"******......... 7709 - 2015-07-16 13:39:33", - @"*******........ 7710 - 2015-07-16 13:39:35", - @"********....... 7711 - 2015-07-16 13:39:37", - @"*********...... 7712 - 2015-07-16 13:39:39", - @"**********..... 7713 - 2015-07-16 13:39:41", - @"***********.... 7714 - 2015-07-16 13:39:43", - @"************... 7715 - 2015-07-16 13:39:45", - @"*************.. 7716 - 2015-07-16 13:39:47", - @"**************. 7717 - 2015-07-16 13:39:49", - @"*************** 7718 - 2015-07-16 13:39:51", - @"*.............. 7719 - 2015-07-16 13:39:53", - @"**............. 7720 - 2015-07-16 13:39:55", - @"***............ 7721 - 2015-07-16 13:39:57", - @"****........... 7722 - 2015-07-16 13:39:59", - @"*****.......... 7723 - 2015-07-16 13:40:01", - @"******......... 7724 - 2015-07-16 13:40:03", - @"*******........ 7725 - 2015-07-16 13:40:05", - @"********....... 7726 - 2015-07-16 13:40:07", - @"*********...... 7727 - 2015-07-16 13:40:09" - ]; - XCTAssertEqualObjects(result.data.messages, expectedMessages); - [historyExpectation fulfill]; - }]; - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - NSLog(@"error: %@", error); - }]; - -} - -@end \ No newline at end of file diff --git a/Tests/iOS Tests/Tests/PNNumberTests.m b/Tests/iOS Tests/Tests/PNNumberTests.m deleted file mode 100644 index 62d5657a8..000000000 --- a/Tests/iOS Tests/Tests/PNNumberTests.m +++ /dev/null @@ -1,88 +0,0 @@ -#import -#import "PNNumber.h" - - -/** - @brief PNNumber testing. - @discussion Verify PNNumber output compared to expected conversion results. - - @author Sergey Mamontov - @copyright © 2009-2016 PubNub, Inc. - */ -@interface PNNumberTests : XCTestCase - - -#pragma mark - Properties - -/** - @brief Stores reference on number with predefined unix timestamp value. - */ -@property (nonatomic, strong) NSNumber *unixTimestamp; - -/** - @brief Stores reference on number with predefined unix timestamp value which has been multiplied on 10^7. - */ -@property (nonatomic, strong) NSNumber *preMultipliedUnixTimestamp; - -/** - @brief Stores reference on number with correctly transformed to PubNub timetoken value. - */ -@property (nonatomic, strong) NSNumber *pubNubTimetoken; - -#pragma mark - - - -@end - - -#pragma mark - Test case implementation - -@implementation PNNumberTests - -- (void)setUp { - - // Forward method call to the super class. - [super setUp]; - - - // Prepare 'fixtures' - self.unixTimestamp = @(1463002708.147192); - self.preMultipliedUnixTimestamp = @(1463002708.147192 * 10000000); - self.pubNubTimetoken = @(14630027081471920); -} - -- (void)testUnixTimestampToPubNubTimetoken { - - NSNumber *convertedPubNubTimetoken = [PNNumber timeTokenFromNumber:self.unixTimestamp]; - XCTAssertEqualObjects(convertedPubNubTimetoken, self.pubNubTimetoken, - @"Unexpected PubNub timetoken value from Unix-timestamp."); -} - -- (void)testPubNubTimetokenToPubNubTimetoken { - - NSNumber *convertedPubNubTimetoken = [PNNumber timeTokenFromNumber:self.pubNubTimetoken]; - XCTAssertEqualObjects(convertedPubNubTimetoken, self.pubNubTimetoken, - @"Unexpected PubNub timetoken value from 17-digit precision PubNub time token."); -} - -- (void)testNilValueToPubNubTimetoken { - - NSNumber *convertedPubNubTimetoken = [PNNumber timeTokenFromNumber:nil]; - XCTAssertNil(convertedPubNubTimetoken, @"'nil' should be returned if 'nil' passed to +timeTokenFromNumber:."); -} - -/** - @brief When test launched on 32bit system allow to verify fix on infinity \c while statement while trying - to convert pre-multiplied unix-timestamp (double). - */ -- (void)testPreMultipliedUnixTimestampToPubNubTimetoken { - - NSNumber *convertedPubNubTimetoken = [PNNumber timeTokenFromNumber:self.preMultipliedUnixTimestamp]; - XCTAssertEqualObjects(convertedPubNubTimetoken, self.pubNubTimetoken, - @"Unexpected PubNub timetoken value from pre-multiplied Unix-timestamp."); -} - -#pragma mark - - - -@end diff --git a/Tests/iOS Tests/Tests/PNPresenceChannelGroupTests.m b/Tests/iOS Tests/Tests/PNPresenceChannelGroupTests.m deleted file mode 100644 index d591f0e61..000000000 --- a/Tests/iOS Tests/Tests/PNPresenceChannelGroupTests.m +++ /dev/null @@ -1,300 +0,0 @@ -// -// PNPresenceChannelGroupTests.m -// PubNub Tests -// -// Created by Jordan Zucker on 12/3/15. -// -// - -#import -#import "PNBasicPresenceTestCase.h" -#import "NSDictionary+PNTest.h" - -@interface PNPresenceChannelGroupTests : PNBasicPresenceTestCase -@property (nonatomic, strong) XCTestExpectation *presenceExpectation; -@end - -@implementation PNPresenceChannelGroupTests - -- (BOOL)isRecording { - return NO; -} - -- (void)setUp { - [super setUp]; - // Put setup code here. This method is called before the invocation of each test method in the class. - PNWeakify(self); - [self setUpChannelSubscription]; - [self performVerifiedAddChannels:@[@"a", self.otherClientChannelName] toGroup:[self channelGroupName] withAssertions:^(PNAcknowledgmentStatus *status) { - PNStrongify(self); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.operation, PNAddChannelsToGroupOperation); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.statusCode, 200); - }]; -} - -- (void)tearDown { - // Put teardown code here. This method is called after the invocation of each test method in the class. - [super tearDown]; -} - -- (void)testHereNowForChannelGroup { - self.presenceExpectation = [self expectationWithDescription:@"network"]; - [self.client hereNowForChannelGroup:self.channelGroupName - withCompletion:^(PNPresenceChannelGroupHereNowResult *result, PNErrorStatus *status) { - XCTAssertNil(status); - XCTAssertEqual([result operation], PNHereNowForChannelGroupOperation, @"Wrong operation"); - XCTAssertNotNil([result data]); - XCTAssertEqual([result statusCode], 200); - - NSDictionary *expectedChannels = @{ - @"a" : @{ - @"uuids" : @[ - @{ - @"uuid" : @"d063790a-5fac-4c7b-9038-b511b61eb23d" - } - ], - @"occupancy" : @1 - }, - @"2EC925F0-B996-47A4-AF54-A605E1A9AEBA" : @{ - @"uuids" : @[ - @{ - @"uuid" : @"d063790a-5fac-4c7b-9038-b511b61eb23d" - } - ], - @"occupancy" : @1 - } - }; - - NSLog(@"expected: %@", result.data.channels.testAssertionFormat); - XCTAssertEqualObjects(result.data.totalChannels, @2); - XCTAssertEqualObjects(result.data.totalOccupancy, @2); - XCTAssertEqualObjects(result.data.channels, expectedChannels, @"Result and expected channels are not equal."); - - [self.presenceExpectation fulfill]; - }]; - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - if (error) { - NSLog(@"error: %@", error); - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testHereNowForNilChannelGroup { - self.presenceExpectation = [self expectationWithDescription:@"network"]; - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wnonnull" - [self.client hereNowForChannelGroup:nil - withCompletion:^(PNPresenceChannelGroupHereNowResult *result, PNErrorStatus *status) { - XCTAssertNotNil(status); - XCTAssertNil(result, @"Result is not nil"); - XCTAssertEqual([status category], PNBadRequestCategory, @"Should be wrong in current logic"); - XCTAssertEqual([status statusCode], 400); - XCTAssertTrue(status.isError); - [self.presenceExpectation fulfill]; - }]; - #pragma clang diagnostic pop - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - if (error) { - NSLog(@"error: %@", error); - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testHereNowForChannelGroupWithVerbosityOccupancy { - self.presenceExpectation = [self expectationWithDescription:@"network"]; - [self.client hereNowForChannelGroup:self.channelGroupName - withVerbosity:PNHereNowOccupancy - completion:^(PNPresenceChannelGroupHereNowResult *result, PNErrorStatus *status) { - XCTAssertNil(status); - XCTAssertEqual([result operation], PNHereNowForChannelGroupOperation, @"Wrong operation"); - XCTAssertNotNil([result data]); - XCTAssertEqual([result statusCode], 200); - - NSDictionary *expectedChannels = @{ - @"a" : @{ - @"occupancy" : @1 - }, - @"2EC925F0-B996-47A4-AF54-A605E1A9AEBA" : @{ - @"occupancy" : @1 - } - }; - - NSLog(@"expected: %@", result.data.channels.testAssertionFormat); - XCTAssertEqualObjects(result.data.channels, expectedChannels, @"Result and expected channels are not equal."); - XCTAssertEqualObjects(result.data.totalOccupancy, @2); - XCTAssertEqualObjects(result.data.totalChannels, @2); - - - [self.presenceExpectation fulfill]; - }]; - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - if (error) { - NSLog(@"error: %@", error); - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testHereNowForNilChannelGroupWithVerbosityOccupancy { - self.presenceExpectation = [self expectationWithDescription:@"network"]; - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wnonnull" - [self.client hereNowForChannelGroup:nil - withVerbosity:PNHereNowOccupancy - completion:^(PNPresenceChannelGroupHereNowResult *result, PNErrorStatus *status) { - XCTAssertNotNil(status); - XCTAssertNil(result, @"Result is not nil"); - XCTAssertEqual([status category], PNBadRequestCategory, @"Should be wrong in current logic"); - XCTAssertEqual([status statusCode], 400); - XCTAssertTrue(status.isError); - - [self.presenceExpectation fulfill]; - }]; - #pragma clang diagnostic pop - - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - if (error) { - NSLog(@"error: %@", error); - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testHereNowForChannelGroupWithVerbosityState { - self.presenceExpectation = [self expectationWithDescription:@"network"]; - [self.client hereNowForChannelGroup:self.channelGroupName - withVerbosity:PNHereNowState - completion:^(PNPresenceChannelGroupHereNowResult *result, PNErrorStatus *status) { - XCTAssertNil(status); - XCTAssertEqual([result operation], PNHereNowForChannelGroupOperation, @"Wrong operation"); - XCTAssertNotNil([result data]); - XCTAssertEqual([result statusCode], 200); - - NSDictionary *expectedChannels = @{ - @"a" : @{ - @"uuids" : @[ - @{ - @"uuid" : @"d063790a-5fac-4c7b-9038-b511b61eb23d" - } - ], - @"occupancy" : @1 - }, - @"2EC925F0-B996-47A4-AF54-A605E1A9AEBA" : @{ - @"uuids" : @[ - @{ - @"uuid" : @"d063790a-5fac-4c7b-9038-b511b61eb23d" - } - ], - @"occupancy" : @1 - } - }; - - NSLog(@"expected: %@", result.data.channels.testAssertionFormat); - XCTAssertEqualObjects(result.data.channels, expectedChannels, @"Result and expected channels are not equal."); - XCTAssertEqualObjects(result.data.totalChannels, @2); - XCTAssertEqualObjects(result.data.totalOccupancy, @2); - - [self.presenceExpectation fulfill]; - }]; - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - if (error) { - NSLog(@"error: %@", error); - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testHereNowForNilChannelGroupWithVerbosityState { - self.presenceExpectation = [self expectationWithDescription:@"network"]; - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wnonnull" - [self.client hereNowForChannelGroup:nil - withVerbosity:PNHereNowState - completion:^(PNPresenceChannelGroupHereNowResult *result, PNErrorStatus *status) { - XCTAssertNotNil(status); - XCTAssertNil(result, @"Result is not nil"); - XCTAssertEqual([status category], PNBadRequestCategory, @"Should be wrong in current logic"); - XCTAssertEqual([status statusCode], 400); - XCTAssertTrue(status.isError); - - [self.presenceExpectation fulfill]; - }]; - #pragma clang diagnostic pop - - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - if (error) { - NSLog(@"error: %@", error); - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testHereNowForChannelGroupWithVerbosityUUID { - self.presenceExpectation = [self expectationWithDescription:@"network"]; - [self.client hereNowForChannelGroup:self.channelGroupName - withVerbosity:PNHereNowUUID - completion:^(PNPresenceChannelGroupHereNowResult *result, PNErrorStatus *status) { - XCTAssertNil(status); - XCTAssertEqual([result operation], PNHereNowForChannelGroupOperation, @"Wrong operation"); - XCTAssertNotNil([result data]); - XCTAssertEqual([result statusCode], 200); - - NSLog(@"expected: %@", result.data.channels.testAssertionFormat); - NSDictionary *expectedChannels = @{ - @"a" : @{ - @"uuids" : @[ - @"d063790a-5fac-4c7b-9038-b511b61eb23d" - ], - @"occupancy" : @1 - }, - @"2EC925F0-B996-47A4-AF54-A605E1A9AEBA" : @{ - @"uuids" : @[ - @"d063790a-5fac-4c7b-9038-b511b61eb23d" - ], - @"occupancy" : @1 - } - }; - - XCTAssertEqualObjects(result.data.channels, expectedChannels, @"Result and expected channels are not equal."); - XCTAssertEqualObjects(result.data.totalOccupancy, @2); - XCTAssertEqualObjects(result.data.totalChannels, @2); - - [self.presenceExpectation fulfill]; - }]; - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - if (error) { - NSLog(@"error: %@", error); - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testHereNowForNilChannelGroupWithVerbosityUUID { - self.presenceExpectation = [self expectationWithDescription:@"network"]; - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wnonnull" - [self.client hereNowForChannelGroup:nil - withVerbosity:PNHereNowUUID - completion:^(PNPresenceChannelGroupHereNowResult *result, PNErrorStatus *status) { - XCTAssertNotNil(status); - XCTAssertNil(result, @"Result is not nil"); - XCTAssertEqual([status category], PNBadRequestCategory, @"Should be wrong in current logic"); - XCTAssertEqual([status statusCode], 400); - XCTAssertTrue(status.isError); - [self.presenceExpectation fulfill]; - }]; - #pragma clang diagnostic pop - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - if (error) { - NSLog(@"error: %@", error); - XCTFail(@"what went wrong?"); - } - }]; -} - -@end \ No newline at end of file diff --git a/Tests/iOS Tests/Tests/PNPresenceEventTests.m b/Tests/iOS Tests/Tests/PNPresenceEventTests.m deleted file mode 100644 index baecf3904..000000000 --- a/Tests/iOS Tests/Tests/PNPresenceEventTests.m +++ /dev/null @@ -1,303 +0,0 @@ -// -// PNPresenceEventTests.m -// PubNub Tests -// -// Created by Jordan Zucker on 12/5/2015. -// -// - -#import "PNBasicPresenceTestCase.h" - - - -@interface PNPresenceEventTests : PNBasicPresenceTestCase -@end - -@implementation PNPresenceEventTests - -- (void)setUp { - [super setUp]; - [self setUpChannelSubscription]; - if ( - (self.invocation.selector == @selector(testLeaveEvent)) && - (self.invocation.selector == @selector(testTimeoutEvent)) && - (self.invocation.selector == @selector(testStateChangeEvent)) - ) { - PNWeakify(self); - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - XCTAssertNotNil(client); - XCTAssertNotNil(status); - XCTAssertEqualObjects(self.client, client); - XCTAssertEqual(status.category, PNConnectedCategory); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.statusCode, 200); - XCTAssertTrue([status.subscribedChannels containsObject:[self otherClientChannelName]]); - XCTAssertTrue([client.channels containsObject:[self otherClientChannelName]]); - XCTAssertEqual(status.operation, PNSubscribeOperation); - [self.subscribeExpectation fulfill]; - }; - [self PNTest_subscribeToChannels:@[[self otherClientChannelName]] withPresence:YES]; - } else if (self.invocation.selector == @selector(testJoinEvent)) { - PNWeakify(self); - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - XCTAssertNotNil(client); - XCTAssertNotNil(status); - if (self.client != client) { - return; - } - // XCTAssertEqualObjects(self.client, client); - XCTAssertEqual(status.category, PNDisconnectedCategory); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.statusCode, 200); - XCTAssertEqual(status.operation, PNUnsubscribeOperation); - XCTAssertFalse([status.subscribedChannels containsObject:[self otherClientChannelName]]); - XCTAssertFalse([client.channels containsObject:[self otherClientChannelName]]); - [self.unsubscribeExpectation fulfill]; - }; - [self PNTest_unsubscribeFromChannels:@[[self otherClientChannelName]] withPresence:YES]; - } -} - -- (PNConfiguration *)overrideClientConfiguration:(PNConfiguration *)configuration { - if (self.invocation.selector == @selector(testTimeoutEvent)) { - configuration.presenceHeartbeatValue = 5; - } - return configuration; -} - -- (BOOL)isRecording{ - return NO; -} - -- (void)tearDown { - if ( - (self.invocation.selector == @selector(testJoinEvent)) && - (self.invocation.selector == @selector(testStateChangeEvent)) - ) { - PNWeakify(self); - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - XCTAssertNotNil(client); - XCTAssertNotNil(status); - XCTAssertEqualObjects(self.client, client); - XCTAssertEqual(status.category, PNDisconnectedCategory); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.statusCode, 200); - XCTAssertEqual(status.operation, PNUnsubscribeOperation); - XCTAssertFalse([status.subscribedChannels containsObject:[self otherClientChannelName]]); - XCTAssertFalse([client.channels containsObject:[self otherClientChannelName]]); - [self.unsubscribeExpectation fulfill]; - }; - [self PNTest_unsubscribeFromChannels:@[[self otherClientChannelName]] withPresence:YES]; - } - - - [super tearDown]; -} - -/** - All tests according to events we have in: https://github.com/pubnub/pubnub-docs/blob/master/components/presence/design/overview.asciidoc - */ - -- (void)testJoinEvent { - PNWeakify(self); - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - if (self.client != client) { - return; - } - // XCTAssertEqualObjects(self.client, client); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.operation, PNSubscribeOperation); - XCTAssertEqual(status.category, PNConnectedCategory); - [self.subscribeExpectation fulfill]; - self.subscribeExpectation = nil; - }; - self.otherClientPresenceEventAssertions = ^void (PubNub *client, PNPresenceEventResult *event) { - PNStrongify(self); - NSLog(@"------------------------"); - NSLog(@"event: %@", event.debugDescription); - if ( - ![event.data.presenceEvent isEqualToString:@"join"] || - ![self.otherClient isEqual:client] - ) { - NSLog(@"------------------------"); - return; - } - XCTAssertEqualObjects(self.otherClient, client); - XCTAssertNotNil(event); - XCTAssertTrue(event.statusCode == 200, @"Status code is not right"); - - XCTAssertEqual(event.operation, PNSubscribeOperation); - - XCTAssertEqualObjects(event.data.presence.occupancy, @3, @"Occupancy is not equal"); - XCTAssertEqualObjects(event.data.presence.uuid, @"322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C", @"Occupancy is not equal"); - XCTAssertEqualObjects(event.data.presence.timetoken, @1450825327, @"Timetoken is not the same."); - XCTAssertEqualObjects(event.data.presenceEvent, @"join"); - XCTAssertNil(event.data.channel); - XCTAssertEqualObjects(event.data.subscription, [self otherClientChannelName], @"Subscribed channel are not equal."); - XCTAssertNil(event.data.presence.channel); - XCTAssertNil(event.data.presence.subscription); - XCTAssertEqualObjects(event.data.timetoken, @14508253275700276, @"Timetoken is not the same."); - NSLog(@"------------------------"); - [self.presenceEventExpectation fulfill]; - self.presenceEventExpectation = nil; - }; - self.presenceEventExpectation = [self expectationWithDescription:@"presenceEvent"]; - [self PNTest_subscribeToChannels:@[[self otherClientChannelName]] withPresence:YES]; -} - -- (void)testLeaveEvent { - PNWeakify(self); - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - if (self.client != client) { - return; - } - // XCTAssertEqualObjects(self.client, client); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.operation, PNUnsubscribeOperation); - XCTAssertEqual(status.category, PNDisconnectedCategory); - [self.unsubscribeExpectation fulfill]; - }; - self.otherClientPresenceEventAssertions = ^void (PubNub *client, PNPresenceEventResult *event) { - PNStrongify(self); - NSLog(@"------------------------"); - NSLog(@"event: %@", event.debugDescription); - if ( - ![event.data.presenceEvent isEqualToString:@"leave"] || - ![self.otherClient isEqual:client] - ) { - NSLog(@"------------------------"); - return; - } - XCTAssertEqualObjects(self.otherClient, client); - XCTAssertNotNil(event); - XCTAssertTrue(event.statusCode == 200, @"Status code is not right"); - - XCTAssertEqual(event.operation, PNSubscribeOperation); - - XCTAssertEqualObjects(event.data.presence.occupancy, @2, @"Occupancy is not equal"); - XCTAssertEqualObjects(event.data.presence.uuid, @"322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C", @"Occupancy is not equal"); - XCTAssertEqualObjects(event.data.presence.timetoken, @1450825034, @"Timetoken is not the same."); - XCTAssertEqualObjects(event.data.presenceEvent, @"leave"); - XCTAssertNil(event.data.channel); - XCTAssertEqualObjects(event.data.subscription, [self otherClientChannelName], @"Subscribed channel are not equal."); - XCTAssertNil(event.data.presence.channel); - XCTAssertNil(event.data.presence.subscription); - XCTAssertEqualObjects(event.data.timetoken, @14508250344143190, @"Timetoken is not the same."); - NSLog(@"------------------------"); - [self.presenceEventExpectation fulfill]; - self.presenceEventExpectation = nil; - }; - self.presenceEventExpectation = [self expectationWithDescription:@"presenceEvent"]; - [self PNTest_unsubscribeFromChannels:@[[self otherClientChannelName]] withPresence:YES]; -} - -- (void)testTimeoutEvent { - PNWeakify(self); - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - if (self.client != client) { - return; - } - // XCTAssertEqualObjects(self.client, client); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.operation, PNSubscribeOperation); - XCTAssertEqual(status.category, PNConnectedCategory); - [self.subscribeExpectation fulfill]; - self.subscribeExpectation = nil; - self.client = nil; - }; - self.otherClientPresenceEventAssertions = ^void (PubNub *client, PNPresenceEventResult *event) { - PNStrongify(self); - NSLog(@"------------------------"); - NSLog(@"event: %@", event.debugDescription); - if ( - ![event.data.presenceEvent isEqualToString:@"timeout"] || - ![self.otherClient isEqual:client] - ) { - NSLog(@"------------------------"); - return; - } - XCTAssertEqualObjects(self.otherClient, client); - XCTAssertNotNil(event); - XCTAssertTrue(event.statusCode == 200, @"Status code is not right"); - - XCTAssertEqual(event.operation, PNSubscribeOperation); - - XCTAssertEqualObjects(event.data.presence.occupancy, @2, @"Occupancy is not equal"); - XCTAssertEqualObjects(event.data.presence.uuid, @"322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C", @"Occupancy is not equal"); - XCTAssertEqualObjects(event.data.presence.timetoken, @1450827380, @"Timetoken is not the same."); - XCTAssertNil(event.data.channel); - XCTAssertEqualObjects(event.data.subscription, [self otherClientChannelName], @"Subscribed channel are not equal."); - XCTAssertNil(event.data.presence.channel); - XCTAssertNil(event.data.presence.subscription); - XCTAssertEqualObjects(event.data.presenceEvent, @"timeout"); - XCTAssertEqualObjects(event.data.timetoken, @14508273809664893, @"Timetoken is not the same."); - NSLog(@"------------------------"); - [self.presenceEventExpectation fulfill]; - }; - self.presenceEventExpectation = [self expectationWithDescription:@"presenceEvent"]; - [self PNTest_subscribeToChannels:@[[self otherClientChannelName]] withPresence:YES]; -} - -- (void)testStateChangeEvent { - NSDictionary *expectedState = @{@"foo" : @"bar"}; - PNWeakify(self); - self.otherClientPresenceEventAssertions = ^void (PubNub *client, PNPresenceEventResult *event) { - PNStrongify(self); - NSLog(@"------------------------"); - NSLog(@"event: %@", event.debugDescription); - if ( - ![event.data.presenceEvent isEqualToString:@"state-change"] || - ![self.otherClient isEqual:client] - ) { - NSLog(@"------------------------"); - return; - } - XCTAssertEqualObjects(self.otherClient, client); - XCTAssertNotNil(event); - XCTAssertTrue(event.statusCode == 200, @"Status code is not right"); - - XCTAssertEqual(event.operation, PNSubscribeOperation); - - // XCTAssertEqualObjects(event.data.presence.occupancy, @2, @"Occupancy is not equal"); - XCTAssertEqualObjects(event.data.presence.uuid, @"322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C", @"UUID is not equal"); - XCTAssertEqualObjects(event.data.presenceEvent, @"state-change"); - XCTAssertNil(event.data.channel); - XCTAssertEqualObjects(event.data.subscription, [self otherClientChannelName], @"Subscribed channel are not equal."); - XCTAssertNil(event.data.presence.channel); - XCTAssertNil(event.data.presence.subscription); - XCTAssertEqualObjects(event.data.presence.state, expectedState, @"State are not equal"); - XCTAssertEqualObjects(event.data.presence.occupancy, @3); - XCTAssertEqualObjects(event.data.presence.timetoken, @1450825467); - XCTAssertEqualObjects(event.data.timetoken, @14508254670577196, @"Timetoken is not the same."); - NSLog(@"------------------------"); - [self.presenceEventExpectation fulfill]; - }; - self.presenceEventExpectation = [self expectationWithDescription:@"presenceEvent"]; - XCTestExpectation *stateExpectation = [self expectationWithDescription:@"stateExpectation"]; - [self.client setState:expectedState forUUID:self.client.uuid onChannel:[self otherClientChannelName] withCompletion:^(PNClientStateUpdateStatus *status) { - NSLog(@"state status: %@", status.debugDescription); - PNStrongify(self); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.operation, PNSetStateOperation); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.statusCode, 200); - XCTAssertNotNil(status.data.state); - XCTAssertEqualObjects(status.data.state, expectedState); - [stateExpectation fulfill]; - }]; - [self waitForExpectationsWithTimeout:10 handler:^(NSError * _Nullable error) { - XCTAssertNil(error); - }]; -} - -@end \ No newline at end of file diff --git a/Tests/iOS Tests/Tests/PNPresenceTests.m b/Tests/iOS Tests/Tests/PNPresenceTests.m deleted file mode 100644 index d0fbf5ff6..000000000 --- a/Tests/iOS Tests/Tests/PNPresenceTests.m +++ /dev/null @@ -1,441 +0,0 @@ -// -// PNPresenceTests.m -// PubNub Tests -// -// Created by Jordan Zucker on 11/20/15. -// -// - -#import - -#import "PNBasicPresenceTestCase.h" - -#import "NSDictionary+PNTest.h" - -@interface PNPresenceTests : PNBasicPresenceTestCase - -@property (nonatomic) XCTestExpectation *presenceExpectation; -@property (nonatomic, strong) NSString *channelName; -@end - -@implementation PNPresenceTests - -- (void)setUp { - [super setUp]; - self.channelName = [self otherClientChannelName]; -} - -- (BOOL)isRecording{ - return NO; -} - -#pragma mark - Simple tests without preparing steps - -- (void)testHereNow { - self.presenceExpectation = [self expectationWithDescription:@"network"]; - [self.client hereNowWithCompletion:^(PNPresenceGlobalHereNowResult *result, PNErrorStatus *status) { - XCTAssertNil(status); - XCTAssertEqual([result operation], PNHereNowGlobalOperation, @"Wrong operation"); - XCTAssertNotNil([result data]); - XCTAssertEqual([result statusCode], 200); - - NSDictionary *expectedChannels = @{ - @"a" : @{ - @"uuids" : @[ - @{ - @"uuid" : @"d063790a-5fac-4c7b-9038-b511b61eb23d" - } - ], - @"occupancy" : @1 - } - }; - - NSLog(@"expected: %@", result.data.channels.testAssertionFormat); - XCTAssertEqualObjects(result.data.channels, expectedChannels, @"Result and expected channels are not equal."); - XCTAssertEqualObjects(result.data.totalChannels, @1); - XCTAssertEqualObjects(result.data.totalOccupancy, @1); - - [self.presenceExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - if (error) { - NSLog(@"error: %@", error); - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testHereNowWithVerbosityNowUUID { - self.presenceExpectation = [self expectationWithDescription:@"network"]; - [self.client hereNowWithVerbosity:PNHereNowUUID - completion:^(PNPresenceGlobalHereNowResult *result, PNErrorStatus *status) { - XCTAssertNil(status); - XCTAssertEqual([result operation], PNHereNowGlobalOperation, @"Wrong operation"); - XCTAssertNotNil([result data]); - XCTAssertEqual([result statusCode], 200); - - NSDictionary *expectedChannels = @{ - @"a" : @{ - @"uuids" : @[ - @"d063790a-5fac-4c7b-9038-b511b61eb23d" - ], - @"occupancy" : @1 - }, - @"2EC925F0-B996-47A4-AF54-A605E1A9AEBA" : @{ - @"uuids" : @[ - @"d063790a-5fac-4c7b-9038-b511b61eb23d" - ], - @"occupancy" : @1 - } - }; - NSLog(@"expected: %@", result.data.channels.testAssertionFormat); - XCTAssertEqualObjects(result.data.channels, expectedChannels, @"Result and expected channels are not equal."); - XCTAssertEqualObjects(result.data.totalChannels, @2); - XCTAssertEqualObjects(result.data.totalOccupancy, @2); - - [self.presenceExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - if (error) { - NSLog(@"error: %@", error); - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testHereNowWithVerbosityNowState { - self.presenceExpectation = [self expectationWithDescription:@"network"]; - [self.client hereNowWithVerbosity:PNHereNowState - completion:^(PNPresenceGlobalHereNowResult *result, PNErrorStatus *status) { - XCTAssertNil(status); - XCTAssertEqual([result operation], PNHereNowGlobalOperation, @"Wrong operation"); - XCTAssertNotNil([result data]); - XCTAssertEqual([result statusCode], 200); - - NSDictionary *expectedChannels = @{ - @"a" : @{ - @"uuids" : @[ - @{ - @"uuid" : @"d063790a-5fac-4c7b-9038-b511b61eb23d" - } - ], - @"occupancy" : @1 - }, - @"2EC925F0-B996-47A4-AF54-A605E1A9AEBA" : @{ - @"uuids" : @[ - @{ - @"uuid" : @"d063790a-5fac-4c7b-9038-b511b61eb23d" - } - ], - @"occupancy" : @1 - } - }; - - NSLog(@"expected: %@", result.data.channels.testAssertionFormat); - - XCTAssertEqualObjects(result.data.channels, expectedChannels, @"Result and expected channels are not equal."); - XCTAssertEqualObjects(result.data.totalOccupancy, @2); - XCTAssertEqualObjects(result.data.totalChannels, @2); - - [self.presenceExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - if (error) { - NSLog(@"error: %@", error); - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testHereNowWithVerbosityNowOccupancy { - self.presenceExpectation = [self expectationWithDescription:@"network"]; - [self.client hereNowWithVerbosity:PNHereNowOccupancy - completion:^(PNPresenceGlobalHereNowResult *result, PNErrorStatus *status) { - XCTAssertNil(status); - XCTAssertEqual([result operation], PNHereNowGlobalOperation, @"Wrong operation"); - XCTAssertNotNil([result data]); - XCTAssertEqual([result statusCode], 200); - - NSDictionary *expectedChannels = @{ - @"a" : @{ - @"occupancy" : @1 - }, - @"2EC925F0-B996-47A4-AF54-A605E1A9AEBA" : @{ - @"occupancy" : @1 - } - }; - - NSLog(@"expected: %@", result.data.channels.testAssertionFormat); - XCTAssertEqualObjects(result.data.channels, expectedChannels, @"Result and expected channels are not equal."); - XCTAssertEqualObjects(result.data.totalChannels, @2); - XCTAssertEqualObjects(result.data.totalOccupancy, @2); - - [self.presenceExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - if (error) { - NSLog(@"error: %@", error); - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testHereNowForChannel { - self.presenceExpectation = [self expectationWithDescription:@"network"]; - [self.client hereNowForChannel:self.channelName - withCompletion:^(PNPresenceChannelHereNowResult *result, PNErrorStatus *status) { - XCTAssertNil(status); - XCTAssertEqual([result operation], PNHereNowForChannelOperation, @"Wrong operation"); - XCTAssertNotNil([result data]); - XCTAssertEqual([result statusCode], 200); - - XCTAssertEqualObjects(result.data.occupancy, @1, @"Result and expected channels are not equal."); - - NSArray *expectedUUIDs = @[ - @{ - @"uuid" : @"d063790a-5fac-4c7b-9038-b511b61eb23d" - } - ]; - - XCTAssertEqualObjects(result.data.uuids, expectedUUIDs, @"Result and expected channels are not equal."); - - [self.presenceExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - if (error) { - NSLog(@"error: %@", error); - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testHereNowForNilChannel { - self.presenceExpectation = [self expectationWithDescription:@"network"]; - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wnonnull" - [self.client hereNowForChannel:nil - withCompletion:^(PNPresenceChannelHereNowResult *result, PNErrorStatus *status) { - XCTAssertNotNil(status); - XCTAssertNil(result, @"Result is not nil"); - XCTAssertEqual([status category], PNBadRequestCategory, @"Should be wrong in current logic"); - XCTAssertEqual([status statusCode], 400); - XCTAssertTrue(status.isError); - [self.presenceExpectation fulfill]; - }]; - #pragma clang diagnostic pop - - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - if (error) { - NSLog(@"error: %@", error); - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testHereNowForChannelWithVerbosityOccupancy { - self.presenceExpectation = [self expectationWithDescription:@"network"]; - [self.client hereNowForChannel:self.channelName - withVerbosity:PNHereNowOccupancy - completion:^(PNPresenceChannelHereNowResult *result, PNErrorStatus *status) { - XCTAssertNil(status); - XCTAssertEqual([result operation], PNHereNowForChannelOperation, @"Wrong operation"); - XCTAssertNotNil([result data]); - XCTAssertEqual([result statusCode], 200); - - XCTAssertNil(result.data.uuids); - XCTAssertEqualObjects(result.data.occupancy, @1, @"Result and expected channels are not equal."); - - - [self.presenceExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - if (error) { - NSLog(@"error: %@", error); - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testHereNowForNilChannelWithVerbosityOccupancy { - self.presenceExpectation = [self expectationWithDescription:@"network"]; - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wnonnull" - [self.client hereNowForChannel:nil - withVerbosity:PNHereNowOccupancy - completion:^(PNPresenceChannelHereNowResult *result, PNErrorStatus *status) { - XCTAssertNotNil(status); - XCTAssertNil(result, @"Result is not nil"); - XCTAssertEqual([status category], PNBadRequestCategory, @"Should be wrong in current logic"); - XCTAssertEqual([status statusCode], 400); - XCTAssertTrue(status.isError); - [self.presenceExpectation fulfill]; - }]; - #pragma clang diagnostic pop - - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - if (error) { - NSLog(@"error: %@", error); - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testHereNowForChannelWithVerbosityState { - self.presenceExpectation = [self expectationWithDescription:@"network"]; - [self.client hereNowForChannel:self.channelName - withVerbosity:PNHereNowState - completion:^(PNPresenceChannelHereNowResult *result, PNErrorStatus *status) { - XCTAssertNil(status); - XCTAssertEqual([result operation], PNHereNowForChannelOperation, @"Wrong operation"); - XCTAssertNotNil([result data]); - XCTAssertEqual([result statusCode], 200); - - NSLog(@"actual: %@", result.data.uuids); - NSArray *expected = @[ - @{ - @"uuid" : @"d063790a-5fac-4c7b-9038-b511b61eb23d" - } - ]; - XCTAssertEqualObjects(result.data.uuids, expected, @"Result and expected channels are not equal."); - XCTAssertEqualObjects(result.data.occupancy, @1, @"Result and expected channels are not equal."); - - [self.presenceExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - if (error) { - NSLog(@"error: %@", error); - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testHereNowForNilChannelWithVerbosityState { - self.presenceExpectation = [self expectationWithDescription:@"network"]; - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wnonnull" - [self.client hereNowForChannel:nil - withVerbosity:PNHereNowState - completion:^(PNPresenceChannelHereNowResult *result, PNErrorStatus *status) { - XCTAssertNotNil(status); - XCTAssertNil(result, @"Result is not nil"); - XCTAssertEqual([status category], PNBadRequestCategory, @"Should be wrong in current logic"); - XCTAssertEqual([status statusCode], 400); - XCTAssertTrue(status.isError); - - [self.presenceExpectation fulfill]; - }]; - #pragma clang diagnostic pop - - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - if (error) { - NSLog(@"error: %@", error); - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testHereNowForChannelWithVerbosityUUID { - self.presenceExpectation = [self expectationWithDescription:@"network"]; - [self.client hereNowForChannel:self.channelName - withVerbosity:PNHereNowUUID - completion:^(PNPresenceChannelHereNowResult *result, PNErrorStatus *status) { - XCTAssertNil(status); - XCTAssertEqual([result operation], PNHereNowForChannelOperation, @"Wrong operation"); - XCTAssertNotNil([result data]); - XCTAssertEqual([result statusCode], 200); - - XCTAssertEqualObjects(result.data.uuids, @[@"d063790a-5fac-4c7b-9038-b511b61eb23d"], @"Result and expected channels are not equal."); - XCTAssertEqualObjects(result.data.occupancy, @1, @"Result and expected channels are not equal."); - - [self.presenceExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - if (error) { - NSLog(@"error: %@", error); - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testHereNowForNilChannelWithVerbosityUUID { - self.presenceExpectation = [self expectationWithDescription:@"network"]; - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wnonnull" - [self.client hereNowForChannel:nil - withVerbosity:PNHereNowUUID - completion:^(PNPresenceChannelHereNowResult *result, PNErrorStatus *status) { - XCTAssertNotNil(status); - XCTAssertNil(result, @"Result is not nil"); - XCTAssertEqual([status category], PNBadRequestCategory, @"Should be wrong in current logic"); - XCTAssertEqual([status statusCode], 400); - XCTAssertTrue(status.isError); - [self.presenceExpectation fulfill]; - }]; - #pragma clang diagnostic pop - - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - if (error) { - NSLog(@"error: %@", error); - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testWhereNowUUID { - self.presenceExpectation = [self expectationWithDescription:@"network"]; - NSString *uuid = @"d063790a-5fac-4c7b-9038-b511b61eb23d"; - [self.client whereNowUUID:uuid - withCompletion:^(PNPresenceWhereNowResult *result, PNErrorStatus *status) { - XCTAssertNil(status); - XCTAssertEqual([result operation], PNWhereNowOperation, @"Wrong operation"); - XCTAssertNotNil([result data]); - XCTAssertEqual([result statusCode], 200); - - NSArray *expectedChannels = @[@"a", @"2EC925F0-B996-47A4-AF54-A605E1A9AEBA"]; - NSLog(@"%@", result.data.channels); - - XCTAssertEqualObjects(result.data.channels, expectedChannels, @"Result and expected channels are not equal."); - - [self.presenceExpectation fulfill]; - }]; - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - if (error) { - NSLog(@"error: %@", error); - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testWhereNowNilUDID { - self.presenceExpectation = [self expectationWithDescription:@"network"]; - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wnonnull" - [self.client whereNowUUID:nil - withCompletion:^(PNPresenceWhereNowResult *result, PNErrorStatus *status) { - XCTAssertNotNil(status); - XCTAssertNil(result, @"Result is not nil"); - XCTAssertEqual([status category], PNBadRequestCategory, @"Should be wrong in current logic"); - XCTAssertEqual([status statusCode], 400); - XCTAssertTrue(status.isError); - - [self.presenceExpectation fulfill]; - }]; - #pragma clang diagnostic pop - - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - if (error) { - NSLog(@"error: %@", error); - XCTFail(@"what went wrong?"); - } - }]; -} - -@end \ No newline at end of file diff --git a/Tests/iOS Tests/Tests/PNPublishCompressedTests.m b/Tests/iOS Tests/Tests/PNPublishCompressedTests.m deleted file mode 100644 index dbc2c5d1b..000000000 --- a/Tests/iOS Tests/Tests/PNPublishCompressedTests.m +++ /dev/null @@ -1,185 +0,0 @@ -// -// PNPublishCompressedTests.m -// PubNub Tests -// -// Created by Jordan Zucker on 3/23/16. -// -// - -#import - -#import "PNBasicClientTestCase.h" - -#import "NSString+PNTest.h" - -@interface PNPublishCompressedTests : PNBasicClientTestCase - -@end - -@implementation PNPublishCompressedTests - -- (BOOL)isRecording { - - return NO; -} - -- (NSString *)publishChannelString { - return @"F16CB07C-9F3F-41AA-8A0A-313960F21AAB"; -} - -- (void)testSimplePublishCompressed { - [self performVerifiedPublish:@"test" - onChannel:[self publishChannelString] - compressed:YES withAssertions:^(PNPublishStatus *status) { - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 200); - XCTAssertFalse(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertEqualObjects(status.data.information, @"Sent"); - XCTAssertNotNil(status.data.timetoken); - }]; -} - -- (void)testSimplePublishNotCompressed { - [self performVerifiedPublish:@"test" - onChannel:[self publishChannelString] - compressed:NO - withAssertions:^(PNPublishStatus *status) { - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 200); - XCTAssertFalse(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertEqualObjects(status.data.information, @"Sent"); - XCTAssertNotNil(status.data.timetoken); - }]; -} - -- (void)testPublishNilMessageCompressed { - [self performVerifiedPublish:nil - onChannel:[self publishChannelString] - compressed:YES - withAssertions:^(PNPublishStatus *status) { - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNBadRequestCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 400); - XCTAssertTrue(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertNil(status.data.information); - XCTAssertNil(status.data.timetoken); - }]; -} - -- (void)testPublishNilMessageNotCompressed { - [self performVerifiedPublish:nil - onChannel:[self publishChannelString] - compressed:NO - withAssertions:^(PNPublishStatus *status) { - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNBadRequestCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 400); - XCTAssertTrue(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertNil(status.data.information); - XCTAssertNil(status.data.timetoken); - }]; -} - -- (void)DISABLED_testPublishDictionaryCompressed { - [self performVerifiedPublish:@{@"test" : @"test"} - onChannel:[self publishChannelString] - compressed:YES - withAssertions:^(PNPublishStatus *status) { - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 200); - XCTAssertFalse(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertEqualObjects(status.data.information, @"Sent"); - XCTAssertEqualObjects(status.data.timetoken, @15579290196609123); - }]; -} - -- (void)DISABLED_testPublishDictionaryNotCompressed { - [self performVerifiedPublish:@{@"test" : @"test"} - onChannel:[self publishChannelString] - compressed:NO - withAssertions:^(PNPublishStatus *status) { - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 200); - XCTAssertFalse(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertEqualObjects(status.data.information, @"Sent"); - XCTAssertEqualObjects(status.data.timetoken, @15579290199143275); - }]; -} - -- (void)testPublishToNilChannelCompressed { - [self performVerifiedPublish:@{@"test" : @"test"} - onChannel:nil - compressed:YES - withAssertions:^(PNPublishStatus *status) { - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNBadRequestCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 400); - XCTAssertTrue(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertNil(status.data.information); - XCTAssertNil(status.data.timetoken); - }]; -} - -- (void)testPublishToNilChanneNotCompressed { - [self performVerifiedPublish:@{@"test" : @"test"} - onChannel:nil - compressed:NO - withAssertions:^(PNPublishStatus *status) { - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNBadRequestCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 400); - XCTAssertTrue(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertNil(status.data.information); - XCTAssertNil(status.data.timetoken); - }]; -} - -#pragma mark - Main flow - -- (void)performVerifiedPublish:(id)message - onChannel:(NSString *)channel - compressed:(BOOL)compressed - withAssertions:(PNPublishCompletionBlock)verificationBlock { - XCTestExpectation *networkExpectation = [self expectationWithDescription:@"network"]; - [self.client publish:message toChannel:channel compressed:compressed - withCompletion:^(PNPublishStatus *status) { - verificationBlock(status); - [networkExpectation fulfill]; - }]; - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - if (error) { - NSLog(@"error: %@", error); - XCTFail(@"what went wrong?"); - } - }]; -} - -@end diff --git a/Tests/iOS Tests/Tests/PNPublishSizeOfMessage.m b/Tests/iOS Tests/Tests/PNPublishSizeOfMessage.m deleted file mode 100644 index 0ae0f0b91..000000000 --- a/Tests/iOS Tests/Tests/PNPublishSizeOfMessage.m +++ /dev/null @@ -1,415 +0,0 @@ -// -// PNPublishSizeOfMessage.m -// PubNub Tests -// -// Created by Jordan Zucker on 3/23/16. -// -// - -#import - -#import "PNBasicClientTestCase.h" - -#import "NSString+PNTest.h" - -@interface PNPublishSizeOfMessage : PNBasicClientTestCase -@end - -@implementation PNPublishSizeOfMessage - -- (BOOL)isRecording { - return NO; -} - -- (void)setUp { - [super setUp]; - PNConfiguration *config = [PNConfiguration configurationWithPublishKey:self.publishKey - subscribeKey:self.subscribeKey]; - config.uuid = @"322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C"; - self.client = [PubNub clientWithConfiguration:config]; -} - -- (void)tearDown { - self.client = nil; - [super tearDown]; -} - -- (void)testSizeOfMessageToChannel { - - NSString *channelName = [[NSUUID UUID] UUIDString]; - NSString *message = @"test"; - - XCTestExpectation *completionBlockExpectation = [self expectationWithDescription:@"Completion"]; - - [self.client sizeOfMessage:message - toChannel:channelName - withCompletion:^(NSInteger size) { - NSLog(@"%@", @(size)); - - XCTAssertEqualWithAccuracy(size, 494, 20, @"Size is different than expected %@ <> %@ +-20", @(size), @(494)); - - [completionBlockExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - if (error) { - NSLog(@"error: %@", error); - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testSizeOfMessageToNilChannel { - - NSString *message = @"test"; - - XCTestExpectation *completionBlockExpectation = [self expectationWithDescription:@"Completion"]; - - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wnonnull" - [self.client sizeOfMessage:message - toChannel:nil - withCompletion:^(NSInteger size) { - NSLog(@"%@", @(size)); - - XCTAssertEqual(size, -1, @"Size is different than expected %@ <> %@", @(size), @(-1)); - - [completionBlockExpectation fulfill]; - }]; - #pragma clang diagnostic pop - - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - if (error) { - NSLog(@"error: %@", error); - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testSizeOfMessageStoreInHistory { - - NSString *message = @"test"; - - XCTestExpectation *completionBlockExpectation = [self expectationWithDescription:@"Completion"]; - - #pragma clang diagnostic push - #pragma clang diagnostic ignored "-Wnonnull" - [self.client sizeOfMessage:message - toChannel:nil - storeInHistory:YES - withCompletion:^(NSInteger size) { - NSLog(@"%@", @(size)); - - XCTAssertEqual(size, -1, @"Size is different than expected %@ <> %@", @(size), @(-1)); - - [completionBlockExpectation fulfill]; - }]; - #pragma clang diagnostic pop - - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - if (error) { - NSLog(@"error: %@", error); - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testSizeOfMessageCompressed { - - NSString *channelName = [[NSUUID UUID] UUIDString]; - NSString *message = @"test"; - - XCTestExpectation *completionBlockExpectation = [self expectationWithDescription:@"Completion"]; - - [self.client sizeOfMessage:message - toChannel:channelName - compressed:YES - withCompletion:^(NSInteger size) { - NSLog(@"%@", @(size)); - - XCTAssertEqualWithAccuracy(size, 603, 20, @"Size is different than expected %@ <> %@ +/-20", @(size), @(603)); - - [completionBlockExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - if (error) { - NSLog(@"error: %@", error); - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testSizeOfMessageStoreInHistoryAndCompressed { - - NSString *channelName = [[NSUUID UUID] UUIDString]; - NSString *message = @"test"; - - XCTestExpectation *completionBlockExpectation = [self expectationWithDescription:@"Completion"]; - - [self.client sizeOfMessage:message - toChannel:channelName - compressed:YES - storeInHistory:YES - withCompletion:^(NSInteger size) { - NSLog(@"%@", @(size)); - - XCTAssertEqualWithAccuracy(size, 603, 20, @"Size is different than expected %@ <> %@ +/-20", @(size), @(603)); - - [completionBlockExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - if (error) { - NSLog(@"error: %@", error); - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testSizeOfMessageStoreInHistoryNotCompressed { - - NSString *channelName = [[NSUUID UUID] UUIDString]; - NSString *message = @"test"; - - XCTestExpectation *completionBlockExpectation = [self expectationWithDescription:@"Completion"]; - - [self.client sizeOfMessage:message - toChannel:channelName - compressed:NO - storeInHistory:YES - withCompletion:^(NSInteger size) { - NSLog(@"%@", @(size)); - - XCTAssertEqualWithAccuracy(size, 494, 20, @"Size is different than expected %@ <> %@ +/-20", @(size), @(494)); - - [completionBlockExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - if (error) { - NSLog(@"error: %@", error); - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testSizeOfMessageNotStoreInHistoryNotCompressed { - - NSString *channelName = [[NSUUID UUID] UUIDString]; - NSString *message = @"test"; - - XCTestExpectation *completionBlockExpectation = [self expectationWithDescription:@"Completion"]; - - [self.client sizeOfMessage:message - toChannel:channelName - compressed:NO - storeInHistory:YES - withCompletion:^(NSInteger size) { - NSLog(@"%@", @(size)); - - XCTAssertEqualWithAccuracy(size, 494, 20, @"Size is different than expected %@ <> %@ +/-20", @(size), @(494)); - - [completionBlockExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - if (error) { - NSLog(@"error: %@", error); - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testSizeOfMessageNotStoreInHistoryCompressed { - - NSString *channelName = [[NSUUID UUID] UUIDString]; - NSString *message = @"test"; - - XCTestExpectation *completionBlockExpectation = [self expectationWithDescription:@"Completion"]; - - [self.client sizeOfMessage:message - toChannel:channelName - compressed:YES - storeInHistory:NO - withCompletion:^(NSInteger size) { - NSLog(@"%@", @(size)); - - XCTAssertEqualWithAccuracy(size, 611, 20, @"Size is different than expected %@ <> %@ +/-20", @(size), @(611)); - - [completionBlockExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - if (error) { - NSLog(@"error: %@", error); - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testSize10kMessageStoreInHistoryCompressed { - - NSString *channelName = [[NSUUID UUID] UUIDString]; - NSString *message = [NSString randomAlphanumericStringWithLength:10000]; - - - XCTestExpectation *completionBlockExpectation = [self expectationWithDescription:@"Completion"]; - - [self.client sizeOfMessage:message - toChannel:channelName - compressed:YES - storeInHistory:YES - withCompletion:^(NSInteger size) { - NSLog(@"%@", @(size)); - - XCTAssertEqualWithAccuracy(size, 8119, 500, @"Size is different than expected %@ <> %@ +/-500", @(size), @(8119)); - - [completionBlockExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - if (error) { - NSLog(@"error: %@", error); - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testSize100kMessageStoreInHistoryCompressed { - - NSString *channelName = [[NSUUID UUID] UUIDString]; - NSString *message = [NSString randomAlphanumericStringWithLength:100000]; - - XCTestExpectation *completionBlockExpectation = [self expectationWithDescription:@"Completion"]; - - [self.client sizeOfMessage:message - toChannel:channelName - compressed:YES - storeInHistory:YES - withCompletion:^(NSInteger size) { - NSLog(@"%@", @(size)); - - XCTAssertEqualWithAccuracy(size, 75793, 5000, @"Size is different than expected %@ <> %@ +/-5000", @(size), @(75793)); - - [completionBlockExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - if (error) { - NSLog(@"error: %@", error); - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testSizeDictionaryMessageStoreInHistoryCompressed { - - NSString *channelName = [[NSUUID UUID] UUIDString]; - NSDictionary *message = @{@"1": @"3", @"2": @"3"}; - - - XCTestExpectation *completionBlockExpectation = [self expectationWithDescription:@"Completion"]; - - [self.client sizeOfMessage:message - toChannel:channelName - compressed:YES - storeInHistory:YES - withCompletion:^(NSInteger size) { - NSLog(@"%@", @(size)); - - XCTAssertEqualWithAccuracy(size, 610, 20, @"Size is different than expected %@ <> %@ +/-20", @(size), @(610)); - - [completionBlockExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - if (error) { - NSLog(@"error: %@", error); - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testSizeNestedDictionaryMessageStoreInHistoryCompressed { - - NSString *channelName = [[NSUUID UUID] UUIDString]; - NSDictionary *message = @{@"1": @{@"1": @{@"3": @"5"}}, @"2": @"3"}; - - XCTestExpectation *completionBlockExpectation = [self expectationWithDescription:@"Completion"]; - - [self.client sizeOfMessage:message - toChannel:channelName - compressed:YES - storeInHistory:YES - withCompletion:^(NSInteger size) { - NSLog(@"%@", @(size)); - - XCTAssertEqualWithAccuracy(size, 620, 20, @"Size is different than expected %@ <> %@ +/-20", @(size), @(620)); - - [completionBlockExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - if (error) { - NSLog(@"error: %@", error); - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testSizeArrayMessageStoreInHistoryCompressed { - - NSString *channelName = [[NSUUID UUID] UUIDString]; - NSArray *message = @[@"1", @"2", @"3", @"4"]; - - XCTestExpectation *completionBlockExpectation = [self expectationWithDescription:@"Completion"]; - - [self.client sizeOfMessage:message - toChannel:channelName - compressed:YES - storeInHistory:YES - withCompletion:^(NSInteger size) { - NSLog(@"%@", @(size)); - - XCTAssertEqualWithAccuracy(size, 611, 20, @"Size is different than expected %@ <> %@ +/-20", @(size), @(611)); - - [completionBlockExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - if (error) { - NSLog(@"error: %@", error); - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testSizeComplexArrayMessageStoreInHistoryCompressed { - - NSString *channelName = [[NSUUID UUID] UUIDString]; - NSArray *message = @[@"1", @{@"1": @{@"1": @"2"}}, @[@"1", @"2", @(2)], @(567)]; - - XCTestExpectation *completionBlockExpectation = [self expectationWithDescription:@"Completion"]; - - [self.client sizeOfMessage:message - toChannel:channelName - compressed:YES - storeInHistory:YES - withCompletion:^(NSInteger size) { - NSLog(@"%@", @(size)); - - XCTAssertEqualWithAccuracy(size, 626, 20, @"Size is different than expected %@ <> %@ +/-20", @(size), @(626)); - - [completionBlockExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - if (error) { - NSLog(@"error: %@", error); - XCTFail(@"what went wrong?"); - } - }]; -} - -@end diff --git a/Tests/iOS Tests/Tests/PNPublishTests.m b/Tests/iOS Tests/Tests/PNPublishTests.m deleted file mode 100644 index c5cd0d461..000000000 --- a/Tests/iOS Tests/Tests/PNPublishTests.m +++ /dev/null @@ -1,759 +0,0 @@ -// -// PNPublishTests.m -// PubNub Tests -// -// Created by Jordan Zucker on 6/15/15. -// -// - -#import - -#import "PNBasicClientTestCase.h" - -#import "NSString+PNTest.h" - -@interface PNPublishTests : PNBasicClientTestCase -@end - -@implementation PNPublishTests - -- (BOOL)isRecording{ - return NO; -} - -- (NSString *)publishTestsChannelName { - return @"2EC925F0-B996-47A4-AF54-A605E1A9AEBA"; -} - -- (void)testSimplePublish { - [self performVerifiedPublish:@"test" onChannel:[self publishTestsChannelName] - withAssertions:^(PNPublishStatus *status) { - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 200); - XCTAssertFalse(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertEqualObjects(status.data.information, @"Sent"); - XCTAssertNotNil(status.data.timetoken); - }]; -} - -- (void)testPublishNilMessage { - [self performVerifiedPublish:nil onChannel:[self publishTestsChannelName] - withAssertions:^(PNPublishStatus *status) { - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNBadRequestCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 400); - XCTAssertTrue(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertNil(status.data.information); - XCTAssertNil(status.data.timetoken); - }]; -} - -- (void)testPublishDictionary { - [self performVerifiedPublish:@{@"test" : @"test"} onChannel:[self publishTestsChannelName] - withAssertions:^(PNPublishStatus *status) { - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 200); - XCTAssertFalse(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertEqualObjects(status.data.information, @"Sent"); - XCTAssertNotNil(status.data.timetoken); - }]; -} - -- (void)testPublishToNilChannel { - [self performVerifiedPublish:@{@"test" : @"test"} onChannel:nil withAssertions:^(PNPublishStatus *status) { - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNBadRequestCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 400); - XCTAssertTrue(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertNil(status.data.information); - XCTAssertNil(status.data.timetoken); - }]; -} - -- (void)testPublishNestedDictionary { - [self performVerifiedPublish:@{@"test" : @{@"test": @"test"}} onChannel:[self publishTestsChannelName] withAssertions:^(PNPublishStatus *status) { - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 200); - XCTAssertFalse(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertEqualObjects(status.data.information, @"Sent"); - XCTAssertNotNil(status.data.timetoken); - }]; -} - -- (void)testPublishNumber { - [self performVerifiedPublish:[NSNumber numberWithFloat:700] - onChannel:[self publishTestsChannelName] - withAssertions:^(PNPublishStatus *status) { - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 200); - XCTAssertFalse(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertEqualObjects(status.data.information, @"Sent"); - XCTAssertNotNil(status.data.timetoken); - }]; -} - -- (void)testPublishArray { - [self performVerifiedPublish:@[@"1", @"2", @"3", @"4"] - onChannel:[self publishTestsChannelName] - withAssertions:^(PNPublishStatus *status) { - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 200); - XCTAssertFalse(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertEqualObjects(status.data.information, @"Sent"); - XCTAssertNotNil(status.data.timetoken); - }]; -} - -- (void)testPublishComplexArray { - [self performVerifiedPublish:@[@"1", @{@"1": @{@"1": @"2"}}, @[@"1", @"2", @(2)], @(567)] - onChannel:[self publishTestsChannelName] - withAssertions:^(PNPublishStatus *status) { - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 200); - XCTAssertFalse(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertEqualObjects(status.data.information, @"Sent"); - XCTAssertNotNil(status.data.timetoken); - }]; -} - -/* FIXME: investigate it more - - NSSet is not among our allowed object to send, according to documentation, - but it seems we missed isValidJSONObject check before we try to serialize - some object. - */ -- (void)DISABLE_testPublishSet { - [self performVerifiedPublish:[NSSet setWithObjects:@"1", @(5), @"3", nil] - onChannel:[self publishTestsChannelName] - withAssertions:^(PNPublishStatus *status) { - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 200); - XCTAssertFalse(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertEqualObjects(status.data.information, @"Sent"); - }]; -} - -- (void)DISABLED_testPublish1kCharactersString { - - // generate long string - NSString *testString = [NSString randomAlphanumericStringWithLength:1000]; - - [self performVerifiedPublish:testString - onChannel:[self publishTestsChannelName] - withAssertions:^(PNPublishStatus *status) { - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 200); - XCTAssertFalse(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertEqualObjects(status.data.information, @"Sent"); - XCTAssertEqualObjects(status.data.timetoken, @"15579311975645210"); - }]; -} - -- (void)testPublish10kCharactersString { - - // generate long string - NSString *testString = @"k0zjgpBoYtTawhFiAoYMEj9u7XcCejkGf7vSoo3oPkDox069Oxk1AoZibBrgjo59MZo8C2uuXgRsij6MrbXlOc7anrKuuSaTxD4nql6KtOQLJ14yoTyjwFJBga10mqkWwIFuihDROtfLw7C1LhmzGq4QtrDLML2zhmUyUEqAFwAcs3AbqUc51vyjmmL7eCw802wAlKCNleHsFe5QeEP9bxPFqw1lumjOUOcAoJxVG8GJT2F1QGBOQ5bPjTAdf6ZNjADFZZgZyZ9SEoG7y9ldmUBmio2ZELDMqRrEm0RQdP7GywWEGLbbbmvebsfevprwjxGyBDWP2TqOrnPK34hJ4FPHUghMbBUz2PA3gXsNr7drUlCWslk6e3dfdepBkZOz8fy5CVCsCp2QdZeuSdejPCIQEmuA4ZAaT2834XRlonuo4gmycfDXdbAXJSltWumTEEY5XjNxwk2J37ouE9fu2elHWUSZl7yBgtu40cbdguSxLyUBu4KUwGzaVCT9zygGCpgZMRsZxUOeXUcDd5UNBCVh6fIDwubdWwpVnVqko8O9DHyRwrpSEXrtRvTu2hqN6LwuHrFdPsdWmsdUTgprpWGQ7oh8QVeQRd5snDhzOUiKO0d0aP5x15ozJn6ur82onvdb1FRXPvl8Cktu5WCEuFDXuMejGNAfqbSlF7wpGtPzUJ3vdAVCw520L8Kq5Ee2fNpCM2nnUq32I4n3YYDXfSofqmEJ6LuWblXsDa8YDSy1vGkCnSRqkKT1xFs2wm46M5fyQ9Hnwhz3E6d5IdQdsCxiuIgJDuwK08LubFMaxQs0jel0Mb2UjEo4HBr3WnsTKVTarGvCwpWZCJAmElEuuVDymJg43OIKlY8PNBIDDRVMLp2h70fVEv2p6gmBMfaNvSVl4j1BagROT3WhEwMPuNlAXtJI2UhH4PYzzP2B55bemRhf5m8ZcWa4MG7noz3hNnsW5hb4taDrg5Ff3W12aHDxqyQBwlYYJNRILe4O22rlLmoL2E2tAYXc3tCJ63pbU0C9Ptm2G52ojjYiRBGvHHZVNuruv4opyTjcMG1Z7qa6totcctGvxBOVlLM0aKRVPtZQ7U1k2BUs3aLD93BchEFoXz8L8KNvubqf1DwbJ1saDY8NAgQSjQOi7WHZAiSjLavaC0QKdRyiFhOLwpWHqHGE52iuvHPiyWU7eVmkRS1dDImJLnmmMMZcmMMzRwTmUjw97EfWo8DoaBaTInfR75TH5MRjaJnk5R3ZCHj514lEmKDMCzby1P1Sxx778ygVJWqxzucI3FjqMJafBNv1UmrWfLRpRPLmZd6JMz8bZUTFvAoGtCOdVF8V5K6QVon1amgCFPg2k28ttLeEKlJllG2NI3RaPxekEgzj5iuJtXO3uxDISeDgwJT62GCkfOMOCCTEJJcN9r1ks8hEolB1v39YszPKUh3zdQjDwpR3tCpDjLqivybfq5n0t1tzqztxvFlNWq4yNJfNeQ04QXkTYS9uJWcTDMAvzaGOJtEySNVvWUvMSOgdAhTk7l5ZVkU6oUhP8P7UEhnOC8e7Z2THFBv39S4ZxsIa7LcYjeJhgtFTHzUfoWMif6nUXOhL3aO3wcHaVxJKrc9qqQDDVziKZIL6E79wKKmoCYVYEYPmLQogRlZ1zxaZ7zdF89pvwXGqP9X3fy6yYH8M7uIFucnb6vvhQ2csjh5Jzh2RyL6hQnoZ5PtJ03FWvNBbV5phLco4kw8gHgSNTqnZiAhL7nclZ4e5l9Cb67f7A1dlYLPdl4rCaPnfLGE3q00c892TIqu70cczxyWzWdMdeTex9t9Hhr81i3MUJmW47M0B5mq1yQsbXgeVmiOYsh3QYkyO6m6XQuQk2pq3grYKNe97zQylAY1abSHSrPtQKCVU2kivqGSbGMuVa56j8nBsoHxEW5wjfDmjmT0EaEpy1zVsOwxBxa7oaMzCjkuQ0yzz1dib8h5BMau6IBFA48gwjejTKzndejxHtTYGAzEGqKK86q3Y8bykBaMrbZNueWOZ5yMQkyAA9U68YxjHFoLYDARyed31NYv3S78SDa6bSE6tjU1VraPFQBukkm2ALxR2hNPQGNv5lspwm4y9Z3z1eb5X9h2EFJnM4EVdDZwtiGk2IpDgQIqmzzZwr9wbE7gMAV134Pe9k129MTddJd0VwX0bYmRmMj8wQyEpBGyPZKdp4E5IMP2ZSzWMl4XAGcAEvy7Kqb1JnV8XgHPJxMDrcTUyr5Lu7uzwp6fPzPeGd5naIpFVjHgkYjMhEMiaMICwY3NZCbuPjX3RSeXi8TlyiuJJ4cyqZOkueELFCfr1dbqEUzH7BWTwOmonC6gJDobO7smwoEtMfebhzrehKkQZJx5t0bLqleEGpAVbVgbyscfihNog5xlTx2wVJurz8ughwdwvayS25s68uTUpWoINngv35yMVKHhqJR65tqLqzjtmsMk8czAU43BmLq7n8oTtY19PBFEgvQDY4PLIkkfh9r5J3Ty74zx0wDadW7c8WQWNZNjwUO5jPMGDxKHwJdbfk9HFJk8aiBHbuGZIe0E5X4GkwlLqyXe6pHBvBET44TzdIUjackiHdhdpU85gdawSfn1hsiAOMRh8MEYqhpw8LUzVj1FAucRBFeTs8GEJxN5eULPCc3nIJfTd450qX0V4WdBzoep2HIPdvouWxnItg5T3o0fNqwyDzY6kL23qz0j4JA7EnxCqaQ8amBOOaTzIBRjIdobBratcpfWwHGkJ4y7QL7nosquLHuaiZHe6idXxQstAnTIcHRjH0uTQ6igbdLJAASZ68s8nBMP9i1XKQqbfC6YOSioTb8acNIbv175ZE5DXwx1DPdUx5VnkPuonvOqXVG9OylHTE4xDbKLNmNbKHi4gcYNKIcK5lNC1phPwTkqg9ELheVGaU4j9sMGCKLAsy0LGmQe90z8VBVYTVFLYvfZaiFa3RLwnqOpNXAKMpxaKyTf8iSjDyqzot31BAVIZVvQSuraVaXMeV7XlD7r1zerIAkas3OiPqXuUi0XXNr3e9ECSRyCzKwIA8i38EiUSaXnalcoHUYgAdSDylHrOVreGSWQyjc5oYXV0UrkYAOpR4g526x39ZdjLxijAq6jIjPwfPD6twcmbXYnIhK5tt5xQ9lUpyLWvlEbUd3IB0kQbEtneWs2GyeK5gjyLWOnqbSud7oquIpOWSWMYxmWI807f6yKdG7Mopy2GNkRxkUK1VrYjFihv0k9luMNEXT9Xgcyr6zOFJnKwMEe3R8otQP6i0ILriKVyDCaDR7M1UFaFMNxR9D6YKdygN8cXyYpzBjHfFqTpqla6qztMWM8K1It0Dl4sX3phOBqYCxQiNq8PbHTPudFLWlceY2ryBC6nOuswmg1bprF4BzPOCwcfzVFPRtubUtKET8sOy5oV4nrs5iGDoHbN3foLH8DSOzy6kKtODRsNrwvB4wImU9kCWbYvB6KK6kqvicm8wcRTz6PukHbm7GJVxIpFg31KhwdFXXdOMvV6kPLfS4R316ILwGZspWdArBxl9Cg6E2SRA2aMncA9umSPHm76pOkTzFCvuLI4XlUacpSbJ9b7VBb3B1RYCpg26hWeH7rR8ouwPftT0KZNCoYfqkZ5nJL0gOPrbpllFMUKvzB8C3MEZ4g3p1Ik1TT5lAoUBTGxlYkEj94NntXWcgXxuKJDiB038gqtfe9KopELU13zguNIBmt4zzdT1k0AZngAxYFSHILNnR8UTMOvcDyREoci2KRoJNou4PU4GNqRBhEZcBVV3DgvI9Ax0DZdT0pTs9AeKIlPE4aQyklScpiLfeNDD3wv1rdGPqzZjWoV3dmOCrqBVIHjAnEKnvBSKvkUBOZjdcybVlsk6nbhqUsZZrdpksNDSMqnHGmPWP85mPHELmBj5HJnj9FIRtxUKZsICCHaDTbeyATaHHSWqQLruUg2KNYitUbJ4dmQ020WhOBojH0Gpji6CRVvQTohafLU9GaCU5MQ2KW4vCnfcHGHDZlN9VZiUzZF40GmMmz9VY5Hd3mj8GSIIxTxtxIWZJD4Xr84qpf8MH8YCCYd9iOzYjzaiuR70vaHZFntSZpfQp7bWrDrHbSVlOVDmEMtT1nnZZ7FfNKmCFz7NYkBvMtnQIOc75tlrPYdz0ZDEDmrkR1fqfpt3UQQumdRwTH05wBk1xWW1V8itKbb9EX2wFT7b4YvMtSdSVrb9GOmr5nZwyVg3K1OtSlN8jNOPg4gC4grEJrbgA9ugU2n5VmyVOimg7rZ0sWXik8Dg0Tc9uQs1oLjQtCqfhMne1C9OLTAU0Ua1As5DRlVK56ysu6Xy200gQ1esWMZPtVcJrtoQn4fafI4w0SizNRYS6McYaRmeUxAa1v6ZgeeaT45AlXJezUK6vF6NpcBOeXROnScxEEmDEnzqUvscjuzRQUM4ylN0M9n9Tzn3bgUrn9GV2Jp384HgYpWFaNN60LuUxLzwgI272RGGCndIymMaaxnYlElbWZsG5Q59xiJiTXetSD9bKdb4aq2m4ZMa7XHqaCr9uSzL79IcaCZIBeOrDun7pzwkTOgb9BLvJHl8IeoUQCULUcmkI7o3jS1CMTy8cMgrbfXh2NfgLN7GxoKurNk5wnIDplytcVNWnBWfupIiICUEfkR2wi7f8tFuDLj4I3zenOEFpR5dumgXk5skTZ0BObsgajAhj2YbN9xyljlG5YDqsAxgfjYckeXZNFYZonId5DE8k8dpoiyCGFKvZOf2xbnlpJnsfo2wLZfZ4BxLwY2iCkYEQ9wr4Gz2ZgLqQIjOKe6YVD3GcyEi5C3oxdDHOY5EutuFVWTMGR4yEl5Z6xCS5ZjuWsACDhG9XwqBl0qeeEQbYZN2Ec06rCjxklu59g00ISj75VRnDPqxbJmeIdyAbvdd57R55R7uSsyt1xLzMGsFF1Pt1RLru1aPZoAV3twwshg5D8CaTg4pGAGGy73LNSymg8mmtjDewjDqAz5CyfVTrWRrBChfXkHk92RyqEpyDBY65hjmt8TRedl2bgVQp0yRrKUFyHiVToRTExjNNMdSJqvQ0dmfp3wLYT5rRrMpdKNQkJJehAtD7OF22dmbhhHHxjc4mVcQujyE8puKPgmhoyP8lAwxLOO8ordFQDabsCn3Ob0o0zQQi0GynNlQaebW6eSQ3vI8YZPnQjEaCxhPaeKmdR5OBaSuZ9omFG9JnDdXPRc9hn96m71UQMS6fsIXtOXtw8OF8n73APkDyaRZ5fXh0sw1H7xPPqJsHDyZuY77zNgMOD1jhoAchQEymfKisPrnPU9BcsukGF0tFQvZkXMs6eOPXUQdvwvJg7t1lMaAOtiGY6SEOIzKgB2zPPpVuVnajkQ97ZPvXV6YLPXr2E4YwhgJjukrNehzHHMfTkdXkpkrhegmeSVHpC6xMxNi99mI2Amj9ov8nt3zr9v3yxZpYQ27aVTveqgWExKuQ5rTpNkI4FKHsmnJd2f05JerDWC9rmtDe34BSXFpSNrbjNTTPwoSYAy9tInttCjVfffleVQfYCuyTeG8kfTkZNrQKmbGISmyEJpa4AJw3nwNravjdRQ8y1e1fMmTgxy2TkmWQvnYeab2CgYBUOUQxkjFYoRKmutQQtI6CctArinfKTWx8fGVyxPvU5A6sksrJuwwHnFUa4n8dpXB9d3OFp8hz9B3sdEudGQeUtHscfX5xb2s8QV32oLicDPi5IwhUXeFIkpb3ukcHpT5IsN7tbWdOAxkobOrTMGHN0eQkx7Wen7qTBmj70ndDPSr0MHR6J9XZ6EqGRlyMmM8MTefI4M0kUMUEjwLNYcAPCalXeIPSZcXzvd0Tnx3BNQP2rfiSYd6Q3MU3ivdj1GpbOVT1k1JnqGv93kcYMGMrnDDLYD542mrjfgUinQmj9CRygyXFel9fGUsjdMcIZ3b5O4cT5iWVlNW8lXfdryKnrxB57ytlnS2lj485TYsTRVCKxBjP7s13adwXVUAlX9HhrcevqfMgpitsMjVqBqechMWcxnoVsILgttjUKRLJ341tIWHBWBMeO3OmQDpOdhQ25Tim3G7Yfkfm4PSoE4Q87Emcg33uzl6yQbGzXtr0Ult8ydIXNrYXk9I7pLtyZ8UBM162KuWI261lDuMpfATJLoOJGSyg62pYF2XFu22uZC1csvpE8vjJsT0WAzbgumhN4LJwLpto1vc44gHWAOP8lURPinwBX6WwJuU2Uwibv3D7R7t52j702QFOimM9dvzQS1z5lkB0iowHw3MMIuKVhQORYDkQE3i1C4YrfoP2csni9N0CZyfh19GQG3r2yCsHNwCob2jSpXeMZrRvJ86UyVKHcfR16aAmwuGhy0nlHKMAsZemrCi3IFLGszaQGiGKAN21ulyrS0H9eNYPcjWojZCkDU27o0wRiEdyKtRcVmUuz7VwQayeylaSxsRi3JenJ0FG1evGdIri7G9hcO2pzRs48SmIZww6p51dYSb576LgmebRerK5L3ZzGjJpY1V0U0djp7htkv3QJuyWwpB5ptbnY3i0X71Z8NniFKdIqykLXKrX1jKRXSKzBCnimd973WO7FH8X6NnwNvQDOaC8jxCA3LoR5s8LgPC8wEt0QHKwSslwZB7QR4nEAHBpAjrXSNFJXzjvJ9QnIgDLGb1FhhSssonEZTpXQiOkTxVVt07t2d8WST0TahLM1ab7FQ6gYSziFxcYLB3lZwcGwmsxsweAVSw5rXYA6uDDnQVAgsiHMv010PYpmEF96RMMzsLXE5T8yUbGFdpvcztKCdupduayh3E8HByZ6bjYR0MZoZfPlYy4R7hzEjSj0MyQNE0wbyayHkNEN5psKzjkdHCbOwFPSroY4znLdDbMX7Fjt729BJwrheIVlLx9lQUBqtLuKIcjXhqFTQqgJ7hDiffGFrBwt9C9fDdm0H01CGVdBKjDkpdj8BqOByz7QbPLg8Qff1wkvT6X7GACKsLLgBcIbebfEGvZ0Dq86hDACYeynSXOsHo9Ueush2GeRgqjgtnLghdABT9EqL0sglypNpzfy09zHoBL5vCZQXIjfcJyOANKMsnIMKuxT12ToVE9ABMvsOEAEBJRhGabfONdrVMPvKmsOzRIvhHriH4bdwWo6XHx8KyiDzgmZk9l8ZAEZnpA6L3W5vcWMBwiiy1uRLLMj9wSGHv6oFemfBiGStQqOBTHiaAo2cGoTg7zwWGwIMcwn726Yusu6uAHZEJZPC34vFOZw0vWoAFhY7WKZt7Xuu45klLUk9V3uni53POXkHlHAzDJg6POUodHo6V08ckx1jnWwjPnVnpF1zLrhQwk96udZVNmMoyenlsqjVCRcoKbrJoCRVfZhWTeUh9UZzLp5abdTM91gyuc90jsesCjx55v7Mye9NLAmgtrAa2bFbxRmH4iYojLapvcmaB4omr2SxxcZeQQIU8cPX09DOOR8sSqsiMsnE5juAHcGergellGPG5D85g0dafoguvc4Ta1giIkafLCDueBsfVcwM1csHfg67ZliJ37GBsZMCMF9lYhwRvktpVQGhnTL7aODgMgxi9KGNBTaSdOAUW970SeIhUy5v9YdiFPtO6Sm6flQ4dgoia4NWjPFaVZZTFFV6oBZeg8TPNZIlWg6KijBaDQejRdrT6WnQ4ilLCI8aSw8JnD3lnGsNcDmmsKYaYeBzvVSjpGCNiY7LyEQqDW0Ez1mwU6E6DBMYiYwz7A22ElGeGdy4WCkTZAQTldkaprljgGmfH8nhBCaJD6YJg5qudF9xXDWwqFZThsAAjC31kw0OgQuGiexAmIswKxc0i6FiIcUdt2wtMM5XL3zZet4x2u5yLxBs6daX38pxm0Th1J6yEo6TAwjf2GJ8eBYLGU0wc7OtBfa9ZdX7mC8kpuUfeqUykK656HjCiqXlu0l5yqMAHCET7b1OT1DY7a8VoIVQBr1ux3kClAkUCicAThlK878w1ahiN0PZdsubxaEHyCzlOLNpTsmi6ZKbZ5H3Gwf3ww96v7SpypmF3bExJfjxpy5NbjQZX98ND3H6jM1zqbIix5Xc9S7zHVN0WieRKIkZifOhdviAXpGLGmI5WFPP8EVgmB7rntqR73HqI5vnuTDOlrExZM9wrcOpoozdP9ekO6cOL68XBWVMedPMDSft36apczcNtLiTT2GWP3Xc8ZGm1zBxHDtdJNN7VmZkC3MLCimx2MPI0K6qxB69tFbkwkNHYMnrNl5zwTLVYUMLDfR3ZCJf80Pnw673LNNNmSSLnhBbn11256931oMTjLtIxvXyitP4jCUKuqQmJdvbejlACe54S8rg9NosXitZgFL2rEWvnJkEBoFYTkArgiDNgQLQpqbJ2fyyanGIIVB8njkDjqR0iIL7Mbr6gHSHqbRDwHMZPrzSnSmMY5JiqgN1e13HMKuD1Oe0rO94mAIfvs6wPdwOO9DeaZxqrUsC3MiEpDdpls9H9XSXAnUGloEtJtbjmbCdNaCIsOAgElIIRmjorZ5Wqn3oMAlmHAKiY2CliVQ5tgeaZq6tZorNPTdK8pw92iS1ghkYBRwqF2P0lDVoHO7qq7jo4lmStA16YemApAJ3nkZnUNMWELfaY8dvM8wl3npEtR09Bz3fDlBWQxmjPaOOzRG40Jq4a6JUqZ2XOjH58ZbtpfS2QFElAayqlFFdve75tGaknz9tRfpuqL20lZmSRHGVrAZyTIHppcXdgkBnkFIqYrv1JRkyoqaolqNHv3jRrKhVojKQe5GLSZ9Y86robBj7YKJGqX5BiwjNiMajiZP0T5EmFbD38qfhSY5NwhvQ9yPhP5j99hlXTgsytgZ6lOA8bZCQ2sANPmmy8WP6OEkVXDLMJaFjvxC2AjNjjr8UWE88QGmZ1orAAtwcuLzfp9fFz8MBqW619zFmHbwN96hyEsLvvEMgT11Nd2r6tZf6jwJjJ6RIF9xcJVcvi0bfbHAPILyAv7LDrkvzPcRARJBPeyIxYs4f7ZeRnWJ5RwlMIXvWgNSQTy45UUJV0vNtpkf1f3LzrBJP8Ja1bxNfj0oXzs2qcgl1y0H5LdP6Czan1LosXlrgIc20x6kjOCKIMEnqRMlxYrwIwpqeKyqzwF6LTesvXLJoBoMjTAvEQ8AAqJDF1iKGbeT1OUJ3F3TErR3ucRyPR36dIQTraHMFmDTJAXnoDLyNJg1XYJCOiUvzxoTTAYuDEZfhMoYbaSF8MxGJipzDha3WCN3DdemYQheiIzIQ1MF8ke1IxPDPGEZRaRpDOIfaKC7zS9W2gMvaCc2JEQ7DUsQzyHijY3mk0GDqoBps8MqzDejX6mg0lIFRq6qwni6gqOloVP9ZB4sZ9kAqg7RyykVWwQnrM8TpvZOiBZ8I6RiBE8RPPSGpV8ltB2oncgpbhGJTS6sv0Kv5qp2cOuzZlHHi1WPkAMPQeHIOGgDSYm8uafFFQdVPn2JUYBh0yttuDckMkVORVk0LDGiAoNq2ODqTWLBlEtxQMqKVqOVekLXNqYPO5GKuahq91bo6ubXWAe0IcO14Cr16FclMl51PhvysvaiDuFGK0bTf8sEoa46yKYqOA0LRwmdHIFDr0VPQYeWSOH5jZG7g3G1rKJitVikb9voAvQIY7PxSwuWNtf62tnA4JbfTPuz8K528QacDMivlHtP9XLCZF8kjXbRaAofwmZxGaGY9vv1oUDocHAUrYnMr1grhxWmxCgX7XYLBVpPiD7fqIQcFH4Dk6l0Leetw3a2pNIDv5PISHC4nl5hVBGpmBATuc9prDkEEusLHqrF4FmvAlncJNe0LHq8Vmv1q0YompT40DnplFczdairLbdDuCqFhAulNzuQaHuVDGp2C5uREhm1NuD6LIUnJeCrXzxvDFmfSQcN1u0fupcVB2pvLsnl0BtEzWSUfWHtO65TVS9Afk26TbAIct0iwMZtvDa7moOqofK9r81boas0EAlPiRHqeZqfb35xlWGFp1qDflnOfASPtj8nlkm4bpJoxu2boA0uTuRev1iDIxirRtoEjYljaAdYADHqXn703wLz3"; - [self performVerifiedPublish:testString - onChannel:[self publishTestsChannelName] - withAssertions:^(PNPublishStatus *status) { - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 200); - XCTAssertFalse(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertEqualObjects(status.data.information, @"Sent"); - XCTAssertNotNil(status.data.timetoken); - }]; -} - - -- (void)testPublishStringWithSpecialSymbols { - - NSString *stringWithSpecialSymbols = @"!@#$%^&*()_+|"; - - [self performVerifiedPublish:stringWithSpecialSymbols - onChannel:[self publishTestsChannelName] - withAssertions:^(PNPublishStatus *status) { - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 200); - XCTAssertFalse(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertEqualObjects(status.data.information, @"Sent"); - XCTAssertNotNil(status.data.timetoken); - }]; -} - -#pragma mark - 4.0.2 Regression - -- (void)testPublishWithMobilePushPayload { - XCTestExpectation *networkExpectation = [self expectationWithDescription:@"network"]; - - NSDictionary *message = @{@"Hello":@"world"}; - NSDictionary *mobilePayload = @{@"apns":@{@"alert":@"Hello from PubNub"}}; - - [self.client publish:message - toChannel:[self publishTestsChannelName] - mobilePushPayload:mobilePayload - withCompletion:^(PNPublishStatus *status) { - - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 200); - XCTAssertFalse(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertEqualObjects(status.data.information, @"Sent"); - XCTAssertNotNil(status.data.timetoken); - - [networkExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - if (error) { - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testPublishWithNilMobilePushPayload { - XCTestExpectation *networkExpectation = [self expectationWithDescription:@"network"]; - - NSDictionary *message = @{@"Hello":@"world"}; - NSDictionary *mobilePayload = nil; - - [self.client publish:message - toChannel:[self publishTestsChannelName] - mobilePushPayload:mobilePayload - withCompletion:^(PNPublishStatus *status) { - - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 200); - XCTAssertFalse(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertEqualObjects(status.data.information, @"Sent"); - XCTAssertNotNil(status.data.timetoken); - - [networkExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - if (error) { - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testNilPublishWithMobilePushPayload { - XCTestExpectation *networkExpectation = [self expectationWithDescription:@"network"]; - - NSDictionary *message = nil; - NSDictionary *mobilePayload = @{@"apns":@{@"alert":@"Hello from PubNub"}}; - - [self.client publish:message - toChannel:[self publishTestsChannelName] - mobilePushPayload:mobilePayload - withCompletion:^(PNPublishStatus *status) { - - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 200); - XCTAssertFalse(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertEqualObjects(status.data.information, @"Sent"); - XCTAssertNotNil(status.data.timetoken); - - [networkExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - if (error) { - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testNilPublishWithNilMobilePushPayload { - XCTestExpectation *networkExpectation = [self expectationWithDescription:@"network"]; - - NSDictionary *message = nil; - NSDictionary *mobilePayload = nil; - - [self.client publish:message - toChannel:[self publishTestsChannelName] - mobilePushPayload:mobilePayload - withCompletion:^(PNPublishStatus *status) { - - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNBadRequestCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 400); - XCTAssertTrue(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertNil(status.data.information); - XCTAssertNil(status.data.timetoken); - - [networkExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - if (error) { - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testPublishWithMobilePushPayloadCompressed { - XCTestExpectation *networkExpectation = [self expectationWithDescription:@"network"]; - - NSDictionary *message = @{@"Hello":@"world"}; - NSDictionary *mobilePayload = @{@"apns":@{@"alert":@"Hello from PubNub"}}; - - [self.client publish:message - toChannel:[self publishTestsChannelName] - mobilePushPayload:mobilePayload - compressed:YES - withCompletion:^(PNPublishStatus *status) { - - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 200); - XCTAssertFalse(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertEqualObjects(status.data.information, @"Sent"); - XCTAssertNotNil(status.data.timetoken); - - [networkExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - if (error) { - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testPublishWithNilMobilePushPayloadCompressed { - XCTestExpectation *networkExpectation = [self expectationWithDescription:@"network"]; - - NSDictionary *message = @{@"Hello":@"world"}; - NSDictionary *mobilePayload = nil; - - [self.client publish:message - toChannel:[self publishTestsChannelName] - mobilePushPayload:mobilePayload - compressed:YES - withCompletion:^(PNPublishStatus *status) { - - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 200); - XCTAssertFalse(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertEqualObjects(status.data.information, @"Sent"); - XCTAssertNotNil(status.data.timetoken); - - [networkExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - if (error) { - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testNilPublishWithMobilePushPayloadCompressed { - XCTestExpectation *networkExpectation = [self expectationWithDescription:@"network"]; - - NSDictionary *message = nil; - NSDictionary *mobilePayload = @{@"apns":@{@"alert":@"Hello from PubNub"}}; - - [self.client publish:message - toChannel:[self publishTestsChannelName] - mobilePushPayload:mobilePayload - compressed:YES - withCompletion:^(PNPublishStatus *status) { - - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 200); - XCTAssertFalse(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertEqualObjects(status.data.information, @"Sent"); - XCTAssertNotNil(status.data.timetoken); - - [networkExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - if (error) { - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testNilPublishWithNilMobilePushPayloadCompressed { - XCTestExpectation *networkExpectation = [self expectationWithDescription:@"network"]; - - NSDictionary *message = nil; - NSDictionary *mobilePayload = nil; - - [self.client publish:message - toChannel:[self publishTestsChannelName] - mobilePushPayload:mobilePayload - compressed:YES - withCompletion:^(PNPublishStatus *status) { - - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNBadRequestCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 400); - XCTAssertTrue(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertNil(status.data.information); - XCTAssertNil(status.data.timetoken); - - [networkExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - if (error) { - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testPublishWithMobilePushPayloadStoredInHistory { - XCTestExpectation *networkExpectation = [self expectationWithDescription:@"network"]; - - NSDictionary *message = @{@"Hello":@"world"}; - NSDictionary *mobilePayload = @{@"apns":@{@"alert":@"Hello from PubNub"}}; - - [self.client publish:message - toChannel:[self publishTestsChannelName] - mobilePushPayload:mobilePayload - storeInHistory:NO - withCompletion:^(PNPublishStatus *status) { - - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 200); - XCTAssertFalse(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertEqualObjects(status.data.information, @"Sent"); - XCTAssertNotNil(status.data.timetoken); - - [networkExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - if (error) { - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testPublishWithNilMobilePushPayloadStoredInHistory { - XCTestExpectation *networkExpectation = [self expectationWithDescription:@"network"]; - - NSDictionary *message = @{@"Hello":@"world"}; - NSDictionary *mobilePayload = nil; - - [self.client publish:message - toChannel:[self publishTestsChannelName] - mobilePushPayload:mobilePayload - storeInHistory:NO - withCompletion:^(PNPublishStatus *status) { - - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 200); - XCTAssertFalse(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertEqualObjects(status.data.information, @"Sent"); - XCTAssertNotNil(status.data.timetoken); - - [networkExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - if (error) { - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testNilPublishWithMobilePushPayloadStoredInHistory { - XCTestExpectation *networkExpectation = [self expectationWithDescription:@"network"]; - - NSDictionary *message = nil; - NSDictionary *mobilePayload = @{@"apns":@{@"alert":@"Hello from PubNub"}}; - - [self.client publish:message - toChannel:[self publishTestsChannelName] - mobilePushPayload:mobilePayload - storeInHistory:NO - withCompletion:^(PNPublishStatus *status) { - - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 200); - XCTAssertFalse(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertEqualObjects(status.data.information, @"Sent"); - XCTAssertNotNil(status.data.timetoken); - - [networkExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - if (error) { - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testNilPublishWithNilMobilePushPayloadStoredInHistory { - XCTestExpectation *networkExpectation = [self expectationWithDescription:@"network"]; - - NSDictionary *message = nil; - NSDictionary *mobilePayload = nil; - - [self.client publish:message - toChannel:[self publishTestsChannelName] - mobilePushPayload:mobilePayload - storeInHistory:NO - withCompletion:^(PNPublishStatus *status) { - - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNBadRequestCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 400); - XCTAssertTrue(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertNil(status.data.information); - XCTAssertNil(status.data.timetoken); - - [networkExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - if (error) { - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testPublishWithMobilePushPayloadStoredInHistoryCompressed { - XCTestExpectation *networkExpectation = [self expectationWithDescription:@"network"]; - - NSDictionary *message = @{@"Hello":@"world"}; - NSDictionary *mobilePayload = @{@"apns":@{@"alert":@"Hello from PubNub"}}; - - [self.client publish:message - toChannel:[self publishTestsChannelName] - mobilePushPayload:mobilePayload - storeInHistory:NO - compressed:YES - withCompletion:^(PNPublishStatus *status) { - - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 200); - XCTAssertFalse(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertEqualObjects(status.data.information, @"Sent"); - XCTAssertNotNil(status.data.timetoken); - - [networkExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - if (error) { - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testPublishWithNilMobilePushPayloadStoredInHistoryCompressed { - XCTestExpectation *networkExpectation = [self expectationWithDescription:@"network"]; - - NSDictionary *message = @{@"Hello":@"world"}; - NSDictionary *mobilePayload = nil; - - [self.client publish:message - toChannel:[self publishTestsChannelName] - mobilePushPayload:mobilePayload - storeInHistory:NO - compressed:YES - withCompletion:^(PNPublishStatus *status) { - - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 200); - XCTAssertFalse(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertEqualObjects(status.data.information, @"Sent"); - XCTAssertNotNil(status.data.timetoken); - - [networkExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - if (error) { - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testNilPublishWithMobilePushPayloadStoredInHistoryCompressed { - XCTestExpectation *networkExpectation = [self expectationWithDescription:@"network"]; - - NSDictionary *message = nil; - NSDictionary *mobilePayload = @{@"apns":@{@"alert":@"Hello from PubNub"}}; - - [self.client publish:message - toChannel:[self publishTestsChannelName] - mobilePushPayload:mobilePayload - storeInHistory:NO - compressed:YES - withCompletion:^(PNPublishStatus *status) { - - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 200); - XCTAssertFalse(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertEqualObjects(status.data.information, @"Sent"); - XCTAssertNotNil(status.data.timetoken); - - [networkExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - if (error) { - XCTFail(@"what went wrong?"); - } - }]; -} - -- (void)testNilPublishWithNilMobilePushPayloadStoredInHistoryCompressed { - XCTestExpectation *networkExpectation = [self expectationWithDescription:@"network"]; - - NSDictionary *message = nil; - NSDictionary *mobilePayload = nil; - - [self.client publish:message - toChannel:[self publishTestsChannelName] - mobilePushPayload:mobilePayload - storeInHistory:NO - compressed:YES - withCompletion:^(PNPublishStatus *status) { - - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNBadRequestCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 400); - XCTAssertTrue(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertNil(status.data.information); - XCTAssertNil(status.data.timetoken); - - [networkExpectation fulfill]; - }]; - - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - if (error) { - XCTFail(@"what went wrong?"); - } - }]; -} - -#pragma mark - Main flow - -- (void)performVerifiedPublish:(id)message onChannel:(NSString *)channel withAssertions:(PNPublishCompletionBlock)verificationBlock { - XCTestExpectation *networkExpectation = [self expectationWithDescription:@"network"]; - [self.client publish:message toChannel:channel - withCompletion:^(PNPublishStatus *status) { - verificationBlock(status); - [networkExpectation fulfill]; - }]; - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - if (error) { - XCTFail(@"what went wrong?"); - } - }]; -} - -@end diff --git a/Tests/iOS Tests/Tests/PNPublishWithHistoryTests.m b/Tests/iOS Tests/Tests/PNPublishWithHistoryTests.m deleted file mode 100644 index 0918987eb..000000000 --- a/Tests/iOS Tests/Tests/PNPublishWithHistoryTests.m +++ /dev/null @@ -1,183 +0,0 @@ -// -// PNPublishWithHistoryTests.m -// PubNub Tests -// -// Created by Jordan Zucker on 3/23/16. -// -// - -#import - -#import "PNBasicClientTestCase.h" - -#import "NSString+PNTest.h" - -@interface PNPublishWithHistoryTests : PNBasicClientTestCase - -@end - -@implementation PNPublishWithHistoryTests - -- (BOOL)isRecording { - - return NO; -} - -- (NSString *)publishChannelString { - return @"9BA810C6-985D-4797-926F-CC81749CC774"; -} - -- (void)testSimplePublishWithHistory { - [self performVerifiedPublish:@"test" onChannel:[self publishChannelString] - storeInHistory:YES - withAssertions:^(PNPublishStatus *status) { - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 200); - XCTAssertFalse(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertEqualObjects(status.data.information, @"Sent"); - XCTAssertNotNil(status.data.timetoken); - }]; -} - -- (void)testSimplePublishWithoutHistory { - [self performVerifiedPublish:@"test" onChannel:[self publishChannelString] - storeInHistory:NO - withAssertions:^(PNPublishStatus *status) { - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 200); - XCTAssertFalse(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertEqualObjects(status.data.information, @"Sent"); - XCTAssertNotNil(status.data.timetoken); - }]; -} - -- (void)testPublishWithHistoryNilMessage { - [self performVerifiedPublish:nil - onChannel:[self publishChannelString] - storeInHistory:YES - withAssertions:^(PNPublishStatus *status) { - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNBadRequestCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 400); - XCTAssertTrue(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertNil(status.data.information); - XCTAssertNil(status.data.timetoken); - }]; -} - -- (void)testPublishWithoutHistoryNilMessage { - [self performVerifiedPublish:nil - onChannel:[self publishChannelString] - storeInHistory:NO - withAssertions:^(PNPublishStatus *status) { - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNBadRequestCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 400); - XCTAssertTrue(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertNil(status.data.information); - XCTAssertNil(status.data.timetoken); - }]; -} - -- (void)testPublishDictionaryWithHistory { - [self performVerifiedPublish:@{@"test" : @"test"} - onChannel:[self publishChannelString] - storeInHistory:YES - withAssertions:^(PNPublishStatus *status) { - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 200); - XCTAssertFalse(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertEqualObjects(status.data.information, @"Sent"); - XCTAssertNotNil(status.data.timetoken); - }]; -} - -- (void)testPublishDictionaryWithoutHistory { - [self performVerifiedPublish:@{@"test" : @"test"} - onChannel:[self publishChannelString] - storeInHistory:NO - withAssertions:^(PNPublishStatus *status) { - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 200); - XCTAssertFalse(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertEqualObjects(status.data.information, @"Sent"); - XCTAssertNotNil(status.data.timetoken); - }]; -} - -- (void)testPublishToNilChannelWithHistory { - [self performVerifiedPublish:@{@"test" : @"test"} - onChannel:nil - storeInHistory:YES - withAssertions:^(PNPublishStatus *status) { - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNBadRequestCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 400); - XCTAssertTrue(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertNil(status.data.information); - XCTAssertNil(status.data.timetoken); - }]; -} - -- (void)testPublishToNilChannelWithoutHistory { - [self performVerifiedPublish:@{@"test" : @"test"} - onChannel:nil - storeInHistory:NO - withAssertions:^(PNPublishStatus *status) { - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNBadRequestCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 400); - XCTAssertTrue(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertNil(status.data.information); - XCTAssertNil(status.data.timetoken); - }]; -} - -#pragma mark - Main flow - -- (void)performVerifiedPublish:(id)message - onChannel:(NSString *)channel - storeInHistory:(BOOL)storeInHistory - withAssertions:(PNPublishCompletionBlock)verificationBlock { - XCTestExpectation *networkExpectation = [self expectationWithDescription:@"network"]; - [self.client publish:message toChannel:channel storeInHistory:storeInHistory withCompletion:^(PNPublishStatus *status) { - verificationBlock(status); - [networkExpectation fulfill]; - }]; - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - if (error) { - NSLog(@"error: %@", error); - XCTFail(@"what went wrong?"); - } - }]; -} - -@end diff --git a/Tests/iOS Tests/Tests/PNPublishWithMobilePayloadTests.m b/Tests/iOS Tests/Tests/PNPublishWithMobilePayloadTests.m deleted file mode 100644 index 5048c4374..000000000 --- a/Tests/iOS Tests/Tests/PNPublishWithMobilePayloadTests.m +++ /dev/null @@ -1,176 +0,0 @@ -// -// PNPublishWithMobilePayloadTests.m -// PubNub Tests -// -// Created by Jordan Zucker on 3/23/16. -// -// - -#import - -#import "PNBasicClientTestCase.h" - -#import "NSString+PNTest.h" - -@interface PNPublishWithMobilePayloadTests : PNBasicClientTestCase - -@end - -@implementation PNPublishWithMobilePayloadTests - -- (BOOL)isRecording { - - return NO; -} - -- (NSString *)publishChannelName { - return @"02290046-2F36-43DD-97F0-2F51D925451A"; -} - -- (void)testSimplePublishSimpleMobilePushPayload { - - NSDictionary *payload = @{@"aps" : - @{@"alert" : @"You got your emails.@", - @"badge" : @(9), - @"sound" : @"bingbong.aiff"}, - @"acme 1" : @(42)}; - - [self performVerifiedPublish:@"test" - onChannel:[self publishChannelName] - mobilePushPayload:payload - storeInHistory:YES - compressed:YES - withAssertions:^(PNPublishStatus *status) { - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 200); - XCTAssertFalse(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertEqualObjects(status.data.information, @"Sent"); - XCTAssertNotNil(status.data.timetoken); - }]; -} - -- (void)testSimplePublishNilMobilePushPayload { - [self performVerifiedPublish:@"test" - onChannel:[self publishChannelName] - mobilePushPayload:nil - storeInHistory:YES - compressed:YES - withAssertions:^(PNPublishStatus *status) { - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 200); - XCTAssertFalse(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertEqualObjects(status.data.information, @"Sent"); - XCTAssertNotNil(status.data.timetoken); - }]; -} - -- (void)testPublishMobilePayloadNotStoreInHistory { - - NSDictionary *payload = @{@"aps" : - @{@"alert" : @"You got your emails.@", - @"badge" : @(9), - @"sound" : @"bingbong.aiff"}, - @"acme 1" : @(42)}; - - [self performVerifiedPublish:@"test" - onChannel:[self publishChannelName] - mobilePushPayload:payload - storeInHistory:NO - compressed:YES - withAssertions:^(PNPublishStatus *status) { - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 200); - XCTAssertFalse(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertEqualObjects(status.data.information, @"Sent"); - XCTAssertNotNil(status.data.timetoken); - }]; -} - -- (void)testPublishMobilePayloadNotStoreInHistoryNotCompressed { - - NSDictionary *payload = @{@"aps" : - @{@"alert" : @"You got your emails.@", - @"badge" : @(9), - @"sound" : @"bingbong.aiff"}, - @"acme 1" : @(42)}; - - [self performVerifiedPublish:@"test" - onChannel:[self publishChannelName] - mobilePushPayload:payload - storeInHistory:NO - compressed:NO - withAssertions:^(PNPublishStatus *status) { - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 200); - XCTAssertFalse(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - XCTAssertEqualObjects(status.data.information, @"Sent"); - }]; -} - -- (void)testPublishMobilePayloadToNillChannnel { - - NSDictionary *payload = @{@"aps" : - @{@"alert" : @"You got your emails", - @"badge" : @(9), - @"sound" : @"bingbong.aiff"}, - @"acme 1" : @(42)}; - - [self performVerifiedPublish:@"test" - onChannel:nil - mobilePushPayload:payload - storeInHistory:NO - compressed:NO - withAssertions:^(PNPublishStatus *status) { - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNBadRequestCategory); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.statusCode, 400); - XCTAssertTrue(status.isError); - NSLog(@"status.data.information: %@", status.data.information); - NSLog(@"status.data.timeToken: %@", status.data.timetoken); - }]; -} - -#pragma mark - Main flow - -- (void)performVerifiedPublish:(id)message - onChannel:(NSString *)channel - mobilePushPayload:(NSDictionary *)payload - storeInHistory:(BOOL)storeInHistory - compressed:(BOOL)compressed - withAssertions:(PNPublishCompletionBlock)verificationBlock { - XCTestExpectation *networkExpectation = [self expectationWithDescription:@"network"]; - [self.client publish:message - toChannel:channel - mobilePushPayload:payload - storeInHistory:storeInHistory - compressed:compressed - withCompletion:^(PNPublishStatus *status) { - verificationBlock(status); - [networkExpectation fulfill]; - }]; - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - if (error) { - NSLog(@"error: %@", error); - XCTFail(@"what went wrong?"); - } - }]; -} - -@end diff --git a/Tests/iOS Tests/Tests/PNSubscribeTests.m b/Tests/iOS Tests/Tests/PNSubscribeTests.m deleted file mode 100644 index ded7bd611..000000000 --- a/Tests/iOS Tests/Tests/PNSubscribeTests.m +++ /dev/null @@ -1,368 +0,0 @@ -// -// PNSubscribeTests.m -// PubNub Tests -// -// Created by Jordan Zucker on 6/16/15. -// -// - -#import -#import - -#import "PNBasicSubscribeTestCase.h" - -@interface PNSubscribeTests : PNBasicSubscribeTestCase - -@property (nonatomic, assign) NSUInteger expectedMessagesCount; -@property (nonatomic, assign) NSUInteger messageNumberToUseTimeToken; -@property (nonatomic) NSNumber *catchUpTimeToken; -@property (nonatomic) NSArray *receivedMessages; - -@end - -@implementation PNSubscribeTests - -- (BOOL)isRecording { - return NO; -} - -- (void)setUp { - [super setUp]; - - if ([NSStringFromSelector(self.invocation.selector) isEqualToString:@"testSimpleSubscribeWithTimeToken"]) { - - [self setupForSubscribeWithTimeToken]; - } -} - -- (void)setupForSubscribeWithTimeToken { - - PNWeakify(self); - NSMutableArray *receivedMessages = [NSMutableArray new]; - _expectedMessagesCount = 5; - _messageNumberToUseTimeToken = 4; - __block NSUInteger receivedMessagesCount = 0; - XCTestExpectation *fillExpecation = [self expectationWithDescription:@"channelFill"]; - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - - PNStrongify(self); - XCTAssertEqualObjects(self.client, client); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.operation, PNSubscribeOperation); - XCTAssertEqual(status.category, PNConnectedCategory); - - // Filling up target channel first. - [self publish:@"Time token message #%@" count:self->_expectedMessagesCount - toChannel:client.channels.lastObject withCompletion:^{ - PNStrongify(self); - [self.publishExpectation fulfill]; - self.publishExpectation = nil; - }]; - [self.subscribeExpectation fulfill]; - self.subscribeExpectation = nil; - }; - self.didReceiveMessageAssertions = ^void (PubNub *client, PNMessageResult *message) { - - PNStrongify(self); - receivedMessagesCount++; - [receivedMessages addObject:message.data.message]; - if (receivedMessagesCount == self->_messageNumberToUseTimeToken) { - - self->_catchUpTimeToken = message.data.timetoken; - } - if (receivedMessagesCount == self->_expectedMessagesCount) { - - self->_receivedMessages = [receivedMessages copy]; - [fillExpecation fulfill]; - } - }; - self.publishExpectation = [self expectationWithDescription:@"publish"]; - [self PNTest_subscribeToChannels:[self subscriptionChannels] withPresence:NO]; -} - -- (NSArray *)subscriptionChannels { - - NSArray *channels = @[@"a"]; - NSString *caseSelector = NSStringFromSelector(self.invocation.selector); - if ([caseSelector isEqualToString:@"testSimpleSubscribeWithTimeToken"]) { - - channels = @[@"322A70B3-F0EA-48CD-9BB0-D3F0F5DE996C"]; - } - else if ([caseSelector isEqualToString:@"testTimeTokenResetBetweenSubscriptionsWithUnsubscribe"] || - [caseSelector isEqualToString:@"testTimeTokenResetBetweenSubscriptionsWithUnsubscribeAll"]){ - - channels = @[@"5ABCEBF2-A887-491E-9D8C-52957BEDBCCA", - @"343D8550-B5E3-48A5-9564-3220EA50A500"]; - } - - return channels; -} - -/** - @brief Publish specified number of message to the channel and report with completion block when it - done. - - @param messageFormatString Template for message which will be published and will use - \c messagesCount value to identify message for future purposes. - @param messagesCount How many messages should be sent to specified channel. - @param channel Name of the channel to which messages should be sent. - @param block Reference on block which should be called at the end of message publish - process. - */ -- (void)publish:(NSString *)messageFormatString count:(NSUInteger)messagesCount - toChannel:(NSString *)channel withCompletion:(dispatch_block_t)block { - - __block NSUInteger messageIdx = 1; - __block __weak dispatch_block_t weakMessagePublishBlock; - dispatch_block_t messagePublishBlock; - weakMessagePublishBlock = messagePublishBlock = ^{ - - if (messageIdx <= messagesCount) { - - dispatch_block_t strongMessagePublishBlock = weakMessagePublishBlock; - [self.client publish:[NSString stringWithFormat:messageFormatString, @(messageIdx)] - toChannel:channel withCompletion:^(PNPublishStatus *status) { - - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.operation, PNPublishOperation); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - - messageIdx++; - strongMessagePublishBlock(); - }]; - } - else if (block) { - - block(); - } - }; - messagePublishBlock(); -} - -- (void)tearDown { - PNWeakify(self); - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - XCTAssertEqualObjects(self.client, client); - XCTAssertNotNil(status); - if (status.operation == PNSubscribeOperation) { - return; - } - XCTAssertFalse(status.isError); - // XCTAssertEqual(status.operation, PNUnsubscribeOperation); - // XCTAssertEqual(status.category, PNDisconnectedCategory); - // XCTAssertEqual(status.subscribedChannels.count, 0); - XCTAssertEqual(status.subscribedChannelGroups.count, 0); - XCTAssertEqual(status.operation, PNUnsubscribeOperation); - NSLog(@"timeToken: %@", status.currentTimetoken); - // XCTAssertEqualObjects(status.currentTimetoken, @14355626738514132); - // XCTAssertEqualObjects(status.currentTimetoken, status.data.timetoken); - [self.unsubscribeExpectation fulfill]; - - }; - [self PNTest_unsubscribeFromChannels:[self subscriptionChannels] withPresence:YES]; - [super tearDown]; -} - -- (void)testSimpleSubscribeWithPresence { - PNWeakify(self); - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - XCTAssertEqualObjects(self.client, client); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.category, PNConnectedCategory); - XCTAssertEqual(status.subscribedChannelGroups.count, 0); - NSArray *expectedPresenceSubscriptions = @[@"a", @"a-pnpres"]; - XCTAssertEqualObjects([NSSet setWithArray:status.subscribedChannels], - [NSSet setWithArray:expectedPresenceSubscriptions]); - XCTAssertEqual(status.operation, PNSubscribeOperation); - NSLog(@"timeToken: %@", status.currentTimetoken); - XCTAssertEqualObjects(status.currentTimetoken, @14583348397168033); - XCTAssertEqualObjects(status.currentTimetoken, status.data.timetoken); - - }; - self.didReceiveMessageAssertions = ^void (PubNub *client, PNMessageResult *message) { - PNStrongify(self); - XCTAssertEqualObjects(self.client, client); - XCTAssertEqualObjects(client.uuid, message.uuid); - XCTAssertNotNil(message.uuid); - XCTAssertNil(message.authKey); - XCTAssertEqual(message.statusCode, 200); - XCTAssertTrue(message.TLSEnabled); - XCTAssertEqual(message.operation, PNSubscribeOperation); - NSLog(@"message:"); - NSLog(@"%@", message.data.message); - XCTAssertEqualObjects(message.data.channel, @"a"); - XCTAssertEqualObjects(message.data.message, @"****........... 2757 - 2016-03-18 14:00:40"); - [self.subscribeExpectation fulfill]; - self.subscribeExpectation = nil; - }; - [self PNTest_subscribeToChannels:[self subscriptionChannels] withPresence:YES]; -} - -- (void)testSimpleSubscribeWithNoPresence { - PNWeakify(self); - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - XCTAssertEqualObjects(self.client, client); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.category, PNConnectedCategory); - XCTAssertEqual(status.subscribedChannelGroups.count, 0); - NSArray *expectedPresenceSubscriptions = @[@"a"]; - XCTAssertEqualObjects([NSSet setWithArray:status.subscribedChannels], - [NSSet setWithArray:expectedPresenceSubscriptions]); - XCTAssertEqual(status.operation, PNSubscribeOperation); - NSLog(@"timeToken: %@", status.currentTimetoken); - XCTAssertEqualObjects(status.currentTimetoken, @14583366093141058); - XCTAssertEqualObjects(status.currentTimetoken, status.data.timetoken); - - }; - self.didReceiveMessageAssertions = ^void (PubNub *client, PNMessageResult *message) { - PNStrongify(self); - XCTAssertEqualObjects(self.client, client); - XCTAssertEqualObjects(client.uuid, message.uuid); - XCTAssertNotNil(message.uuid); - XCTAssertNil(message.authKey); - XCTAssertEqual(message.statusCode, 200); - XCTAssertTrue(message.TLSEnabled); - XCTAssertEqual(message.operation, PNSubscribeOperation); - NSLog(@"message:"); - NSLog(@"%@", message.data.message); - XCTAssertEqualObjects(message.data.channel, @"a"); - XCTAssertEqualObjects(message.data.message, @"**............. 4255 - 2016-03-18 14:30:10"); - [self.subscribeExpectation fulfill]; - }; - [self PNTest_subscribeToChannels:[self subscriptionChannels] withPresence:NO]; -} - -- (void)testSimpleSubscribeWithTimeToken { - - PNWeakify(self); - NSMutableArray *receivedMessages = [NSMutableArray new]; - __block NSUInteger receivedMessagesCount = 0; - NSUInteger expectedMessagesCount = (self.expectedMessagesCount - (self.messageNumberToUseTimeToken - 1)); - __block XCTestExpectation *catchUpExpecation = [self expectationWithDescription:@"channelCatchUp"]; - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - - PNStrongify(self); - XCTAssertEqualObjects(self.client, client); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.statusCode, 200); - XCTAssertEqual(status.operation, PNSubscribeOperation); - XCTAssertEqual(status.category, PNConnectedCategory); - XCTAssertEqualObjects(status.currentTimetoken, self.catchUpTimeToken); - XCTAssertEqual(status.subscribedChannelGroups.count, 0); - XCTAssertEqualObjects([NSSet setWithArray:status.subscribedChannels], - [NSSet setWithArray:[self subscriptionChannels]]); - [self.subscribeExpectation fulfill]; - self.subscribeExpectation = nil; - }; - self.didReceiveMessageAssertions = ^void (PubNub *client, PNMessageResult *message) { - - PNStrongify(self); - receivedMessagesCount++; - [receivedMessages addObject:message.data.message]; - if (receivedMessagesCount == expectedMessagesCount) { - - NSRange messagesSubArrayRange = NSMakeRange(self.receivedMessages.count - receivedMessagesCount, - expectedMessagesCount); - NSArray *messagesSubArray = [self.receivedMessages subarrayWithRange:messagesSubArrayRange]; - XCTAssertEqualObjects([NSSet setWithArray:messagesSubArray], - [NSSet setWithArray:receivedMessages]); - [catchUpExpecation fulfill]; - } - }; - [self PNTest_subscribeToChannels:[self subscriptionChannels] withPresence:NO - usingTimeToken:self.catchUpTimeToken]; -} - -/** - @brief Make sure what used token will be reset in scenario: - subscribed - unsuubscribed - subscribed. - @discussion When client unsubscribed from all channels, time token should be reset to \b 0 to - prevent unwanted catch up. - */ -- (void)testTimeTokenResetBetweenSubscriptionsWithUnsubscribe { - - [self performTimeTokenResetBetweenSubscriptionsUsingUnsubscribeAll:NO]; -} - -- (void)testTimeTokenResetBetweenSubscriptionsWithUnsubscribeAll { - - [self performTimeTokenResetBetweenSubscriptionsUsingUnsubscribeAll:YES]; -} - -- (void)performTimeTokenResetBetweenSubscriptionsUsingUnsubscribeAll:(BOOL)useUnsubscribeAllSelector { - - PNWeakify(self); - __block NSNumber *lastTimeToken = nil; - __block PNOperationType expectedOperation = PNSubscribeOperation; - __block PNStatusCategory expectedCategory = PNConnectedCategory; - __block BOOL shouldUnsubscribe = YES; - __block BOOL shouldSubscribe = NO; - XCTestExpectation *finalSubscribeExpecation = [self expectationWithDescription:@"verificationSubscribe"]; - XCTestExpectation *unsubscribeExpectation = [self expectationWithDescription:@"unsubscribe"]; - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - - PNStrongify(self); - BOOL isVerificationSubscribe = (!shouldUnsubscribe && !shouldSubscribe); - XCTAssertEqualObjects(self.client, client); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.statusCode, 200); - - // Check whether this is initial subscription or not. - if(lastTimeToken == nil) { lastTimeToken = status.currentTimetoken; } - - XCTAssertEqual(status.operation, expectedOperation); - XCTAssertEqual(status.category, expectedCategory); - if (expectedOperation == PNSubscribeOperation) { - - XCTAssertEqual(status.subscribedChannelGroups.count, 0); - XCTAssertEqualObjects([NSSet setWithArray:status.subscribedChannels], - [NSSet setWithArray:[self subscriptionChannels]]); - if (!isVerificationSubscribe) { [self.subscribeExpectation fulfill]; } - else { - - XCTAssertEqualObjects(status.lastTimeToken, @0); - XCTAssertEqualObjects(status.currentTimetoken, status.data.timetoken); - XCTAssertNotEqualObjects(status.currentTimetoken, lastTimeToken); - [finalSubscribeExpecation fulfill]; - } - } - else { - - XCTAssertEqual(status.subscribedChannelGroups.count, 0); - XCTAssertEqual(status.subscribedChannels.count, 0); - [unsubscribeExpectation fulfill]; - } - - if (shouldUnsubscribe) { - - shouldUnsubscribe = NO; - shouldSubscribe = YES; - expectedOperation = PNUnsubscribeOperation; - expectedCategory = PNDisconnectedCategory; - if (useUnsubscribeAllSelector) { [self.client unsubscribeFromAll]; } - else { - - [self.client unsubscribeFromChannels:[self subscriptionChannels] withPresence:NO]; - } - } - else if (shouldSubscribe) { - - shouldSubscribe = NO; - expectedOperation = PNSubscribeOperation; - expectedCategory = PNConnectedCategory; - [self.client subscribeToChannels:[self subscriptionChannels] withPresence:NO]; - } - }; - [self PNTest_subscribeToChannels:[self subscriptionChannels] withPresence:NO]; -} - -@end \ No newline at end of file diff --git a/Tests/iOS Tests/Tests/PNSubscribeToPresenceChannelsTests.m b/Tests/iOS Tests/Tests/PNSubscribeToPresenceChannelsTests.m deleted file mode 100644 index 7834f7c7e..000000000 --- a/Tests/iOS Tests/Tests/PNSubscribeToPresenceChannelsTests.m +++ /dev/null @@ -1,72 +0,0 @@ -// -// PNSubscribeToPresenceChannelsTests.m -// PubNub Tests -// -// Created by Jordan Zucker on 6/30/15. -// -// - -#import - -#import "PNBasicSubscribeTestCase.h" - -@interface PNSubscribeToPresenceChannelsTests : PNBasicSubscribeTestCase - -@end - -@implementation PNSubscribeToPresenceChannelsTests - -- (BOOL)isRecording{ - return NO; -} - -- (NSArray *)subscriptionChannels { - return @[ - @"a" - ]; -} - -- (void)tearDown { - PNWeakify(self); - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - XCTAssertEqualObjects(self.client, client); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - // XCTAssertEqual(status.operation, PNUnsubscribeOperation); - // XCTAssertEqual(status.category, PNDisconnectedCategory); - // XCTAssertEqual(status.subscribedChannels.count, 0); - XCTAssertEqual(status.subscribedChannelGroups.count, 0); - XCTAssertEqual(status.operation, PNUnsubscribeOperation); - NSLog(@"timeToken: %@", status.currentTimetoken); - // XCTAssertEqualObjects(status.currentTimetoken, @14355626738514132); - // XCTAssertEqualObjects(status.currentTimetoken, status.data.timetoken); - [self.unsubscribeExpectation fulfill]; - - }; - [self PNTest_unsubscribeFromChannels:[self subscriptionChannels] withPresence:YES]; - [super tearDown]; -} - -- (void)testSimpleSubscribeToPresenceChannels { - PNWeakify(self); - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - XCTAssertEqualObjects(self.client, client); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.category, PNConnectedCategory); - XCTAssertEqual(status.subscribedChannelGroups.count, 0); - NSArray *expectedPresenceSubscriptions = @[@"a-pnpres"]; - XCTAssertEqualObjects([NSSet setWithArray:status.subscribedChannels], - [NSSet setWithArray:expectedPresenceSubscriptions]); - XCTAssertEqual(status.operation, PNSubscribeOperation); - NSLog(@"timeToken: %@", status.currentTimetoken); - XCTAssertEqualObjects(status.currentTimetoken, @14508182981759319); - XCTAssertEqualObjects(status.currentTimetoken, status.data.timetoken); - [self.subscribeExpectation fulfill]; - }; - [self PNTest_subscribeToPresenceChannels:[self subscriptionChannels]]; -} - -@end \ No newline at end of file diff --git a/Tests/iOS Tests/Tests/PNTimeTokenTests.m b/Tests/iOS Tests/Tests/PNTimeTokenTests.m deleted file mode 100644 index cdaa2727b..000000000 --- a/Tests/iOS Tests/Tests/PNTimeTokenTests.m +++ /dev/null @@ -1,38 +0,0 @@ -// -// PNTimeTokenTests.m -// PubNub Tests -// -// Created by Jordan Zucker on 6/28/15. -// -// - -#import - -#import "PNBasicSubscribeTestCase.h" - -@interface PNTimeTokenTests : PNBasicSubscribeTestCase - -@end - -@implementation PNTimeTokenTests - -- (BOOL)isRecording{ - return NO; -} - -- (void)testTimeToken { - XCTestExpectation *timeTokenExpectation = [self expectationWithDescription:@"timeToken"]; - [self.client timeWithCompletion:^(PNTimeResult *result, PNErrorStatus *status) { - XCTAssertNil(status.errorData.information); - XCTAssertNotNil(result); - XCTAssertEqual(result.operation, PNTimeOperation); - XCTAssertEqual(result.statusCode, 200); - XCTAssertEqualObjects(result.data.timetoken, @15579918206106789); - [timeTokenExpectation fulfill]; - }]; - [self waitForExpectationsWithTimeout:5 handler:^(NSError *error) { - XCTAssertNil(error); - }]; -} - -@end diff --git a/Tests/iOS Tests/Tests/PNUnsubscribeTests.m b/Tests/iOS Tests/Tests/PNUnsubscribeTests.m deleted file mode 100644 index f943b9d6f..000000000 --- a/Tests/iOS Tests/Tests/PNUnsubscribeTests.m +++ /dev/null @@ -1,190 +0,0 @@ -// -// PNUnsubscribeTests.m -// PubNub Tests -// -// Created by Jordan Zucker on 6/16/15. -// -// - -#import - -#import "PNBasicSubscribeTestCase.h" - -@interface PNUnsubscribeTests : PNBasicSubscribeTestCase - -/** - @brief Setup test environment for test which perform regular unsubscription test. - */ -- (void)setupForUnsubscriptionFromChannelsTest; - -/** - @brief Setup test environment for test which perform unsubscription from all channels and groups. - */ -- (void)setupForUnsubscriptionFromAllTest; - -/** - @brief Setup channel group for one of tests. - */ -- (void)setupChannelGroup; - -@end - - -@implementation PNUnsubscribeTests - -- (BOOL)isRecording{ - return NO; -} - -- (void)setUp { - [super setUp]; - - if ([NSStringFromSelector(self.invocation.selector) isEqualToString:@"testUnsubscribeWithPresence"]) { - - [self setupForUnsubscriptionFromChannelsTest]; - } - else { [self setupForUnsubscriptionFromAllTest]; } -} - -- (void)setupForUnsubscriptionFromChannelsTest { - - PNWeakify(self); - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - XCTAssertEqualObjects(self.client, client); - XCTAssertNotNil(status); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.category, PNConnectedCategory); - NSArray *expectedPresenceSubscriptions = @[@"a", @"a-pnpres"]; - XCTAssertEqualObjects([NSSet setWithArray:status.subscribedChannels], - [NSSet setWithArray:expectedPresenceSubscriptions]); - XCTAssertEqual(status.operation, PNSubscribeOperation); - NSLog(@"timeToken: %@", status.currentTimetoken); - XCTAssertEqualObjects(status.currentTimetoken, @14583348449858475); - XCTAssertEqualObjects(status.currentTimetoken, status.data.timetoken); - - }; - self.didReceiveMessageAssertions = ^void (PubNub *client, PNMessageResult *message) { - PNStrongify(self); - XCTAssertEqualObjects(self.client, client); - XCTAssertEqualObjects(client.uuid, message.uuid); - XCTAssertNotNil(message.uuid); - XCTAssertNil(message.authKey); - XCTAssertEqual(message.statusCode, 200); - XCTAssertTrue(message.TLSEnabled); - XCTAssertEqual(message.operation, PNSubscribeOperation); - NSLog(@"message:"); - NSLog(@"%@", message.data.message); - XCTAssertNotNil(message.data.channel); - XCTAssertEqualObjects(message.data.subscription, @"a"); - XCTAssertEqualObjects(message.data.message, @"*********...... 2762 - 2016-03-18 14:00:45"); - [self.subscribeExpectation fulfill]; - }; - [self PNTest_subscribeToChannels:@[@"a"] withPresence:YES]; -} - -- (void)setupForUnsubscriptionFromAllTest { - - [self setupChannelGroup]; - PNWeakify(self); - self.subscribeExpectation = [self expectationWithDescription:@"subscribe"]; - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - XCTAssertNotNil(status); - XCTAssertEqualObjects(self.client, client); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.category, PNConnectedCategory); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.statusCode, 200); - XCTAssertEqual(status.operation, PNSubscribeOperation); - NSArray *expectedChannels = @[@"unsubscribe-channel-test", @"unsubscribe-channel-test-pnpres"]; - NSArray *expectedGroups = @[@"unsubscribe-group-test", @"unsubscribe-group-test-pnpres"]; - XCTAssertEqualObjects([NSSet setWithArray:status.subscribedChannels], - [NSSet setWithArray:expectedChannels]); - XCTAssertEqualObjects([NSSet setWithArray:status.subscribedChannelGroups], - [NSSet setWithArray:expectedGroups]); - NSLog(@"timeToken: %@", status.currentTimetoken); - XCTAssertEqualObjects(status.currentTimetoken, @14583348450473797); - XCTAssertEqualObjects(status.currentTimetoken, status.data.timetoken); - [self.subscribeExpectation fulfill]; - }; - [self.client subscribeToChannels:@[@"unsubscribe-channel-test"] withPresence:YES]; - [self.client subscribeToChannelGroups:@[@"unsubscribe-group-test"] withPresence:YES]; - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - XCTAssertNil(error); - }]; -} - -- (void)setupChannelGroup { - - PNWeakify(self); - XCTestExpectation *channelGroupExpecation = [self expectationWithDescription:@"addChannelsToGroup"]; - [self.client addChannels:@[@"test-channel"] toGroup:@"unsubscribe-group-test" - withCompletion:^(PNAcknowledgmentStatus *status) { - - PNStrongify(self); - XCTAssertNotNil(status); - XCTAssertEqual(status.category, PNAcknowledgmentCategory); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.statusCode, 200); - XCTAssertEqual(status.operation, PNAddChannelsToGroupOperation); - [channelGroupExpecation fulfill]; - }]; - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - XCTAssertNil(error); - }]; -} - -- (void)testUnsubscribeWithPresence { - PNWeakify(self); - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - PNStrongify(self); - XCTAssertNotNil(client); - XCTAssertNotNil(status); - XCTAssertEqualObjects(self.client, client); - if ( - !( - (status.category == PNDisconnectedCategory) || - (status.category == PNCancelledCategory) - ) - ) { - return; - } - XCTAssertEqual(status.category, PNDisconnectedCategory); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.statusCode, 200); - XCTAssertEqual(status.operation, PNUnsubscribeOperation); - NSLog(@"category: %@", status.stringifiedCategory); - NSLog(@"operation: %@", status.stringifiedOperation); - [self.unsubscribeExpectation fulfill]; - }; - [self PNTest_unsubscribeFromChannels:@[@"a"] withPresence:YES]; -} - -- (void)testUnsubscribeFromAll { - - PNWeakify(self); - self.unsubscribeExpectation = [self expectationWithDescription:@"unsubscribe"]; - self.didReceiveStatusAssertions = ^void (PubNub *client, PNSubscribeStatus *status) { - - PNStrongify(self); - XCTAssertNotNil(client); - XCTAssertNotNil(status); - XCTAssertEqualObjects(self.client, client); - XCTAssertEqual(status.category, PNDisconnectedCategory); - XCTAssertFalse(status.isError); - XCTAssertEqual(status.statusCode, 200); - XCTAssertEqual(status.operation, PNUnsubscribeOperation); - XCTAssertEqual(status.subscribedChannels.count, 0, - @"There should be no channels after complete unsubscribe"); - XCTAssertEqual(status.subscribedChannelGroups.count, 0, - @"There should be no channel groups after complete unsubscribe"); - [self.unsubscribeExpectation fulfill]; - }; - [self.client unsubscribeFromAll]; - [self waitForExpectationsWithTimeout:10 handler:^(NSError *error) { - XCTAssertNil(error); - }]; -} - -@end \ No newline at end of file diff --git a/Tests/iOS Tests/watchOS ObjC Tests-Info.plist b/Tests/iOS Tests/watchOS ObjC Tests-Info.plist deleted file mode 100644 index 9e5461dca..000000000 --- a/Tests/iOS Tests/watchOS ObjC Tests-Info.plist +++ /dev/null @@ -1,29 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - $(EXECUTABLE_NAME) - CFBundleIdentifier - $(PRODUCT_BUNDLE_IDENTIFIER) - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - $(PRODUCT_NAME) - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - NSAppTransportSecurity - - NSAllowsArbitraryLoads - - - - diff --git a/VERSION b/VERSION index 815588ef1..813b83b65 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -4.12.0 +4.13.0 diff --git a/codecov.yml b/codecov.yml new file mode 100644 index 000000000..d53731901 --- /dev/null +++ b/codecov.yml @@ -0,0 +1,6 @@ +codecov: + require_ci_to_pass: yes + +ignore: + - "Pods" + - "Tests" \ No newline at end of file diff --git a/fastlane/.env b/fastlane/.env deleted file mode 100644 index ba8a6cff9..000000000 --- a/fastlane/.env +++ /dev/null @@ -1,15 +0,0 @@ -PN_TEST_IOS_SCHEME="iOS Tests" -PN_TEST_TVOS_SCHEME="tvOS Tests" -PN_TEST_MACOS_SCHEME="OSX Tests" - -# Uncomment if list of tested devices should be increased. -#PN_TEST_IOS_DEVICES_32BIT="iPhone 4s,iPhone 5,iPad 2,iPad Retina,iPad Pro" -#PN_TEST_IOS_DEVICES_64BIT="iPhone 5s,iPhone SE,iPhone 6,iPhone 6 Plus,iPhone 6s,iPhone 6s Plus,iPhone 7,iPhone 7 Plus,iPad Air,iPad Air 2,iPad Pro (9.7 inch),iPad Pro (12.9 inch)" - -PN_TEST_IOS90_DEVICES_32BIT="iPhone 4s,iPad 2" -PN_TEST_IOS91_DEVICES_32BIT="iPhone 4s,iPad Pro" -PN_TEST_IOS_DEVICES_32BIT=$PN_TEST_IOS91_DEVICES_32BIT - -PN_TEST_IOS90_DEVICES_64BIT="iPhone 5s,iPhone 6s Plus,iPad Air 2" -PN_TEST_IOS100_DEVICES_64BIT="iPhone 5s,iPhone 6s Plus,iPhone 7 Plus,iPad Air 2,iPad Pro (12.9 inch)" -PN_TEST_IOS_DEVICES_64BIT=$PN_TEST_IOS90_DEVICES_64BIT \ No newline at end of file diff --git a/fastlane/.env.default b/fastlane/.env.default deleted file mode 100644 index c0cc7b43d..000000000 --- a/fastlane/.env.default +++ /dev/null @@ -1,2 +0,0 @@ -SCAN_OUTPUT_DIRECTORY=fastlane/test_output -SCAN_CLEAN=true \ No newline at end of file diff --git a/fastlane/.env.ios100x64 b/fastlane/.env.ios100x64 deleted file mode 100644 index ad3b4b567..000000000 --- a/fastlane/.env.ios100x64 +++ /dev/null @@ -1,3 +0,0 @@ -PN_TEST_OS_VERSION="10.0" -PN_TEST_OS_DEVICES=$PN_TEST_IOS100_DEVICES_64BIT -PN_TEST_OS_SCHEME=$PN_TEST_IOS_SCHEME \ No newline at end of file diff --git a/fastlane/.env.ios102x64 b/fastlane/.env.ios102x64 deleted file mode 100644 index f95cd1dc0..000000000 --- a/fastlane/.env.ios102x64 +++ /dev/null @@ -1,3 +0,0 @@ -PN_TEST_OS_VERSION="10.2" -PN_TEST_OS_DEVICES=$PN_TEST_IOS100_DEVICES_64BIT -PN_TEST_OS_SCHEME=$PN_TEST_IOS_SCHEME \ No newline at end of file diff --git a/fastlane/.env.ios90x32 b/fastlane/.env.ios90x32 deleted file mode 100644 index 0d7776e33..000000000 --- a/fastlane/.env.ios90x32 +++ /dev/null @@ -1,3 +0,0 @@ -PN_TEST_OS_VERSION="9.0" -PN_TEST_OS_DEVICES=$PN_TEST_IOS90_DEVICES_32BIT -PN_TEST_OS_SCHEME=$PN_TEST_IOS_SCHEME \ No newline at end of file diff --git a/fastlane/.env.ios90x64 b/fastlane/.env.ios90x64 deleted file mode 100644 index ea2a7c81e..000000000 --- a/fastlane/.env.ios90x64 +++ /dev/null @@ -1,3 +0,0 @@ -PN_TEST_OS_VERSION="9.0" -PN_TEST_OS_DEVICES=$PN_TEST_IOS_DEVICES_64BIT -PN_TEST_OS_SCHEME=$PN_TEST_IOS_SCHEME \ No newline at end of file diff --git a/fastlane/.env.ios91x32 b/fastlane/.env.ios91x32 deleted file mode 100644 index da2b051e3..000000000 --- a/fastlane/.env.ios91x32 +++ /dev/null @@ -1,3 +0,0 @@ -PN_TEST_OS_VERSION="9.1" -PN_TEST_OS_DEVICES=$PN_TEST_IOS91_DEVICES_32BIT -PN_TEST_OS_SCHEME=$PN_TEST_IOS_SCHEME \ No newline at end of file diff --git a/fastlane/.env.ios91x64 b/fastlane/.env.ios91x64 deleted file mode 100644 index b0d87fdd1..000000000 --- a/fastlane/.env.ios91x64 +++ /dev/null @@ -1,3 +0,0 @@ -PN_TEST_OS_VERSION="9.1" -PN_TEST_OS_DEVICES=$PN_TEST_IOS_DEVICES_64BIT -PN_TEST_OS_SCHEME=$PN_TEST_IOS_SCHEME \ No newline at end of file diff --git a/fastlane/.env.ios92x32 b/fastlane/.env.ios92x32 deleted file mode 100644 index 77beee344..000000000 --- a/fastlane/.env.ios92x32 +++ /dev/null @@ -1,3 +0,0 @@ -PN_TEST_OS_VERSION="9.2" -PN_TEST_OS_DEVICES=$PN_TEST_IOS_DEVICES_32BIT -PN_TEST_OS_SCHEME=$PN_TEST_IOS_SCHEME \ No newline at end of file diff --git a/fastlane/.env.ios92x64 b/fastlane/.env.ios92x64 deleted file mode 100644 index cdb810dc7..000000000 --- a/fastlane/.env.ios92x64 +++ /dev/null @@ -1,3 +0,0 @@ -PN_TEST_OS_VERSION="9.2" -PN_TEST_OS_DEVICES=$PN_TEST_IOS_DEVICES_64BIT -PN_TEST_OS_SCHEME=$PN_TEST_IOS_SCHEME \ No newline at end of file diff --git a/fastlane/.env.ios93x32 b/fastlane/.env.ios93x32 deleted file mode 100644 index d25f41eb1..000000000 --- a/fastlane/.env.ios93x32 +++ /dev/null @@ -1,3 +0,0 @@ -PN_TEST_OS_VERSION="9.3" -PN_TEST_OS_DEVICES=$PN_TEST_IOS_DEVICES_32BIT -PN_TEST_OS_SCHEME=$PN_TEST_IOS_SCHEME \ No newline at end of file diff --git a/fastlane/.env.ios93x64 b/fastlane/.env.ios93x64 deleted file mode 100644 index 74f45a500..000000000 --- a/fastlane/.env.ios93x64 +++ /dev/null @@ -1,3 +0,0 @@ -PN_TEST_OS_VERSION="9.3" -PN_TEST_OS_DEVICES=$PN_TEST_IOS_DEVICES_64BIT -PN_TEST_OS_SCHEME=$PN_TEST_IOS_SCHEME \ No newline at end of file diff --git a/fastlane/.env.macos b/fastlane/.env.macos deleted file mode 100644 index 5ab4f5681..000000000 --- a/fastlane/.env.macos +++ /dev/null @@ -1 +0,0 @@ -PN_TEST_OS_SCHEME=$PN_TEST_MACOS_SCHEME \ No newline at end of file diff --git a/fastlane/.env.tvos100 b/fastlane/.env.tvos100 deleted file mode 100644 index 9b7ed8e0f..000000000 --- a/fastlane/.env.tvos100 +++ /dev/null @@ -1,3 +0,0 @@ -PN_TEST_OS_VERSION="10.0" -PN_TEST_OS_DEVICES="Apple TV 1080p" -PN_TEST_OS_SCHEME=$PN_TEST_TVOS_SCHEME \ No newline at end of file diff --git a/fastlane/.env.tvos101 b/fastlane/.env.tvos101 deleted file mode 100644 index 8a8899363..000000000 --- a/fastlane/.env.tvos101 +++ /dev/null @@ -1,3 +0,0 @@ -PN_TEST_OS_VERSION="10.1" -PN_TEST_OS_DEVICES="Apple TV 1080p" -PN_TEST_OS_SCHEME=$PN_TEST_TVOS_SCHEME \ No newline at end of file diff --git a/fastlane/.env.tvos90 b/fastlane/.env.tvos90 deleted file mode 100644 index f4870adfb..000000000 --- a/fastlane/.env.tvos90 +++ /dev/null @@ -1,3 +0,0 @@ -PN_TEST_OS_VERSION="9.0" -PN_TEST_OS_DEVICES="Apple TV 1080p" -PN_TEST_OS_SCHEME=$PN_TEST_TVOS_SCHEME \ No newline at end of file diff --git a/fastlane/.env.tvos91 b/fastlane/.env.tvos91 deleted file mode 100644 index 51937175d..000000000 --- a/fastlane/.env.tvos91 +++ /dev/null @@ -1,3 +0,0 @@ -PN_TEST_OS_VERSION="9.1" -PN_TEST_OS_DEVICES="Apple TV 1080p" -PN_TEST_OS_SCHEME=$PN_TEST_TVOS_SCHEME \ No newline at end of file diff --git a/fastlane/.env.tvos92 b/fastlane/.env.tvos92 deleted file mode 100644 index ed1b8ce65..000000000 --- a/fastlane/.env.tvos92 +++ /dev/null @@ -1,3 +0,0 @@ -PN_TEST_OS_VERSION="9.2" -PN_TEST_OS_DEVICES="Apple TV 1080p" -PN_TEST_OS_SCHEME=$PN_TEST_TVOS_SCHEME \ No newline at end of file diff --git a/fastlane/Fastfile b/fastlane/Fastfile deleted file mode 100644 index 74e1162a0..000000000 --- a/fastlane/Fastfile +++ /dev/null @@ -1,45 +0,0 @@ -#fastlane_version "1.104.0" -#update_fastlane - -desc "Run iOS tests against devices specified in Travis jobs matrix." -desc "The lane to run by Travis-CI on every commit or merge pull request." -lane :test_ios do |options| - scan( - sdk: 'iphonesimulator', - devices: devices, - configuration: options[:configuration], - scheme: scheme(options[:language]) - ) -end - -desc "Run tvOS tests against devices specified in Travis jobs matrix." -desc "The lane to run by Travis-CI on every commit or merge pull request." -lane :test_tvos do |options| - scan( - sdk: 'appletvsimulator', - devices: devices, - configuration: options[:configuration], - scheme: scheme(options[:language]) - ) -end - -desc "Run macOS tests." -desc "The lane to run by Travis-CI on every commit or merge pull request." -lane :test_macos do |options| - scan( - configuration: options[:configuration], - scheme: scheme(options[:language]) - ) -end - -desc "Compose list of devices against which tests should be performed." -def devices - # Fetch available device names list - devices_names = ENV["PN_TEST_OS_DEVICES"].split(',') - - devices_names.map { |device_name| "#{device_name} (#{ENV['PN_TEST_OS_VERSION']})" } -end - -def scheme(language) - "#{ENV['PN_TEST_OS_SCHEME']} (#{language})" -end diff --git a/fastlane/actions/pod_spec_lint.rb b/fastlane/actions/pod_spec_lint.rb deleted file mode 100644 index e105f0f16..000000000 --- a/fastlane/actions/pod_spec_lint.rb +++ /dev/null @@ -1,90 +0,0 @@ -module Fastlane - module Actions - - # To share this integration with the other fastlane users: - # - Fork https://github.com/KrauseFx/fastlane - # - Clone the forked repository - # - Move this integration into lib/fastlane/actions - # - Commit, push and submit the pull request - - class PodSpecLintAction < Action - def self.run(params) - commands = ["pod", "spec", "lint"] - if params[:path] - commands << params[:path] - end - - if params[:quick] - commands << "--quick" - end - - if params[:allow_warnings] - commands << "--allow-warnings" - end - - if params[:no_subspecs] - commands << "--no-subspecs" - end - - if params[:subspec] - commands << "--subspec=#{params[:subspec]}" - end - - result = Actions.sh("#{commands.join(" ")}") - Helper.log.info "Successfully linted podspec".green - return result - end - - ##################################################### - # @!group Documentation - ##################################################### - - def self.description - "Lint a pod spec" - end - - def self.available_options - [ - FastlaneCore::ConfigItem.new(key: :path, - description: "The Podspec you want to lint", - optional: true, - verify_block: proc do |value| - raise "Couldn't find file at path '#{value}'".red unless File.exist?(value) - raise "File must be a `.podspec`".red unless value.end_with?(".podspec") - end), - FastlaneCore::ConfigItem.new(key: :quick, - description: "Lint skips checks that would require to download and build the spec", - optional: true, - is_string:false), - FastlaneCore::ConfigItem.new(key: :allow_warnings, - description: "Lint validates even if warnings are present", - optional: true, - is_string:false), - FastlaneCore::ConfigItem.new(key: :no_subspecs, - description: "Lint skips validation of subspecs", - optional: true, - is_string:false), - FastlaneCore::ConfigItem.new(key: :subspec, - description: "Lint validates only the given subspec", - optional: true, - is_string: true), - ] - end - - def self.output - end - - def self.return_value - # If you method provides a return value, you can describe here what it does - end - - def self.authors - ["jzucker2"] - end - - def self.is_supported?(platform) - platform != :android - end - end - end -end \ No newline at end of file diff --git a/scripts/README.md b/scripts/README.md deleted file mode 100644 index e17e6cb37..000000000 --- a/scripts/README.md +++ /dev/null @@ -1,5 +0,0 @@ -Useful for updating fixtures for integration testing. - -Run script with call like this: - -python update_fixtures.py --fixtures "/Users/jordan/Coding/objective-c/Tests/iOS Tsts/Fixtures/" -sdk 'PubNub-ObjC-iOS/5.0.0' diff --git a/scripts/update_fixtures.py b/scripts/update_fixtures.py deleted file mode 100644 index eac4c4361..000000000 --- a/scripts/update_fixtures.py +++ /dev/null @@ -1,110 +0,0 @@ -import os -import argparse -import fnmatch -import plistlib -import urlparse -import urllib - -test_fixture_directory = '/Users/jordan/Coding/objective-c/Tests/iOS Tests/Fixtures/' -test_plist = '/Users/jordan/Coding/objective-c/Tests/iOS Tests/Fixtures/PNUnsubscribeTests.bundle/testUnsubscribeWithPresence.plist' - -class FixtureFinder(object): - """docstring for FixtureFinder""" - def __init__(self, fixtures_path): - super(FixtureFinder, self).__init__() - self.fixtures_path = fixtures_path - def get_all_bundles(self): - bundles = [] - # first find all .bundle directories - for directory in os.listdir(self.fixtures_path): - if fnmatch.fnmatch(directory, '*.bundle'): - plist_array = [] - # only include .bundles containing at least one .plist - for plist in os.listdir(os.path.join(self.fixtures_path, directory)): - if fnmatch.fnmatch(plist, '*.plist'): - bundles.append(os.path.join(self.fixtures_path, directory)) - break - return bundles - def get_plists(self, bundle): - plists_list = [] - for plist in os.listdir(bundle): - if fnmatch.fnmatch(plist, '*.plist'): - plists_list.append(os.path.join(bundle, plist)) - return plists_list - - - -class FixtureUpdater(object): - """docstring for FixtureUpdater""" - def __init__(self, plist): - super(FixtureUpdater, self).__init__() - self.plist_path = plist - def get_plist_contents(self): - recordings = plistlib.readPlist(self.plist_path) - return recordings - -class Recording(object): - """docstring for Recording""" - def __init__(self, plist_item): - super(Recording, self).__init__() - self.plist_item = plist_item - def get_requests(self): - if 'request' in self.plist_item: - return self.plist_item['request'] - return None - def replace_sdk_version_in_URL(self, URLString, sdk_version): - url_components = urlparse.urlparse(URLString) - query_items = urlparse.parse_qs(url_components.query, True, True) - final_query_string = None - if 'pnsdk' in query_items: - query_items['pnsdk'] = sdk_version - final_query_string = urllib.urlencode(query_items, True) - URLString = urlparse.urlunparse(urlparse.ParseResult(url_components.scheme, url_components.netloc, url_components.path, url_components.params, final_query_string, url_components.fragment)) - return URLString - def update_specific_request(self, request, sdk_version): - return self.replace_sdk_version_in_URL(request['URL'], sdk_version) - def updated_requests(self, requests, sdk_version): - # pnsdk=PubNub-ObjC-iOS%2F4.0 - if 'currentRequest' in requests: - updated_request = self.update_specific_request(requests['currentRequest'], sdk_version) - # print updatedRequest - requests['currentRequest']['URL'] = updated_request - if 'originalRequest' in requests: - updated_request = self.update_specific_request(requests['originalRequest'], sdk_version) - # print updatedRequest - requests['originalRequest']['URL'] = updated_request - return requests - def replace_requests(self, sdk_version): - original_requests = self.get_requests() - updated_requests = self.updated_requests(original_requests, sdk_version) - self.plist_item['request'] = updated_requests - -def build_parser(): - parser = argparse.ArgumentParser(description='Update fixtures for new SDK versions') - parser.add_argument('-f', '--fixtures', action='store', type=str, help='Supply path to directory containing all .bundle fixtures', required=True) - parser.add_argument('-sdk', '--updatesdk', action='store', type=str, help='Supply the new version number to replace the old one') - return parser -def get_args(): - parser = build_parser() - return parser.parse_args() - - -def main(): - args = get_args() - fixture_finder = FixtureFinder(args.fixtures) - bundles = fixture_finder.get_all_bundles() - for bundle in bundles: - for plist in fixture_finder.get_plists(bundle): - updater = FixtureUpdater(plist) - recordings = updater.get_plist_contents() - for plist_item in recordings: - recording = Recording(plist_item) - recording.replace_requests(args.updatesdk) - plistlib.writePlist(recordings, plist) - - - - - -if __name__ == '__main__': - main() \ No newline at end of file