| Index: Source/core/page/NetworkStateNotifierTest.cpp
|
| diff --git a/Source/core/page/NetworkStateNotifierTest.cpp b/Source/core/page/NetworkStateNotifierTest.cpp
|
| index 4897726abd7ac71499f001b97bf4f794222fc2e1..b800d9b3817ed96de65b494adf5a0cbbde3cc98c 100644
|
| --- a/Source/core/page/NetworkStateNotifierTest.cpp
|
| +++ b/Source/core/page/NetworkStateNotifierTest.cpp
|
| @@ -41,17 +41,25 @@
|
|
|
| namespace blink {
|
|
|
| +namespace {
|
| + const double kNoneMaxBandwidthMbps = 0.0;
|
| + const double kBluetoothMaxBandwidthMbps = 1.0;
|
| + const double kEthernetMaxBandwidthMbps = 2.0;
|
| +}
|
| +
|
| class StateObserver : public NetworkStateNotifier::NetworkStateObserver {
|
| public:
|
| StateObserver()
|
| : m_observedType(ConnectionTypeNone)
|
| + , m_observedMaxBandwidthMbps(0.0)
|
| , m_callbackCount(0)
|
| {
|
| }
|
|
|
| - virtual void connectionTypeChange(WebConnectionType type)
|
| + virtual void connectionChange(WebConnectionType type, double maxBandwidthMbps)
|
| {
|
| m_observedType = type;
|
| + m_observedMaxBandwidthMbps = maxBandwidthMbps;
|
| m_callbackCount += 1;
|
|
|
| if (m_closure)
|
| @@ -63,6 +71,11 @@ public:
|
| return m_observedType;
|
| }
|
|
|
| + double observedMaxBandwidth() const
|
| + {
|
| + return m_observedMaxBandwidthMbps;
|
| + }
|
| +
|
| int callbackCount() const
|
| {
|
| return m_callbackCount;
|
| @@ -76,6 +89,7 @@ public:
|
| private:
|
| OwnPtr<Closure> m_closure;
|
| WebConnectionType m_observedType;
|
| + double m_observedMaxBandwidthMbps;
|
| int m_callbackCount;
|
| };
|
|
|
| @@ -98,9 +112,9 @@ public:
|
| }
|
|
|
| protected:
|
| - void setType(WebConnectionType type)
|
| + void setConnection(WebConnectionType type, double maxBandwidthMbps)
|
| {
|
| - m_notifier.setWebConnectionType(type);
|
| + m_notifier.setWebConnection(type, maxBandwidthMbps);
|
| testing::runPendingTasks();
|
| }
|
|
|
| @@ -114,6 +128,13 @@ protected:
|
| observer->setNotificationCallback(bind(&NetworkStateNotifier::removeObserver, &m_notifier, observerToRemove, executionContext()));
|
| }
|
|
|
| + bool verifyObservations(const StateObserver& observer, WebConnectionType type, double maxBandwidthMbps)
|
| + {
|
| + EXPECT_EQ(observer.observedType(), type);
|
| + EXPECT_EQ(observer.observedMaxBandwidth(), maxBandwidthMbps);
|
| + return observer.observedType() == type && observer.observedMaxBandwidth() == maxBandwidthMbps;
|
| + }
|
| +
|
| RefPtrWillBePersistent<Document> m_document;
|
| RefPtrWillBePersistent<Document> m_document2;
|
| NetworkStateNotifier m_notifier;
|
| @@ -123,10 +144,10 @@ TEST_F(NetworkStateNotifierTest, AddObserver)
|
| {
|
| StateObserver observer;
|
| m_notifier.addObserver(&observer, executionContext());
|
| - EXPECT_EQ(observer.observedType(), ConnectionTypeNone);
|
| + EXPECT_TRUE(verifyObservations(observer, ConnectionTypeNone, kNoneMaxBandwidthMbps));
|
|
|
| - setType(ConnectionTypeBluetooth);
|
| - EXPECT_EQ(observer.observedType(), ConnectionTypeBluetooth);
|
| + setConnection(ConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps);
|
| + EXPECT_TRUE(verifyObservations(observer, ConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps));
|
| EXPECT_EQ(observer.callbackCount(), 1);
|
| }
|
|
|
| @@ -137,19 +158,19 @@ TEST_F(NetworkStateNotifierTest, RemoveObserver)
|
| m_notifier.removeObserver(&observer1, executionContext());
|
| m_notifier.addObserver(&observer2, executionContext());
|
|
|
| - setType(ConnectionTypeBluetooth);
|
| - EXPECT_EQ(observer1.observedType(), ConnectionTypeNone);
|
| - EXPECT_EQ(observer2.observedType(), ConnectionTypeBluetooth);
|
| + setConnection(ConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps);
|
| + EXPECT_TRUE(verifyObservations(observer1, ConnectionTypeNone, kNoneMaxBandwidthMbps));
|
| + EXPECT_TRUE(verifyObservations(observer2, ConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps));
|
| }
|
|
|
| TEST_F(NetworkStateNotifierTest, RemoveSoleObserver)
|
| {
|
| - StateObserver observer1, observer2;
|
| + StateObserver observer1;
|
| m_notifier.addObserver(&observer1, executionContext());
|
| m_notifier.removeObserver(&observer1, executionContext());
|
|
|
| - setType(ConnectionTypeBluetooth);
|
| - EXPECT_EQ(observer1.observedType(), ConnectionTypeNone);
|
| + setConnection(ConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps);
|
| + EXPECT_TRUE(verifyObservations(observer1, ConnectionTypeNone, kNoneMaxBandwidthMbps));
|
| }
|
|
|
| TEST_F(NetworkStateNotifierTest, AddObserverWhileNotifying)
|
| @@ -158,9 +179,9 @@ TEST_F(NetworkStateNotifierTest, AddObserverWhileNotifying)
|
| m_notifier.addObserver(&observer1, executionContext());
|
| addObserverOnNotification(&observer1, &observer2);
|
|
|
| - setType(ConnectionTypeBluetooth);
|
| - EXPECT_EQ(observer1.observedType(), ConnectionTypeBluetooth);
|
| - EXPECT_EQ(observer2.observedType(), ConnectionTypeBluetooth);
|
| + setConnection(ConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps);
|
| + EXPECT_TRUE(verifyObservations(observer1, ConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps));
|
| + EXPECT_TRUE(verifyObservations(observer2, ConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps));
|
| }
|
|
|
| TEST_F(NetworkStateNotifierTest, RemoveSoleObserverWhileNotifying)
|
| @@ -169,11 +190,11 @@ TEST_F(NetworkStateNotifierTest, RemoveSoleObserverWhileNotifying)
|
| m_notifier.addObserver(&observer1, executionContext());
|
| removeObserverOnNotification(&observer1, &observer1);
|
|
|
| - setType(ConnectionTypeBluetooth);
|
| - EXPECT_EQ(observer1.observedType(), ConnectionTypeBluetooth);
|
| + setConnection(ConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps);
|
| + EXPECT_TRUE(verifyObservations(observer1, ConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps));
|
|
|
| - setType(ConnectionTypeEthernet);
|
| - EXPECT_EQ(observer1.observedType(), ConnectionTypeBluetooth);
|
| + setConnection(ConnectionTypeEthernet, kEthernetMaxBandwidthMbps);
|
| + EXPECT_TRUE(verifyObservations(observer1, ConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps));
|
| }
|
|
|
| TEST_F(NetworkStateNotifierTest, RemoveCurrentObserverWhileNotifying)
|
| @@ -183,13 +204,13 @@ TEST_F(NetworkStateNotifierTest, RemoveCurrentObserverWhileNotifying)
|
| m_notifier.addObserver(&observer2, executionContext());
|
| removeObserverOnNotification(&observer1, &observer1);
|
|
|
| - setType(ConnectionTypeBluetooth);
|
| - EXPECT_EQ(observer1.observedType(), ConnectionTypeBluetooth);
|
| - EXPECT_EQ(observer2.observedType(), ConnectionTypeBluetooth);
|
| + setConnection(ConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps);
|
| + EXPECT_TRUE(verifyObservations(observer1, ConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps));
|
| + EXPECT_TRUE(verifyObservations(observer2, ConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps));
|
|
|
| - setType(ConnectionTypeEthernet);
|
| - EXPECT_EQ(observer1.observedType(), ConnectionTypeBluetooth);
|
| - EXPECT_EQ(observer2.observedType(), ConnectionTypeEthernet);
|
| + setConnection(ConnectionTypeEthernet, kEthernetMaxBandwidthMbps);
|
| + EXPECT_TRUE(verifyObservations(observer1, ConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps));
|
| + EXPECT_TRUE(verifyObservations(observer2, ConnectionTypeEthernet, kEthernetMaxBandwidthMbps));
|
| }
|
|
|
| TEST_F(NetworkStateNotifierTest, RemovePastObserverWhileNotifying)
|
| @@ -199,13 +220,13 @@ TEST_F(NetworkStateNotifierTest, RemovePastObserverWhileNotifying)
|
| m_notifier.addObserver(&observer2, executionContext());
|
| removeObserverOnNotification(&observer2, &observer1);
|
|
|
| - setType(ConnectionTypeBluetooth);
|
| + setConnection(ConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps);
|
| EXPECT_EQ(observer1.observedType(), ConnectionTypeBluetooth);
|
| EXPECT_EQ(observer2.observedType(), ConnectionTypeBluetooth);
|
|
|
| - setType(ConnectionTypeEthernet);
|
| - EXPECT_EQ(observer1.observedType(), ConnectionTypeBluetooth);
|
| - EXPECT_EQ(observer2.observedType(), ConnectionTypeEthernet);
|
| + setConnection(ConnectionTypeEthernet, kEthernetMaxBandwidthMbps);
|
| + EXPECT_TRUE(verifyObservations(observer1, ConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps));
|
| + EXPECT_TRUE(verifyObservations(observer2, ConnectionTypeEthernet, kEthernetMaxBandwidthMbps));
|
| }
|
|
|
| TEST_F(NetworkStateNotifierTest, RemoveFutureObserverWhileNotifying)
|
| @@ -216,11 +237,10 @@ TEST_F(NetworkStateNotifierTest, RemoveFutureObserverWhileNotifying)
|
| m_notifier.addObserver(&observer3, executionContext());
|
| removeObserverOnNotification(&observer1, &observer2);
|
|
|
| - setType(ConnectionTypeBluetooth);
|
| -
|
| - EXPECT_EQ(observer1.observedType(), ConnectionTypeBluetooth);
|
| - EXPECT_EQ(observer2.observedType(), ConnectionTypeNone);
|
| - EXPECT_EQ(observer3.observedType(), ConnectionTypeBluetooth);
|
| + setConnection(ConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps);
|
| + EXPECT_TRUE(verifyObservations(observer1, ConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps));
|
| + EXPECT_TRUE(verifyObservations(observer2, ConnectionTypeNone, kNoneMaxBandwidthMbps));
|
| + EXPECT_TRUE(verifyObservations(observer3, ConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps));
|
| }
|
|
|
| TEST_F(NetworkStateNotifierTest, MultipleContextsAddObserver)
|
| @@ -229,9 +249,9 @@ TEST_F(NetworkStateNotifierTest, MultipleContextsAddObserver)
|
| m_notifier.addObserver(&observer1, executionContext());
|
| m_notifier.addObserver(&observer2, executionContext2());
|
|
|
| - setType(ConnectionTypeBluetooth);
|
| - EXPECT_EQ(observer1.observedType(), ConnectionTypeBluetooth);
|
| - EXPECT_EQ(observer2.observedType(), ConnectionTypeBluetooth);
|
| + setConnection(ConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps);
|
| + EXPECT_TRUE(verifyObservations(observer1, ConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps));
|
| + EXPECT_TRUE(verifyObservations(observer2, ConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps));
|
| }
|
|
|
| TEST_F(NetworkStateNotifierTest, RemoveContext)
|
| @@ -241,9 +261,9 @@ TEST_F(NetworkStateNotifierTest, RemoveContext)
|
| m_notifier.addObserver(&observer2, executionContext2());
|
| m_notifier.removeObserver(&observer2, executionContext2());
|
|
|
| - setType(ConnectionTypeBluetooth);
|
| - EXPECT_EQ(observer1.observedType(), ConnectionTypeBluetooth);
|
| - EXPECT_EQ(observer2.observedType(), ConnectionTypeNone);
|
| + setConnection(ConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps);
|
| + EXPECT_TRUE(verifyObservations(observer1, ConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps));
|
| + EXPECT_TRUE(verifyObservations(observer2, ConnectionTypeNone, kNoneMaxBandwidthMbps));
|
| }
|
|
|
| TEST_F(NetworkStateNotifierTest, RemoveAllContexts)
|
| @@ -254,9 +274,9 @@ TEST_F(NetworkStateNotifierTest, RemoveAllContexts)
|
| m_notifier.removeObserver(&observer1, executionContext());
|
| m_notifier.removeObserver(&observer2, executionContext2());
|
|
|
| - setType(ConnectionTypeBluetooth);
|
| - EXPECT_EQ(observer1.observedType(), ConnectionTypeNone);
|
| - EXPECT_EQ(observer2.observedType(), ConnectionTypeNone);
|
| + setConnection(ConnectionTypeBluetooth, kBluetoothMaxBandwidthMbps);
|
| + EXPECT_TRUE(verifyObservations(observer1, ConnectionTypeNone, kNoneMaxBandwidthMbps));
|
| + EXPECT_TRUE(verifyObservations(observer2, ConnectionTypeNone, kNoneMaxBandwidthMbps));
|
| }
|
|
|
| } // namespace blink
|
|
|