#include "base/logging.h"
#include "base/memory/scoped_ptr.h"
#include "content/common/battery_status_messages.h"
+#include "content/public/test/mock_render_thread.h"
#include "content/public/test/test_utils.h"
#include "testing/gtest/include/gtest/gtest.h"
#include "third_party/WebKit/public/platform/WebBatteryStatusListener.h"
DISALLOW_COPY_AND_ASSIGN(MockBatteryStatusListener);
};
-class BatteryStatusDispatcherForTesting : public BatteryStatusDispatcher {
- public:
- BatteryStatusDispatcherForTesting()
- : BatteryStatusDispatcher(0),
- start_invoked_(false),
- stop_invoked_(false) { }
-
- virtual ~BatteryStatusDispatcherForTesting() { }
-
- bool start_invoked() const { return start_invoked_; }
- bool stop_invoked() const { return stop_invoked_; }
-
- protected:
- virtual bool Start() OVERRIDE {
- start_invoked_ = true;
- return true;
- }
-
- virtual bool Stop() OVERRIDE {
- stop_invoked_ = true;
- return true;
- }
-
+class BatteryStatusDispatcherTest : public testing::Test {
private:
- bool start_invoked_;
- bool stop_invoked_;
-
- DISALLOW_COPY_AND_ASSIGN(BatteryStatusDispatcherForTesting);
+ // We need to create a MockRenderThread so RenderThread::Get() doesn't return
+ // null.
+ MockRenderThread render_thread_;
};
-TEST(BatteryStatusDispatcherTest, Start) {
- MockBatteryStatusListener listener;
- BatteryStatusDispatcherForTesting dispatcher;
-
- EXPECT_FALSE(dispatcher.start_invoked());
- EXPECT_FALSE(dispatcher.stop_invoked());
-
- dispatcher.SetListener(&listener);
- EXPECT_TRUE(dispatcher.start_invoked());
-
- dispatcher.SetListener(0);
- EXPECT_TRUE(dispatcher.stop_invoked());
-}
-
-TEST(BatteryStatusDispatcherTest, UpdateListener) {
+TEST_F(BatteryStatusDispatcherTest, UpdateListener) {
MockBatteryStatusListener listener;
- BatteryStatusDispatcherForTesting dispatcher;
+ BatteryStatusDispatcher dispatcher(0);
blink::WebBatteryStatus status;
status.charging = true;
status.dischargingTime = 200;
status.level = 0.5;
- dispatcher.SetListener(&listener);
- EXPECT_TRUE(dispatcher.start_invoked());
+ dispatcher.Start(&listener);
BatteryStatusMsg_DidChange message(status);
dispatcher.OnControlMessageReceived(message);
EXPECT_EQ(status.dischargingTime, received_status.dischargingTime);
EXPECT_EQ(status.level, received_status.level);
- dispatcher.SetListener(0);
- EXPECT_TRUE(dispatcher.stop_invoked());
+ dispatcher.Stop();
}
-TEST(BatteryStatusDispatcherTest, NoUpdateWhenNullListener) {
+TEST_F(BatteryStatusDispatcherTest, NoUpdateWhenNullListener) {
MockBatteryStatusListener listener;
- BatteryStatusDispatcherForTesting dispatcher;
+ BatteryStatusDispatcher dispatcher(0);
- dispatcher.SetListener(0);
- EXPECT_FALSE(dispatcher.start_invoked());
- EXPECT_TRUE(dispatcher.stop_invoked());
+ dispatcher.Start(0);
+ dispatcher.Stop();
blink::WebBatteryStatus status;
BatteryStatusMsg_DidChange message(status);