Chromium Code Reviews| Index: chrome/browser/password_manager/chrome_password_manager_client_unittest.cc |
| diff --git a/chrome/browser/password_manager/chrome_password_manager_client_unittest.cc b/chrome/browser/password_manager/chrome_password_manager_client_unittest.cc |
| index df6f06ed08b0eb742120af71e2f282b941af3c46..0cadb671fc4fa6d29c62ea41dca3962a3dddd015 100644 |
| --- a/chrome/browser/password_manager/chrome_password_manager_client_unittest.cc |
| +++ b/chrome/browser/password_manager/chrome_password_manager_client_unittest.cc |
| @@ -12,6 +12,7 @@ |
| #include "base/metrics/field_trial.h" |
| #include "base/run_loop.h" |
| #include "base/strings/string16.h" |
| +#include "base/strings/stringprintf.h" |
| #include "base/strings/utf_string_conversions.h" |
| #include "base/test/scoped_feature_list.h" |
| #include "chrome/browser/metrics/chrome_metrics_service_accessor.h" |
| @@ -39,12 +40,18 @@ |
| #include "components/version_info/version_info.h" |
| #include "content/public/browser/browser_context.h" |
| #include "content/public/browser/web_contents.h" |
| +#include "content/public/common/url_constants.h" |
| #include "content/public/test/web_contents_tester.h" |
| +#include "extensions/features/features.h" |
| #include "mojo/public/cpp/bindings/binding.h" |
| #include "services/service_manager/public/cpp/interface_provider.h" |
| #include "testing/gmock/include/gmock/gmock.h" |
| #include "testing/gtest/include/gtest/gtest.h" |
| +#if BUILDFLAG(ENABLE_EXTENSIONS) |
| +#include "extensions/common/constants.h" |
| +#endif |
| + |
| using browser_sync::ProfileSyncServiceMock; |
| using content::BrowserContext; |
| using content::WebContents; |
| @@ -526,3 +533,36 @@ TEST_F(ChromePasswordManagerClientTest, BindCredentialManager_MissingInstance) { |
| web_contents->GetMainFrame(), |
| password_manager::mojom::CredentialManagerRequest()); |
| } |
| + |
| +TEST_F(ChromePasswordManagerClientTest, CanShowBubbleOnURL) { |
| + struct TestCase { |
| + const char* scheme; |
| + bool can_show_bubble; |
| + } kTestCases[] = { |
| + {url::kHttpScheme, true}, |
| + {url::kHttpsScheme, true}, |
| + {url::kFtpScheme, true}, |
| + {url::kDataScheme, true}, |
| + {"feed", true}, |
| + {url::kBlobScheme, true}, |
| + {url::kFileSystemScheme, true}, |
| + |
| + {"invalid-scheme-i-just-made-up", false}, |
| +#if BUILDFLAG(ENABLE_EXTENSIONS) |
| + {extensions::kExtensionScheme, false}, |
| +#endif |
| + {url::kAboutScheme, false}, |
| + {content::kChromeDevToolsScheme, false}, |
| + {content::kChromeUIScheme, false}, |
| + {url::kJavaScriptScheme, false}, |
| + {url::kMailToScheme, false}, |
| + {content::kViewSourceScheme, false}, |
| + }; |
| + |
| + for (const TestCase& test_case : kTestCases) { |
| + // CanShowBubbleOnURL currently only depends on the scheme. |
|
vasilii
2017/01/24 13:24:07
Add some SCOPED_TRACE().
msramek
2017/01/24 13:42:32
Done.
msramek
2017/01/24 13:50:01
Actually let me replace spec() with possibly_inval
|
| + GURL url(base::StringPrintf("%s://example.org", test_case.scheme)); |
| + EXPECT_EQ(test_case.can_show_bubble, |
| + ChromePasswordManagerClient::CanShowBubbleOnURL(url)); |
| + } |
| +} |