FIRInAppMessagingRenderingTests.m 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. /*
  2. * Copyright 2021 Google LLC
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. #import <XCTest/XCTest.h>
  17. #import "FirebaseInAppMessaging/Sources/Public/FirebaseInAppMessaging/FIRInAppMessagingRendering.h"
  18. @interface FIRInAppMessagingRenderingTests : XCTestCase
  19. @end
  20. @implementation FIRInAppMessagingRenderingTests
  21. + (FIRInAppMessagingImageData *)testImageData {
  22. NSData *blankImageData = UIImagePNGRepresentation([[UIImage alloc] init]);
  23. return [[FIRInAppMessagingImageData alloc] initWithImageURL:@"http://google.com"
  24. imageData:blankImageData];
  25. }
  26. + (FIRInAppMessagingActionButton *)testActionButton {
  27. return [[FIRInAppMessagingActionButton alloc] initWithButtonText:@"Tap me"
  28. buttonTextColor:[UIColor brownColor]
  29. backgroundColor:[UIColor yellowColor]];
  30. }
  31. - (void)testCardMessageInit {
  32. FIRInAppMessagingCardDisplay *cardMessage = [[FIRInAppMessagingCardDisplay alloc]
  33. initWithCampaignName:@"campaignName"
  34. titleText:@"titleText"
  35. bodyText:@"bodyText"
  36. textColor:[UIColor systemPinkColor]
  37. portraitImageData:[[self class] testImageData]
  38. landscapeImageData:nil
  39. backgroundColor:[UIColor redColor]
  40. primaryActionButton:[[self class] testActionButton]
  41. secondaryActionButton:nil
  42. primaryActionURL:[NSURL URLWithString:@"http://test.com"]
  43. secondaryActionURL:nil
  44. appData:@{@"emoji" : @"📺"}];
  45. // Message initializers for test messages should have these stock parameters.
  46. XCTAssertEqualObjects(cardMessage.campaignInfo.messageID, @"test_message_id");
  47. XCTAssertTrue(cardMessage.campaignInfo.renderAsTestMessage);
  48. XCTAssertEqual(cardMessage.triggerType, FIRInAppMessagingDisplayTriggerTypeOnAnalyticsEvent);
  49. XCTAssertEqualObjects(cardMessage.campaignInfo.campaignName, @"campaignName");
  50. XCTAssertEqualObjects(cardMessage.title, @"titleText");
  51. XCTAssertEqualObjects(cardMessage.body, @"bodyText");
  52. XCTAssertEqualObjects(cardMessage.textColor, [UIColor systemPinkColor]);
  53. XCTAssertNotNil(cardMessage.portraitImageData);
  54. XCTAssertNil(cardMessage.landscapeImageData);
  55. XCTAssertEqualObjects(cardMessage.displayBackgroundColor, [UIColor redColor]);
  56. XCTAssertEqualObjects(cardMessage.primaryActionButton.buttonText, @"Tap me");
  57. XCTAssertEqualObjects(cardMessage.primaryActionButton.buttonTextColor, [UIColor brownColor]);
  58. XCTAssertEqualObjects(cardMessage.primaryActionButton.buttonBackgroundColor,
  59. [UIColor yellowColor]);
  60. XCTAssertNil(cardMessage.secondaryActionButton);
  61. XCTAssertEqualObjects(cardMessage.primaryActionURL, [NSURL URLWithString:@"http://test.com"]);
  62. XCTAssertNil(cardMessage.secondaryActionURL);
  63. XCTAssertEqualObjects(cardMessage.appData[@"emoji"], @"📺");
  64. }
  65. - (void)testModalMessageInit {
  66. FIRInAppMessagingModalDisplay *modalMessage = [[FIRInAppMessagingModalDisplay alloc]
  67. initWithCampaignName:@"campaignName"
  68. titleText:@"titleText"
  69. bodyText:@"bodyText"
  70. textColor:[UIColor systemTealColor]
  71. backgroundColor:[UIColor grayColor]
  72. imageData:[[self class] testImageData]
  73. actionButton:[[self class] testActionButton]
  74. actionURL:[NSURL URLWithString:@"http://modal-test.com"]
  75. appData:@{@"emoji" : @"🇵🇷"}];
  76. XCTAssertEqualObjects(modalMessage.campaignInfo.messageID, @"test_message_id");
  77. XCTAssertTrue(modalMessage.campaignInfo.renderAsTestMessage);
  78. XCTAssertEqual(modalMessage.triggerType, FIRInAppMessagingDisplayTriggerTypeOnAnalyticsEvent);
  79. XCTAssertEqualObjects(modalMessage.campaignInfo.campaignName, @"campaignName");
  80. XCTAssertEqualObjects(modalMessage.title, @"titleText");
  81. XCTAssertEqualObjects(modalMessage.bodyText, @"bodyText");
  82. XCTAssertEqualObjects(modalMessage.textColor, [UIColor systemTealColor]);
  83. XCTAssertNotNil(modalMessage.imageData);
  84. XCTAssertEqualObjects(modalMessage.displayBackgroundColor, [UIColor grayColor]);
  85. XCTAssertEqualObjects(modalMessage.actionButton.buttonText, @"Tap me");
  86. XCTAssertEqualObjects(modalMessage.actionButton.buttonTextColor, [UIColor brownColor]);
  87. XCTAssertEqualObjects(modalMessage.actionButton.buttonBackgroundColor, [UIColor yellowColor]);
  88. XCTAssertEqualObjects(modalMessage.actionURL, [NSURL URLWithString:@"http://modal-test.com"]);
  89. XCTAssertEqualObjects(modalMessage.appData[@"emoji"], @"🇵🇷");
  90. }
  91. - (void)testBannerMessageInit {
  92. FIRInAppMessagingBannerDisplay *bannerMessage = [[FIRInAppMessagingBannerDisplay alloc]
  93. initWithCampaignName:@"campaignName"
  94. titleText:@"titleText"
  95. bodyText:@"bodyText"
  96. textColor:[UIColor clearColor]
  97. backgroundColor:[UIColor blueColor]
  98. imageData:[[self class] testImageData]
  99. actionURL:[NSURL URLWithString:@"http://banner-test.com"]
  100. appData:@{@"emoji" : @"🇲🇽"}];
  101. XCTAssertEqualObjects(bannerMessage.campaignInfo.messageID, @"test_message_id");
  102. XCTAssertTrue(bannerMessage.campaignInfo.renderAsTestMessage);
  103. XCTAssertEqual(bannerMessage.triggerType, FIRInAppMessagingDisplayTriggerTypeOnAnalyticsEvent);
  104. XCTAssertEqualObjects(bannerMessage.campaignInfo.campaignName, @"campaignName");
  105. XCTAssertEqualObjects(bannerMessage.title, @"titleText");
  106. XCTAssertEqualObjects(bannerMessage.bodyText, @"bodyText");
  107. XCTAssertEqualObjects(bannerMessage.textColor, [UIColor clearColor]);
  108. XCTAssertNotNil(bannerMessage.imageData);
  109. XCTAssertEqualObjects(bannerMessage.displayBackgroundColor, [UIColor blueColor]);
  110. XCTAssertEqualObjects(bannerMessage.actionURL, [NSURL URLWithString:@"http://banner-test.com"]);
  111. XCTAssertEqualObjects(bannerMessage.appData[@"emoji"], @"🇲🇽");
  112. }
  113. - (void)testImageOnlyMessageInit {
  114. FIRInAppMessagingImageOnlyDisplay *imageOnlyMessage = [[FIRInAppMessagingImageOnlyDisplay alloc]
  115. initWithCampaignName:@"campaignName"
  116. imageData:[[self class] testImageData]
  117. actionURL:[NSURL URLWithString:@"http://image-test.com"]
  118. appData:@{@"emoji" : @"🥊"}];
  119. XCTAssertEqualObjects(imageOnlyMessage.campaignInfo.messageID, @"test_message_id");
  120. XCTAssertTrue(imageOnlyMessage.campaignInfo.renderAsTestMessage);
  121. XCTAssertEqual(imageOnlyMessage.triggerType, FIRInAppMessagingDisplayTriggerTypeOnAnalyticsEvent);
  122. XCTAssertEqualObjects(imageOnlyMessage.campaignInfo.campaignName, @"campaignName");
  123. XCTAssertNotNil(imageOnlyMessage.imageData);
  124. XCTAssertEqualObjects(imageOnlyMessage.actionURL, [NSURL URLWithString:@"http://image-test.com"]);
  125. XCTAssertEqualObjects(imageOnlyMessage.appData[@"emoji"], @"🥊");
  126. }
  127. @end