Index: third_party/WebKit/Source/platform/network/NetworkStateNotifierTest.cpp |
diff --git a/third_party/WebKit/Source/core/page/NetworkStateNotifierTest.cpp b/third_party/WebKit/Source/platform/network/NetworkStateNotifierTest.cpp |
similarity index 89% |
rename from third_party/WebKit/Source/core/page/NetworkStateNotifierTest.cpp |
rename to third_party/WebKit/Source/platform/network/NetworkStateNotifierTest.cpp |
index d441622eb3963b1c2b2ac58a4d1d11b2dfdeb41e..8d10384a6262d8b31b2d782dce0cd6cadfb0eeb0 100644 |
--- a/third_party/WebKit/Source/core/page/NetworkStateNotifierTest.cpp |
+++ b/third_party/WebKit/Source/platform/network/NetworkStateNotifierTest.cpp |
@@ -28,10 +28,9 @@ |
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
*/ |
-#include "core/page/NetworkStateNotifier.h" |
+#include "platform/network/NetworkStateNotifier.h" |
-#include "core/dom/Document.h" |
-#include "core/dom/TaskRunnerHelper.h" |
+#include "platform/scheduler/test/fake_web_task_runner.h" |
#include "platform/testing/UnitTestHelpers.h" |
#include "public/platform/Platform.h" |
#include "public/platform/WebConnectionType.h" |
@@ -41,6 +40,8 @@ |
namespace blink { |
+using scheduler::FakeWebTaskRunner; |
+ |
namespace { |
const double kNoneMaxBandwidthMbps = 0.0; |
const double kBluetoothMaxBandwidthMbps = 1.0; |
@@ -93,29 +94,36 @@ class StateObserver : public NetworkStateNotifier::NetworkStateObserver { |
class NetworkStateNotifierTest : public ::testing::Test { |
public: |
NetworkStateNotifierTest() |
- : m_document(Document::create()), m_document2(Document::create()) { |
+ : m_taskRunner(adoptRef(new FakeWebTaskRunner())), |
+ m_taskRunner2(adoptRef(new FakeWebTaskRunner())) { |
// Initialize connection, so that future calls to setWebConnection issue |
// notifications. |
m_notifier.setWebConnection(WebConnectionTypeUnknown, 0.0); |
m_notifier.setOnLine(false); |
} |
- WebTaskRunner* getTaskRunner() { |
- return TaskRunnerHelper::get(TaskType::Networking, m_document.get()).get(); |
- } |
+ WebTaskRunner* getTaskRunner() { return m_taskRunner.get(); } |
+ WebTaskRunner* getTaskRunner2() { return m_taskRunner2.get(); } |
- WebTaskRunner* getTaskRunner2() { |
- return TaskRunnerHelper::get(TaskType::Networking, m_document2.get()).get(); |
+ void TearDown() override { |
+ runPendingTasks(); |
+ m_taskRunner = nullptr; |
+ m_taskRunner2 = nullptr; |
} |
protected: |
+ void runPendingTasks() { |
+ m_taskRunner->runUntilIdle(); |
+ m_taskRunner2->runUntilIdle(); |
+ } |
+ |
void setConnection(WebConnectionType type, double maxBandwidthMbps) { |
m_notifier.setWebConnection(type, maxBandwidthMbps); |
- testing::runPendingTasks(); |
+ runPendingTasks(); |
} |
void setOnLine(bool onLine) { |
m_notifier.setOnLine(onLine); |
- testing::runPendingTasks(); |
+ runPendingTasks(); |
} |
void addObserverOnNotification(StateObserver* observer, |
@@ -143,8 +151,8 @@ class NetworkStateNotifierTest : public ::testing::Test { |
observer.observedMaxBandwidth() == maxBandwidthMbps; |
} |
- Persistent<Document> m_document; |
- Persistent<Document> m_document2; |
+ RefPtr<FakeWebTaskRunner> m_taskRunner; |
+ RefPtr<FakeWebTaskRunner> m_taskRunner2; |
NetworkStateNotifier m_notifier; |
}; |
@@ -158,6 +166,7 @@ TEST_F(NetworkStateNotifierTest, AddObserver) { |
EXPECT_TRUE(verifyObservations(observer, WebConnectionTypeBluetooth, |
kBluetoothMaxBandwidthMbps)); |
EXPECT_EQ(observer.callbackCount(), 1); |
+ m_notifier.removeConnectionObserver(&observer, getTaskRunner()); |
} |
TEST_F(NetworkStateNotifierTest, RemoveObserver) { |
@@ -171,6 +180,7 @@ TEST_F(NetworkStateNotifierTest, RemoveObserver) { |
kNoneMaxBandwidthMbps)); |
EXPECT_TRUE(verifyObservations(observer2, WebConnectionTypeBluetooth, |
kBluetoothMaxBandwidthMbps)); |
+ m_notifier.removeConnectionObserver(&observer2, getTaskRunner()); |
} |
TEST_F(NetworkStateNotifierTest, RemoveSoleObserver) { |
@@ -193,6 +203,8 @@ TEST_F(NetworkStateNotifierTest, AddObserverWhileNotifying) { |
kBluetoothMaxBandwidthMbps)); |
EXPECT_TRUE(verifyObservations(observer2, WebConnectionTypeBluetooth, |
kBluetoothMaxBandwidthMbps)); |
+ m_notifier.removeConnectionObserver(&observer1, getTaskRunner()); |
+ m_notifier.removeConnectionObserver(&observer2, getTaskRunner()); |
} |
TEST_F(NetworkStateNotifierTest, RemoveSoleObserverWhileNotifying) { |
@@ -226,6 +238,9 @@ TEST_F(NetworkStateNotifierTest, RemoveCurrentObserverWhileNotifying) { |
kBluetoothMaxBandwidthMbps)); |
EXPECT_TRUE(verifyObservations(observer2, WebConnectionTypeEthernet, |
kEthernetMaxBandwidthMbps)); |
+ |
+ m_notifier.removeConnectionObserver(&observer1, getTaskRunner()); |
+ m_notifier.removeConnectionObserver(&observer2, getTaskRunner()); |
} |
TEST_F(NetworkStateNotifierTest, RemovePastObserverWhileNotifying) { |
@@ -243,6 +258,9 @@ TEST_F(NetworkStateNotifierTest, RemovePastObserverWhileNotifying) { |
kBluetoothMaxBandwidthMbps)); |
EXPECT_TRUE(verifyObservations(observer2, WebConnectionTypeEthernet, |
kEthernetMaxBandwidthMbps)); |
+ |
+ m_notifier.removeConnectionObserver(&observer1, getTaskRunner()); |
+ m_notifier.removeConnectionObserver(&observer2, getTaskRunner()); |
} |
TEST_F(NetworkStateNotifierTest, RemoveFutureObserverWhileNotifying) { |
@@ -259,6 +277,10 @@ TEST_F(NetworkStateNotifierTest, RemoveFutureObserverWhileNotifying) { |
kNoneMaxBandwidthMbps)); |
EXPECT_TRUE(verifyObservations(observer3, WebConnectionTypeBluetooth, |
kBluetoothMaxBandwidthMbps)); |
+ |
+ m_notifier.removeConnectionObserver(&observer1, getTaskRunner()); |
+ m_notifier.removeConnectionObserver(&observer2, getTaskRunner()); |
+ m_notifier.removeConnectionObserver(&observer3, getTaskRunner()); |
} |
TEST_F(NetworkStateNotifierTest, MultipleContextsAddObserver) { |
@@ -271,6 +293,9 @@ TEST_F(NetworkStateNotifierTest, MultipleContextsAddObserver) { |
kBluetoothMaxBandwidthMbps)); |
EXPECT_TRUE(verifyObservations(observer2, WebConnectionTypeBluetooth, |
kBluetoothMaxBandwidthMbps)); |
+ |
+ m_notifier.removeConnectionObserver(&observer1, getTaskRunner()); |
+ m_notifier.removeConnectionObserver(&observer2, getTaskRunner2()); |
} |
TEST_F(NetworkStateNotifierTest, RemoveContext) { |
@@ -284,6 +309,8 @@ TEST_F(NetworkStateNotifierTest, RemoveContext) { |
kBluetoothMaxBandwidthMbps)); |
EXPECT_TRUE(verifyObservations(observer2, WebConnectionTypeNone, |
kNoneMaxBandwidthMbps)); |
+ |
+ m_notifier.removeConnectionObserver(&observer1, getTaskRunner()); |
} |
TEST_F(NetworkStateNotifierTest, RemoveAllContexts) { |
@@ -314,7 +341,7 @@ TEST_F(NetworkStateNotifierTest, SetOverride) { |
m_notifier.setOverride(true, WebConnectionTypeEthernet, |
kEthernetMaxBandwidthMbps); |
- testing::runPendingTasks(); |
+ runPendingTasks(); |
EXPECT_TRUE(verifyObservations(observer, WebConnectionTypeEthernet, |
kEthernetMaxBandwidthMbps)); |
EXPECT_TRUE(m_notifier.onLine()); |
@@ -325,7 +352,7 @@ TEST_F(NetworkStateNotifierTest, SetOverride) { |
// ignored. |
m_notifier.setOnLine(false); |
setConnection(WebConnectionTypeNone, kNoneMaxBandwidthMbps); |
- testing::runPendingTasks(); |
+ runPendingTasks(); |
EXPECT_TRUE(verifyObservations(observer, WebConnectionTypeEthernet, |
kEthernetMaxBandwidthMbps)); |
EXPECT_TRUE(m_notifier.onLine()); |
@@ -333,7 +360,7 @@ TEST_F(NetworkStateNotifierTest, SetOverride) { |
EXPECT_EQ(kEthernetMaxBandwidthMbps, m_notifier.maxBandwidth()); |
m_notifier.clearOverride(); |
- testing::runPendingTasks(); |
+ runPendingTasks(); |
EXPECT_TRUE(verifyObservations(observer, WebConnectionTypeNone, |
kNoneMaxBandwidthMbps)); |
EXPECT_FALSE(m_notifier.onLine()); |
@@ -373,37 +400,39 @@ TEST_F(NetworkStateNotifierTest, NoExtraNotifications) { |
TEST_F(NetworkStateNotifierTest, NoNotificationOnInitialization) { |
NetworkStateNotifier notifier; |
- Persistent<Document> document(Document::create()); |
StateObserver observer; |
notifier.addConnectionObserver(&observer, getTaskRunner()); |
notifier.addOnLineObserver(&observer, getTaskRunner()); |
- testing::runPendingTasks(); |
+ runPendingTasks(); |
EXPECT_EQ(observer.callbackCount(), 0); |
notifier.setWebConnection(WebConnectionTypeBluetooth, |
kBluetoothMaxBandwidthMbps); |
notifier.setOnLine(true); |
- testing::runPendingTasks(); |
+ runPendingTasks(); |
EXPECT_EQ(observer.callbackCount(), 0); |
notifier.setOnLine(true); |
notifier.setWebConnection(WebConnectionTypeBluetooth, |
kBluetoothMaxBandwidthMbps); |
- testing::runPendingTasks(); |
+ runPendingTasks(); |
EXPECT_EQ(observer.callbackCount(), 0); |
notifier.setWebConnection(WebConnectionTypeEthernet, |
kEthernetMaxBandwidthMbps); |
- testing::runPendingTasks(); |
+ runPendingTasks(); |
EXPECT_EQ(observer.callbackCount(), 1); |
EXPECT_EQ(observer.observedType(), WebConnectionTypeEthernet); |
EXPECT_EQ(observer.observedMaxBandwidth(), kEthernetMaxBandwidthMbps); |
notifier.setOnLine(false); |
- testing::runPendingTasks(); |
+ runPendingTasks(); |
EXPECT_EQ(observer.callbackCount(), 2); |
EXPECT_FALSE(observer.observedOnLineState()); |
+ |
+ m_notifier.removeConnectionObserver(&observer, getTaskRunner()); |
+ m_notifier.removeOnLineObserver(&observer, getTaskRunner()); |
} |
TEST_F(NetworkStateNotifierTest, OnLineNotification) { |
@@ -411,12 +440,12 @@ TEST_F(NetworkStateNotifierTest, OnLineNotification) { |
m_notifier.addOnLineObserver(&observer, getTaskRunner()); |
setOnLine(true); |
- testing::runPendingTasks(); |
+ runPendingTasks(); |
EXPECT_TRUE(observer.observedOnLineState()); |
EXPECT_EQ(observer.callbackCount(), 1); |
setOnLine(false); |
- testing::runPendingTasks(); |
+ runPendingTasks(); |
EXPECT_FALSE(observer.observedOnLineState()); |
EXPECT_EQ(observer.callbackCount(), 2); |
@@ -433,14 +462,14 @@ TEST_F(NetworkStateNotifierTest, MultipleObservers) { |
m_notifier.addOnLineObserver(&observer2, getTaskRunner()); |
m_notifier.setOnLine(true); |
- testing::runPendingTasks(); |
+ runPendingTasks(); |
EXPECT_TRUE(observer1.observedOnLineState()); |
EXPECT_TRUE(observer2.observedOnLineState()); |
EXPECT_EQ(observer1.callbackCount(), 1); |
EXPECT_EQ(observer2.callbackCount(), 1); |
m_notifier.setOnLine(false); |
- testing::runPendingTasks(); |
+ runPendingTasks(); |
EXPECT_FALSE(observer1.observedOnLineState()); |
EXPECT_FALSE(observer2.observedOnLineState()); |
EXPECT_EQ(observer1.callbackCount(), 2); |
@@ -449,7 +478,7 @@ TEST_F(NetworkStateNotifierTest, MultipleObservers) { |
m_notifier.setOnLine(true); |
m_notifier.setWebConnection(WebConnectionTypeEthernet, |
kEthernetMaxBandwidthMbps); |
- testing::runPendingTasks(); |
+ runPendingTasks(); |
EXPECT_TRUE(observer1.observedOnLineState()); |
EXPECT_TRUE(observer2.observedOnLineState()); |
EXPECT_TRUE(verifyObservations(observer2, WebConnectionTypeEthernet, |