| Index: third_party/WebKit/Source/platform/battery/BatteryStatusDispatcherTest.cpp
|
| diff --git a/third_party/WebKit/Source/platform/battery/BatteryStatusDispatcherTest.cpp b/third_party/WebKit/Source/platform/battery/BatteryStatusDispatcherTest.cpp
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..84bb18ef6d76df0feaf51028f2768b3114be78e2
|
| --- /dev/null
|
| +++ b/third_party/WebKit/Source/platform/battery/BatteryStatusDispatcherTest.cpp
|
| @@ -0,0 +1,80 @@
|
| +// 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 "platform/battery/BatteryStatusDispatcher.h"
|
| +
|
| +#include "base/message_loop/message_loop.h"
|
| +#include "platform/battery/BatteryStatus.h"
|
| +#include "platform/battery/BatteryStatusListener.h"
|
| +#include "testing/gtest/include/gtest/gtest.h"
|
| +#include "wtf/Noncopyable.h"
|
| +#include "wtf/OwnPtr.h"
|
| +#include "wtf/PassOwnPtr.h"
|
| +
|
| +namespace blink {
|
| +
|
| +class MockBatteryStatusListener : public BatteryStatusListener {
|
| + WTF_MAKE_NONCOPYABLE(MockBatteryStatusListener);
|
| +public:
|
| + MockBatteryStatusListener() : m_didChangeBatteryStatus(false) { }
|
| +
|
| + void onUpdateBatteryStatus(const BatteryStatus& status) override
|
| + {
|
| + m_status = status;
|
| + m_didChangeBatteryStatus = true;
|
| + }
|
| +
|
| + const BatteryStatus& status() const { return m_status; }
|
| + bool didChangeBatteryStatus() const { return m_didChangeBatteryStatus; }
|
| +
|
| +private:
|
| + bool m_didChangeBatteryStatus;
|
| + BatteryStatus m_status;
|
| +};
|
| +
|
| +class BatteryStatusDispatcherTest : public testing::Test {
|
| +public:
|
| + void updateBatteryStatus(const device::BatteryStatus& status)
|
| + {
|
| + device::BatteryStatusPtr statusPtr(device::BatteryStatus::New());
|
| + *statusPtr = status;
|
| + m_dispatcher->onDidChange(std::move(statusPtr));
|
| + }
|
| +
|
| + const MockBatteryStatusListener& listener() const { return m_listener; }
|
| +
|
| +protected:
|
| + void SetUp() override
|
| + {
|
| + m_dispatcher = adoptPtr(new BatteryStatusDispatcher(&m_listener));
|
| + }
|
| +
|
| +private:
|
| + base::MessageLoop m_messageLoop; // Mojo needs the message loop.
|
| + MockBatteryStatusListener m_listener;
|
| + OwnPtr<BatteryStatusDispatcher> m_dispatcher;
|
| +};
|
| +
|
| +TEST_F(BatteryStatusDispatcherTest, UpdateListener)
|
| +{
|
| + // TODO(darin): This test isn't super interesting. It just exercises
|
| + // conversion b/w device::BatteryStatus and blink::BatteryStatus.
|
| +
|
| + device::BatteryStatus status;
|
| + status.charging = true;
|
| + status.charging_time = 100;
|
| + status.discharging_time = 200;
|
| + status.level = 0.5;
|
| +
|
| + updateBatteryStatus(status);
|
| +
|
| + const BatteryStatus& receivedStatus = listener().status();
|
| + EXPECT_TRUE(listener().didChangeBatteryStatus());
|
| + EXPECT_EQ(status.charging, receivedStatus.charging());
|
| + EXPECT_EQ(status.charging_time, receivedStatus.chargingTime());
|
| + EXPECT_EQ(status.discharging_time, receivedStatus.dischargingTime());
|
| + EXPECT_EQ(status.level, receivedStatus.level());
|
| +}
|
| +
|
| +} // namespace blink
|
|
|