OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/ui/app_list/drive/drive_app_converter.h" | 5 #include "chrome/browser/apps/drive/drive_app_converter.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/memory/scoped_ptr.h" | 10 #include "base/memory/scoped_ptr.h" |
11 #include "base/path_service.h" | 11 #include "base/path_service.h" |
12 #include "base/version.h" | 12 #include "base/version.h" |
13 #include "chrome/browser/extensions/extension_browsertest.h" | 13 #include "chrome/browser/extensions/extension_browsertest.h" |
14 #include "chrome/browser/extensions/extension_service.h" | 14 #include "chrome/browser/extensions/extension_service.h" |
| 15 #include "chrome/browser/extensions/extension_util.h" |
15 #include "chrome/common/chrome_paths.h" | 16 #include "chrome/common/chrome_paths.h" |
16 #include "chrome/common/extensions/extension_constants.h" | 17 #include "chrome/common/extensions/extension_constants.h" |
17 #include "chrome/common/extensions/manifest_handlers/app_launch_info.h" | 18 #include "chrome/common/extensions/manifest_handlers/app_launch_info.h" |
18 #include "content/public/test/test_utils.h" | 19 #include "content/public/test/test_utils.h" |
19 #include "extensions/browser/extension_system.h" | 20 #include "extensions/browser/extension_system.h" |
20 #include "extensions/common/extension.h" | 21 #include "extensions/common/extension.h" |
21 #include "extensions/common/manifest_handlers/icons_handler.h" | 22 #include "extensions/common/manifest_handlers/icons_handler.h" |
22 #include "extensions/common/permissions/permission_set.h" | 23 #include "extensions/common/permissions/permission_set.h" |
23 #include "extensions/common/permissions/permissions_data.h" | 24 #include "extensions/common/permissions/permissions_data.h" |
24 #include "net/test/embedded_test_server/embedded_test_server.h" | 25 #include "net/test/embedded_test_server/embedded_test_server.h" |
25 #include "testing/gtest/include/gtest/gtest.h" | 26 #include "testing/gtest/include/gtest/gtest.h" |
26 | 27 |
| 28 using extensions::AppLaunchInfo; |
| 29 using extensions::Extension; |
| 30 using extensions::ExtensionRegistry; |
| 31 |
27 namespace { | 32 namespace { |
28 | 33 |
29 const char kAppName[] = "Test drive app"; | 34 const char kAppName[] = "Test drive app"; |
30 const char kAppUrl[] = "http://foobar.com/drive_app"; | 35 const char kAppUrl[] = "http://foobar.com/drive_app"; |
31 | 36 |
32 } // namespace | 37 } // namespace |
33 | 38 |
34 class DriveAppConverterTest : public ExtensionBrowserTest { | 39 class DriveAppConverterTest : public ExtensionBrowserTest { |
35 public: | 40 public: |
36 DriveAppConverterTest() {} | 41 DriveAppConverterTest() {} |
37 virtual ~DriveAppConverterTest() {} | 42 virtual ~DriveAppConverterTest() {} |
38 | 43 |
39 // ExtensionBrowserTest: | 44 // ExtensionBrowserTest: |
40 virtual void SetUpOnMainThread() OVERRIDE { | 45 virtual void SetUpOnMainThread() OVERRIDE { |
41 ExtensionBrowserTest::SetUpOnMainThread(); | 46 ExtensionBrowserTest::SetUpOnMainThread(); |
42 | 47 |
43 base::FilePath test_data_dir; | 48 base::FilePath test_data_dir; |
44 PathService::Get(chrome::DIR_TEST_DATA, &test_data_dir); | 49 PathService::Get(chrome::DIR_TEST_DATA, &test_data_dir); |
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
96 | 101 |
97 scoped_ptr<DriveAppConverter> converter_; | 102 scoped_ptr<DriveAppConverter> converter_; |
98 scoped_refptr<content::MessageLoopRunner> runner_; | 103 scoped_refptr<content::MessageLoopRunner> runner_; |
99 | 104 |
100 DISALLOW_COPY_AND_ASSIGN(DriveAppConverterTest); | 105 DISALLOW_COPY_AND_ASSIGN(DriveAppConverterTest); |
101 }; | 106 }; |
102 | 107 |
103 IN_PROC_BROWSER_TEST_F(DriveAppConverterTest, GoodApp) { | 108 IN_PROC_BROWSER_TEST_F(DriveAppConverterTest, GoodApp) { |
104 InstallAndWaitFinish(GetTestDriveApp()); | 109 InstallAndWaitFinish(GetTestDriveApp()); |
105 | 110 |
106 const extensions::Extension* app = converter()->app(); | 111 const Extension* app = converter()->extension(); |
107 ASSERT_TRUE(app != NULL); | 112 ASSERT_TRUE(app != NULL); |
108 EXPECT_EQ(kAppName, app->name()); | 113 EXPECT_EQ(kAppName, app->name()); |
109 EXPECT_TRUE(app->is_hosted_app()); | 114 EXPECT_TRUE(app->is_hosted_app()); |
110 EXPECT_TRUE(app->from_bookmark()); | 115 EXPECT_TRUE(app->from_bookmark()); |
111 EXPECT_EQ(GURL(kAppUrl), extensions::AppLaunchInfo::GetLaunchWebURL(app)); | 116 EXPECT_EQ(GURL(kAppUrl), AppLaunchInfo::GetLaunchWebURL(app)); |
112 EXPECT_EQ(extensions::LAUNCH_CONTAINER_TAB, | 117 EXPECT_EQ(extensions::LAUNCH_CONTAINER_TAB, |
113 extensions::AppLaunchInfo::GetLaunchContainer(app)); | 118 AppLaunchInfo::GetLaunchContainer(app)); |
114 EXPECT_EQ(0u, app->permissions_data()->active_permissions()->apis().size()); | 119 EXPECT_EQ(0u, app->permissions_data()->active_permissions()->apis().size()); |
115 EXPECT_EQ(1u, extensions::IconsInfo::GetIcons(app).map().size()); | 120 EXPECT_EQ(1u, extensions::IconsInfo::GetIcons(app).map().size()); |
116 | 121 |
117 const extensions::Extension* installed = | 122 const Extension* installed = extensions::ExtensionSystem::Get(profile()) |
118 extensions::ExtensionSystem::Get(profile()) | 123 ->extension_service() |
119 ->extension_service() | 124 ->GetInstalledExtension(app->id()); |
120 ->GetInstalledExtension(app->id()); | |
121 EXPECT_EQ(app, installed); | 125 EXPECT_EQ(app, installed); |
| 126 EXPECT_FALSE(extensions::util::ShouldSyncApp(app, profile())); |
122 } | 127 } |
123 | 128 |
124 IN_PROC_BROWSER_TEST_F(DriveAppConverterTest, BadApp) { | 129 IN_PROC_BROWSER_TEST_F(DriveAppConverterTest, BadApp) { |
125 drive::DriveAppInfo no_name = GetTestDriveApp(); | 130 drive::DriveAppInfo no_name = GetTestDriveApp(); |
126 no_name.app_name.clear(); | 131 no_name.app_name.clear(); |
127 InstallAndWaitFinish(no_name); | 132 InstallAndWaitFinish(no_name); |
128 EXPECT_TRUE(converter()->app() == NULL); | 133 EXPECT_TRUE(converter()->extension() == NULL); |
129 | 134 |
130 drive::DriveAppInfo no_url = GetTestDriveApp(); | 135 drive::DriveAppInfo no_url = GetTestDriveApp(); |
131 no_url.create_url = GURL(); | 136 no_url.create_url = GURL(); |
132 InstallAndWaitFinish(no_url); | 137 InstallAndWaitFinish(no_url); |
133 EXPECT_TRUE(converter()->app() == NULL); | 138 EXPECT_TRUE(converter()->extension() == NULL); |
134 } | 139 } |
135 | 140 |
136 IN_PROC_BROWSER_TEST_F(DriveAppConverterTest, InstallTwice) { | 141 IN_PROC_BROWSER_TEST_F(DriveAppConverterTest, InstallTwice) { |
137 InstallAndWaitFinish(GetTestDriveApp()); | 142 InstallAndWaitFinish(GetTestDriveApp()); |
138 const extensions::Extension* first_install = converter()->app(); | 143 const Extension* first_install = converter()->extension(); |
139 ASSERT_TRUE(first_install != NULL); | 144 ASSERT_TRUE(first_install != NULL); |
| 145 EXPECT_TRUE(converter()->is_new_install()); |
140 const std::string first_install_id = first_install->id(); | 146 const std::string first_install_id = first_install->id(); |
141 const base::Version first_install_version(first_install->VersionString()); | 147 const base::Version first_install_version(first_install->VersionString()); |
142 ASSERT_TRUE(first_install_version.IsValid()); | 148 ASSERT_TRUE(first_install_version.IsValid()); |
143 | 149 |
144 InstallAndWaitFinish(GetTestDriveApp()); | 150 InstallAndWaitFinish(GetTestDriveApp()); |
145 const extensions::Extension* second_install = converter()->app(); | 151 const Extension* second_install = converter()->extension(); |
146 ASSERT_TRUE(second_install != NULL); | 152 ASSERT_TRUE(second_install != NULL); |
| 153 EXPECT_FALSE(converter()->is_new_install()); |
147 | 154 |
148 // Two different app instances. | 155 // Two different app instances. |
149 ASSERT_NE(first_install, second_install); | 156 ASSERT_NE(first_install, second_install); |
150 EXPECT_EQ(first_install_id, second_install->id()); | 157 EXPECT_EQ(first_install_id, second_install->id()); |
151 EXPECT_GE(second_install->version()->CompareTo(first_install_version), 0); | 158 EXPECT_GE(second_install->version()->CompareTo(first_install_version), 0); |
152 } | 159 } |
OLD | NEW |