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

Unified Diff: chrome/browser/devtools/device/usb/devtools_android_bridge_browsertest.cc

Issue 315923003: DevTools: Tests for DevToolsAndroidBridge device polling (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: overrides Created 6 years, 6 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/devtools/device/usb/android_usb_browsertest.cc ('k') | chrome/chrome_tests.gypi » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/devtools/device/usb/devtools_android_bridge_browsertest.cc
diff --git a/chrome/browser/devtools/device/usb/devtools_android_bridge_browsertest.cc b/chrome/browser/devtools/device/usb/devtools_android_bridge_browsertest.cc
deleted file mode 100644
index 94532318e2256eecc62589b904e9d3066b4deb6d..0000000000000000000000000000000000000000
--- a/chrome/browser/devtools/device/usb/devtools_android_bridge_browsertest.cc
+++ /dev/null
@@ -1,251 +0,0 @@
-// Copyright 2014 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 <algorithm>
-
-#include "base/message_loop/message_loop.h"
-#include "chrome/browser/devtools/device/devtools_android_bridge.h"
-#include "chrome/browser/ui/browser.h"
-#include "chrome/test/base/in_process_browser_test.h"
-#include "components/usb_service/usb_device.h"
-#include "components/usb_service/usb_service.h"
-#include "content/public/browser/browser_thread.h"
-#include "content/public/test/test_utils.h"
-#include "testing/gmock/include/gmock/gmock.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-using testing::_;
-using content::BrowserThread;
-using usb_service::UsbService;
-using usb_service::UsbDevice;
-
-class DevToolsAndroidBridgeWarmUp
- : public DevToolsAndroidBridge::DeviceCountListener {
- public:
- DevToolsAndroidBridgeWarmUp(base::Closure closure,
- scoped_refptr<DevToolsAndroidBridge> adb_bridge)
- : closure_(closure), adb_bridge_(adb_bridge) {}
-
- virtual void DeviceCountChanged(int count) OVERRIDE {
- adb_bridge_->RemoveDeviceCountListener(this);
- closure_.Run();
- }
-
- base::Closure closure_;
- scoped_refptr<DevToolsAndroidBridge> adb_bridge_;
-};
-
-class MockCountListener : public DevToolsAndroidBridge::DeviceCountListener {
- public:
- explicit MockCountListener(scoped_refptr<DevToolsAndroidBridge> adb_bridge)
- : adb_bridge_(adb_bridge),
- reposts_left_(10),
- invoked_(0) {
- }
-
- virtual void DeviceCountChanged(int count) OVERRIDE {
- ++invoked_;
- adb_bridge_->RemoveDeviceCountListener(this);
- Shutdown();
- }
-
- void Shutdown() {
- ShutdownOnUIThread();
- };
-
- void ShutdownOnUIThread() {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- if (reposts_left_-- == 0) {
- base::MessageLoop::current()->Quit();
- } else {
- BrowserThread::PostTask(
- BrowserThread::FILE,
- FROM_HERE,
- base::Bind(&MockCountListener::ShutdownOnFileThread,
- base::Unretained(this)));
- }
- }
-
- void ShutdownOnFileThread() {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE));
- BrowserThread::PostTask(BrowserThread::UI,
- FROM_HERE,
- base::Bind(&MockCountListener::ShutdownOnUIThread,
- base::Unretained(this)));
- }
-
- scoped_refptr<DevToolsAndroidBridge> adb_bridge_;
- int reposts_left_;
- int invoked_;
-};
-
-class MockCountListenerWithReAdd : public MockCountListener {
- public:
- explicit MockCountListenerWithReAdd(
- scoped_refptr<DevToolsAndroidBridge> adb_bridge)
- : MockCountListener(adb_bridge),
- readd_count_(2) {
- }
-
- virtual void DeviceCountChanged(int count) OVERRIDE {
- ++invoked_;
- adb_bridge_->RemoveDeviceCountListener(this);
- if (readd_count_ > 0) {
- readd_count_--;
- adb_bridge_->AddDeviceCountListener(this);
- adb_bridge_->RemoveDeviceCountListener(this);
- adb_bridge_->AddDeviceCountListener(this);
- } else {
- Shutdown();
- }
- }
-
- int readd_count_;
-};
-
-class MockCountListenerWithReAddWhileQueued : public MockCountListener {
- public:
- MockCountListenerWithReAddWhileQueued(
- scoped_refptr<DevToolsAndroidBridge> adb_bridge)
- : MockCountListener(adb_bridge),
- readded_(false) {
- }
-
- virtual void DeviceCountChanged(int count) OVERRIDE {
- ++invoked_;
- if (!readded_) {
- readded_ = true;
- base::MessageLoop::current()->PostTask(
- FROM_HERE,
- base::Bind(&MockCountListenerWithReAddWhileQueued::ReAdd,
- base::Unretained(this)));
- } else {
- adb_bridge_->RemoveDeviceCountListener(this);
- Shutdown();
- }
- }
-
- void ReAdd() {
- adb_bridge_->RemoveDeviceCountListener(this);
- adb_bridge_->AddDeviceCountListener(this);
- }
-
- bool readded_;
-};
-
-class MockUsbService : public UsbService {
- public:
- MOCK_METHOD1(GetDeviceById, scoped_refptr<UsbDevice>(uint32 unique_id));
- virtual void GetDevices(
- std::vector<scoped_refptr<UsbDevice> >* devices) OVERRIDE {}
-};
-
-class DevtoolsAndroidBridgeBrowserTest : public InProcessBrowserTest {
- protected:
- DevtoolsAndroidBridgeBrowserTest()
- : scheduler_invoked_(0) {
- }
-
- virtual void SetUpOnMainThread() OVERRIDE {
- scoped_refptr<content::MessageLoopRunner> runner =
- new content::MessageLoopRunner;
-
- BrowserThread::PostTaskAndReply(
- BrowserThread::FILE,
- FROM_HERE,
- base::Bind(&DevtoolsAndroidBridgeBrowserTest::SetUpService, this),
- runner->QuitClosure());
- runner->Run();
-
- adb_bridge_ =
- DevToolsAndroidBridge::Factory::GetForProfile(browser()->profile());
- DCHECK(adb_bridge_);
- adb_bridge_->set_task_scheduler_for_test(base::Bind(
- &DevtoolsAndroidBridgeBrowserTest::ScheduleDeviceCountRequest, this));
-
- runner = new content::MessageLoopRunner;
-
- DevToolsAndroidBridgeWarmUp warmup(runner->QuitClosure(), adb_bridge_);
- adb_bridge_->AddDeviceCountListener(&warmup);
- runner->Run();
-
- runner_ = new content::MessageLoopRunner;
- }
-
- void ScheduleDeviceCountRequest(const base::Closure& request) {
- DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
- scheduler_invoked_++;
- BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, request);
- }
-
- void SetUpService() {
- service_ = new MockUsbService();
- UsbService::SetInstanceForTest(service_);
- }
-
- virtual void CleanUpOnMainThread() OVERRIDE {
- scoped_refptr<content::MessageLoopRunner> runner =
- new content::MessageLoopRunner;
- UsbService* service = NULL;
- BrowserThread::PostTaskAndReply(
- BrowserThread::FILE,
- FROM_HERE,
- base::Bind(&UsbService::SetInstanceForTest, service),
- runner->QuitClosure());
- runner->Run();
- }
-
- MockUsbService* service_;
- int scheduler_invoked_;
- scoped_refptr<content::MessageLoopRunner> runner_;
- scoped_refptr<DevToolsAndroidBridge> adb_bridge_;
-};
-
-IN_PROC_BROWSER_TEST_F(DevtoolsAndroidBridgeBrowserTest,
- TestNoMultipleCallsRemoveInCallback) {
- scoped_ptr<MockCountListener> listener(new MockCountListener(adb_bridge_));
-
- adb_bridge_->AddDeviceCountListener(listener.get());
-
- runner_->Run();
- EXPECT_EQ(1, listener->invoked_);
- EXPECT_EQ(listener->invoked_ - 1, scheduler_invoked_);
-}
-
-IN_PROC_BROWSER_TEST_F(DevtoolsAndroidBridgeBrowserTest,
- TestNoMultipleCallsRemoveAddInCallback) {
- scoped_ptr<MockCountListener> listener(
- new MockCountListenerWithReAdd(adb_bridge_));
-
- adb_bridge_->AddDeviceCountListener(listener.get());
-
- runner_->Run();
- EXPECT_EQ(3, listener->invoked_);
- EXPECT_EQ(listener->invoked_ - 1, scheduler_invoked_);
-}
-
-IN_PROC_BROWSER_TEST_F(DevtoolsAndroidBridgeBrowserTest,
- TestNoMultipleCallsRemoveAddOnStart) {
- scoped_ptr<MockCountListener> listener(new MockCountListener(adb_bridge_));
-
- adb_bridge_->AddDeviceCountListener(listener.get());
- adb_bridge_->RemoveDeviceCountListener(listener.get());
- adb_bridge_->AddDeviceCountListener(listener.get());
-
- runner_->Run();
- EXPECT_EQ(1, listener->invoked_);
- EXPECT_EQ(listener->invoked_ - 1, scheduler_invoked_);
-}
-
-IN_PROC_BROWSER_TEST_F(DevtoolsAndroidBridgeBrowserTest,
- TestNoMultipleCallsRemoveAddWhileQueued) {
- scoped_ptr<MockCountListener> listener(
- new MockCountListenerWithReAddWhileQueued(adb_bridge_));
-
- adb_bridge_->AddDeviceCountListener(listener.get());
-
- runner_->Run();
- EXPECT_EQ(2, listener->invoked_);
- EXPECT_EQ(listener->invoked_ - 1, scheduler_invoked_);
-}
« no previous file with comments | « chrome/browser/devtools/device/usb/android_usb_browsertest.cc ('k') | chrome/chrome_tests.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698