Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(561)

Side by Side Diff: chrome/browser/chromeos/app_mode/kiosk_app_manager_browsertest.cc

Issue 300843013: Install and launch kiosk app from cached crx file at start up. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Remove the useless offline_enabled_app_profile testing data. Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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/chromeos/app_mode/kiosk_app_manager.h" 5 #include "chrome/browser/chromeos/app_mode/kiosk_app_manager.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/file_util.h" 8 #include "base/file_util.h"
9 #include "base/files/scoped_temp_dir.h" 9 #include "base/files/scoped_temp_dir.h"
10 #include "base/message_loop/message_loop.h" 10 #include "base/message_loop/message_loop.h"
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
94 base::FilePath(), 94 base::FilePath(),
95 extensions::Manifest::INTERNAL, 95 extensions::Manifest::INTERNAL,
96 value, 96 value,
97 extensions::Extension::WAS_INSTALLED_BY_DEFAULT, 97 extensions::Extension::WAS_INSTALLED_BY_DEFAULT,
98 id, 98 id,
99 &err); 99 &err);
100 EXPECT_EQ(err, ""); 100 EXPECT_EQ(err, "");
101 return app; 101 return app;
102 } 102 }
103 103
104 class TestKioskAppManagerObserver : public KioskAppManagerObserver {
105 public:
106 explicit TestKioskAppManagerObserver(KioskAppManager* manager)
107 : manager_(manager),
108 data_changed_count_(0),
109 load_failure_count_(0) {
110 manager_->AddObserver(this);
111 }
112 virtual ~TestKioskAppManagerObserver() {
113 manager_->RemoveObserver(this);
114 }
115
116 void Reset() {
117 data_changed_count_ = 0;
118 load_failure_count_ = 0;
119 }
120
121 int data_changed_count() const { return data_changed_count_; }
122 int load_failure_count() const { return load_failure_count_; }
123
124 private:
125 // KioskAppManagerObserver overrides:
126 virtual void OnKioskAppDataChanged(const std::string& app_id) OVERRIDE {
127 ++data_changed_count_;
128 }
129 virtual void OnKioskAppDataLoadFailure(const std::string& app_id) OVERRIDE {
130 ++load_failure_count_;
131 }
132
133 KioskAppManager* manager_;
134 int data_changed_count_;
135 int load_failure_count_;
136
137 DISALLOW_COPY_AND_ASSIGN(TestKioskAppManagerObserver);
138 };
139
140 class AppDataLoadWaiter : public KioskAppManagerObserver { 104 class AppDataLoadWaiter : public KioskAppManagerObserver {
141 public: 105 public:
142 AppDataLoadWaiter(KioskAppManager* manager, int data_loaded_threshold) 106 AppDataLoadWaiter(KioskAppManager* manager, int data_loaded_threshold)
143 : runner_(NULL), 107 : runner_(NULL),
144 manager_(manager), 108 manager_(manager),
145 loaded_(false), 109 loaded_(false),
146 quit_(false), 110 quit_(false),
147 data_change_count_(0), 111 data_change_count_(0),
148 data_loaded_threshold_(data_loaded_threshold) { 112 data_loaded_threshold_(data_loaded_threshold) {
149 manager_->AddObserver(this); 113 manager_->AddObserver(this);
(...skipping 22 matching lines...) Expand all
172 runner_->Quit(); 136 runner_->Quit();
173 } 137 }
174 138
175 virtual void OnKioskAppDataLoadFailure(const std::string& app_id) OVERRIDE { 139 virtual void OnKioskAppDataLoadFailure(const std::string& app_id) OVERRIDE {
176 loaded_ = false; 140 loaded_ = false;
177 quit_ = true; 141 quit_ = true;
178 if (runner_) 142 if (runner_)
179 runner_->Quit(); 143 runner_->Quit();
180 } 144 }
181 145
146 virtual void OnKioskExtensionLoadedInCache(
147 const std::string& app_id) OVERRIDE {
148 OnKioskAppDataChanged(app_id);
149 }
150
151 virtual void OnKioskExtensionDownloadFailed(
152 const std::string& app_id) OVERRIDE {
153 OnKioskAppDataLoadFailure(app_id);
154 }
155
182 scoped_refptr<content::MessageLoopRunner> runner_; 156 scoped_refptr<content::MessageLoopRunner> runner_;
183 KioskAppManager* manager_; 157 KioskAppManager* manager_;
184 bool loaded_; 158 bool loaded_;
185 bool quit_; 159 bool quit_;
186 int data_change_count_; 160 int data_change_count_;
187 int data_loaded_threshold_; 161 int data_loaded_threshold_;
188 162
189 DISALLOW_COPY_AND_ASSIGN(AppDataLoadWaiter); 163 DISALLOW_COPY_AND_ASSIGN(AppDataLoadWaiter);
190 }; 164 };
191 165
(...skipping 285 matching lines...) Expand 10 before | Expand all | Expand 10 after
477 451
478 waiter.Wait(); 452 waiter.Wait();
479 EXPECT_TRUE(waiter.loaded()); 453 EXPECT_TRUE(waiter.loaded());
480 454
481 manager()->GetApps(&apps); 455 manager()->GetApps(&apps);
482 EXPECT_EQ(1u, apps.size()); 456 EXPECT_EQ(1u, apps.size());
483 EXPECT_EQ("app_1", apps[0].app_id); 457 EXPECT_EQ("app_1", apps[0].app_id);
484 EXPECT_EQ("Updated App1 Name", apps[0].name); 458 EXPECT_EQ("Updated App1 Name", apps[0].name);
485 } 459 }
486 460
487 // Test is flaky. See http://crbug.com/379769 for details. 461 IN_PROC_BROWSER_TEST_F(KioskAppManagerTest, BadApp) {
488 IN_PROC_BROWSER_TEST_F(KioskAppManagerTest, DISABLED_BadApp) {
489 AppDataLoadWaiter waiter(manager(), 2); 462 AppDataLoadWaiter waiter(manager(), 2);
490 manager()->AddApp("unknown_app"); 463 manager()->AddApp("unknown_app");
491 TestKioskAppManagerObserver observer(manager());
492 waiter.Wait(); 464 waiter.Wait();
493 EXPECT_FALSE(waiter.loaded()); 465 EXPECT_FALSE(waiter.loaded());
494
495 EXPECT_EQ("", GetAppIds()); 466 EXPECT_EQ("", GetAppIds());
496 EXPECT_EQ(1, observer.load_failure_count());
497 } 467 }
498 468
499 IN_PROC_BROWSER_TEST_F(KioskAppManagerTest, GoodApp) { 469 IN_PROC_BROWSER_TEST_F(KioskAppManagerTest, GoodApp) {
500 // Webstore data json is in 470 // Webstore data json is in
501 // chrome/test/data/chromeos/app_mode/webstore/inlineinstall/detail/app_1 471 // chrome/test/data/chromeos/app_mode/webstore/inlineinstall/detail/app_1
502 fake_cws()->SetNoUpdate("app_1"); 472 fake_cws()->SetNoUpdate("app_1");
503 AppDataLoadWaiter waiter(manager(), 2); 473 AppDataLoadWaiter waiter(manager(), 2);
504 manager()->AddApp("app_1"); 474 manager()->AddApp("app_1");
505 waiter.Wait(); 475 waiter.Wait();
506 EXPECT_TRUE(waiter.loaded()); 476 EXPECT_TRUE(waiter.loaded());
(...skipping 20 matching lines...) Expand all
527 497
528 base::FilePath expected_icon_path; 498 base::FilePath expected_icon_path;
529 ASSERT_TRUE(PathService::Get(chrome::DIR_USER_DATA, &expected_icon_path)); 499 ASSERT_TRUE(PathService::Get(chrome::DIR_USER_DATA, &expected_icon_path));
530 expected_icon_path = expected_icon_path. 500 expected_icon_path = expected_icon_path.
531 AppendASCII(KioskAppManager::kIconCacheDir). 501 AppendASCII(KioskAppManager::kIconCacheDir).
532 AppendASCII(apps[0].app_id).AddExtension(".png"); 502 AppendASCII(apps[0].app_id).AddExtension(".png");
533 EXPECT_EQ(expected_icon_path.value(), icon_path_string); 503 EXPECT_EQ(expected_icon_path.value(), icon_path_string);
534 } 504 }
535 505
536 IN_PROC_BROWSER_TEST_F(KioskAppManagerTest, DownloadNewApp) { 506 IN_PROC_BROWSER_TEST_F(KioskAppManagerTest, DownloadNewApp) {
537 base::FilePath crx_path;
538 RunAddNewAppTest(kTestLocalFsKioskApp, "1.0.0", kTestLocalFsKioskAppName); 507 RunAddNewAppTest(kTestLocalFsKioskApp, "1.0.0", kTestLocalFsKioskAppName);
539 } 508 }
540 509
541 IN_PROC_BROWSER_TEST_F(KioskAppManagerTest, RemoveApp) { 510 IN_PROC_BROWSER_TEST_F(KioskAppManagerTest, RemoveApp) {
542 // Add a new app. 511 // Add a new app.
543 RunAddNewAppTest(kTestLocalFsKioskApp, "1.0.0", kTestLocalFsKioskAppName); 512 RunAddNewAppTest(kTestLocalFsKioskApp, "1.0.0", kTestLocalFsKioskAppName);
544 KioskAppManager::Apps apps; 513 KioskAppManager::Apps apps;
545 manager()->GetApps(&apps); 514 manager()->GetApps(&apps);
546 ASSERT_EQ(1u, apps.size()); 515 ASSERT_EQ(1u, apps.size());
547 base::FilePath crx_path; 516 base::FilePath crx_path;
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
714 manager()->GetConsumerKioskAutoLaunchStatus( 683 manager()->GetConsumerKioskAutoLaunchStatus(
715 base::Bind(&ConsumerKioskAutoLaunchStatusCheck, 684 base::Bind(&ConsumerKioskAutoLaunchStatusCheck,
716 status.get(), 685 status.get(),
717 runner3->QuitClosure())); 686 runner3->QuitClosure()));
718 runner3->Run(); 687 runner3->Run();
719 EXPECT_EQ(*status.get(), 688 EXPECT_EQ(*status.get(),
720 KioskAppManager::CONSUMER_KIOSK_AUTO_LAUNCH_DISABLED); 689 KioskAppManager::CONSUMER_KIOSK_AUTO_LAUNCH_DISABLED);
721 } 690 }
722 691
723 } // namespace chromeos 692 } // namespace chromeos
OLDNEW
« no previous file with comments | « chrome/browser/chromeos/app_mode/kiosk_app_manager.cc ('k') | chrome/browser/chromeos/app_mode/kiosk_app_manager_observer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698