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

Side by Side Diff: chrome/browser/autocomplete/autocomplete_edit_unittest.cc

Issue 6256010: Revert 72380 - Remove wstring from autocomplete.... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 9 years, 11 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 "base/utf_string_conversions.h"
6 #include "chrome/browser/autocomplete/autocomplete_edit.h" 5 #include "chrome/browser/autocomplete/autocomplete_edit.h"
7 #include "chrome/browser/autocomplete/autocomplete_edit_view.h" 6 #include "chrome/browser/autocomplete/autocomplete_edit_view.h"
8 #include "chrome/test/testing_profile.h" 7 #include "chrome/test/testing_profile.h"
9 #include "third_party/skia/include/core/SkBitmap.h" 8 #include "third_party/skia/include/core/SkBitmap.h"
10 #include "testing/gtest/include/gtest/gtest.h" 9 #include "testing/gtest/include/gtest/gtest.h"
11 10
12 namespace { 11 namespace {
13 12
14 class TestingAutocompleteEditView : public AutocompleteEditView { 13 class TestingAutocompleteEditView : public AutocompleteEditView {
15 public: 14 public:
16 TestingAutocompleteEditView() {} 15 TestingAutocompleteEditView() {}
17 16
18 virtual AutocompleteEditModel* model() { return NULL; } 17 virtual AutocompleteEditModel* model() { return NULL; }
19 virtual const AutocompleteEditModel* model() const { return NULL; } 18 virtual const AutocompleteEditModel* model() const { return NULL; }
20 virtual void SaveStateToTab(TabContents* tab) {} 19 virtual void SaveStateToTab(TabContents* tab) {}
21 virtual void Update(const TabContents* tab_for_state_restoring) {} 20 virtual void Update(const TabContents* tab_for_state_restoring) {}
22 virtual void OpenURL(const GURL& url, 21 virtual void OpenURL(const GURL& url,
23 WindowOpenDisposition disposition, 22 WindowOpenDisposition disposition,
24 PageTransition::Type transition, 23 PageTransition::Type transition,
25 const GURL& alternate_nav_url, 24 const GURL& alternate_nav_url,
26 size_t selected_line, 25 size_t selected_line,
27 const string16& keyword) {} 26 const std::wstring& keyword) {}
28 virtual string16 GetText() const { return string16(); } 27 virtual std::wstring GetText() const { return std::wstring(); }
29 virtual bool IsEditingOrEmpty() const { return true; } 28 virtual bool IsEditingOrEmpty() const { return true; }
30 virtual int GetIcon() const { return 0; } 29 virtual int GetIcon() const { return 0; }
31 virtual void SetUserText(const string16& text) {} 30 virtual void SetUserText(const std::wstring& text) {}
32 virtual void SetUserText(const string16& text, 31 virtual void SetUserText(const std::wstring& text,
33 const string16& display_text, 32 const std::wstring& display_text,
34 bool update_popup) {} 33 bool update_popup) {}
35 virtual void SetWindowTextAndCaretPos(const string16& text, 34 virtual void SetWindowTextAndCaretPos(const std::wstring& text,
36 size_t caret_pos) {} 35 size_t caret_pos) {}
37 virtual void SetForcedQuery() {} 36 virtual void SetForcedQuery() {}
38 virtual bool IsSelectAll() { return false; } 37 virtual bool IsSelectAll() { return false; }
39 virtual bool DeleteAtEndPressed() { return false; } 38 virtual bool DeleteAtEndPressed() { return false; }
40 virtual void GetSelectionBounds(string16::size_type* start, 39 virtual void GetSelectionBounds(std::wstring::size_type* start,
41 string16::size_type* end) {} 40 std::wstring::size_type* end) {}
42 virtual void SelectAll(bool reversed) {} 41 virtual void SelectAll(bool reversed) {}
43 virtual void RevertAll() {} 42 virtual void RevertAll() {}
44 virtual void UpdatePopup() {} 43 virtual void UpdatePopup() {}
45 virtual void ClosePopup() {} 44 virtual void ClosePopup() {}
46 virtual void SetFocus() {} 45 virtual void SetFocus() {}
47 virtual void OnTemporaryTextMaybeChanged(const string16& display_text, 46 virtual void OnTemporaryTextMaybeChanged(const std::wstring& display_text,
48 bool save_original_selection) {} 47 bool save_original_selection) {}
49 virtual bool OnInlineAutocompleteTextMaybeChanged( 48 virtual bool OnInlineAutocompleteTextMaybeChanged(
50 const string16& display_text, size_t user_text_length) { 49 const std::wstring& display_text, size_t user_text_length) {
51 return false; 50 return false;
52 } 51 }
53 virtual void OnRevertTemporaryText() {} 52 virtual void OnRevertTemporaryText() {}
54 virtual void OnBeforePossibleChange() {} 53 virtual void OnBeforePossibleChange() {}
55 virtual bool OnAfterPossibleChange() { return false; } 54 virtual bool OnAfterPossibleChange() { return false; }
56 virtual gfx::NativeView GetNativeView() const { return 0; } 55 virtual gfx::NativeView GetNativeView() const { return 0; }
57 virtual CommandUpdater* GetCommandUpdater() { return NULL; } 56 virtual CommandUpdater* GetCommandUpdater() { return NULL; }
58 virtual void SetInstantSuggestion(const string16& input) {} 57 virtual void SetInstantSuggestion(const string16& input) {}
59 virtual int TextWidth() const { return 0; } 58 virtual int TextWidth() const { return 0; }
60 virtual bool IsImeComposing() const { return false; } 59 virtual bool IsImeComposing() const { return false; }
61 60
62 #if defined(TOOLKIT_VIEWS) 61 #if defined(TOOLKIT_VIEWS)
63 virtual views::View* AddToView(views::View* parent) { return NULL; } 62 virtual views::View* AddToView(views::View* parent) { return NULL; }
64 virtual bool CommitInstantSuggestion( 63 virtual bool CommitInstantSuggestion(
65 const string16& typed_text, 64 const std::wstring& typed_text,
66 const string16& suggested_text) { return false; } 65 const std::wstring& suggested_text) { return false;}
67 #endif 66 #endif
68 67
69 private: 68 private:
70 DISALLOW_COPY_AND_ASSIGN(TestingAutocompleteEditView); 69 DISALLOW_COPY_AND_ASSIGN(TestingAutocompleteEditView);
71 }; 70 };
72 71
73 class TestingAutocompleteEditController : public AutocompleteEditController { 72 class TestingAutocompleteEditController : public AutocompleteEditController {
74 public: 73 public:
75 TestingAutocompleteEditController() {} 74 TestingAutocompleteEditController() {}
76 virtual void OnAutocompleteWillClosePopup() {} 75 virtual void OnAutocompleteWillClosePopup() {}
77 virtual void OnAutocompleteLosingFocus(gfx::NativeView view_gaining_focus) {} 76 virtual void OnAutocompleteLosingFocus(gfx::NativeView view_gaining_focus) {}
78 virtual void OnAutocompleteWillAccept() {} 77 virtual void OnAutocompleteWillAccept() {}
79 virtual bool OnCommitSuggestedText(const string16& typed_text) { 78 virtual bool OnCommitSuggestedText(const std::wstring& typed_text) {
80 return false; 79 return false;
81 } 80 }
82 virtual bool AcceptCurrentInstantPreview() { 81 virtual bool AcceptCurrentInstantPreview() {
83 return false; 82 return false;
84 } 83 }
85 virtual void OnPopupBoundsChanged(const gfx::Rect& bounds) {} 84 virtual void OnPopupBoundsChanged(const gfx::Rect& bounds) {}
86 virtual void OnAutocompleteAccept(const GURL& url, 85 virtual void OnAutocompleteAccept(const GURL& url,
87 WindowOpenDisposition disposition, 86 WindowOpenDisposition disposition,
88 PageTransition::Type transition, 87 PageTransition::Type transition,
89 const GURL& alternate_nav_url) {} 88 const GURL& alternate_nav_url) {}
90 virtual void OnChanged() {} 89 virtual void OnChanged() {}
91 virtual void OnSelectionBoundsChanged() {} 90 virtual void OnSelectionBoundsChanged() {}
92 virtual void OnInputInProgress(bool in_progress) {} 91 virtual void OnInputInProgress(bool in_progress) {}
93 virtual void OnKillFocus() {} 92 virtual void OnKillFocus() {}
94 virtual void OnSetFocus() {} 93 virtual void OnSetFocus() {}
95 virtual SkBitmap GetFavIcon() const { return SkBitmap(); } 94 virtual SkBitmap GetFavIcon() const { return SkBitmap(); }
96 virtual string16 GetTitle() const { return string16(); } 95 virtual std::wstring GetTitle() const { return std::wstring(); }
97 96
98 private: 97 private:
99 DISALLOW_COPY_AND_ASSIGN(TestingAutocompleteEditController); 98 DISALLOW_COPY_AND_ASSIGN(TestingAutocompleteEditController);
100 }; 99 };
101 100
102 } 101 }
103 102
104 typedef testing::Test AutocompleteEditTest; 103 typedef testing::Test AutocompleteEditTest;
105 104
106 // Tests various permutations of AutocompleteModel::AdjustTextForCopy. 105 // Tests various permutations of AutocompleteModel::AdjustTextForCopy.
107 TEST(AutocompleteEditTest, AdjustTextForCopy) { 106 TEST(AutocompleteEditTest, AdjustTextForCopy) {
108 struct Data { 107 struct Data {
109 const char* perm_text; 108 const wchar_t* perm_text;
110 const int sel_start; 109 const int sel_start;
111 const bool is_all_selected; 110 const bool is_all_selected;
112 const char* input; 111 const wchar_t* input;
113 const char* expected_output; 112 const wchar_t* expected_output;
114 const bool write_url; 113 const bool write_url;
115 const char* expected_url; 114 const char* expected_url;
116 } input[] = { 115 } input[] = {
117 // Test that http:// is inserted if all text is selected. 116 // Test that http:// is inserted if all text is selected.
118 { "a.b/c", 0, true, "a.b/c", "http://a.b/c", true, "http://a.b/c" }, 117 { L"a.b/c", 0, true, L"a.b/c", L"http://a.b/c", true, "http://a.b/c" },
119 118
120 // Test that http:// is inserted if the host is selected. 119 // Test that http:// is inserted if the host is selected.
121 { "a.b/c", 0, false, "a.b/", "http://a.b/", true, "http://a.b/" }, 120 { L"a.b/c", 0, false, L"a.b/", L"http://a.b/", true, "http://a.b/" },
122 121
123 // Tests that http:// is inserted if the path is modified. 122 // Tests that http:// is inserted if the path is modified.
124 { "a.b/c", 0, false, "a.b/d", "http://a.b/d", true, "http://a.b/d" }, 123 { L"a.b/c", 0, false, L"a.b/d", L"http://a.b/d", true, "http://a.b/d" },
125 124
126 // Tests that http:// isn't inserted if the host is modified. 125 // Tests that http:// isn't inserted if the host is modified.
127 { "a.b/c", 0, false, "a.c/", "a.c/", false, "" }, 126 { L"a.b/c", 0, false, L"a.c/", L"a.c/", false, "" },
128 127
129 // Tests that http:// isn't inserted if the start of the selection is 1. 128 // Tests that http:// isn't inserted if the start of the selection is 1.
130 { "a.b/c", 1, false, "a.b/", "a.b/", false, "" }, 129 { L"a.b/c", 1, false, L"a.b/", L"a.b/", false, "" },
131 130
132 // Tests that http:// isn't inserted if a portion of the host is selected. 131 // Tests that http:// isn't inserted if a portion of the host is selected.
133 { "a.com/", 0, false, "a.co", "a.co", false, "" }, 132 { L"a.com/", 0, false, L"a.co", L"a.co", false, "" },
134 133
135 // Tests that http:// isn't inserted for an https url after the user nukes 134 // Tests that http:// isn't inserted for an https url after the user nukes
136 // https. 135 // https.
137 { "https://a.com/", 0, false, "a.com/", "a.com/", false, "" }, 136 { L"https://a.com/", 0, false, L"a.com/", L"a.com/", false, "" },
138 137
139 // Tests that http:// isn't inserted if the user adds to the host. 138 // Tests that http:// isn't inserted if the user adds to the host.
140 { "a.b/", 0, false, "a.bc/", "a.bc/", false, "" }, 139 { L"a.b/", 0, false, L"a.bc/", L"a.bc/", false, "" },
141 140
142 // Tests that we don't get double http if the user manually inserts http. 141 // Tests that we don't get double http if the user manually inserts http.
143 { "a.b/", 0, false, "http://a.b/", "http://a.b/", true, "http://a.b/" }, 142 { L"a.b/", 0, false, L"http://a.b/", L"http://a.b/", true, "http://a.b/" },
144 }; 143 };
145 TestingAutocompleteEditView view; 144 TestingAutocompleteEditView view;
146 TestingAutocompleteEditController controller; 145 TestingAutocompleteEditController controller;
147 TestingProfile profile; 146 TestingProfile profile;
148 AutocompleteEditModel model(&view, &controller, &profile); 147 AutocompleteEditModel model(&view, &controller, &profile);
149 148
150 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(input); ++i) { 149 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(input); ++i) {
151 model.UpdatePermanentText(ASCIIToUTF16(input[i].perm_text)); 150 model.UpdatePermanentText(input[i].perm_text);
152 151
153 string16 result = ASCIIToUTF16(input[i].input); 152 std::wstring result(input[i].input);
154 GURL url; 153 GURL url;
155 bool write_url; 154 bool write_url;
156 model.AdjustTextForCopy(input[i].sel_start, input[i].is_all_selected, 155 model.AdjustTextForCopy(input[i].sel_start, input[i].is_all_selected,
157 &result, &url, &write_url); 156 &result, &url, &write_url);
158 EXPECT_EQ(ASCIIToUTF16(input[i].expected_output), result) << "@: " << i; 157 EXPECT_EQ(input[i].expected_output, result) << "@: " << i;
159 EXPECT_EQ(input[i].write_url, write_url) << " @" << i; 158 EXPECT_EQ(input[i].write_url, write_url) << " @" << i;
160 if (write_url) 159 if (write_url)
161 EXPECT_EQ(input[i].expected_url, url.spec()) << " @" << i; 160 EXPECT_EQ(input[i].expected_url, url.spec()) << " @" << i;
162 } 161 }
163 } 162 }
OLDNEW
« no previous file with comments | « chrome/browser/autocomplete/autocomplete_edit.cc ('k') | chrome/browser/autocomplete/autocomplete_edit_view.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698