Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(75)

Unified Diff: chrome/browser/undo/undo_manager_test.cc

Issue 1090993003: Move undo files into //components/undo (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@utils
Patch Set: Fix gn compilation Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/undo/undo_manager_observer.h ('k') | chrome/browser/undo/undo_operation.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/undo/undo_manager_test.cc
diff --git a/chrome/browser/undo/undo_manager_test.cc b/chrome/browser/undo/undo_manager_test.cc
deleted file mode 100644
index 013b6214fe8831316cae73caf1c1da931be70b2d..0000000000000000000000000000000000000000
--- a/chrome/browser/undo/undo_manager_test.cc
+++ /dev/null
@@ -1,265 +0,0 @@
-// Copyright 2013 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 "base/auto_reset.h"
-#include "chrome/browser/undo/undo_manager.h"
-#include "chrome/browser/undo/undo_manager_observer.h"
-#include "chrome/browser/undo/undo_operation.h"
-#include "testing/gtest/include/gtest/gtest.h"
-
-namespace {
-
-class TestUndoOperation;
-
-// TestUndoService -------------------------------------------------------------
-
-class TestUndoService {
- public:
- TestUndoService();
- ~TestUndoService();
-
- void Redo();
- void TriggerOperation();
- void RecordUndoCall();
-
- UndoManager undo_manager_;
-
- bool performing_redo_;
-
- int undo_operation_count_;
- int redo_operation_count_;
-};
-
-// TestUndoOperation -----------------------------------------------------------
-
-class TestUndoOperation : public UndoOperation {
- public:
- explicit TestUndoOperation(TestUndoService* undo_service);
- ~TestUndoOperation() override;
-
- // UndoOperation:
- void Undo() override;
- int GetUndoLabelId() const override;
- int GetRedoLabelId() const override;
-
- private:
- TestUndoService* undo_service_;
-
- DISALLOW_COPY_AND_ASSIGN(TestUndoOperation);
-};
-
-TestUndoOperation::TestUndoOperation(TestUndoService* undo_service)
- : undo_service_(undo_service) {
-}
-
-TestUndoOperation::~TestUndoOperation() {
-}
-
-void TestUndoOperation::Undo() {
- undo_service_->TriggerOperation();
- undo_service_->RecordUndoCall();
-}
-
-int TestUndoOperation::GetUndoLabelId() const {
- return 0;
-}
-
-int TestUndoOperation::GetRedoLabelId() const {
- return 0;
-}
-
-// TestUndoService -------------------------------------------------------------
-
-TestUndoService::TestUndoService() : performing_redo_(false),
- undo_operation_count_(0),
- redo_operation_count_(0) {
-}
-
-TestUndoService::~TestUndoService() {
-}
-
-void TestUndoService::Redo() {
- base::AutoReset<bool> incoming_changes(&performing_redo_, true);
- undo_manager_.Redo();
-}
-
-void TestUndoService::TriggerOperation() {
- undo_manager_.AddUndoOperation(make_scoped_ptr(new TestUndoOperation(this)));
-}
-
-void TestUndoService::RecordUndoCall() {
- if (performing_redo_)
- ++redo_operation_count_;
- else
- ++undo_operation_count_;
-}
-
-// TestObserver ----------------------------------------------------------------
-
-class TestObserver : public UndoManagerObserver {
- public:
- TestObserver() : state_change_count_(0) {}
- // Returns the number of state change callbacks
- int state_change_count() { return state_change_count_; }
-
- void OnUndoManagerStateChange() override { ++state_change_count_; }
-
- private:
- int state_change_count_;
-
- DISALLOW_COPY_AND_ASSIGN(TestObserver);
-};
-
-// Tests -----------------------------------------------------------------------
-
-TEST(UndoServiceTest, AddUndoActions) {
- TestUndoService undo_service;
-
- undo_service.TriggerOperation();
- undo_service.TriggerOperation();
- EXPECT_EQ(2U, undo_service.undo_manager_.undo_count());
- EXPECT_EQ(0U, undo_service.undo_manager_.redo_count());
-}
-
-TEST(UndoServiceTest, UndoMultipleActions) {
- TestUndoService undo_service;
-
- undo_service.TriggerOperation();
- undo_service.TriggerOperation();
-
- undo_service.undo_manager_.Undo();
- EXPECT_EQ(1U, undo_service.undo_manager_.undo_count());
- EXPECT_EQ(1U, undo_service.undo_manager_.redo_count());
-
- undo_service.undo_manager_.Undo();
- EXPECT_EQ(0U, undo_service.undo_manager_.undo_count());
- EXPECT_EQ(2U, undo_service.undo_manager_.redo_count());
-
- EXPECT_EQ(2, undo_service.undo_operation_count_);
- EXPECT_EQ(0, undo_service.redo_operation_count_);
-}
-
-TEST(UndoServiceTest, RedoAction) {
- TestUndoService undo_service;
-
- undo_service.TriggerOperation();
-
- undo_service.undo_manager_.Undo();
- EXPECT_EQ(0U, undo_service.undo_manager_.undo_count());
- EXPECT_EQ(1U, undo_service.undo_manager_.redo_count());
-
- undo_service.Redo();
- EXPECT_EQ(1U, undo_service.undo_manager_.undo_count());
- EXPECT_EQ(0U, undo_service.undo_manager_.redo_count());
-
- EXPECT_EQ(1, undo_service.undo_operation_count_);
- EXPECT_EQ(1, undo_service.redo_operation_count_);
-}
-
-TEST(UndoServiceTest, GroupActions) {
- TestUndoService undo_service;
-
- // Add two operations in a single action.
- undo_service.undo_manager_.StartGroupingActions();
- undo_service.TriggerOperation();
- undo_service.TriggerOperation();
- undo_service.undo_manager_.EndGroupingActions();
-
- // Check that only one action is created.
- EXPECT_EQ(1U, undo_service.undo_manager_.undo_count());
- EXPECT_EQ(0U, undo_service.undo_manager_.redo_count());
-
- undo_service.undo_manager_.Undo();
- EXPECT_EQ(0U, undo_service.undo_manager_.undo_count());
- EXPECT_EQ(1U, undo_service.undo_manager_.redo_count());
-
- undo_service.Redo();
- EXPECT_EQ(1U, undo_service.undo_manager_.undo_count());
- EXPECT_EQ(0U, undo_service.undo_manager_.redo_count());
-
- // Check that both operations were called in Undo and Redo.
- EXPECT_EQ(2, undo_service.undo_operation_count_);
- EXPECT_EQ(2, undo_service.redo_operation_count_);
-}
-
-TEST(UndoServiceTest, SuspendUndoTracking) {
- TestUndoService undo_service;
-
- undo_service.undo_manager_.SuspendUndoTracking();
- EXPECT_TRUE(undo_service.undo_manager_.IsUndoTrakingSuspended());
-
- undo_service.TriggerOperation();
-
- undo_service.undo_manager_.ResumeUndoTracking();
- EXPECT_FALSE(undo_service.undo_manager_.IsUndoTrakingSuspended());
-
- EXPECT_EQ(0U, undo_service.undo_manager_.undo_count());
- EXPECT_EQ(0U, undo_service.undo_manager_.redo_count());
-}
-
-TEST(UndoServiceTest, RedoEmptyAfterNewAction) {
- TestUndoService undo_service;
-
- undo_service.TriggerOperation();
- undo_service.undo_manager_.Undo();
- EXPECT_EQ(0U, undo_service.undo_manager_.undo_count());
- EXPECT_EQ(1U, undo_service.undo_manager_.redo_count());
-
- undo_service.TriggerOperation();
- EXPECT_EQ(1U, undo_service.undo_manager_.undo_count());
- EXPECT_EQ(0U, undo_service.undo_manager_.redo_count());
-}
-
-TEST(UndoServiceTest, GetAllUndoOperations) {
- TestUndoService undo_service;
-
- undo_service.TriggerOperation();
-
- undo_service.undo_manager_.StartGroupingActions();
- undo_service.TriggerOperation();
- undo_service.TriggerOperation();
- undo_service.undo_manager_.EndGroupingActions();
-
- undo_service.TriggerOperation();
-
- undo_service.undo_manager_.Undo();
- ASSERT_EQ(2U, undo_service.undo_manager_.undo_count());
- ASSERT_EQ(1U, undo_service.undo_manager_.redo_count());
-
- std::vector<UndoOperation*> all_operations =
- undo_service.undo_manager_.GetAllUndoOperations();
- EXPECT_EQ(4U, all_operations.size());
-}
-
-TEST(UndoServiceTest, ObserverCallbacks) {
- TestObserver observer;
- TestUndoService undo_service;
- undo_service.undo_manager_.AddObserver(&observer);
- EXPECT_EQ(0, observer.state_change_count());
-
- undo_service.TriggerOperation();
- EXPECT_EQ(1, observer.state_change_count());
-
- undo_service.undo_manager_.StartGroupingActions();
- undo_service.TriggerOperation();
- undo_service.TriggerOperation();
- undo_service.undo_manager_.EndGroupingActions();
- EXPECT_EQ(2, observer.state_change_count());
-
- // There should be at least 1 observer callback for undo.
- undo_service.undo_manager_.Undo();
- int callback_count_after_undo = observer.state_change_count();
- EXPECT_GT(callback_count_after_undo, 2);
-
- // There should be at least 1 observer callback for redo.
- undo_service.undo_manager_.Redo();
- int callback_count_after_redo = observer.state_change_count();
- EXPECT_GT(callback_count_after_redo, callback_count_after_undo);
-
- undo_service.undo_manager_.RemoveObserver(&observer);
- undo_service.undo_manager_.Undo();
- EXPECT_EQ(callback_count_after_redo, observer.state_change_count());
-}
-
-} // namespace
« no previous file with comments | « chrome/browser/undo/undo_manager_observer.h ('k') | chrome/browser/undo/undo_operation.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698