diff options
author | mihaip@chromium.org <mihaip@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-21 02:05:49 +0000 |
---|---|---|
committer | mihaip@chromium.org <mihaip@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-06-21 02:05:49 +0000 |
commit | 80675fcf9cf95100244f6f571a63d9d1c186afa5 (patch) | |
tree | 3e04b64266f355dd728d2e04adff5c5f859769ff /chrome/browser/extensions/chrome_app_api_browsertest.cc | |
parent | 3f1e5b1080e54d8c9baf6410a27631163d473148 (diff) | |
download | chromium_src-80675fcf9cf95100244f6f571a63d9d1c186afa5.zip chromium_src-80675fcf9cf95100244f6f571a63d9d1c186afa5.tar.gz chromium_src-80675fcf9cf95100244f6f571a63d9d1c186afa5.tar.bz2 |
Make chrome.app.isInstalled return false until the page is in application process
Don't just check if the application (extension) is installed, check that we're associated
with an application process.
BUG=81562
TEST=no
R=mpcomplete@chromium.org
Review URL: http://codereview.chromium.org/7198003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@89781 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/extensions/chrome_app_api_browsertest.cc')
-rw-r--r-- | chrome/browser/extensions/chrome_app_api_browsertest.cc | 35 |
1 files changed, 21 insertions, 14 deletions
diff --git a/chrome/browser/extensions/chrome_app_api_browsertest.cc b/chrome/browser/extensions/chrome_app_api_browsertest.cc index ff4c638..2fafc94 100644 --- a/chrome/browser/extensions/chrome_app_api_browsertest.cc +++ b/chrome/browser/extensions/chrome_app_api_browsertest.cc @@ -19,6 +19,18 @@ #include "net/base/mock_host_resolver.h" class ChromeAppAPITest : public ExtensionBrowserTest { + protected: + bool IsAppInstalled() { + std::wstring get_app_is_installed = + L"window.domAutomationController.send(window.chrome.app.isInstalled);"; + bool result; + CHECK( + ui_test_utils::ExecuteJavaScriptAndExtractBool( + browser()->GetSelectedTabContents()->render_view_host(), + L"", get_app_is_installed, &result)); + return result; + } + private: virtual void SetUpCommandLine(CommandLine* command_line) { ExtensionBrowserTest::SetUpCommandLine(command_line); @@ -44,29 +56,28 @@ IN_PROC_BROWSER_TEST_F(ChromeAppAPITest, IsInstalled) { replace_host.SetHostStr(nonapp_host); GURL non_app_url(test_file_url.ReplaceComponents(replace_host)); + // Before the app is installed, app.com does not think that it is installed + ui_test_utils::NavigateToURL(browser(), app_url); + EXPECT_FALSE(IsAppInstalled()); // Load an app which includes app.com in its extent. const Extension* extension = LoadExtension( test_data_dir_.AppendASCII("app_dot_com_app")); ASSERT_TRUE(extension); + // Even after the app is installed, the existing app.com tab is not in an + // app process, so chrome.app.isInstalled should return false. + EXPECT_FALSE(IsAppInstalled()); // Test that a non-app page has chrome.app.isInstalled = false. ui_test_utils::NavigateToURL(browser(), non_app_url); - std::wstring get_app_is_installed = - L"window.domAutomationController.send(" - L" JSON.stringify(window.chrome.app.isInstalled));"; - std::string result; - ASSERT_TRUE( - ui_test_utils::ExecuteJavaScriptAndExtractString( - browser()->GetSelectedTabContents()->render_view_host(), - L"", get_app_is_installed, &result)); - EXPECT_EQ("false", result); + EXPECT_FALSE(IsAppInstalled()); // Test that a non-app page returns null for chrome.app.getDetails(). std::wstring get_app_details = L"window.domAutomationController.send(" L" JSON.stringify(window.chrome.app.getDetails()));"; + std::string result; ASSERT_TRUE( ui_test_utils::ExecuteJavaScriptAndExtractString( browser()->GetSelectedTabContents()->render_view_host(), @@ -75,11 +86,7 @@ IN_PROC_BROWSER_TEST_F(ChromeAppAPITest, IsInstalled) { // Check that an app page has chrome.app.isInstalled = true. ui_test_utils::NavigateToURL(browser(), app_url); - ASSERT_TRUE( - ui_test_utils::ExecuteJavaScriptAndExtractString( - browser()->GetSelectedTabContents()->render_view_host(), - L"", get_app_is_installed, &result)); - EXPECT_EQ("true", result); + EXPECT_TRUE(IsAppInstalled()); // Check that an app page returns the correct result for // chrome.app.getDetails(). |