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

Side by Side Diff: ui/views/controls/prefix_selector_unittest.cc

Issue 2289143004: Add ink drop ripple (but no highlight) to comboboxes in harmony. (Closed)
Patch Set: remove explicit and improve combobox example Created 4 years, 3 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
« no previous file with comments | « ui/views/controls/prefix_selector.cc ('k') | ui/views/controls/tree/tree_view.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 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 "ui/views/controls/prefix_selector.h" 5 #include "ui/views/controls/prefix_selector.h"
6 6
7 #include <string> 7 #include <string>
8 8
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/strings/string_util.h" 10 #include "base/strings/string_util.h"
11 #include "base/strings/utf_string_conversions.h" 11 #include "base/strings/utf_string_conversions.h"
12 #include "ui/views/controls/prefix_delegate.h" 12 #include "ui/views/controls/prefix_delegate.h"
13 #include "ui/views/test/views_test_base.h" 13 #include "ui/views/test/views_test_base.h"
14 14
15 using base::ASCIIToUTF16; 15 using base::ASCIIToUTF16;
16 16
17 namespace views { 17 namespace views {
18 18
19 class TestPrefixDelegate : public PrefixDelegate { 19 class TestPrefixDelegate : public View, public PrefixDelegate {
20 public: 20 public:
21 TestPrefixDelegate() : selected_row_(0) { 21 TestPrefixDelegate() : selected_row_(0) {
22 rows_.push_back(ASCIIToUTF16("aardvark")); 22 rows_.push_back(ASCIIToUTF16("aardvark"));
23 rows_.push_back(ASCIIToUTF16("antelope")); 23 rows_.push_back(ASCIIToUTF16("antelope"));
24 rows_.push_back(ASCIIToUTF16("badger")); 24 rows_.push_back(ASCIIToUTF16("badger"));
25 rows_.push_back(ASCIIToUTF16("gnu")); 25 rows_.push_back(ASCIIToUTF16("gnu"));
26 } 26 }
27 27
28 ~TestPrefixDelegate() override {} 28 ~TestPrefixDelegate() override {}
29 29
30 int GetRowCount() override { return static_cast<int>(rows_.size()); } 30 int GetRowCount() override { return static_cast<int>(rows_.size()); }
31 31
32 int GetSelectedRow() override { return selected_row_; } 32 int GetSelectedRow() override { return selected_row_; }
33 33
34 void SetSelectedRow(int row) override { selected_row_ = row; } 34 void SetSelectedRow(int row) override { selected_row_ = row; }
35 35
36 base::string16 GetTextForRow(int row) override { return rows_[row]; } 36 base::string16 GetTextForRow(int row) override { return rows_[row]; }
37 37
38 private: 38 private:
39 std::vector<base::string16> rows_; 39 std::vector<base::string16> rows_;
40 int selected_row_; 40 int selected_row_;
41 41
42 DISALLOW_COPY_AND_ASSIGN(TestPrefixDelegate); 42 DISALLOW_COPY_AND_ASSIGN(TestPrefixDelegate);
43 }; 43 };
44 44
45 class PrefixSelectorTest : public ViewsTestBase { 45 class PrefixSelectorTest : public ViewsTestBase {
46 public: 46 public:
47 PrefixSelectorTest() { 47 PrefixSelectorTest() {
48 selector_.reset(new PrefixSelector(&delegate_)); 48 selector_.reset(new PrefixSelector(&delegate_, &delegate_));
49 } 49 }
50 ~PrefixSelectorTest() override { 50 ~PrefixSelectorTest() override {
51 // Explicitly release |selector_| here which can happen before releasing 51 // Explicitly release |selector_| here which can happen before releasing
52 // |delegate_|. 52 // |delegate_|.
53 selector_.reset(); 53 selector_.reset();
54 } 54 }
55 55
56 protected: 56 protected:
57 std::unique_ptr<PrefixSelector> selector_; 57 std::unique_ptr<PrefixSelector> selector_;
58 TestPrefixDelegate delegate_; 58 TestPrefixDelegate delegate_;
59 59
60 private: 60 private:
61 DISALLOW_COPY_AND_ASSIGN(PrefixSelectorTest); 61 DISALLOW_COPY_AND_ASSIGN(PrefixSelectorTest);
62 }; 62 };
63 63
64 TEST_F(PrefixSelectorTest, PrefixSelect) { 64 TEST_F(PrefixSelectorTest, PrefixSelect) {
65 selector_->InsertText(ASCIIToUTF16("an")); 65 selector_->InsertText(ASCIIToUTF16("an"));
66 EXPECT_EQ(1, delegate_.GetSelectedRow()); 66 EXPECT_EQ(1, delegate_.GetSelectedRow());
67 67
68 // Invoke OnViewBlur() to reset time. 68 // Invoke OnViewBlur() to reset time.
69 selector_->OnViewBlur(); 69 selector_->OnViewBlur();
70 selector_->InsertText(ASCIIToUTF16("a")); 70 selector_->InsertText(ASCIIToUTF16("a"));
71 EXPECT_EQ(0, delegate_.GetSelectedRow()); 71 EXPECT_EQ(0, delegate_.GetSelectedRow());
72 72
73 selector_->OnViewBlur(); 73 selector_->OnViewBlur();
74 selector_->InsertText(ASCIIToUTF16("g")); 74 selector_->InsertText(ASCIIToUTF16("g"));
75 EXPECT_EQ(3, delegate_.GetSelectedRow()); 75 EXPECT_EQ(3, delegate_.GetSelectedRow());
76 76
77 selector_->OnViewBlur(); 77 selector_->OnViewBlur();
78 selector_->InsertText(ASCIIToUTF16("b")); 78 selector_->InsertText(ASCIIToUTF16("b"));
79 selector_->InsertText(ASCIIToUTF16("a")); 79 selector_->InsertText(ASCIIToUTF16("a"));
80 EXPECT_EQ(2, delegate_.GetSelectedRow()); 80 EXPECT_EQ(2, delegate_.GetSelectedRow());
81 81
82 selector_->OnViewBlur(); 82 selector_->OnViewBlur();
83 selector_->InsertText(ASCIIToUTF16("\t")); 83 selector_->InsertText(ASCIIToUTF16("\t"));
84 selector_->InsertText(ASCIIToUTF16("b")); 84 selector_->InsertText(ASCIIToUTF16("b"));
85 selector_->InsertText(ASCIIToUTF16("a")); 85 selector_->InsertText(ASCIIToUTF16("a"));
86 EXPECT_EQ(2, delegate_.GetSelectedRow()); 86 EXPECT_EQ(2, delegate_.GetSelectedRow());
87 } 87 }
88 88
89 } // namespace views 89 } // namespace views
OLDNEW
« no previous file with comments | « ui/views/controls/prefix_selector.cc ('k') | ui/views/controls/tree/tree_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698