| Index: third_party/WebKit/Source/web/tests/VirtualTimeTest.cpp
|
| diff --git a/third_party/WebKit/Source/web/tests/VirtualTimeTest.cpp b/third_party/WebKit/Source/web/tests/VirtualTimeTest.cpp
|
| index be024f2fb523cc413acef8c9122b23f618c4e551..cb0621674e7d6b4c98fc7bdbd6109de2aae0f925 100644
|
| --- a/third_party/WebKit/Source/web/tests/VirtualTimeTest.cpp
|
| +++ b/third_party/WebKit/Source/web/tests/VirtualTimeTest.cpp
|
| @@ -9,6 +9,7 @@
|
| #include "public/web/WebScriptExecutionCallback.h"
|
| #include "public/web/WebScriptSource.h"
|
| #include "public/web/WebView.h"
|
| +#include "web/tests/sim/SimRequest.h"
|
| #include "web/tests/sim/SimTest.h"
|
|
|
| namespace blink {
|
| @@ -86,7 +87,7 @@ TEST_F(VirtualTimeTest, SetInterval)
|
| TEST_F(VirtualTimeTest, AllowVirtualTimeToAdvance)
|
| {
|
| webView().scheduler()->enableVirtualTime();
|
| - webView().scheduler()->setAllowVirtualTimeToAdvance(false);
|
| + webView().scheduler()->setVirtualTimePolicy(WebViewScheduler::VirtualTimePolicy::PAUSE);
|
|
|
| ExecuteJavaScript(
|
| "var run_order = [];"
|
| @@ -99,10 +100,51 @@ TEST_F(VirtualTimeTest, AllowVirtualTimeToAdvance)
|
|
|
| EXPECT_EQ("", ExecuteJavaScript("run_order.join(', ')"));
|
|
|
| - webView().scheduler()->setAllowVirtualTimeToAdvance(true);
|
| + webView().scheduler()->setVirtualTimePolicy(WebViewScheduler::VirtualTimePolicy::ADVANCE);
|
| testing::runPendingTasks();
|
|
|
| EXPECT_EQ("c, b, a", ExecuteJavaScript("run_order.join(', ')"));
|
| }
|
|
|
| +TEST_F(VirtualTimeTest, VirtualTimeNotAllowedToAdvanceWhileResourcesLoading)
|
| +{
|
| + webView().scheduler()->enableVirtualTime();
|
| + webView().scheduler()->setVirtualTimePolicy(WebViewScheduler::VirtualTimePolicy::PAUSE_IF_NETWORK_FETCHES_PENDING);
|
| +
|
| + EXPECT_TRUE(webView().scheduler()->virtualTimeAllowedToAdvance());
|
| +
|
| + SimRequest mainResource("https://example.com/test.html", "text/html");
|
| + SimRequest cssResource("https://example.com/test.css", "text/css");
|
| +
|
| + // Not loading, virtual time should be able to advance.
|
| + EXPECT_TRUE(webView().scheduler()->virtualTimeAllowedToAdvance());
|
| +
|
| + // Loading, virtual time should not advance.
|
| + loadURL("https://example.com/test.html");
|
| + EXPECT_FALSE(webView().scheduler()->virtualTimeAllowedToAdvance());
|
| +
|
| + mainResource.start();
|
| +
|
| + // Still Loading, virtual time should not advance.
|
| + mainResource.write("<!DOCTYPE html><link rel=stylesheet href=test.css>");
|
| + EXPECT_FALSE(webView().scheduler()->virtualTimeAllowedToAdvance());
|
| +
|
| + // Still Loading, virtual time should not advance.
|
| + cssResource.start();
|
| + cssResource.write("a { color: red; }");
|
| + EXPECT_FALSE(webView().scheduler()->virtualTimeAllowedToAdvance());
|
| +
|
| + // Still Loading, virtual time should not advance.
|
| + cssResource.finish();
|
| + EXPECT_FALSE(webView().scheduler()->virtualTimeAllowedToAdvance());
|
| +
|
| + // Still Loading, virtual time should not advance.
|
| + mainResource.write("<body>");
|
| + EXPECT_FALSE(webView().scheduler()->virtualTimeAllowedToAdvance());
|
| +
|
| + // Finished loading, virtual time should be able to advance.
|
| + mainResource.finish();
|
| + EXPECT_TRUE(webView().scheduler()->virtualTimeAllowedToAdvance());
|
| +}
|
| +
|
| } // namespace blink
|
|
|