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_); |
-} |