diff --git a/iOS_SDK/OneSignalSDK/OneSignal.xcodeproj/project.pbxproj b/iOS_SDK/OneSignalSDK/OneSignal.xcodeproj/project.pbxproj index 53e34d17e..9d1063b3d 100644 --- a/iOS_SDK/OneSignalSDK/OneSignal.xcodeproj/project.pbxproj +++ b/iOS_SDK/OneSignalSDK/OneSignal.xcodeproj/project.pbxproj @@ -89,6 +89,7 @@ 3C6299A92BEEA46C00649187 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 3C6299A82BEEA46C00649187 /* PrivacyInfo.xcprivacy */; }; 3C6299AB2BEEA4C000649187 /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 3C6299AA2BEEA4C000649187 /* PrivacyInfo.xcprivacy */; }; 3C67F77A2BEB2B710085A0F0 /* SwitchUserIntegrationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C67F7792BEB2B710085A0F0 /* SwitchUserIntegrationTests.swift */; }; + 3C7865BB2C2BC74C00C5755B /* IAMRequestTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 3C7865BA2C2BC74C00C5755B /* IAMRequestTests.m */; }; 3C789DBD293C2206004CF83D /* OSFocusInfluenceParam.m in Sources */ = {isa = PBXBuildFile; fileRef = 7A600B432453790700514A53 /* OSFocusInfluenceParam.m */; }; 3C789DBE293D8EAD004CF83D /* OSFocusInfluenceParam.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A600B41245378ED00514A53 /* OSFocusInfluenceParam.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3C7A39C12B7BED900082665E /* OneSignalCoreMocks.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3CC0639A2B6D7A8C002BB07F /* OneSignalCoreMocks.framework */; }; @@ -141,6 +142,8 @@ 3CC9A6362AFA26E7008F68FD /* PrivacyInfo.xcprivacy in Resources */ = {isa = PBXBuildFile; fileRef = 3CC9A6352AFA26E7008F68FD /* PrivacyInfo.xcprivacy */; }; 3CCF44BE299B17290021964D /* OneSignalWrapper.h in Headers */ = {isa = PBXBuildFile; fileRef = 3CCF44BC299B17290021964D /* OneSignalWrapper.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3CCF44BF299B17290021964D /* OneSignalWrapper.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CCF44BD299B17290021964D /* OneSignalWrapper.m */; }; + 3CD1718E2C2BC5230024D3E1 /* OneSignalInAppMessages.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DEBAAE282A4211D900BF2C1C /* OneSignalInAppMessages.framework */; }; + 3CD1718F2C2BC5230024D3E1 /* OneSignalInAppMessages.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = DEBAAE282A4211D900BF2C1C /* OneSignalInAppMessages.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 3CDE664C2BFC2A56006DA114 /* OneSignalUserObjcTests.m in Sources */ = {isa = PBXBuildFile; fileRef = 3CDE664B2BFC2A56006DA114 /* OneSignalUserObjcTests.m */; }; 3CE5F9E3289D88DC004A156E /* OSModelStoreChangedHandler.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CE5F9E2289D88DC004A156E /* OSModelStoreChangedHandler.swift */; }; 3CE795F928DB99B500736BD4 /* OSSubscriptionModelStoreListener.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CE795F828DB99B500736BD4 /* OSSubscriptionModelStoreListener.swift */; }; @@ -593,6 +596,13 @@ remoteGlobalIDString = 3C115160289A259500565C41; remoteInfo = OneSignalOSCore; }; + 3C7865BC2C2BCD1A00C5755B /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 37747F8B19147D6400558FAD /* Project object */; + proxyType = 1; + remoteGlobalIDString = DEF5CCF02539321A0003E9CC; + remoteInfo = UnitTestApp; + }; 3C7A39C32B7BED900082665E /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 37747F8B19147D6400558FAD /* Project object */; @@ -663,6 +673,13 @@ remoteGlobalIDString = DE69E19A282ED8060090BB3D; remoteInfo = OneSignalUser; }; + 3CD171862C2BC2670024D3E1 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 37747F8B19147D6400558FAD /* Project object */; + proxyType = 1; + remoteGlobalIDString = DEBAAE272A4211D900BF2C1C; + remoteInfo = OneSignalInAppMessages; + }; 3CEE93442B7C4174008440BD /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 37747F8B19147D6400558FAD /* Project object */; @@ -1036,6 +1053,17 @@ name = "Embed Frameworks"; runOnlyForDeploymentPostprocessing = 0; }; + 3CD171902C2BC5230024D3E1 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + 3CD1718F2C2BC5230024D3E1 /* OneSignalInAppMessages.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; 3CEE93522B7C787C008440BD /* Embed Frameworks */ = { isa = PBXCopyFilesBuildPhase; buildActionMask = 2147483647; @@ -1151,6 +1179,8 @@ 3C6299A82BEEA46C00649187 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; 3C6299AA2BEEA4C000649187 /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; 3C67F7792BEB2B710085A0F0 /* SwitchUserIntegrationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SwitchUserIntegrationTests.swift; sourceTree = ""; }; + 3C7865B92C2BC74B00C5755B /* OneSignalInAppMessagesTests-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "OneSignalInAppMessagesTests-Bridging-Header.h"; sourceTree = ""; }; + 3C7865BA2C2BC74C00C5755B /* IAMRequestTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = IAMRequestTests.m; sourceTree = ""; }; 3C7A39D42B7C18EE0082665E /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Platforms/iPhoneOS.platform/Developer/Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; 3C87066F2BDE0957000D8CD2 /* MockUserRequests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockUserRequests.swift; sourceTree = ""; }; 3C8706712BDEE076000D8CD2 /* MockUserDefines.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MockUserDefines.swift; sourceTree = ""; }; @@ -1187,6 +1217,7 @@ 3CC9A6352AFA26E7008F68FD /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; 3CCF44BC299B17290021964D /* OneSignalWrapper.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OneSignalWrapper.h; sourceTree = ""; }; 3CCF44BD299B17290021964D /* OneSignalWrapper.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = OneSignalWrapper.m; sourceTree = ""; }; + 3CD171812C2BC2660024D3E1 /* OneSignalInAppMessagesTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = OneSignalInAppMessagesTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 3CDE664A2BFC2A55006DA114 /* OneSignalUserTests-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "OneSignalUserTests-Bridging-Header.h"; sourceTree = ""; }; 3CDE664B2BFC2A56006DA114 /* OneSignalUserObjcTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = OneSignalUserObjcTests.m; sourceTree = ""; }; 3CE5F9E2289D88DC004A156E /* OSModelStoreChangedHandler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OSModelStoreChangedHandler.swift; sourceTree = ""; }; @@ -1620,6 +1651,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 3CD1717E2C2BC2660024D3E1 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 3CD1718E2C2BC5230024D3E1 /* OneSignalInAppMessages.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 3E2400341D4FFC31008BDE70 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -1835,6 +1874,7 @@ 3CC063A52B6D7A8E002BB07F /* OneSignalCoreTests */, 3CC063EC2B6D7FE8002BB07F /* OneSignalUserTests */, 4735424B2B8F93340016DB4C /* OneSignalLiveActivitiesTests */, + 3CD171822C2BC2670024D3E1 /* OneSignalInAppMessagesTests */, 37747F9419147D6500558FAD /* Products */, ); sourceTree = ""; @@ -1860,6 +1900,7 @@ 3CC063EB2B6D7FE8002BB07F /* OneSignalUserTests.xctest */, 475F471E2B8E398D00EC05B3 /* OneSignalLiveActivities.framework */, 4735424A2B8F93330016DB4C /* OneSignalLiveActivitiesTests.xctest */, + 3CD171812C2BC2660024D3E1 /* OneSignalInAppMessagesTests.xctest */, ); name = Products; sourceTree = ""; @@ -2004,6 +2045,15 @@ path = OneSignalUserTests; sourceTree = ""; }; + 3CD171822C2BC2670024D3E1 /* OneSignalInAppMessagesTests */ = { + isa = PBXGroup; + children = ( + 3C7865B92C2BC74B00C5755B /* OneSignalInAppMessagesTests-Bridging-Header.h */, + 3C7865BA2C2BC74C00C5755B /* IAMRequestTests.m */, + ); + path = OneSignalInAppMessagesTests; + sourceTree = ""; + }; 3CEE90A52BFE6A7700B0FB5B /* Support */ = { isa = PBXGroup; children = ( @@ -3115,6 +3165,26 @@ productReference = 3CC063EB2B6D7FE8002BB07F /* OneSignalUserTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; + 3CD171802C2BC2660024D3E1 /* OneSignalInAppMessagesTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = 3CD1718B2C2BC2670024D3E1 /* Build configuration list for PBXNativeTarget "OneSignalInAppMessagesTests" */; + buildPhases = ( + 3CD1717D2C2BC2660024D3E1 /* Sources */, + 3CD1717E2C2BC2660024D3E1 /* Frameworks */, + 3CD1717F2C2BC2660024D3E1 /* Resources */, + 3CD171902C2BC5230024D3E1 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + 3CD171872C2BC2670024D3E1 /* PBXTargetDependency */, + 3C7865BD2C2BCD1A00C5755B /* PBXTargetDependency */, + ); + name = OneSignalInAppMessagesTests; + productName = OneSignalInAppMessagesTests; + productReference = 3CD171812C2BC2660024D3E1 /* OneSignalInAppMessagesTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; 3E2400371D4FFC31008BDE70 /* OneSignalFramework */ = { isa = PBXNativeTarget; buildConfigurationList = 3E24003F1D4FFC31008BDE70 /* Build configuration list for PBXNativeTarget "OneSignalFramework" */; @@ -3419,6 +3489,11 @@ ProvisioningStyle = Automatic; TestTargetID = DEF5CCF02539321A0003E9CC; }; + 3CD171802C2BC2660024D3E1 = { + CreatedOnToolsVersion = 15.2; + LastSwiftMigration = 1520; + TestTargetID = DEF5CCF02539321A0003E9CC; + }; 3E2400371D4FFC31008BDE70 = { CreatedOnToolsVersion = 8.0; DevelopmentTeam = 99SW8E36CT; @@ -3536,6 +3611,7 @@ 3CC063A02B6D7A8D002BB07F /* OneSignalCoreTests */, 3CC063EA2B6D7FE8002BB07F /* OneSignalUserTests */, 473542492B8F93330016DB4C /* OneSignalLiveActivitiesTests */, + 3CD171802C2BC2660024D3E1 /* OneSignalInAppMessagesTests */, ); }; /* End PBXProject section */ @@ -3577,6 +3653,13 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 3CD1717F2C2BC2660024D3E1 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 3E2400361D4FFC31008BDE70 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -3809,6 +3892,14 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 3CD1717D2C2BC2660024D3E1 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 3C7865BB2C2BC74C00C5755B /* IAMRequestTests.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 3E2400331D4FFC31008BDE70 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -4135,6 +4226,11 @@ target = 3C115160289A259500565C41 /* OneSignalOSCore */; targetProxy = 3C115199289AF86C00565C41 /* PBXContainerItemProxy */; }; + 3C7865BD2C2BCD1A00C5755B /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DEF5CCF02539321A0003E9CC /* UnitTestApp */; + targetProxy = 3C7865BC2C2BCD1A00C5755B /* PBXContainerItemProxy */; + }; 3C7A39C42B7BED900082665E /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 3CC063992B6D7A8C002BB07F /* OneSignalCoreMocks */; @@ -4185,6 +4281,11 @@ target = DE69E19A282ED8060090BB3D /* OneSignalUser */; targetProxy = 3CC063F02B6D7FE8002BB07F /* PBXContainerItemProxy */; }; + 3CD171872C2BC2670024D3E1 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DEBAAE272A4211D900BF2C1C /* OneSignalInAppMessages */; + targetProxy = 3CD171862C2BC2670024D3E1 /* PBXContainerItemProxy */; + }; 3CEE93452B7C4174008440BD /* PBXTargetDependency */ = { isa = PBXTargetDependency; target = 3CC063DC2B6D7F2A002BB07F /* OneSignalUserMocks */; @@ -5252,6 +5353,155 @@ }; name = Test; }; + 3CD171882C2BC2670024D3E1 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + BUNDLE_LOADER = "$(TEST_HOST)"; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_STYLE = Automatic; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = 99SW8E36CT; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MARKETING_VERSION = 1.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.onesignal.OneSignalInAppMessagesTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_OBJC_BRIDGING_HEADER = "OneSignalInAppMessagesTests/OneSignalInAppMessagesTests-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/UnitTestApp.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/UnitTestApp"; + }; + name = Release; + }; + 3CD171892C2BC2670024D3E1 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + BUNDLE_LOADER = "$(TEST_HOST)"; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_STYLE = Automatic; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_TEAM = 99SW8E36CT; + ENABLE_TESTABILITY = YES; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GENERATE_INFOPLIST_FILE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MARKETING_VERSION = 1.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.onesignal.OneSignalInAppMessagesTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = "DEBUG $(inherited)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_OBJC_BRIDGING_HEADER = "OneSignalInAppMessagesTests/OneSignalInAppMessagesTests-Bridging-Header.h"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/UnitTestApp.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/UnitTestApp"; + }; + name = Debug; + }; + 3CD1718A2C2BC2670024D3E1 /* Test */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; + BUNDLE_LOADER = "$(TEST_HOST)"; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CODE_SIGN_STYLE = Automatic; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 1; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEVELOPMENT_TEAM = 99SW8E36CT; + ENABLE_USER_SCRIPT_SANDBOXING = YES; + GCC_C_LANGUAGE_STANDARD = gnu17; + GENERATE_INFOPLIST_FILE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + LOCALIZATION_PREFERS_STRING_CATALOGS = YES; + MARKETING_VERSION = 1.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + PRODUCT_BUNDLE_IDENTIFIER = com.onesignal.OneSignalInAppMessagesTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_OBJC_BRIDGING_HEADER = "OneSignalInAppMessagesTests/OneSignalInAppMessagesTests-Bridging-Header.h"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/UnitTestApp.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/UnitTestApp"; + }; + name = Test; + }; 473542512B8F93340016DB4C /* Release */ = { isa = XCBuildConfiguration; buildSettings = { @@ -7781,6 +8031,16 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 3CD1718B2C2BC2670024D3E1 /* Build configuration list for PBXNativeTarget "OneSignalInAppMessagesTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3CD171882C2BC2670024D3E1 /* Release */, + 3CD171892C2BC2670024D3E1 /* Debug */, + 3CD1718A2C2BC2670024D3E1 /* Test */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 3E24003F1D4FFC31008BDE70 /* Build configuration list for PBXNativeTarget "OneSignalFramework" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/iOS_SDK/OneSignalSDK/OneSignal.xcodeproj/xcshareddata/xcschemes/UnitTestApp.xcscheme b/iOS_SDK/OneSignalSDK/OneSignal.xcodeproj/xcshareddata/xcschemes/UnitTestApp.xcscheme index 0b8d3c4ea..4a14542ed 100644 --- a/iOS_SDK/OneSignalSDK/OneSignal.xcodeproj/xcshareddata/xcschemes/UnitTestApp.xcscheme +++ b/iOS_SDK/OneSignalSDK/OneSignal.xcodeproj/xcshareddata/xcschemes/UnitTestApp.xcscheme @@ -163,6 +163,16 @@ ReferencedContainer = "container:OneSignal.xcodeproj"> + + + + +#import "OSInAppMessageBridgeEvent.h" +#import "OSInAppMessagingRequests.h" + +@interface IAMRequestTests : XCTestCase + +@end + +@implementation IAMRequestTests { + NSString *testAppId; + NSString *testSubscriptionId; + NSString *testMessageId; + NSString *testVariantId; + NSString *testPageId; + OSInAppMessageBridgeEvent *testBridgeEvent; + OSInAppMessageClickResult *testClickResult; +} + +- (void)setUp { + testAppId = @"test_app_id"; + testSubscriptionId = @"test_subscription_id"; + testMessageId = @"test_message_id"; + testVariantId = @"test_in_app_message_variant_id"; + testPageId = @"test_page_id"; + testBridgeEvent = [OSInAppMessageBridgeEvent instanceWithJson:@{ + @"type" : @"action_taken", + @"body" : @{ + @"id" : @"test_id", + @"url" : @"https://www.onesignal.com", + @"url_target" : @"browser", + @"close" : @false + } + }]; + + testClickResult = testBridgeEvent.userAction; + testClickResult.firstClick = true; +} + +- (void)tearDown { } + +NSString *correctUrlWithPath(NSString *path) { + return [OS_API_SERVER_URL stringByAppendingString:path]; +} + +BOOL checkHttpBody(NSData *bodyData, NSDictionary *correct) { + NSError *error; + NSDictionary *serialized = [NSJSONSerialization JSONObjectWithData:bodyData options:NSJSONReadingAllowFragments error:&error]; + + if (error) { + return false; + } + + return [serialized isEqualToDictionary:correct]; +} + +- (void)testInAppMessageViewed { + OSRequestInAppMessageViewed *request = [OSRequestInAppMessageViewed + withAppId:testAppId + withPlayerId:testSubscriptionId + withMessageId:testMessageId + forVariantId:testVariantId]; + NSString *correctUrl = correctUrlWithPath([NSString stringWithFormat:@"in_app_messages/%@/impression", testMessageId]); + + XCTAssertEqualObjects(correctUrl, request.urlRequest.URL.absoluteString); + XCTAssertTrue(checkHttpBody(request.urlRequest.HTTPBody, @{ + @"device_type": @0, + @"player_id": testSubscriptionId, + @"app_id": testAppId, + @"variant_id": testVariantId + })); +} + +- (void)testInAppMessageViewed_withNilArguments { + OSRequestInAppMessageViewed *request = [OSRequestInAppMessageViewed + withAppId:testAppId + withPlayerId:nil + withMessageId:testMessageId + forVariantId:nil]; + + XCTAssertTrue(checkHttpBody(request.urlRequest.HTTPBody, @{ + @"device_type": @0, + @"app_id": testAppId + })); +} + +- (void)testInAppMessagePageViewed { + OSRequestInAppMessagePageViewed *request = [OSRequestInAppMessagePageViewed + withAppId:testAppId + withPlayerId:testSubscriptionId + withMessageId:testMessageId + withPageId:testPageId + forVariantId:testVariantId]; + NSString *correctUrl = correctUrlWithPath([NSString stringWithFormat:@"in_app_messages/%@/pageImpression", testMessageId]); + + XCTAssertEqualObjects(correctUrl, request.urlRequest.URL.absoluteString); + XCTAssertTrue(checkHttpBody(request.urlRequest.HTTPBody, @{ + @"device_type": @0, + @"player_id": testSubscriptionId, + @"app_id": testAppId, + @"variant_id": testVariantId, + @"page_id": testPageId + })); +} + +- (void)testInAppMessagePageViewed_withNilArguments { + OSRequestInAppMessagePageViewed *request = [OSRequestInAppMessagePageViewed + withAppId:testAppId + withPlayerId:nil + withMessageId:testMessageId + withPageId:nil + forVariantId:nil]; + + XCTAssertTrue(checkHttpBody(request.urlRequest.HTTPBody, @{ + @"device_type": @0, + @"app_id": testAppId, + })); +} + +- (void)testInAppMessageClicked { + OSRequestInAppMessageClicked *request = [OSRequestInAppMessageClicked + withAppId:testAppId + withPlayerId:testSubscriptionId + withMessageId:testMessageId + forVariantId:testVariantId + withAction:testClickResult]; + NSString *correctUrl = correctUrlWithPath([NSString stringWithFormat:@"in_app_messages/%@/click", testMessageId]); + + XCTAssertEqualObjects(correctUrl, request.urlRequest.URL.absoluteString); + XCTAssertTrue(checkHttpBody(request.urlRequest.HTTPBody, @{ + @"app_id": testAppId, + @"device_type": @0, + @"player_id": testSubscriptionId, + @"click_id": testClickResult.clickId ?: @"", + @"variant_id": testVariantId, + @"first_click": @(testClickResult.firstClick) + })); +} + +- (void)testInAppMessageClicked_withNilArguments { + OSRequestInAppMessageClicked *request = [OSRequestInAppMessageClicked + withAppId:testAppId + withPlayerId:nil + withMessageId:testMessageId + forVariantId:nil + withAction:testClickResult]; + + XCTAssertTrue(checkHttpBody(request.urlRequest.HTTPBody, @{ + @"app_id": testAppId, + @"device_type": @0, + @"click_id": testClickResult.clickId ?: @"", + @"first_click": @(testClickResult.firstClick) + })); +} + +@end diff --git a/iOS_SDK/OneSignalSDK/OneSignalInAppMessagesTests/OneSignalInAppMessagesTests-Bridging-Header.h b/iOS_SDK/OneSignalSDK/OneSignalInAppMessagesTests/OneSignalInAppMessagesTests-Bridging-Header.h new file mode 100644 index 000000000..1b2cb5d6d --- /dev/null +++ b/iOS_SDK/OneSignalSDK/OneSignalInAppMessagesTests/OneSignalInAppMessagesTests-Bridging-Header.h @@ -0,0 +1,4 @@ +// +// Use this file to import your target's public headers that you would like to expose to Swift. +// + diff --git a/iOS_SDK/OneSignalSDK/UnitTests/RequestTests.m b/iOS_SDK/OneSignalSDK/UnitTests/RequestTests.m index 7cc3e3241..ee20685dc 100644 --- a/iOS_SDK/OneSignalSDK/UnitTests/RequestTests.m +++ b/iOS_SDK/OneSignalSDK/UnitTests/RequestTests.m @@ -674,39 +674,6 @@ of this software and associated documentation files (the "Software"), to deal // XCTAssertTrue(checkHttpBody(secondRequest.urlRequest.HTTPBody, @{@"app_id" : testAppId, @"state" : @"ping", @"type" : @1, @"active_time" : @2, @"net_type" : @3, @"device_type" : testDeviceType, @"direct" : @NO, @"notification_ids": testNotificationIds})); //} // -//- (void)testInAppMessageViewed { -// let request = [OSRequestInAppMessageViewed withAppId:testAppId withPlayerId:testUserId withMessageId:testInAppMessageId forVariantId:testInAppMessageVariantId]; -// let correctUrl = correctUrlWithPath([NSString stringWithFormat:@"in_app_messages/%@/impression", testInAppMessageId]); -// -// XCTAssertEqualObjects(correctUrl, request.urlRequest.URL.absoluteString); -// XCTAssertTrue(checkHttpBody(request.urlRequest.HTTPBody, @{ -// @"device_type": @0, -// @"player_id": testUserId, -// @"app_id": testAppId, -// @"variant_id": testInAppMessageVariantId -// })); -//} -// -//- (void)testInAppMessageClicked { -// let request = [OSRequestInAppMessageClicked -// withAppId:testAppId -// withPlayerId:testUserId -// withMessageId:testInAppMessageId -// forVariantId:testInAppMessageVariantId -// withAction:testAction]; -// let correctUrl = correctUrlWithPath([NSString stringWithFormat:@"in_app_messages/%@/click", testInAppMessageId]); -// -// XCTAssertEqualObjects(correctUrl, request.urlRequest.URL.absoluteString); -// XCTAssertTrue(checkHttpBody(request.urlRequest.HTTPBody, @{ -// @"app_id": testAppId, -// @"device_type": @0, -// @"player_id": testUserId, -// @"click_id": testAction.clickId ?: @"", -// @"variant_id": testInAppMessageVariantId, -// @"first_click": @(testAction.firstClick) -// })); -//} -// //- (void)testLoadMessageContent { // [UnitTestCommonMethods initOneSignal]; //