Index: ios/chrome/browser/tabs/tab_unittest.mm |
diff --git a/ios/chrome/browser/tabs/tab_unittest.mm b/ios/chrome/browser/tabs/tab_unittest.mm |
index dae23a9d52fe66a81e9521daa6149543544cae26..75e89edce72453f7e2d7daf2ed7cd2e967f5644f 100644 |
--- a/ios/chrome/browser/tabs/tab_unittest.mm |
+++ b/ios/chrome/browser/tabs/tab_unittest.mm |
@@ -411,147 +411,4 @@ TEST_F(TabTest, GetSuggestedFilenameFromDefaultName) { |
EXPECT_NSEQ(@"Document.pdf", [[tab_ openInController] suggestedFilename]); |
} |
-// A separate test fixture is used to test opening external URLs using Google |
-// App Launcher. In any of the tests for this feature, scenarios have to be |
-// tested with the regular ChromeBrowserState AND the incognito |
-// ChromeBrowserState. |
-// In Incognito, -urlTriggersNativeAppLaunch:sourceURL should always return NO. |
-class TabOpenAppTest : public TabTest { |
- protected: |
- // Tests that calling |urlTriggersNativeAppLaunch:sourceURL:linkClicked| calls |
- // |openURL:| the expected number of times. |return_value| is the value to be |
- // returned from |openURL:|. |expected_result| is the value that is checked |
- // for from |urlTriggersNativeAppLaunch:sourceURL:linkClicked|. |
- void TestOpenNativeAppURL(const GURL& url, |
- BOOL return_value, |
- NSUInteger expected_tab_call_count, |
- BOOL expected_result) { |
- ExpectWithMockedExternalAppLauncherOpenURL( |
- return_value, expected_tab_call_count, ^{ |
- EXPECT_EQ(expected_result, |
- [tab_ urlTriggersNativeAppLaunch:url |
- sourceURL:GURL("http://google.com") |
- linkClicked:YES]); |
- }); |
- } |
- |
- // Stubs out |openURL:| and checks how many times it was called. |
- void ExpectWithMockedExternalAppLauncherOpenURL( |
- BOOL return_value, |
- NSUInteger expected_tab_call_count, |
- ProceduralBlock expectation_block) { |
- __block NSUInteger counter = 0; |
- [mock_external_app_launcher_ |
- onSelector:@selector(openURL:linkClicked:) |
- callBlockExpectation:(id) ^ (const GURL& url, BOOL linkClicked) { |
- ++counter; |
- return return_value; |
- }]; |
- expectation_block(); |
- EXPECT_EQ(expected_tab_call_count, counter); |
- [mock_external_app_launcher_ |
- removeBlockExpectationOnSelector:@selector(openURL:linkClicked:)]; |
- } |
-}; |
- |
-// A version of TabOpenAppTests customized to use the off-the-record browser |
-// state (instead of the non-incognito one). |
-class TabOpenAppOffTheRecordTest : public TabOpenAppTest { |
- private: |
- bool UseOffTheRecordBrowserState() const override { return true; } |
-}; |
- |
-// Tests the opening of matching native apps. |
-TEST_F(TabOpenAppTest, testDummyURL) { |
- EXPECT_FALSE([tab_ browserState]->IsOffTheRecord()); |
- |
- GURL no_native_app_url("dummy string"); |
- TestOpenNativeAppURL(no_native_app_url, NO, 0, NO); |
-} |
- |
-TEST_F(TabOpenAppTest, testURL) { |
- EXPECT_FALSE([tab_ browserState]->IsOffTheRecord()); |
- |
- GURL testURL("http://www.youtube.com/"); |
- // Fake metadata object to enable and disable autoopenlinks for testURL. |
- base::scoped_nsobject<FakeNativeAppMetadata> metadata( |
- [[FakeNativeAppMetadata alloc] init]); |
- IOSChromeScopedTestingChromeBrowserProvider provider( |
- base::MakeUnique<FakeChromeBrowserProvider>(metadata)); |
- // Turn auto open on. |
- int expectedCallCount = 1; |
- [metadata setShouldAutoOpenLinks:YES]; |
- TestOpenNativeAppURL(testURL, YES, expectedCallCount, YES); |
- TestOpenNativeAppURL(testURL, NO, expectedCallCount, NO); |
- |
- // Turn auto open off. |
- expectedCallCount = 0; |
- [metadata setShouldAutoOpenLinks:NO]; |
- TestOpenNativeAppURL(testURL, NO, expectedCallCount, NO); |
-} |
- |
-// TODO(crbug.com/330189): This test fails if Google Maps is installed (usually |
-// on device). |
-TEST_F(TabOpenAppTest, DISABLED_testResetShouldAutoOpenOnFailure) { |
- EXPECT_FALSE([tab_ browserState]->IsOffTheRecord()); |
- |
- // With a regular profile. |
- GURL testURL("http://maps.google.com/"); |
- // Fake metadata object |
- base::scoped_nsobject<FakeNativeAppMetadata> metadata( |
- [[FakeNativeAppMetadata alloc] init]); |
- |
- // Turn auto open on. |
- [metadata setShouldAutoOpenLinks:YES]; |
- int expectedCallCount = 2; |
- TestOpenNativeAppURL(testURL, NO, expectedCallCount, NO); |
- EXPECT_FALSE([metadata shouldAutoOpenLinks]); |
-} |
- |
-// Tests the opening of matching native apps with off-the-record browser state. |
-TEST_F(TabOpenAppOffTheRecordTest, testDummyURL) { |
- EXPECT_TRUE([tab_ browserState]->IsOffTheRecord()); |
- |
- GURL no_native_app_url("dummy string"); |
- TestOpenNativeAppURL(no_native_app_url, NO, 0, NO); |
-} |
- |
-TEST_F(TabOpenAppOffTheRecordTest, testURL) { |
- EXPECT_TRUE([tab_ browserState]->IsOffTheRecord()); |
- |
- // With a regular chrome browser state. |
- GURL testURL("http://www.youtube.com/"); |
- // Mock metadata object to enable and disable autoopenlinks for testURL. |
- base::scoped_nsobject<FakeNativeAppMetadata> metadata( |
- [[FakeNativeAppMetadata alloc] init]); |
- IOSChromeScopedTestingChromeBrowserProvider provider( |
- base::MakeUnique<FakeChromeBrowserProvider>(metadata)); |
- |
- // Turn auto open on. |
- [metadata setShouldAutoOpenLinks:YES]; |
- TestOpenNativeAppURL(testURL, NO, 0, NO); |
- |
- // Turn auto open off. |
- [metadata setShouldAutoOpenLinks:NO]; |
- TestOpenNativeAppURL(testURL, NO, 0, NO); |
-} |
- |
-// TODO(crbug.com/330189): This test fails if Google Maps is installed (usually |
-// on device). |
-TEST_F(TabOpenAppOffTheRecordTest, DISABLED_testResetShouldAutoOpenOnFailure) { |
- EXPECT_TRUE([tab_ browserState]->IsOffTheRecord()); |
- |
- // With a regular profile. |
- GURL testURL("http://maps.google.com/"); |
- // Fake metadata object. |
- base::scoped_nsobject<FakeNativeAppMetadata> metadata( |
- [[FakeNativeAppMetadata alloc] init]); |
- |
- // Turn auto open on. |
- [metadata setShouldAutoOpenLinks:YES]; |
- int expectedCallCount = 2; |
- TestOpenNativeAppURL(testURL, NO, expectedCallCount, NO); |
- EXPECT_FALSE([metadata shouldAutoOpenLinks]); |
-} |
- |
} // namespace |