@@ -778,19 +778,13 @@ TEST_F(FirebaseGmaTest, TestAdViewLoadAd) {
778778 firebase::Future<firebase::gma::AdResult> load_ad_future;
779779 const firebase::gma::AdResult* result_ptr = nullptr ;
780780
781- // Loading Ads has been deemed flaky as the AdMob Service has a chance to
782- // return NoFill for valid ad requests if there aren't any ads to serve.
783- FLAKY_TEST_SECTION_BEGIN ();
784-
785781 load_ad_future = ad_view->LoadAd (GetAdRequest ());
786782 WaitForCompletion (load_ad_future, " LoadAd" );
787783
788784 result_ptr = load_ad_future.result ();
789785 ASSERT_NE (result_ptr, nullptr );
790786 EXPECT_TRUE (result_ptr->is_successful ());
791787
792- FLAKY_TEST_SECTION_END ();
793-
794788 ASSERT_NE (result_ptr, nullptr );
795789 EXPECT_FALSE (result_ptr->response_info ().adapter_responses ().empty ());
796790 EXPECT_FALSE (
@@ -811,10 +805,6 @@ TEST_F(FirebaseGmaTest, TestInterstitialAdLoad) {
811805 SKIP_TEST_ON_DESKTOP;
812806 SKIP_TEST_ON_SIMULATOR;
813807
814- // Loading Ads has been deemed flaky as the AdMob Service has a chance to
815- // return NoFill for valid ad requests if there aren't any ads to serve.
816- FLAKY_TEST_SECTION_BEGIN ();
817-
818808 firebase::gma::InterstitialAd* interstitial =
819809 new firebase::gma::InterstitialAd ();
820810
@@ -837,17 +827,14 @@ TEST_F(FirebaseGmaTest, TestInterstitialAdLoad) {
837827
838828 load_ad_future.Release ();
839829 delete interstitial;
840-
841- FLAKY_TEST_SECTION_END ();
842830}
843831
844832TEST_F (FirebaseGmaTest, TestRewardedAdLoad) {
845833 SKIP_TEST_ON_DESKTOP;
846834 SKIP_TEST_ON_SIMULATOR;
847835
848- // Loading Ads has been deemed flaky as the AdMob Service has a chance to
849- // return NoFill for valid ad requests if there aren't any ads to serve.
850- FLAKY_TEST_SECTION_BEGIN ();
836+ // TODO(@drsanta): remove when GMA whitelists CI devices.
837+ TEST_REQUIRES_USER_INTERACTION_ON_IOS;
851838
852839 firebase::gma::RewardedAd* rewarded = new firebase::gma::RewardedAd ();
853840
@@ -870,8 +857,6 @@ TEST_F(FirebaseGmaTest, TestRewardedAdLoad) {
870857
871858 load_ad_future.Release ();
872859 delete rewarded;
873-
874- FLAKY_TEST_SECTION_END ();
875860}
876861
877862// Interactive test section. These have been placed up front so that the
@@ -1011,6 +996,9 @@ TEST_F(FirebaseGmaUITest, TestRewardedAdLoadAndShow) {
1011996 SKIP_TEST_ON_DESKTOP;
1012997 SKIP_TEST_ON_SIMULATOR;
1013998
999+ // TODO(@drsanta): remove when GMA whitelists CI devices.
1000+ TEST_REQUIRES_USER_INTERACTION_ON_IOS;
1001+
10141002 firebase::gma::RewardedAd* rewarded = new firebase::gma::RewardedAd ();
10151003
10161004 WaitForCompletion (rewarded->Initialize (app_framework::GetWindowContext ()),
@@ -1093,18 +1081,12 @@ TEST_F(FirebaseGmaTest, TestAdViewLoadAdEmptyAdRequest) {
10931081 firebase::Future<firebase::gma::AdResult> load_ad_future;
10941082 const firebase::gma::AdResult* result_ptr = nullptr ;
10951083
1096- // Loading Ads has been deemed flaky as the AdMob Service has a chance to
1097- // return NoFill for valid ad requests if there aren't any ads to serve.
1098- FLAKY_TEST_SECTION_BEGIN ();
1099-
11001084 load_ad_future = ad_view->LoadAd (request);
11011085 WaitForCompletion (load_ad_future, " LoadAd" );
11021086 result_ptr = load_ad_future.result ();
11031087 ASSERT_NE (result_ptr, nullptr );
11041088 EXPECT_TRUE (result_ptr->is_successful ());
11051089
1106- FLAKY_TEST_SECTION_END ();
1107-
11081090 EXPECT_FALSE (result_ptr->response_info ().adapter_responses ().empty ());
11091091 EXPECT_FALSE (
11101092 result_ptr->response_info ().mediation_adapter_class_name ().empty ());
@@ -1133,14 +1115,8 @@ TEST_F(FirebaseGmaTest, TestAdViewLoadAdAnchorAdaptiveAd) {
11331115 kBannerAdUnit , banner_ad_size),
11341116 " Initialize" );
11351117
1136- // Loading Ads has been deemed flaky as the AdMob Service has a chance to
1137- // return NoFill for valid ad requests if there aren't any ads to serve.
1138- FLAKY_TEST_SECTION_BEGIN ();
1139-
11401118 WaitForCompletion (ad_view->LoadAd (GetAdRequest ()), " LoadAd" );
11411119
1142- FLAKY_TEST_SECTION_END ();
1143-
11441120 const AdSize ad_size = ad_view->ad_size ();
11451121 EXPECT_EQ (ad_size.width (), kBannerWidth );
11461122 EXPECT_NE (ad_size.height (), 0 );
@@ -1163,14 +1139,8 @@ TEST_F(FirebaseGmaTest, TestAdViewLoadAdInlineAdaptiveAd) {
11631139 kBannerAdUnit , banner_ad_size),
11641140 " Initialize" );
11651141
1166- // Loading Ads has been deemed flaky as the AdMob Service has a chance to
1167- // return NoFill for valid ad requests if there aren't any ads to serve.
1168- FLAKY_TEST_SECTION_BEGIN ();
1169-
11701142 WaitForCompletion (ad_view->LoadAd (GetAdRequest ()), " LoadAd" );
11711143
1172- FLAKY_TEST_SECTION_END ();
1173-
11741144 const AdSize ad_size = ad_view->ad_size ();
11751145 EXPECT_EQ (ad_size.width (), kBannerWidth );
11761146 EXPECT_NE (ad_size.height (), 0 );
@@ -1192,14 +1162,8 @@ TEST_F(FirebaseGmaTest, TestAdViewLoadAdGetInlineAdaptiveBannerMaxHeight) {
11921162 kBannerAdUnit , banner_ad_size),
11931163 " Initialize" );
11941164
1195- // Loading Ads has been deemed flaky as the AdMob Service has a chance to
1196- // return NoFill for valid ad requests if there aren't any ads to serve.
1197- FLAKY_TEST_SECTION_BEGIN ();
1198-
11991165 WaitForCompletion (ad_view->LoadAd (GetAdRequest ()), " LoadAd" );
12001166
1201- FLAKY_TEST_SECTION_END ();
1202-
12031167 const AdSize ad_size = ad_view->ad_size ();
12041168 EXPECT_EQ (ad_size.width (), kBannerWidth );
12051169 EXPECT_NE (ad_size.height (), 0 );
@@ -1219,15 +1183,7 @@ TEST_F(FirebaseGmaTest, TestAdViewLoadAdDestroyNotCalled) {
12191183 WaitForCompletion (ad_view->Initialize (app_framework::GetWindowContext (),
12201184 kBannerAdUnit , banner_ad_size),
12211185 " Initialize" );
1222-
1223- // Loading Ads has been deemed flaky as the AdMob Service has a chance to
1224- // return NoFill for valid ad requests if there aren't any ads to serve.
1225- FLAKY_TEST_SECTION_BEGIN ();
1226-
12271186 WaitForCompletion (ad_view->LoadAd (GetAdRequest ()), " LoadAd" );
1228-
1229- FLAKY_TEST_SECTION_END ();
1230-
12311187 delete ad_view;
12321188}
12331189
@@ -1305,10 +1261,6 @@ TEST_F(FirebaseGmaTest, TestAdView) {
13051261 SKIP_TEST_ON_DESKTOP;
13061262 SKIP_TEST_ON_SIMULATOR;
13071263
1308- // Loading Ads has been deemed flaky as the AdMob Service has a chance to
1309- // return NoFill for valid ad requests if there aren't any ads to serve.
1310- FLAKY_TEST_SECTION_BEGIN ();
1311-
13121264 const firebase::gma::AdSize banner_ad_size (kBannerWidth , kBannerHeight );
13131265 firebase::gma::AdView* ad_view = new firebase::gma::AdView ();
13141266 WaitForCompletion (ad_view->Initialize (app_framework::GetWindowContext (),
@@ -1504,8 +1456,6 @@ TEST_F(FirebaseGmaTest, TestAdView) {
15041456 bounding_box_listener.bounding_box_changes_ .back ().height == -1 );
15051457#endif // defined(ANDROID) || TARGET_OS_IPHONE
15061458 }
1507-
1508- FLAKY_TEST_SECTION_END ();
15091459}
15101460
15111461TEST_F (FirebaseGmaTest, TestAdViewErrorNotInitialized) {
@@ -1674,10 +1624,6 @@ TEST_F(FirebaseGmaTest, TestInterstitialAdLoadEmptyRequest) {
16741624 SKIP_TEST_ON_DESKTOP;
16751625 SKIP_TEST_ON_SIMULATOR;
16761626
1677- // Loading Ads has been deemed flaky as the AdMob Service has a chance to
1678- // return NoFill for valid ad requests if there aren't any ads to serve.
1679- FLAKY_TEST_SECTION_BEGIN ();
1680-
16811627 firebase::gma::InterstitialAd* interstitial =
16821628 new firebase::gma::InterstitialAd ();
16831629
@@ -1701,8 +1647,6 @@ TEST_F(FirebaseGmaTest, TestInterstitialAdLoadEmptyRequest) {
17011647 EXPECT_FALSE (result_ptr->response_info ().ToString ().empty ());
17021648
17031649 delete interstitial;
1704-
1705- FLAKY_TEST_SECTION_END ();
17061650}
17071651
17081652TEST_F (FirebaseGmaTest, TestInterstitialAdErrorNotInitialized) {
@@ -1851,9 +1795,8 @@ TEST_F(FirebaseGmaTest, TestRewardedAdLoadEmptyRequest) {
18511795 SKIP_TEST_ON_DESKTOP;
18521796 SKIP_TEST_ON_SIMULATOR;
18531797
1854- // Loading Ads has been deemed flaky as the AdMob Service has a chance to
1855- // return NoFill for valid ad requests if there aren't any ads to serve.
1856- FLAKY_TEST_SECTION_BEGIN ();
1798+ // TODO(@drsanta): remove when GMA whitelists CI devices.
1799+ TEST_REQUIRES_USER_INTERACTION_ON_IOS;
18571800
18581801 // Note: while showing an ad requires user interaction in another test,
18591802 // this test is mean as a baseline loadAd functionality test.
@@ -1878,8 +1821,6 @@ TEST_F(FirebaseGmaTest, TestRewardedAdLoadEmptyRequest) {
18781821 EXPECT_FALSE (result_ptr->response_info ().ToString ().empty ());
18791822
18801823 delete rewarded;
1881-
1882- FLAKY_TEST_SECTION_END ();
18831824}
18841825
18851826TEST_F (FirebaseGmaTest, TestRewardedAdErrorNotInitialized) {
@@ -1938,6 +1879,9 @@ TEST_F(FirebaseGmaTest, TesRewardedAdErrorAlreadyInitialized) {
19381879TEST_F (FirebaseGmaTest, TestRewardedAdErrorLoadInProgress) {
19391880 SKIP_TEST_ON_DESKTOP;
19401881
1882+ // TODO(@drsanta): remove when GMA whitelists CI devices.
1883+ TEST_REQUIRES_USER_INTERACTION_ON_IOS;
1884+
19411885 firebase::gma::RewardedAd* rewarded = new firebase::gma::RewardedAd ();
19421886 WaitForCompletion (rewarded->Initialize (app_framework::GetWindowContext ()),
19431887 " Initialize" );
@@ -2029,10 +1973,16 @@ TEST_F(FirebaseGmaTest, TestAdViewStress) {
20291973
20301974 // Load the AdView ad.
20311975 firebase::gma::AdRequest request = GetAdRequest ();
2032- WaitForCompletion (ad_view->LoadAd (request), " TestAdViewStress LoadAd" );
2033- EXPECT_EQ (ad_view->ad_size ().width (), kBannerWidth );
2034- EXPECT_EQ (ad_view->ad_size ().height (), kBannerHeight );
2035-
1976+ firebase::Future<firebase::gma::AdResult> future = ad_view->LoadAd (request);
1977+ WaitForCompletionAnyResult (future, " TestAdViewStress LoadAd" );
1978+ // Stress tests may exhaust the ad pool. If so, loadAd will return
1979+ // kAdErrorCodeNoFill.
1980+ EXPECT_TRUE (future.error () == firebase::gma::kAdErrorCodeNone ||
1981+ future.error () == firebase::gma::kAdErrorCodeNoFill );
1982+ if (future.error () == firebase::gma::kAdErrorCodeNone ) {
1983+ EXPECT_EQ (ad_view->ad_size ().width (), kBannerWidth );
1984+ EXPECT_EQ (ad_view->ad_size ().height (), kBannerHeight );
1985+ }
20361986 WaitForCompletion (ad_view->Destroy (), " Destroy the AdView" );
20371987 delete ad_view;
20381988 }
@@ -2055,8 +2005,13 @@ TEST_F(FirebaseGmaTest, TestInterstitialAdStress) {
20552005
20562006 // When the InterstitialAd is initialized, load an ad.
20572007 firebase::gma::AdRequest request = GetAdRequest ();
2058- WaitForCompletion (interstitial->LoadAd (kInterstitialAdUnit , request),
2059- " TestInterstitialAdStress LoadAd" );
2008+ firebase::Future<firebase::gma::AdResult> future =
2009+ interstitial->LoadAd (kInterstitialAdUnit , request);
2010+ WaitForCompletionAnyResult (future, " TestInterstitialAdStress LoadAd" );
2011+ // Stress tests may exhaust the ad pool. If so, loadAd will return
2012+ // kAdErrorCodeNoFill.
2013+ EXPECT_TRUE (future.error () == firebase::gma::kAdErrorCodeNone ||
2014+ future.error () == firebase::gma::kAdErrorCodeNoFill );
20602015 delete interstitial;
20612016 }
20622017}
@@ -2065,7 +2020,7 @@ TEST_F(FirebaseGmaTest, TestRewardedAdStress) {
20652020 SKIP_TEST_ON_DESKTOP;
20662021 SKIP_TEST_ON_EMULATOR;
20672022
2068- // TODO(@drsanta): remove when GMA whitelists CI devices
2023+ // TODO(@drsanta): remove when GMA whitelists CI devices.
20692024 TEST_REQUIRES_USER_INTERACTION_ON_IOS;
20702025
20712026 for (int i = 0 ; i < 10 ; ++i) {
@@ -2076,8 +2031,13 @@ TEST_F(FirebaseGmaTest, TestRewardedAdStress) {
20762031
20772032 // When the RewardedAd is initialized, load an ad.
20782033 firebase::gma::AdRequest request = GetAdRequest ();
2079- WaitForCompletion (rewarded->LoadAd (kRewardedAdUnit , request),
2080- " TestRewardedAdStress LoadAd" );
2034+ firebase::Future<firebase::gma::AdResult> future =
2035+ rewarded->LoadAd (kRewardedAdUnit , request);
2036+ WaitForCompletionAnyResult (future, " TestRewardedAdStress LoadAd" );
2037+ // Stress tests may exhaust the ad pool. If so, loadAd will return
2038+ // kAdErrorCodeNoFill.
2039+ EXPECT_TRUE (future.error () == firebase::gma::kAdErrorCodeNone ||
2040+ future.error () == firebase::gma::kAdErrorCodeNoFill );
20812041 delete rewarded;
20822042 }
20832043}
0 commit comments