| Index: components/arc/test/fake_arc_bridge_service.cc
|
| 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 0000000000000000000000000000000000000000..dfc10ce9e9e5a2e3b33918f563d0369c4b0db531
|
| --- /dev/null
|
| +++ b/components/arc/test/fake_arc_bridge_service.cc
|
| @@ -0,0 +1,120 @@
|
| +// 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 "chrome/browser/ui/app_list/arc_app_list_prefs.h"
|
| +#include "ui/app_list/app_list_constants.h"
|
| +#include "ui/gfx/codec/png_codec.h"
|
| +
|
| +FakeArcBridgeService::FakeArcBridgeService()
|
| + : refresh_apps_count_(0) {
|
| +}
|
| +
|
| +FakeArcBridgeService::~FakeArcBridgeService() {
|
| + if (state() != State::STOPPED) {
|
| + SetState(State::STOPPED);
|
| + }
|
| +}
|
| +
|
| +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::RefreshApps() {
|
| + ++refresh_apps_count_;
|
| + return true;
|
| +}
|
| +
|
| +bool FakeArcBridgeService::LaunchApp(const std::string& package,
|
| + const std::string& activity) {
|
| + launch_requests_.push_back(ArcAppListPrefs::GetAppId(package, activity));
|
| + return true;
|
| +}
|
| +
|
| +bool FakeArcBridgeService::RequestIcon(const std::string& package,
|
| + const std::string& activity,
|
| + int scale_factor) {
|
| + IconRequest request;
|
| + request.package = package;
|
| + request.activity = activity;
|
| + request.scale_factor = scale_factor;
|
| + icon_requests_.push_back(request);
|
| + return true;
|
| +}
|
| +
|
| +void FakeArcBridgeService::SetReady() {
|
| + SetState(State::READY);
|
| +}
|
| +
|
| +void FakeArcBridgeService::SetStopped() {
|
| + SetState(State::STOPPED);
|
| +}
|
| +
|
| +bool FakeArcBridgeService::HasObserver(const Observer* observer) const {
|
| + return observer_list_.HasObserver(observer);
|
| +}
|
| +
|
| +void FakeArcBridgeService::SendRefreshApps(size_t size, const AppInfo* apps) {
|
| + std::vector<std::string> names(size);
|
| + std::vector<std::string> packages(size);
|
| + std::vector<std::string> activities(size);
|
| + for (size_t i = 0; i < size; ++i) {
|
| + names[i] = apps[i].name;
|
| + packages[i] = apps[i].package;
|
| + activities[i] = apps[i].activity;
|
| + }
|
| +
|
| + FOR_EACH_OBSERVER(Observer,
|
| + observer_list_,
|
| + OnAppsRefreshed(names, packages, activities));
|
| +}
|
| +
|
| +bool FakeArcBridgeService::GenerateAndSendIcon(
|
| + const AppInfo& app,
|
| + ui::ScaleFactor scale_factor,
|
| + std::vector<unsigned char>* png_data) {
|
| + const float scale = ui::GetScaleForScaleFactor(scale_factor);
|
| + const int icon_size = static_cast<int>(
|
| + app_list::kGridIconDimension * scale + 0.5f);
|
| +
|
| + const int row_width = icon_size * 4;
|
| + const int data_size = icon_size * row_width;
|
| +
|
| + // Generate random content.
|
| + std::vector<unsigned char> pixels(data_size);
|
| + for (int i = 0; i < icon_size; ++i) {
|
| + memset(&pixels[i * row_width], rand(), row_width);
|
| + }
|
| +
|
| + if (!gfx::PNGCodec::Encode(&pixels[0],
|
| + gfx::PNGCodec::FORMAT_RGBA,
|
| + gfx::Size(icon_size, icon_size),
|
| + row_width,
|
| + false,
|
| + std::vector<gfx::PNGCodec::Comment>(),
|
| + png_data)) {
|
| + return false;
|
| + }
|
| +
|
| + FOR_EACH_OBSERVER(Observer,
|
| + observer_list_,
|
| + OnAppIcon(app.package,
|
| + app.activity,
|
| + scale_factor,
|
| + *png_data));
|
| + return true;
|
| +}
|
| +
|
| +std::string FakeArcBridgeService::AppInfo::id() const {
|
| + return ArcAppListPrefs::GetAppId(package, activity);
|
| +}
|
|
|