| // Copyright 2019 The Chromium Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #include "ios/chrome/browser/browser_about_rewriter.h" |
| |
| #include "base/test/gtest_util.h" |
| #include "ios/chrome/browser/chrome_url_constants.h" |
| #include "testing/platform_test.h" |
| #include "url/gurl.h" |
| |
| using BrowserAboutRewriterTest = PlatformTest; |
| |
| // Test that chrome://newtab is re-written to about://newtab, |
| // but that about://newtab is not re-written twice. |
| TEST_F(BrowserAboutRewriterTest, NtpTest) { |
| GURL url = GURL(kChromeUINewTabURL); |
| EXPECT_TRUE(WillHandleWebBrowserAboutURL(&url, /*browser_state=*/nullptr)); |
| EXPECT_EQ(url, GURL(kChromeUIAboutNewTabURL)); |
| EXPECT_FALSE(WillHandleWebBrowserAboutURL(&url, nil)); |
| } |
| |
| // Test that about|chrome://about is rewritten to chrome-urls and about:blank |
| // is not. |
| TEST_F(BrowserAboutRewriterTest, AboutTest) { |
| GURL url = GURL("about:about"); |
| EXPECT_FALSE(WillHandleWebBrowserAboutURL(&url, /*browser_state=*/nullptr)); |
| EXPECT_EQ(url, GURL("chrome://chrome-urls/")); |
| |
| url = GURL("chrome://about/"); |
| EXPECT_FALSE(WillHandleWebBrowserAboutURL(&url, /*browser_state=*/nullptr)); |
| EXPECT_EQ(url, GURL("chrome://chrome-urls/")); |
| |
| url = GURL("about:blank?for="); |
| EXPECT_FALSE(WillHandleWebBrowserAboutURL(&url, /*browser_state=*/nullptr)); |
| EXPECT_EQ(url, GURL("about:blank?for=")); |
| } |
| |
| // Test that about|chrome://sync is rewritten to sync-internals. |
| TEST_F(BrowserAboutRewriterTest, SyncTest) { |
| GURL url = GURL("about:sync"); |
| EXPECT_FALSE(WillHandleWebBrowserAboutURL(&url, /*browser_state=*/nullptr)); |
| EXPECT_EQ(url, GURL("chrome://sync-internals/")); |
| |
| url = GURL("chrome://sync/"); |
| EXPECT_FALSE(WillHandleWebBrowserAboutURL(&url, /*browser_state=*/nullptr)); |
| EXPECT_EQ(url, GURL("chrome://sync-internals/")); |
| } |