| Index: content/browser/web_contents/web_contents_impl_browsertest.cc
|
| diff --git a/content/browser/web_contents/web_contents_impl_browsertest.cc b/content/browser/web_contents/web_contents_impl_browsertest.cc
|
| index a8ada8f80d114ad0a02f25457001671b70f61cb4..12682d5a9264b9c4758f99c7a21e8861ffdcfb5f 100644
|
| --- a/content/browser/web_contents/web_contents_impl_browsertest.cc
|
| +++ b/content/browser/web_contents/web_contents_impl_browsertest.cc
|
| @@ -158,7 +158,7 @@ class LoadingStateChangedDelegate : public WebContentsDelegate {
|
| , loadingStateToDifferentDocumentCount_(0) {
|
| }
|
|
|
| - // WebContentsDelgate:
|
| + // WebContentsDelegate:
|
| virtual void LoadingStateChanged(WebContents* contents,
|
| bool to_different_document) OVERRIDE {
|
| loadingStateChangedCount_++;
|
| @@ -176,6 +176,16 @@ class LoadingStateChangedDelegate : public WebContentsDelegate {
|
| int loadingStateToDifferentDocumentCount_;
|
| };
|
|
|
| +struct LoadProgressDelegate : public WebContentsDelegate {
|
| + // WebContentsDelegate:
|
| + virtual void LoadProgressChanged(WebContents* source,
|
| + double progress) OVERRIDE {
|
| + progresses.push_back(progress);
|
| + }
|
| +
|
| + std::vector<double> progresses;
|
| +};
|
| +
|
| // See: http://crbug.com/298193
|
| #if defined(OS_WIN)
|
| #define MAYBE_DidStopLoadingDetails DISABLED_DidStopLoadingDetails
|
| @@ -437,5 +447,27 @@ IN_PROC_BROWSER_TEST_F(WebContentsImplBrowserTest,
|
| EXPECT_EQ(3, delegate->loadingStateToDifferentDocumentCount());
|
| }
|
|
|
| +IN_PROC_BROWSER_TEST_F(WebContentsImplBrowserTest, LoadProgress) {
|
| + ASSERT_TRUE(embedded_test_server()->InitializeAndWaitUntilReady());
|
| + scoped_ptr<LoadProgressDelegate> delegate(new LoadProgressDelegate());
|
| + shell()->web_contents()->SetDelegate(delegate.get());
|
| +
|
| + NavigateToURL(shell(), embedded_test_server()->GetURL("/title1.html"));
|
| +
|
| + const std::vector<double>& progresses = delegate->progresses;
|
| + // All updates should be in order ...
|
| + if (std::adjacent_find(progresses.begin(),
|
| + progresses.end(),
|
| + std::greater<double>()) != progresses.end()) {
|
| + ADD_FAILURE() << "Progress values should be in order: "
|
| + << ::testing::PrintToString(progresses);
|
| + }
|
| +
|
| + // ... and the last one should be 1.0, meaning complete.
|
| + ASSERT_GE(progresses.size(), 1U)
|
| + << "There should be at least one progress update";
|
| + EXPECT_EQ(1.0, *progresses.rbegin());
|
| +}
|
| +
|
| } // namespace content
|
|
|
|
|