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

Side by Side Diff: chrome/browser/ui/tabs/tab_strip_model_unittest.cc

Issue 671653002: Standardize usage of virtual/override/final in chrome/browser/ui/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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 unified diff | Download patch
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/tabs/tab_strip_model.h" 5 #include "chrome/browser/ui/tabs/tab_strip_model.h"
6 6
7 #include <map> 7 #include <map>
8 #include <string> 8 #include <string>
9 9
10 #include "base/files/file_path.h" 10 #include "base/files/file_path.h"
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
52 // When |source| is deleted both |tab_to_delete| and |tab_strip| are deleted. 52 // When |source| is deleted both |tab_to_delete| and |tab_strip| are deleted.
53 // |tab_to_delete| and |tab_strip| may be NULL. 53 // |tab_to_delete| and |tab_strip| may be NULL.
54 DeleteWebContentsOnDestroyedObserver(WebContents* source, 54 DeleteWebContentsOnDestroyedObserver(WebContents* source,
55 WebContents* tab_to_delete, 55 WebContents* tab_to_delete,
56 TabStripModel* tab_strip) 56 TabStripModel* tab_strip)
57 : WebContentsObserver(source), 57 : WebContentsObserver(source),
58 tab_to_delete_(tab_to_delete), 58 tab_to_delete_(tab_to_delete),
59 tab_strip_(tab_strip) { 59 tab_strip_(tab_strip) {
60 } 60 }
61 61
62 virtual void WebContentsDestroyed() override { 62 void WebContentsDestroyed() override {
63 WebContents* tab_to_delete = tab_to_delete_; 63 WebContents* tab_to_delete = tab_to_delete_;
64 tab_to_delete_ = NULL; 64 tab_to_delete_ = NULL;
65 TabStripModel* tab_strip_to_delete = tab_strip_; 65 TabStripModel* tab_strip_to_delete = tab_strip_;
66 tab_strip_ = NULL; 66 tab_strip_ = NULL;
67 delete tab_to_delete; 67 delete tab_to_delete;
68 delete tab_strip_to_delete; 68 delete tab_strip_to_delete;
69 } 69 }
70 70
71 private: 71 private:
72 WebContents* tab_to_delete_; 72 WebContents* tab_to_delete_;
73 TabStripModel* tab_strip_; 73 TabStripModel* tab_strip_;
74 74
75 DISALLOW_COPY_AND_ASSIGN(DeleteWebContentsOnDestroyedObserver); 75 DISALLOW_COPY_AND_ASSIGN(DeleteWebContentsOnDestroyedObserver);
76 }; 76 };
77 77
78 class TabStripDummyDelegate : public TestTabStripModelDelegate { 78 class TabStripDummyDelegate : public TestTabStripModelDelegate {
79 public: 79 public:
80 TabStripDummyDelegate() : run_unload_(false) {} 80 TabStripDummyDelegate() : run_unload_(false) {}
81 virtual ~TabStripDummyDelegate() {} 81 ~TabStripDummyDelegate() override {}
82 82
83 void set_run_unload_listener(bool value) { run_unload_ = value; } 83 void set_run_unload_listener(bool value) { run_unload_ = value; }
84 84
85 virtual bool RunUnloadListenerBeforeClosing(WebContents* contents) override { 85 bool RunUnloadListenerBeforeClosing(WebContents* contents) override {
86 return run_unload_; 86 return run_unload_;
87 } 87 }
88 88
89 private: 89 private:
90 // Whether to report that we need to run an unload listener before closing. 90 // Whether to report that we need to run an unload listener before closing.
91 bool run_unload_; 91 bool run_unload_;
92 92
93 DISALLOW_COPY_AND_ASSIGN(TabStripDummyDelegate); 93 DISALLOW_COPY_AND_ASSIGN(TabStripDummyDelegate);
94 }; 94 };
95 95
96 const char kTabStripModelTestIDUserDataKey[] = "TabStripModelTestIDUserData"; 96 const char kTabStripModelTestIDUserDataKey[] = "TabStripModelTestIDUserData";
97 97
98 class TabStripModelTestIDUserData : public base::SupportsUserData::Data { 98 class TabStripModelTestIDUserData : public base::SupportsUserData::Data {
99 public: 99 public:
100 explicit TabStripModelTestIDUserData(int id) : id_(id) {} 100 explicit TabStripModelTestIDUserData(int id) : id_(id) {}
101 virtual ~TabStripModelTestIDUserData() {} 101 ~TabStripModelTestIDUserData() override {}
102 int id() { return id_; } 102 int id() { return id_; }
103 103
104 private: 104 private:
105 int id_; 105 int id_;
106 }; 106 };
107 107
108 class DummySingleWebContentsDialogManager 108 class DummySingleWebContentsDialogManager
109 : public web_modal::SingleWebContentsDialogManager { 109 : public web_modal::SingleWebContentsDialogManager {
110 public: 110 public:
111 explicit DummySingleWebContentsDialogManager( 111 explicit DummySingleWebContentsDialogManager(
112 NativeWebContentsModalDialog dialog, 112 NativeWebContentsModalDialog dialog,
113 web_modal::SingleWebContentsDialogManagerDelegate* delegate) 113 web_modal::SingleWebContentsDialogManagerDelegate* delegate)
114 : delegate_(delegate), 114 : delegate_(delegate),
115 dialog_(dialog) {} 115 dialog_(dialog) {}
116 virtual ~DummySingleWebContentsDialogManager() {} 116 ~DummySingleWebContentsDialogManager() override {}
117 117
118 virtual void Show() override {} 118 void Show() override {}
119 virtual void Hide() override {} 119 void Hide() override {}
120 virtual void Close() override { 120 void Close() override { delegate_->WillClose(dialog_); }
121 delegate_->WillClose(dialog_); 121 void Focus() override {}
122 } 122 void Pulse() override {}
123 virtual void Focus() override {} 123 void HostChanged(web_modal::WebContentsModalDialogHost* new_host) override {}
124 virtual void Pulse() override {} 124 NativeWebContentsModalDialog dialog() override { return dialog_; }
125 virtual void HostChanged(
126 web_modal::WebContentsModalDialogHost* new_host) override {}
127 virtual NativeWebContentsModalDialog dialog() override { return dialog_; }
128 125
129 private: 126 private:
130 web_modal::SingleWebContentsDialogManagerDelegate* delegate_; 127 web_modal::SingleWebContentsDialogManagerDelegate* delegate_;
131 NativeWebContentsModalDialog dialog_; 128 NativeWebContentsModalDialog dialog_;
132 129
133 DISALLOW_COPY_AND_ASSIGN(DummySingleWebContentsDialogManager); 130 DISALLOW_COPY_AND_ASSIGN(DummySingleWebContentsDialogManager);
134 }; 131 };
135 132
136 // Test Browser-like class for TabStripModelTest.TabBlockedState. 133 // Test Browser-like class for TabStripModelTest.TabBlockedState.
137 class TabBlockedStateTestBrowser 134 class TabBlockedStateTestBrowser
138 : public TabStripModelObserver, 135 : public TabStripModelObserver,
139 public web_modal::WebContentsModalDialogManagerDelegate { 136 public web_modal::WebContentsModalDialogManagerDelegate {
140 public: 137 public:
141 explicit TabBlockedStateTestBrowser(TabStripModel* tab_strip_model) 138 explicit TabBlockedStateTestBrowser(TabStripModel* tab_strip_model)
142 : tab_strip_model_(tab_strip_model) { 139 : tab_strip_model_(tab_strip_model) {
143 tab_strip_model_->AddObserver(this); 140 tab_strip_model_->AddObserver(this);
144 } 141 }
145 142
146 virtual ~TabBlockedStateTestBrowser() { 143 ~TabBlockedStateTestBrowser() override {
147 tab_strip_model_->RemoveObserver(this); 144 tab_strip_model_->RemoveObserver(this);
148 } 145 }
149 146
150 private: 147 private:
151 // TabStripModelObserver 148 // TabStripModelObserver
152 virtual void TabInsertedAt(WebContents* contents, 149 void TabInsertedAt(WebContents* contents,
153 int index, 150 int index,
154 bool foreground) override { 151 bool foreground) override {
155 web_modal::WebContentsModalDialogManager* manager = 152 web_modal::WebContentsModalDialogManager* manager =
156 web_modal::WebContentsModalDialogManager::FromWebContents(contents); 153 web_modal::WebContentsModalDialogManager::FromWebContents(contents);
157 if (manager) 154 if (manager)
158 manager->SetDelegate(this); 155 manager->SetDelegate(this);
159 } 156 }
160 157
161 // WebContentsModalDialogManagerDelegate 158 // WebContentsModalDialogManagerDelegate
162 virtual void SetWebContentsBlocked(content::WebContents* contents, 159 void SetWebContentsBlocked(content::WebContents* contents,
163 bool blocked) override { 160 bool blocked) override {
164 int index = tab_strip_model_->GetIndexOfWebContents(contents); 161 int index = tab_strip_model_->GetIndexOfWebContents(contents);
165 ASSERT_GE(index, 0); 162 ASSERT_GE(index, 0);
166 tab_strip_model_->SetTabBlocked(index, blocked); 163 tab_strip_model_->SetTabBlocked(index, blocked);
167 } 164 }
168 165
169 TabStripModel* tab_strip_model_; 166 TabStripModel* tab_strip_model_;
170 167
171 DISALLOW_COPY_AND_ASSIGN(TabBlockedStateTestBrowser); 168 DISALLOW_COPY_AND_ASSIGN(TabBlockedStateTestBrowser);
172 }; 169 };
173 170
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
262 model->SetSelectionFromModel(selection_model); 259 model->SetSelectionFromModel(selection_model);
263 } 260 }
264 }; 261 };
265 262
266 class MockTabStripModelObserver : public TabStripModelObserver { 263 class MockTabStripModelObserver : public TabStripModelObserver {
267 public: 264 public:
268 explicit MockTabStripModelObserver(TabStripModel* model) 265 explicit MockTabStripModelObserver(TabStripModel* model)
269 : empty_(true), 266 : empty_(true),
270 deleted_(false), 267 deleted_(false),
271 model_(model) {} 268 model_(model) {}
272 virtual ~MockTabStripModelObserver() {} 269 ~MockTabStripModelObserver() override {}
273 270
274 enum TabStripModelObserverAction { 271 enum TabStripModelObserverAction {
275 INSERT, 272 INSERT,
276 CLOSE, 273 CLOSE,
277 DETACH, 274 DETACH,
278 ACTIVATE, 275 ACTIVATE,
279 DEACTIVATE, 276 DEACTIVATE,
280 SELECT, 277 SELECT,
281 MOVE, 278 MOVE,
282 CHANGE, 279 CHANGE,
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
341 return (s.src_contents == state.src_contents && 338 return (s.src_contents == state.src_contents &&
342 s.dst_contents == state.dst_contents && 339 s.dst_contents == state.dst_contents &&
343 s.src_index == state.src_index && 340 s.src_index == state.src_index &&
344 s.dst_index == state.dst_index && 341 s.dst_index == state.dst_index &&
345 s.change_reason == state.change_reason && 342 s.change_reason == state.change_reason &&
346 s.foreground == state.foreground && 343 s.foreground == state.foreground &&
347 s.action == state.action); 344 s.action == state.action);
348 } 345 }
349 346
350 // TabStripModelObserver implementation: 347 // TabStripModelObserver implementation:
351 virtual void TabInsertedAt(WebContents* contents, 348 void TabInsertedAt(WebContents* contents,
352 int index, 349 int index,
353 bool foreground) override { 350 bool foreground) override {
354 empty_ = false; 351 empty_ = false;
355 State s(contents, index, INSERT); 352 State s(contents, index, INSERT);
356 s.foreground = foreground; 353 s.foreground = foreground;
357 states_.push_back(s); 354 states_.push_back(s);
358 } 355 }
359 virtual void ActiveTabChanged(WebContents* old_contents, 356 void ActiveTabChanged(WebContents* old_contents,
360 WebContents* new_contents, 357 WebContents* new_contents,
361 int index, 358 int index,
362 int reason) override { 359 int reason) override {
363 State s(new_contents, index, ACTIVATE); 360 State s(new_contents, index, ACTIVATE);
364 s.src_contents = old_contents; 361 s.src_contents = old_contents;
365 s.change_reason = reason; 362 s.change_reason = reason;
366 states_.push_back(s); 363 states_.push_back(s);
367 } 364 }
368 virtual void TabSelectionChanged( 365 void TabSelectionChanged(TabStripModel* tab_strip_model,
369 TabStripModel* tab_strip_model, 366 const ui::ListSelectionModel& old_model) override {
370 const ui::ListSelectionModel& old_model) override {
371 State s(model()->GetActiveWebContents(), model()->active_index(), SELECT); 367 State s(model()->GetActiveWebContents(), model()->active_index(), SELECT);
372 s.src_contents = model()->GetWebContentsAt(old_model.active()); 368 s.src_contents = model()->GetWebContentsAt(old_model.active());
373 s.src_index = old_model.active(); 369 s.src_index = old_model.active();
374 states_.push_back(s); 370 states_.push_back(s);
375 } 371 }
376 virtual void TabMoved(WebContents* contents, 372 void TabMoved(WebContents* contents, int from_index, int to_index) override {
377 int from_index,
378 int to_index) override {
379 State s(contents, to_index, MOVE); 373 State s(contents, to_index, MOVE);
380 s.src_index = from_index; 374 s.src_index = from_index;
381 states_.push_back(s); 375 states_.push_back(s);
382 } 376 }
383 377
384 virtual void TabClosingAt(TabStripModel* tab_strip_model, 378 void TabClosingAt(TabStripModel* tab_strip_model,
385 WebContents* contents, 379 WebContents* contents,
386 int index) override { 380 int index) override {
387 states_.push_back(State(contents, index, CLOSE)); 381 states_.push_back(State(contents, index, CLOSE));
388 } 382 }
389 virtual void TabDetachedAt(WebContents* contents, int index) override { 383 void TabDetachedAt(WebContents* contents, int index) override {
390 states_.push_back(State(contents, index, DETACH)); 384 states_.push_back(State(contents, index, DETACH));
391 } 385 }
392 virtual void TabDeactivated(WebContents* contents) override { 386 void TabDeactivated(WebContents* contents) override {
393 states_.push_back(State(contents, model()->active_index(), DEACTIVATE)); 387 states_.push_back(State(contents, model()->active_index(), DEACTIVATE));
394 } 388 }
395 virtual void TabChangedAt(WebContents* contents, 389 void TabChangedAt(WebContents* contents,
396 int index, 390 int index,
397 TabChangeType change_type) override { 391 TabChangeType change_type) override {
398 states_.push_back(State(contents, index, CHANGE)); 392 states_.push_back(State(contents, index, CHANGE));
399 } 393 }
400 virtual void TabReplacedAt(TabStripModel* tab_strip_model, 394 void TabReplacedAt(TabStripModel* tab_strip_model,
401 WebContents* old_contents, 395 WebContents* old_contents,
402 WebContents* new_contents, 396 WebContents* new_contents,
403 int index) override { 397 int index) override {
404 State s(new_contents, index, REPLACED); 398 State s(new_contents, index, REPLACED);
405 s.src_contents = old_contents; 399 s.src_contents = old_contents;
406 states_.push_back(s); 400 states_.push_back(s);
407 } 401 }
408 virtual void TabPinnedStateChanged(WebContents* contents, 402 void TabPinnedStateChanged(WebContents* contents, int index) override {
409 int index) override {
410 states_.push_back(State(contents, index, PINNED)); 403 states_.push_back(State(contents, index, PINNED));
411 } 404 }
412 virtual void TabStripEmpty() override { 405 void TabStripEmpty() override { empty_ = true; }
413 empty_ = true; 406 void WillCloseAllTabs() override {
414 }
415 virtual void WillCloseAllTabs() override {
416 states_.push_back(State(NULL, -1, CLOSE_ALL)); 407 states_.push_back(State(NULL, -1, CLOSE_ALL));
417 } 408 }
418 virtual void CloseAllTabsCanceled() override { 409 void CloseAllTabsCanceled() override {
419 states_.push_back(State(NULL, -1, CLOSE_ALL_CANCELED)); 410 states_.push_back(State(NULL, -1, CLOSE_ALL_CANCELED));
420 } 411 }
421 virtual void TabStripModelDeleted() override { 412 void TabStripModelDeleted() override { deleted_ = true; }
422 deleted_ = true;
423 }
424 413
425 void ClearStates() { 414 void ClearStates() {
426 states_.clear(); 415 states_.clear();
427 } 416 }
428 417
429 bool empty() const { return empty_; } 418 bool empty() const { return empty_; }
430 bool deleted() const { return deleted_; } 419 bool deleted() const { return deleted_; }
431 TabStripModel* model() { return model_; } 420 TabStripModel* model() { return model_; }
432 421
433 private: 422 private:
(...skipping 2150 matching lines...) Expand 10 before | Expand all | Expand 10 after
2584 WebContents* moved_contents = strip_src.DetachWebContentsAt(1); 2573 WebContents* moved_contents = strip_src.DetachWebContentsAt(1);
2585 EXPECT_EQ(contents2, moved_contents); 2574 EXPECT_EQ(contents2, moved_contents);
2586 2575
2587 // Attach the tab to the destination tab strip. 2576 // Attach the tab to the destination tab strip.
2588 strip_dst.AppendWebContents(moved_contents, true); 2577 strip_dst.AppendWebContents(moved_contents, true);
2589 EXPECT_TRUE(strip_dst.IsTabBlocked(0)); 2578 EXPECT_TRUE(strip_dst.IsTabBlocked(0));
2590 2579
2591 strip_dst.CloseAllTabs(); 2580 strip_dst.CloseAllTabs();
2592 strip_src.CloseAllTabs(); 2581 strip_src.CloseAllTabs();
2593 } 2582 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698