Home | History | Annotate | Download | only in browser
      1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "base/basictypes.h"
      6 #include "base/memory/scoped_ptr.h"
      7 #include "base/message_loop/message_loop.h"
      8 #include "chrome/browser/browser_about_handler.h"
      9 #include "chrome/common/url_constants.h"
     10 #include "chrome/test/base/testing_profile.h"
     11 #include "content/public/test/test_browser_thread.h"
     12 #include "testing/gtest/include/gtest/gtest.h"
     13 #include "url/gurl.h"
     14 
     15 using content::BrowserThread;
     16 
     17 typedef testing::Test BrowserAboutHandlerTest;
     18 
     19 TEST_F(BrowserAboutHandlerTest, WillHandleBrowserAboutURL) {
     20   std::string chrome_prefix(chrome::kChromeUIScheme);
     21   chrome_prefix.append(content::kStandardSchemeSeparator);
     22   struct AboutURLTestData {
     23     GURL test_url;
     24     GURL result_url;
     25   } test_data[] = {
     26       {
     27         GURL("http://google.com"),
     28         GURL("http://google.com")
     29       },
     30       {
     31         GURL(content::kAboutBlankURL),
     32         GURL(content::kAboutBlankURL)
     33       },
     34       {
     35         GURL(chrome_prefix + chrome::kChromeUIMemoryHost),
     36         GURL(chrome_prefix + chrome::kChromeUIMemoryHost)
     37       },
     38       {
     39         GURL(chrome_prefix + chrome::kChromeUIDefaultHost),
     40         GURL(chrome_prefix + chrome::kChromeUIVersionHost)
     41       },
     42       {
     43         GURL(chrome_prefix + chrome::kChromeUIAboutHost),
     44         GURL(chrome_prefix + chrome::kChromeUIChromeURLsHost)
     45       },
     46       {
     47         GURL(chrome_prefix + chrome::kChromeUICacheHost),
     48         GURL(chrome_prefix + content::kChromeUINetworkViewCacheHost)
     49       },
     50       {
     51         GURL(chrome_prefix + chrome::kChromeUISignInInternalsHost),
     52         GURL(chrome_prefix + chrome::kChromeUISignInInternalsHost)
     53       },
     54       {
     55         GURL(chrome_prefix + chrome::kChromeUISyncHost),
     56         GURL(chrome_prefix + chrome::kChromeUISyncInternalsHost)
     57       },
     58       {
     59         GURL(chrome_prefix + "host/path?query#ref"),
     60         GURL(chrome_prefix + "host/path?query#ref"),
     61       }
     62   };
     63   base::MessageLoopForUI message_loop;
     64   content::TestBrowserThread ui_thread(BrowserThread::UI, &message_loop);
     65   TestingProfile profile;
     66 
     67   for (size_t i = 0; i < ARRAYSIZE_UNSAFE(test_data); ++i) {
     68     GURL url(test_data[i].test_url);
     69     WillHandleBrowserAboutURL(&url, &profile);
     70     EXPECT_EQ(test_data[i].result_url, url);
     71   }
     72 }
     73