summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/chrome_app_api_browsertest.cc
diff options
context:
space:
mode:
authormihaip@chromium.org <mihaip@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-21 02:05:49 +0000
committermihaip@chromium.org <mihaip@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-06-21 02:05:49 +0000
commit80675fcf9cf95100244f6f571a63d9d1c186afa5 (patch)
tree3e04b64266f355dd728d2e04adff5c5f859769ff /chrome/browser/extensions/chrome_app_api_browsertest.cc
parent3f1e5b1080e54d8c9baf6410a27631163d473148 (diff)
downloadchromium_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.cc35
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().