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 "chrome/browser/extensions/extension_browsertest.h" 6 #include "chrome/browser/ui/browser.h" 7 #include "chrome/browser/ui/tabs/tab_strip_model.h" 8 #include "chrome/test/base/ui_test_utils.h" 9 #include "content/public/test/browser_test_utils.h" 10 11 // Tests that we can load extension pages into the tab area and they can call 12 // extension APIs. 13 IN_PROC_BROWSER_TEST_F(ExtensionBrowserTest, WebContents) { 14 ASSERT_TRUE(LoadExtension( 15 test_data_dir_.AppendASCII("good").AppendASCII("Extensions") 16 .AppendASCII("behllobkkfkfnphdnhnkndlbkcpglgmj") 17 .AppendASCII("1.0.0.0"))); 18 19 ui_test_utils::NavigateToURL( 20 browser(), 21 GURL("chrome-extension://behllobkkfkfnphdnhnkndlbkcpglgmj/page.html")); 22 23 bool result = false; 24 ASSERT_TRUE(content::ExecuteScriptAndExtractBool( 25 browser()->tab_strip_model()->GetActiveWebContents(), 26 "testTabsAPI()", 27 &result)); 28 EXPECT_TRUE(result); 29 30 // There was a bug where we would crash if we navigated to a page in the same 31 // extension because no new render view was getting created, so we would not 32 // do some setup. 33 ui_test_utils::NavigateToURL( 34 browser(), 35 GURL("chrome-extension://behllobkkfkfnphdnhnkndlbkcpglgmj/page.html")); 36 result = false; 37 ASSERT_TRUE(content::ExecuteScriptAndExtractBool( 38 browser()->tab_strip_model()->GetActiveWebContents(), 39 "testTabsAPI()", 40 &result)); 41 EXPECT_TRUE(result); 42 } 43