summaryrefslogtreecommitdiffstats
path: root/components/arc/test/fake_arc_bridge_service.cc
diff options
context:
space:
mode:
authorkhmel <khmel@chromium.org>2015-12-04 08:24:47 -0800
committerCommit bot <commit-bot@chromium.org>2015-12-04 16:26:12 +0000
commitd7c5a3215244c5aa2165b6284bc8d19d5792af8c (patch)
tree04461d8498ad0c52fd98d50763138fc4f05793d7 /components/arc/test/fake_arc_bridge_service.cc
parentb4e689e5049a21c645f215e8a01c28c6fad22b7f (diff)
downloadchromium_src-d7c5a3215244c5aa2165b6284bc8d19d5792af8c.zip
chromium_src-d7c5a3215244c5aa2165b6284bc8d19d5792af8c.tar.gz
chromium_src-d7c5a3215244c5aa2165b6284bc8d19d5792af8c.tar.bz2
arc-app-launcher: Minimal support for ARC app launcher.
This provides extension to app_list model that manages arc apps. It includes preference based service that interacts with arc bridge and supports an arc app life cycle; app list model builder for arc apps; arc list item. legacy ExtensionAppModelBuilder and new ArcAppModelBuilder are refactored in order to inherit common code. BUG=558209 TEST=Build and deploy android, chrome, chromium CLs. Apps appear in chromium app launcher. Once clicked, app is started in Android window. TEST=unit_tests with enable_arc=1 Debug/Release Review URL: https://codereview.chromium.org/1413153007 Cr-Commit-Position: refs/heads/master@{#363220}
Diffstat (limited to 'components/arc/test/fake_arc_bridge_service.cc')
-rw-r--r--components/arc/test/fake_arc_bridge_service.cc145
1 files changed, 145 insertions, 0 deletions
diff --git a/components/arc/test/fake_arc_bridge_service.cc b/components/arc/test/fake_arc_bridge_service.cc
new file mode 100644
index 0000000..ace3acf
--- /dev/null
+++ b/components/arc/test/fake_arc_bridge_service.cc
@@ -0,0 +1,145 @@
+// Copyright 2015 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "components/arc/test/fake_arc_bridge_service.h"
+
+#include "base/files/file_path.h"
+#include "base/files/file_util.h"
+#include "base/path_service.h"
+
+namespace arc {
+
+FakeArcBridgeService::FakeArcBridgeService() {
+}
+
+FakeArcBridgeService::~FakeArcBridgeService() {
+ if (state() != State::STOPPED) {
+ SetState(State::STOPPED);
+ }
+}
+
+void FakeArcBridgeService::DetectAvailability() {
+}
+
+void FakeArcBridgeService::HandleStartup() {
+}
+
+void FakeArcBridgeService::Shutdown() {
+}
+
+bool FakeArcBridgeService::RegisterInputDevice(const std::string& name,
+ const std::string& device_type,
+ base::ScopedFD fd) {
+ return true;
+}
+
+bool FakeArcBridgeService::SendNotificationEventToAndroid(
+ const std::string& key,
+ ArcNotificationEvent event) {
+ return true;
+}
+
+bool FakeArcBridgeService::RefreshAppList() {
+ ++refresh_app_list_count_;
+ return true;
+}
+
+bool FakeArcBridgeService::LaunchApp(const std::string& package,
+ const std::string& activity) {
+ launch_requests_.push_back(new Request(package, activity));
+ return true;
+}
+
+bool FakeArcBridgeService::RequestAppIcon(const std::string& package,
+ const std::string& activity,
+ ScaleFactor scale_factor) {
+ icon_requests_.push_back(new IconRequest(package, activity, scale_factor));
+ return true;
+}
+
+void FakeArcBridgeService::SetReady() {
+ SetState(State::READY);
+}
+
+void FakeArcBridgeService::SetStopped() {
+ SetState(State::STOPPED);
+}
+
+bool FakeArcBridgeService::HasObserver(const Observer* observer) {
+ return observer_list().HasObserver(observer);
+}
+
+bool FakeArcBridgeService::HasAppObserver(const AppObserver* observer) {
+ return app_observer_list().HasObserver(observer);
+}
+
+void FakeArcBridgeService::SendRefreshAppList(
+ const std::vector<AppInfo>& apps) {
+ FOR_EACH_OBSERVER(AppObserver, app_observer_list(), OnAppListRefreshed(apps));
+}
+
+bool FakeArcBridgeService::GenerateAndSendIcon(
+ const AppInfo& app,
+ ScaleFactor scale_factor,
+ std::string* png_data_as_string) {
+ CHECK(png_data_as_string != nullptr);
+ std::string icon_file_name;
+ switch(scale_factor) {
+ case SCALE_FACTOR_100P:
+ icon_file_name = "icon_100p.png";
+ break;
+ case SCALE_FACTOR_125P:
+ icon_file_name = "icon_125p.png";
+ break;
+ case SCALE_FACTOR_133P:
+ icon_file_name = "icon_133p.png";
+ break;
+ case SCALE_FACTOR_140P:
+ icon_file_name = "icon_140p.png";
+ break;
+ case SCALE_FACTOR_150P:
+ icon_file_name = "icon_150p.png";
+ break;
+ case SCALE_FACTOR_180P:
+ icon_file_name = "icon_180p.png";
+ break;
+ case SCALE_FACTOR_200P:
+ icon_file_name = "icon_200p.png";
+ break;
+ case SCALE_FACTOR_250P:
+ icon_file_name = "icon_250p.png";
+ break;
+ case SCALE_FACTOR_300P:
+ icon_file_name = "icon_300p.png";
+ break;
+ default:
+ NOTREACHED();
+ return false;
+ }
+
+ base::FilePath base_path;
+ CHECK(PathService::Get(base::DIR_SOURCE_ROOT, &base_path));
+ base::FilePath icon_file_path = base_path
+ .AppendASCII("components")
+ .AppendASCII("test")
+ .AppendASCII("data")
+ .AppendASCII("arc")
+ .AppendASCII(icon_file_name);
+ CHECK(base::PathExists(icon_file_path));
+ CHECK(base::ReadFileToString(icon_file_path, png_data_as_string));
+
+ std::vector<uint8_t> png_data(png_data_as_string->begin(),
+ png_data_as_string->end());
+
+ FOR_EACH_OBSERVER(AppObserver,
+ app_observer_list(),
+ OnAppIcon(app.package,
+ app.activity,
+ scale_factor,
+ png_data));
+
+ return true;
+}
+
+} // namespace arc