| Index: components/offline_pages/snapshot_controller_unittest.cc
|
| diff --git a/components/offline_pages/snapshot_controller_unittest.cc b/components/offline_pages/snapshot_controller_unittest.cc
|
| deleted file mode 100644
|
| index df561bc3f6b74bbbc12d379752eb9d03b2b9a3a9..0000000000000000000000000000000000000000
|
| --- a/components/offline_pages/snapshot_controller_unittest.cc
|
| +++ /dev/null
|
| @@ -1,193 +0,0 @@
|
| -// Copyright 2016 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 "components/offline_pages/snapshot_controller.h"
|
| -
|
| -#include "base/bind.h"
|
| -#include "base/run_loop.h"
|
| -#include "base/single_thread_task_runner.h"
|
| -#include "base/test/test_mock_time_task_runner.h"
|
| -#include "base/threading/thread_task_runner_handle.h"
|
| -#include "base/time/time.h"
|
| -#include "testing/gtest/include/gtest/gtest.h"
|
| -
|
| -namespace offline_pages {
|
| -
|
| -class SnapshotControllerTest
|
| - : public testing::Test,
|
| - public SnapshotController::Client {
|
| - public:
|
| - SnapshotControllerTest();
|
| - ~SnapshotControllerTest() override;
|
| -
|
| - SnapshotController* controller() { return controller_.get(); }
|
| - int snapshot_count() { return snapshot_count_; }
|
| -
|
| - // testing::Test
|
| - void SetUp() override;
|
| - void TearDown() override;
|
| -
|
| - // SnapshotController::Client
|
| - void StartSnapshot() override;
|
| -
|
| - // Utility methods.
|
| - // Runs until all of the tasks that are not delayed are gone from the task
|
| - // queue.
|
| - void PumpLoop();
|
| - // Fast-forwards virtual time by |delta|, causing tasks with a remaining
|
| - // delay less than or equal to |delta| to be executed.
|
| - void FastForwardBy(base::TimeDelta delta);
|
| -
|
| - private:
|
| - std::unique_ptr<SnapshotController> controller_;
|
| - scoped_refptr<base::TestMockTimeTaskRunner> task_runner_;
|
| - bool snapshot_started_;
|
| - int snapshot_count_;
|
| -};
|
| -
|
| -SnapshotControllerTest::SnapshotControllerTest()
|
| - : task_runner_(new base::TestMockTimeTaskRunner),
|
| - snapshot_started_(true),
|
| - snapshot_count_(0) {
|
| -}
|
| -
|
| -SnapshotControllerTest::~SnapshotControllerTest() {
|
| -}
|
| -
|
| -void SnapshotControllerTest::SetUp() {
|
| - controller_.reset(new SnapshotController(task_runner_, this));
|
| - snapshot_started_ = true;
|
| -}
|
| -
|
| -void SnapshotControllerTest::TearDown() {
|
| - controller_.reset();
|
| -}
|
| -
|
| -void SnapshotControllerTest::StartSnapshot() {
|
| - snapshot_count_++;
|
| -}
|
| -
|
| -void SnapshotControllerTest::PumpLoop() {
|
| - task_runner_->RunUntilIdle();
|
| -}
|
| -
|
| -void SnapshotControllerTest::FastForwardBy(base::TimeDelta delta) {
|
| - task_runner_->FastForwardBy(delta);
|
| -}
|
| -
|
| -TEST_F(SnapshotControllerTest, OnLoad) {
|
| - // Onload should make snapshot after its delay.
|
| - controller()->DocumentOnLoadCompletedInMainFrame();
|
| - PumpLoop();
|
| - EXPECT_EQ(0, snapshot_count());
|
| - FastForwardBy(base::TimeDelta::FromMilliseconds(
|
| - controller()->GetDelayAfterDocumentOnLoadCompletedForTest()));
|
| - EXPECT_EQ(1, snapshot_count());
|
| -}
|
| -
|
| -TEST_F(SnapshotControllerTest, OnDocumentAvailable) {
|
| - EXPECT_GT(controller()->GetDelayAfterDocumentAvailableForTest(), 0UL);
|
| - // OnDOM should make snapshot after a delay.
|
| - controller()->DocumentAvailableInMainFrame();
|
| - PumpLoop();
|
| - EXPECT_EQ(0, snapshot_count());
|
| - FastForwardBy(base::TimeDelta::FromMilliseconds(
|
| - controller()->GetDelayAfterDocumentAvailableForTest()));
|
| - EXPECT_EQ(1, snapshot_count());
|
| -}
|
| -
|
| -TEST_F(SnapshotControllerTest, OnLoadSnapshotIsTheLastOne) {
|
| - // This test assumes DocumentAvailable delay is longer than OnLoadCompleted.
|
| - EXPECT_GT(controller()->GetDelayAfterDocumentAvailableForTest(),
|
| - controller()->GetDelayAfterDocumentOnLoadCompletedForTest());
|
| - // OnDOM should make snapshot after a delay.
|
| - controller()->DocumentAvailableInMainFrame();
|
| - PumpLoop();
|
| - EXPECT_EQ(0, snapshot_count());
|
| - controller()->DocumentOnLoadCompletedInMainFrame();
|
| - // Advance time to OnLoadCompleted delay to trigger snapshot.
|
| - FastForwardBy(base::TimeDelta::FromMilliseconds(
|
| - controller()->GetDelayAfterDocumentOnLoadCompletedForTest()));
|
| - EXPECT_EQ(1, snapshot_count());
|
| - // Report that snapshot is completed.
|
| - controller()->PendingSnapshotCompleted();
|
| - // Even though previous snapshot is completed, new one should not start
|
| - // when this DocumentAvailable delay expires.
|
| - FastForwardBy(base::TimeDelta::FromMilliseconds(
|
| - controller()->GetDelayAfterDocumentAvailableForTest()));
|
| - EXPECT_EQ(1, snapshot_count());
|
| -}
|
| -
|
| -TEST_F(SnapshotControllerTest, OnLoadSnapshotAfterLongDelay) {
|
| - // OnDOM should make snapshot after a delay.
|
| - controller()->DocumentAvailableInMainFrame();
|
| - PumpLoop();
|
| - EXPECT_EQ(0, snapshot_count());
|
| - FastForwardBy(base::TimeDelta::FromMilliseconds(
|
| - controller()->GetDelayAfterDocumentAvailableForTest()));
|
| - EXPECT_EQ(1, snapshot_count());
|
| - // Report that snapshot is completed.
|
| - controller()->PendingSnapshotCompleted();
|
| - // OnLoad should make 2nd snapshot after its delay.
|
| - controller()->DocumentOnLoadCompletedInMainFrame();
|
| - FastForwardBy(base::TimeDelta::FromMilliseconds(
|
| - controller()->GetDelayAfterDocumentOnLoadCompletedForTest()));
|
| - EXPECT_EQ(2, snapshot_count());
|
| -}
|
| -
|
| -TEST_F(SnapshotControllerTest, Stop) {
|
| - // OnDOM should make snapshot after a delay.
|
| - controller()->DocumentAvailableInMainFrame();
|
| - PumpLoop();
|
| - EXPECT_EQ(0, snapshot_count());
|
| - controller()->Stop();
|
| - FastForwardBy(base::TimeDelta::FromMilliseconds(
|
| - controller()->GetDelayAfterDocumentAvailableForTest()));
|
| - // Should not start snapshots
|
| - EXPECT_EQ(0, snapshot_count());
|
| - // Also should not start snapshot.
|
| - controller()->DocumentOnLoadCompletedInMainFrame();
|
| - EXPECT_EQ(0, snapshot_count());
|
| -}
|
| -
|
| -TEST_F(SnapshotControllerTest, ClientReset) {
|
| - controller()->DocumentAvailableInMainFrame();
|
| -
|
| - controller()->Reset();
|
| - FastForwardBy(base::TimeDelta::FromMilliseconds(
|
| - controller()->GetDelayAfterDocumentAvailableForTest()));
|
| - // No snapshot since session was reset.
|
| - EXPECT_EQ(0, snapshot_count());
|
| - controller()->DocumentOnLoadCompletedInMainFrame();
|
| - FastForwardBy(base::TimeDelta::FromMilliseconds(
|
| - controller()->GetDelayAfterDocumentOnLoadCompletedForTest()));
|
| - EXPECT_EQ(1, snapshot_count());
|
| -
|
| - controller()->Reset();
|
| - controller()->DocumentAvailableInMainFrame();
|
| - FastForwardBy(base::TimeDelta::FromMilliseconds(
|
| - controller()->GetDelayAfterDocumentAvailableForTest()));
|
| - // No snapshot since session was reset.
|
| - EXPECT_EQ(2, snapshot_count());
|
| -}
|
| -
|
| -// This simulated a Reset while there is ongoing snapshot, which is reported
|
| -// as done later. That reporting should have no effect nor crash.
|
| -TEST_F(SnapshotControllerTest, ClientResetWhileSnapshotting) {
|
| - controller()->DocumentOnLoadCompletedInMainFrame();
|
| - FastForwardBy(base::TimeDelta::FromMilliseconds(
|
| - controller()->GetDelayAfterDocumentOnLoadCompletedForTest()));
|
| - EXPECT_EQ(1, snapshot_count());
|
| - // This normally happens when navigation starts.
|
| - controller()->Reset();
|
| - controller()->PendingSnapshotCompleted();
|
| - // Next snapshot should be initiated when new document is loaded.
|
| - controller()->DocumentAvailableInMainFrame();
|
| - FastForwardBy(base::TimeDelta::FromMilliseconds(
|
| - controller()->GetDelayAfterDocumentAvailableForTest()));
|
| - // No snapshot since session was reset.
|
| - EXPECT_EQ(2, snapshot_count());
|
| -}
|
| -
|
| -} // namespace offline_pages
|
|
|