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

Side by Side Diff: content/renderer/render_view_browsertest.cc

Issue 121033002: Update uses of UTF conversions in content/ to use the base:: namespace. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 12 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
« no previous file with comments | « content/renderer/render_thread_impl.cc ('k') | content/renderer/render_view_impl.cc » ('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 (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 "base/basictypes.h" 5 #include "base/basictypes.h"
6 6
7 #include "base/memory/shared_memory.h" 7 #include "base/memory/shared_memory.h"
8 #include "base/strings/string_util.h" 8 #include "base/strings/string_util.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "base/win/windows_version.h" 10 #include "base/win/windows_version.h"
(...skipping 929 matching lines...) Expand 10 before | Expand all | Expand 10 after
940 &can_compose_inline); 940 &can_compose_inline);
941 EXPECT_EQ(ui::TEXT_INPUT_TYPE_PASSWORD, type); 941 EXPECT_EQ(ui::TEXT_INPUT_TYPE_PASSWORD, type);
942 942
943 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kInputModeTestCases); i++) { 943 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(kInputModeTestCases); i++) {
944 const InputModeTestCase* test_case = &kInputModeTestCases[i]; 944 const InputModeTestCase* test_case = &kInputModeTestCases[i];
945 std::string javascript = 945 std::string javascript =
946 base::StringPrintf("document.getElementById('%s').focus();", 946 base::StringPrintf("document.getElementById('%s').focus();",
947 test_case->input_id); 947 test_case->input_id);
948 // Move the input focus to the target <input> element, where we should 948 // Move the input focus to the target <input> element, where we should
949 // activate IMEs. 949 // activate IMEs.
950 ExecuteJavaScriptAndReturnIntValue(ASCIIToUTF16(javascript), NULL); 950 ExecuteJavaScriptAndReturnIntValue(base::ASCIIToUTF16(javascript), NULL);
951 ProcessPendingMessages(); 951 ProcessPendingMessages();
952 render_thread_->sink().ClearMessages(); 952 render_thread_->sink().ClearMessages();
953 953
954 // Update the IME status and verify if our IME backend sends an IPC 954 // Update the IME status and verify if our IME backend sends an IPC
955 // message to activate IMEs. 955 // message to activate IMEs.
956 view()->UpdateTextInputType(); 956 view()->UpdateTextInputType();
957 const IPC::Message* msg = render_thread_->sink().GetMessageAt(0); 957 const IPC::Message* msg = render_thread_->sink().GetMessageAt(0);
958 EXPECT_TRUE(msg != NULL); 958 EXPECT_TRUE(msg != NULL);
959 EXPECT_EQ(ViewHostMsg_TextInputTypeChanged::ID, msg->type()); 959 EXPECT_EQ(ViewHostMsg_TextInputTypeChanged::ID, msg->type());
960 ViewHostMsg_TextInputTypeChanged::Read(msg, 960 ViewHostMsg_TextInputTypeChanged::Read(msg,
(...skipping 327 matching lines...) Expand 10 before | Expand all | Expand 10 after
1288 "%d,%s", // texts in the third <div> element 1288 "%d,%s", // texts in the third <div> element
1289 key_code, kModifierData[j].expected_result, 1289 key_code, kModifierData[j].expected_result,
1290 static_cast<int>(char_code[0]), 1290 static_cast<int>(char_code[0]),
1291 kModifierData[j].expected_result, 1291 kModifierData[j].expected_result,
1292 key_code, kModifierData[j].expected_result); 1292 key_code, kModifierData[j].expected_result);
1293 1293
1294 // Retrieve the text in the test page and compare it with the expected 1294 // Retrieve the text in the test page and compare it with the expected
1295 // text created from a virtual-key code, a character code, and the 1295 // text created from a virtual-key code, a character code, and the
1296 // modifier-key status. 1296 // modifier-key status.
1297 const int kMaxOutputCharacters = 1024; 1297 const int kMaxOutputCharacters = 1024;
1298 std::string output = UTF16ToUTF8( 1298 std::string output = base::UTF16ToUTF8(
1299 GetMainFrame()->contentAsText(kMaxOutputCharacters)); 1299 GetMainFrame()->contentAsText(kMaxOutputCharacters));
1300 EXPECT_EQ(expected_result, output); 1300 EXPECT_EQ(expected_result, output);
1301 } 1301 }
1302 } 1302 }
1303 } 1303 }
1304 #else 1304 #else
1305 NOTIMPLEMENTED(); 1305 NOTIMPLEMENTED();
1306 #endif 1306 #endif
1307 } 1307 }
1308 1308
(...skipping 460 matching lines...) Expand 10 before | Expand all | Expand 10 after
1769 1769
1770 EXPECT_TRUE(render_thread_->sink().GetUniqueMessageMatching( 1770 EXPECT_TRUE(render_thread_->sink().GetUniqueMessageMatching(
1771 ViewHostMsg_ContextMenu::ID)); 1771 ViewHostMsg_ContextMenu::ID));
1772 } 1772 }
1773 1773
1774 TEST_F(RenderViewImplTest, TestBackForward) { 1774 TEST_F(RenderViewImplTest, TestBackForward) {
1775 LoadHTML("<div id=pagename>Page A</div>"); 1775 LoadHTML("<div id=pagename>Page A</div>");
1776 blink::WebHistoryItem page_a_item = GetMainFrame()->currentHistoryItem(); 1776 blink::WebHistoryItem page_a_item = GetMainFrame()->currentHistoryItem();
1777 int was_page_a = -1; 1777 int was_page_a = -1;
1778 base::string16 check_page_a = 1778 base::string16 check_page_a =
1779 ASCIIToUTF16( 1779 base::ASCIIToUTF16(
1780 "Number(document.getElementById('pagename').innerHTML == 'Page A')"); 1780 "Number(document.getElementById('pagename').innerHTML == 'Page A')");
1781 EXPECT_TRUE(ExecuteJavaScriptAndReturnIntValue(check_page_a, &was_page_a)); 1781 EXPECT_TRUE(ExecuteJavaScriptAndReturnIntValue(check_page_a, &was_page_a));
1782 EXPECT_EQ(1, was_page_a); 1782 EXPECT_EQ(1, was_page_a);
1783 1783
1784 LoadHTML("<div id=pagename>Page B</div>"); 1784 LoadHTML("<div id=pagename>Page B</div>");
1785 int was_page_b = -1; 1785 int was_page_b = -1;
1786 base::string16 check_page_b = 1786 base::string16 check_page_b =
1787 ASCIIToUTF16( 1787 base::ASCIIToUTF16(
1788 "Number(document.getElementById('pagename').innerHTML == 'Page B')"); 1788 "Number(document.getElementById('pagename').innerHTML == 'Page B')");
1789 EXPECT_TRUE(ExecuteJavaScriptAndReturnIntValue(check_page_b, &was_page_b)); 1789 EXPECT_TRUE(ExecuteJavaScriptAndReturnIntValue(check_page_b, &was_page_b));
1790 EXPECT_EQ(1, was_page_b); 1790 EXPECT_EQ(1, was_page_b);
1791 1791
1792 LoadHTML("<div id=pagename>Page C</div>"); 1792 LoadHTML("<div id=pagename>Page C</div>");
1793 int was_page_c = -1; 1793 int was_page_c = -1;
1794 base::string16 check_page_c = 1794 base::string16 check_page_c =
1795 ASCIIToUTF16( 1795 base::ASCIIToUTF16(
1796 "Number(document.getElementById('pagename').innerHTML == 'Page C')"); 1796 "Number(document.getElementById('pagename').innerHTML == 'Page C')");
1797 EXPECT_TRUE(ExecuteJavaScriptAndReturnIntValue(check_page_c, &was_page_c)); 1797 EXPECT_TRUE(ExecuteJavaScriptAndReturnIntValue(check_page_c, &was_page_c));
1798 EXPECT_EQ(1, was_page_b); 1798 EXPECT_EQ(1, was_page_b);
1799 1799
1800 blink::WebHistoryItem forward_item = GetMainFrame()->currentHistoryItem(); 1800 blink::WebHistoryItem forward_item = GetMainFrame()->currentHistoryItem();
1801 GoBack(GetMainFrame()->previousHistoryItem()); 1801 GoBack(GetMainFrame()->previousHistoryItem());
1802 EXPECT_TRUE(ExecuteJavaScriptAndReturnIntValue(check_page_b, &was_page_b)); 1802 EXPECT_TRUE(ExecuteJavaScriptAndReturnIntValue(check_page_b, &was_page_b));
1803 EXPECT_EQ(1, was_page_b); 1803 EXPECT_EQ(1, was_page_b);
1804 1804
1805 GoForward(forward_item); 1805 GoForward(forward_item);
(...skipping 19 matching lines...) Expand all
1825 1825
1826 #if defined(OS_WIN) 1826 #if defined(OS_WIN)
1827 // http://crbug.com/304193 1827 // http://crbug.com/304193
1828 if (base::win::GetVersion() < base::win::VERSION_VISTA) 1828 if (base::win::GetVersion() < base::win::VERSION_VISTA)
1829 return; 1829 return;
1830 #endif 1830 #endif
1831 1831
1832 LoadHTML("<textarea id=\"test\"></textarea>"); 1832 LoadHTML("<textarea id=\"test\"></textarea>");
1833 ExecuteJavaScript("document.getElementById('test').focus();"); 1833 ExecuteJavaScript("document.getElementById('test').focus();");
1834 1834
1835 const base::string16 empty_string = UTF8ToUTF16(""); 1835 const base::string16 empty_string;
1836 const std::vector<blink::WebCompositionUnderline> empty_underline; 1836 const std::vector<blink::WebCompositionUnderline> empty_underline;
1837 std::vector<gfx::Rect> bounds; 1837 std::vector<gfx::Rect> bounds;
1838 view()->OnSetFocus(true); 1838 view()->OnSetFocus(true);
1839 view()->OnSetInputMethodActive(true); 1839 view()->OnSetInputMethodActive(true);
1840 1840
1841 // ASCII composition 1841 // ASCII composition
1842 const base::string16 ascii_composition = UTF8ToUTF16("aiueo"); 1842 const base::string16 ascii_composition = base::UTF8ToUTF16("aiueo");
1843 view()->OnImeSetComposition(ascii_composition, empty_underline, 0, 0); 1843 view()->OnImeSetComposition(ascii_composition, empty_underline, 0, 0);
1844 view()->GetCompositionCharacterBounds(&bounds); 1844 view()->GetCompositionCharacterBounds(&bounds);
1845 ASSERT_EQ(ascii_composition.size(), bounds.size()); 1845 ASSERT_EQ(ascii_composition.size(), bounds.size());
1846 for (size_t i = 0; i < bounds.size(); ++i) 1846 for (size_t i = 0; i < bounds.size(); ++i)
1847 EXPECT_LT(0, bounds[i].width()); 1847 EXPECT_LT(0, bounds[i].width());
1848 view()->OnImeConfirmComposition( 1848 view()->OnImeConfirmComposition(
1849 empty_string, gfx::Range::InvalidRange(), false); 1849 empty_string, gfx::Range::InvalidRange(), false);
1850 1850
1851 // Non surrogate pair unicode character. 1851 // Non surrogate pair unicode character.
1852 const base::string16 unicode_composition = UTF8ToUTF16( 1852 const base::string16 unicode_composition = base::UTF8ToUTF16(
1853 "\xE3\x81\x82\xE3\x81\x84\xE3\x81\x86\xE3\x81\x88\xE3\x81\x8A"); 1853 "\xE3\x81\x82\xE3\x81\x84\xE3\x81\x86\xE3\x81\x88\xE3\x81\x8A");
1854 view()->OnImeSetComposition(unicode_composition, empty_underline, 0, 0); 1854 view()->OnImeSetComposition(unicode_composition, empty_underline, 0, 0);
1855 view()->GetCompositionCharacterBounds(&bounds); 1855 view()->GetCompositionCharacterBounds(&bounds);
1856 ASSERT_EQ(unicode_composition.size(), bounds.size()); 1856 ASSERT_EQ(unicode_composition.size(), bounds.size());
1857 for (size_t i = 0; i < bounds.size(); ++i) 1857 for (size_t i = 0; i < bounds.size(); ++i)
1858 EXPECT_LT(0, bounds[i].width()); 1858 EXPECT_LT(0, bounds[i].width());
1859 view()->OnImeConfirmComposition( 1859 view()->OnImeConfirmComposition(
1860 empty_string, gfx::Range::InvalidRange(), false); 1860 empty_string, gfx::Range::InvalidRange(), false);
1861 1861
1862 // Surrogate pair character. 1862 // Surrogate pair character.
1863 const base::string16 surrogate_pair_char = UTF8ToUTF16("\xF0\xA0\xAE\x9F"); 1863 const base::string16 surrogate_pair_char =
1864 base::UTF8ToUTF16("\xF0\xA0\xAE\x9F");
1864 view()->OnImeSetComposition(surrogate_pair_char, 1865 view()->OnImeSetComposition(surrogate_pair_char,
1865 empty_underline, 1866 empty_underline,
1866 0, 1867 0,
1867 0); 1868 0);
1868 view()->GetCompositionCharacterBounds(&bounds); 1869 view()->GetCompositionCharacterBounds(&bounds);
1869 ASSERT_EQ(surrogate_pair_char.size(), bounds.size()); 1870 ASSERT_EQ(surrogate_pair_char.size(), bounds.size());
1870 EXPECT_LT(0, bounds[0].width()); 1871 EXPECT_LT(0, bounds[0].width());
1871 EXPECT_EQ(0, bounds[1].width()); 1872 EXPECT_EQ(0, bounds[1].width());
1872 view()->OnImeConfirmComposition( 1873 view()->OnImeConfirmComposition(
1873 empty_string, gfx::Range::InvalidRange(), false); 1874 empty_string, gfx::Range::InvalidRange(), false);
1874 1875
1875 // Mixed string. 1876 // Mixed string.
1876 const base::string16 surrogate_pair_mixed_composition = 1877 const base::string16 surrogate_pair_mixed_composition =
1877 surrogate_pair_char + UTF8ToUTF16("\xE3\x81\x82") + surrogate_pair_char + 1878 surrogate_pair_char + base::UTF8ToUTF16("\xE3\x81\x82") +
1878 UTF8ToUTF16("b") + surrogate_pair_char; 1879 surrogate_pair_char + base::UTF8ToUTF16("b") + surrogate_pair_char;
1879 const size_t utf16_length = 8UL; 1880 const size_t utf16_length = 8UL;
1880 const bool is_surrogate_pair_empty_rect[8] = { 1881 const bool is_surrogate_pair_empty_rect[8] = {
1881 false, true, false, false, true, false, false, true }; 1882 false, true, false, false, true, false, false, true };
1882 view()->OnImeSetComposition(surrogate_pair_mixed_composition, 1883 view()->OnImeSetComposition(surrogate_pair_mixed_composition,
1883 empty_underline, 1884 empty_underline,
1884 0, 1885 0,
1885 0); 1886 0);
1886 view()->GetCompositionCharacterBounds(&bounds); 1887 view()->GetCompositionCharacterBounds(&bounds);
1887 ASSERT_EQ(utf16_length, bounds.size()); 1888 ASSERT_EQ(utf16_length, bounds.size());
1888 for (size_t i = 0; i < utf16_length; ++i) { 1889 for (size_t i = 0; i < utf16_length; ++i) {
(...skipping 279 matching lines...) Expand 10 before | Expand all | Expand 10 after
2168 "};" 2169 "};"
2169 "</script>"); 2170 "</script>");
2170 2171
2171 // Fire candidatewindow events. 2172 // Fire candidatewindow events.
2172 view()->OnCandidateWindowShown(); 2173 view()->OnCandidateWindowShown();
2173 view()->OnCandidateWindowUpdated(); 2174 view()->OnCandidateWindowUpdated();
2174 view()->OnCandidateWindowHidden(); 2175 view()->OnCandidateWindowHidden();
2175 2176
2176 // Retrieve the content and check if it is expected. 2177 // Retrieve the content and check if it is expected.
2177 const int kMaxOutputCharacters = 50; 2178 const int kMaxOutputCharacters = 50;
2178 std::string output = UTF16ToUTF8( 2179 std::string output = base::UTF16ToUTF8(
2179 GetMainFrame()->contentAsText(kMaxOutputCharacters)); 2180 GetMainFrame()->contentAsText(kMaxOutputCharacters));
2180 EXPECT_EQ(output, "\nResult:showupdatehide"); 2181 EXPECT_EQ(output, "\nResult:showupdatehide");
2181 } 2182 }
2182 2183
2183 // Ensure the render view sends favicon url update events correctly. 2184 // Ensure the render view sends favicon url update events correctly.
2184 TEST_F(RenderViewImplTest, SendFaviconURLUpdateEvent) { 2185 TEST_F(RenderViewImplTest, SendFaviconURLUpdateEvent) {
2185 // An event should be sent when a favicon url exists. 2186 // An event should be sent when a favicon url exists.
2186 LoadHTML("<html>" 2187 LoadHTML("<html>"
2187 "<head>" 2188 "<head>"
2188 "<link rel='icon' href='http://www.google.com/favicon.ico'>" 2189 "<link rel='icon' href='http://www.google.com/favicon.ico'>"
2189 "</head>" 2190 "</head>"
2190 "</html>"); 2191 "</html>");
2191 EXPECT_TRUE(render_thread_->sink().GetFirstMessageMatching( 2192 EXPECT_TRUE(render_thread_->sink().GetFirstMessageMatching(
2192 ViewHostMsg_UpdateFaviconURL::ID)); 2193 ViewHostMsg_UpdateFaviconURL::ID));
2193 render_thread_->sink().ClearMessages(); 2194 render_thread_->sink().ClearMessages();
2194 2195
2195 // An event should not be sent if no favicon url exists. This is an assumption 2196 // An event should not be sent if no favicon url exists. This is an assumption
2196 // made by some of Chrome's favicon handling. 2197 // made by some of Chrome's favicon handling.
2197 LoadHTML("<html>" 2198 LoadHTML("<html>"
2198 "<head>" 2199 "<head>"
2199 "</head>" 2200 "</head>"
2200 "</html>"); 2201 "</html>");
2201 EXPECT_FALSE(render_thread_->sink().GetFirstMessageMatching( 2202 EXPECT_FALSE(render_thread_->sink().GetFirstMessageMatching(
2202 ViewHostMsg_UpdateFaviconURL::ID)); 2203 ViewHostMsg_UpdateFaviconURL::ID));
2203 } 2204 }
2204 2205
2205 } // namespace content 2206 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/render_thread_impl.cc ('k') | content/renderer/render_view_impl.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698