Index: content/browser/battery_status/battery_status_browsertest.cc |
diff --git a/content/browser/battery_status/battery_status_browsertest.cc b/content/browser/battery_status/battery_status_browsertest.cc |
index 70d5a588f84c6bbbe80abe334fbf485376ac0acb..880e62a8bdecabe063cb7fe4031393a4b5094a4a 100644 |
--- a/content/browser/battery_status/battery_status_browsertest.cc |
+++ b/content/browser/battery_status/battery_status_browsertest.cc |
@@ -4,7 +4,8 @@ |
#include "base/command_line.h" |
#include "base/synchronization/waitable_event.h" |
-#include "base/thread_task_runner_handle.h" |
+#include "content/browser/battery_status/battery_status_manager.h" |
+#include "content/browser/battery_status/battery_status_service.h" |
#include "content/public/browser/web_contents.h" |
#include "content/public/common/content_switches.h" |
#include "content/public/test/content_browser_test.h" |
@@ -12,17 +13,15 @@ |
#include "content/public/test/test_navigation_observer.h" |
#include "content/public/test/test_utils.h" |
#include "content/shell/browser/shell.h" |
-#include "device/battery/battery_status_manager.h" |
-#include "device/battery/battery_status_service.h" |
namespace content { |
namespace { |
-class FakeBatteryManager : public device::BatteryStatusManager { |
+class FakeBatteryManager : public BatteryStatusManager { |
public: |
explicit FakeBatteryManager( |
- const device::BatteryStatusService::BatteryUpdateCallback& callback) |
+ const BatteryStatusService::BatteryUpdateCallback& callback) |
: callback_(callback), battery_status_available_(true), started_(false) {} |
~FakeBatteryManager() override {} |
@@ -37,13 +36,10 @@ |
void StopListeningBatteryChange() override {} |
void InvokeUpdateCallback() { |
- // Invoke asynchronously to mimic the OS-specific battery managers. |
- base::ThreadTaskRunnerHandle::Get()->PostTask( |
- FROM_HERE, |
- base::Bind(callback_, status_)); |
+ callback_.Run(status_); |
} |
- void set_battery_status(const device::BatteryStatus& status) { |
+ void set_battery_status(const blink::WebBatteryStatus& status) { |
status_ = status; |
} |
@@ -56,10 +52,10 @@ |
} |
private: |
- device::BatteryStatusService::BatteryUpdateCallback callback_; |
+ BatteryStatusService::BatteryUpdateCallback callback_; |
bool battery_status_available_; |
bool started_; |
- device::BatteryStatus status_; |
+ blink::WebBatteryStatus status_; |
DISALLOW_COPY_AND_ASSIGN(FakeBatteryManager); |
}; |
@@ -67,8 +63,9 @@ |
class BatteryStatusBrowserTest : public ContentBrowserTest { |
public: |
BatteryStatusBrowserTest() |
- : battery_manager_(NULL), |
- battery_service_(NULL) { |
+ : battery_manager_(0), |
+ battery_service_(0), |
+ io_loop_finished_event_(false, false) { |
} |
void SetUpCommandLine(CommandLine* command_line) override { |
@@ -77,22 +74,22 @@ |
} |
void SetUpOnMainThread() override { |
- battery_service_ = device::BatteryStatusService::GetInstance(); |
+ BrowserThread::PostTask( |
+ BrowserThread::IO, FROM_HERE, |
+ base::Bind(&BatteryStatusBrowserTest::SetUpOnIOThread, this)); |
+ io_loop_finished_event_.Wait(); |
+ } |
- // We keep a raw pointer to the FakeBatteryManager, which we expect to |
- // remain valid for the lifetime of the BatteryStatusService. |
- scoped_ptr<FakeBatteryManager> battery_manager(new FakeBatteryManager( |
- battery_service_->GetUpdateCallbackForTesting())); |
- battery_manager_ = battery_manager.get(); |
- |
- battery_service_->SetBatteryManagerForTesting( |
- battery_manager.Pass()); |
+ void SetUpOnIOThread() { |
+ battery_service_ = BatteryStatusService::GetInstance(); |
+ battery_manager_ = new FakeBatteryManager( |
+ battery_service_->GetUpdateCallbackForTesting()); |
+ battery_service_->SetBatteryManagerForTesting(battery_manager_); |
+ io_loop_finished_event_.Signal(); |
} |
virtual void TearDown() override { |
- battery_service_->SetBatteryManagerForTesting( |
- scoped_ptr<device::BatteryStatusManager>()); |
- battery_manager_ = NULL; |
+ battery_service_->SetBatteryManagerForTesting(0); |
} |
FakeBatteryManager* battery_manager() { |
@@ -101,7 +98,8 @@ |
private: |
FakeBatteryManager* battery_manager_; |
- device::BatteryStatusService* battery_service_; |
+ BatteryStatusService* battery_service_; |
+ base::WaitableEvent io_loop_finished_event_; |
DISALLOW_COPY_AND_ASSIGN(BatteryStatusBrowserTest); |
}; |
@@ -122,10 +120,10 @@ |
// Set the fake battery manager to return predefined battery status values. |
// From JavaScript request a promise for the battery status information and |
// once it resolves check the values and navigate to #pass. |
- device::BatteryStatus status; |
+ blink::WebBatteryStatus status; |
status.charging = true; |
- status.charging_time = 100; |
- status.discharging_time = std::numeric_limits<double>::infinity(); |
+ status.chargingTime = 100; |
+ status.dischargingTime = std::numeric_limits<double>::infinity(); |
status.level = 0.5; |
battery_manager()->set_battery_status(status); |
@@ -143,7 +141,7 @@ |
// Once it resolves add an event listener for battery level change. Set |
// battery level to 0.6 and invoke update. Check that the event listener |
// is invoked with the correct value for level and navigate to #pass. |
- device::BatteryStatus status; |
+ blink::WebBatteryStatus status; |
battery_manager()->set_battery_status(status); |
TestNavigationObserver same_tab_observer(shell()->web_contents(), 2); |