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

Side by Side Diff: third_party/WebKit/Source/web/tests/WebViewTest.cpp

Issue 2667283007: Refactor Samsung SmartClip implementation. (Closed)
Patch Set: Really apply code review comments Created 3 years, 10 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 /* 1 /*
2 * Copyright (C) 2011, 2012 Google Inc. All rights reserved. 2 * Copyright (C) 2011, 2012 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 3031 matching lines...) Expand 10 before | Expand all | Expand 10 after
3042 "border: 2px solid skyblue; float: left; width: 190px; height: 30px; " 3042 "border: 2px solid skyblue; float: left; width: 190px; height: 30px; "
3043 "color: rgb(0, 0, 0); font-family: myahem; font-size: 8px; font-style: " 3043 "color: rgb(0, 0, 0); font-family: myahem; font-size: 8px; font-style: "
3044 "normal; font-variant-ligatures: normal; font-variant-caps: normal; " 3044 "normal; font-variant-ligatures: normal; font-variant-caps: normal; "
3045 "font-weight: normal; letter-spacing: normal; orphans: 2; text-align: " 3045 "font-weight: normal; letter-spacing: normal; orphans: 2; text-align: "
3046 "start; text-indent: 0px; text-transform: none; white-space: normal; " 3046 "start; text-indent: 0px; text-transform: none; white-space: normal; "
3047 "widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; " 3047 "widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; "
3048 "text-decoration-style: initial; text-decoration-color: initial;\">Price " 3048 "text-decoration-style: initial; text-decoration-color: initial;\">Price "
3049 "10,000,000won</div>"; 3049 "10,000,000won</div>";
3050 WebString clipText; 3050 WebString clipText;
3051 WebString clipHtml; 3051 WebString clipHtml;
3052 WebRect clipRect;
3053 registerMockedHttpURLLoad("Ahem.ttf"); 3052 registerMockedHttpURLLoad("Ahem.ttf");
3054 registerMockedHttpURLLoad("smartclip.html"); 3053 registerMockedHttpURLLoad("smartclip.html");
3055 WebView* webView = 3054 WebViewImpl* webView =
3056 m_webViewHelper.initializeAndLoad(m_baseURL + "smartclip.html"); 3055 m_webViewHelper.initializeAndLoad(m_baseURL + "smartclip.html");
3057 webView->resize(WebSize(500, 500)); 3056 webView->resize(WebSize(500, 500));
3058 webView->updateAllLifecyclePhases(); 3057 webView->updateAllLifecyclePhases();
3059 WebRect cropRect(300, 125, 152, 50); 3058 WebRect cropRect(300, 125, 152, 50);
3060 webView->extractSmartClipData(cropRect, clipText, clipHtml, clipRect); 3059 webView->mainFrameImpl()->extractSmartClipData(cropRect, clipText, clipHtml);
3061 EXPECT_STREQ(kExpectedClipText, clipText.utf8().c_str()); 3060 EXPECT_STREQ(kExpectedClipText, clipText.utf8().c_str());
3062 EXPECT_STREQ(kExpectedClipHtml, clipHtml.utf8().c_str()); 3061 EXPECT_STREQ(kExpectedClipHtml, clipHtml.utf8().c_str());
3063 } 3062 }
3064 3063
3065 TEST_P(WebViewTest, SmartClipDataWithPinchZoom) { 3064 TEST_P(WebViewTest, SmartClipDataWithPinchZoom) {
3066 static const char kExpectedClipText[] = "\nPrice 10,000,000won"; 3065 static const char kExpectedClipText[] = "\nPrice 10,000,000won";
3067 static const char kExpectedClipHtml[] = 3066 static const char kExpectedClipHtml[] =
3068 "<div id=\"div4\" style=\"padding: 10px; margin: 10px; border: 2px " 3067 "<div id=\"div4\" style=\"padding: 10px; margin: 10px; border: 2px "
3069 "solid skyblue; float: left; width: 190px; height: 30px; " 3068 "solid skyblue; float: left; width: 190px; height: 30px; "
3070 "color: rgb(0, 0, 0); font-family: myahem; font-size: 8px; font-style: " 3069 "color: rgb(0, 0, 0); font-family: myahem; font-size: 8px; font-style: "
3071 "normal; font-variant-ligatures: normal; font-variant-caps: normal; " 3070 "normal; font-variant-ligatures: normal; font-variant-caps: normal; "
3072 "font-weight: normal; letter-spacing: " 3071 "font-weight: normal; letter-spacing: "
3073 "normal; orphans: 2; text-align: start; " 3072 "normal; orphans: 2; text-align: start; "
3074 "text-indent: 0px; text-transform: none; white-space: normal; widows: " 3073 "text-indent: 0px; text-transform: none; white-space: normal; widows: "
3075 "2; word-spacing: 0px; -webkit-text-stroke-width: 0px; " 3074 "2; word-spacing: 0px; -webkit-text-stroke-width: 0px; "
3076 "text-decoration-style: initial; text-decoration-color: initial;\">Air " 3075 "text-decoration-style: initial; text-decoration-color: initial;\">Air "
3077 "conditioner</div><div id=\"div5\" style=\"padding: 10px; margin: 10px; " 3076 "conditioner</div><div id=\"div5\" style=\"padding: 10px; margin: 10px; "
3078 "border: 2px solid skyblue; float: left; width: 190px; height: 30px; " 3077 "border: 2px solid skyblue; float: left; width: 190px; height: 30px; "
3079 "color: rgb(0, 0, 0); font-family: myahem; font-size: 8px; font-style: " 3078 "color: rgb(0, 0, 0); font-family: myahem; font-size: 8px; font-style: "
3080 "normal; font-variant-ligatures: normal; font-variant-caps: normal; " 3079 "normal; font-variant-ligatures: normal; font-variant-caps: normal; "
3081 "font-weight: normal; letter-spacing: normal; orphans: 2; text-align: " 3080 "font-weight: normal; letter-spacing: normal; orphans: 2; text-align: "
3082 "start; text-indent: 0px; text-transform: none; white-space: normal; " 3081 "start; text-indent: 0px; text-transform: none; white-space: normal; "
3083 "widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; " 3082 "widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; "
3084 "text-decoration-style: initial; text-decoration-color: initial;\">Price " 3083 "text-decoration-style: initial; text-decoration-color: initial;\">Price "
3085 "10,000,000won</div>"; 3084 "10,000,000won</div>";
3086 WebString clipText; 3085 WebString clipText;
3087 WebString clipHtml; 3086 WebString clipHtml;
3088 WebRect clipRect;
3089 registerMockedHttpURLLoad("Ahem.ttf"); 3087 registerMockedHttpURLLoad("Ahem.ttf");
3090 registerMockedHttpURLLoad("smartclip.html"); 3088 registerMockedHttpURLLoad("smartclip.html");
3091 WebView* webView = 3089 WebViewImpl* webView =
3092 m_webViewHelper.initializeAndLoad(m_baseURL + "smartclip.html"); 3090 m_webViewHelper.initializeAndLoad(m_baseURL + "smartclip.html");
3093 webView->resize(WebSize(500, 500)); 3091 webView->resize(WebSize(500, 500));
3094 webView->updateAllLifecyclePhases(); 3092 webView->updateAllLifecyclePhases();
3095 webView->setPageScaleFactor(1.5); 3093 webView->setPageScaleFactor(1.5);
3096 webView->setVisualViewportOffset(WebFloatPoint(167, 100)); 3094 webView->setVisualViewportOffset(WebFloatPoint(167, 100));
3097 WebRect cropRect(200, 38, 228, 75); 3095 WebRect cropRect(200, 38, 228, 75);
3098 webView->extractSmartClipData(cropRect, clipText, clipHtml, clipRect); 3096 webView->mainFrameImpl()->extractSmartClipData(cropRect, clipText, clipHtml);
3099 EXPECT_STREQ(kExpectedClipText, clipText.utf8().c_str()); 3097 EXPECT_STREQ(kExpectedClipText, clipText.utf8().c_str());
3100 EXPECT_STREQ(kExpectedClipHtml, clipHtml.utf8().c_str()); 3098 EXPECT_STREQ(kExpectedClipHtml, clipHtml.utf8().c_str());
3101 } 3099 }
3102 3100
3103 TEST_P(WebViewTest, SmartClipReturnsEmptyStringsWhenUserSelectIsNone) { 3101 TEST_P(WebViewTest, SmartClipReturnsEmptyStringsWhenUserSelectIsNone) {
3104 WebString clipText; 3102 WebString clipText;
3105 WebString clipHtml; 3103 WebString clipHtml;
3106 WebRect clipRect;
3107 registerMockedHttpURLLoad("Ahem.ttf"); 3104 registerMockedHttpURLLoad("Ahem.ttf");
3108 registerMockedHttpURLLoad("smartclip_user_select_none.html"); 3105 registerMockedHttpURLLoad("smartclip_user_select_none.html");
3109 WebView* webView = m_webViewHelper.initializeAndLoad( 3106 WebViewImpl* webView = m_webViewHelper.initializeAndLoad(
3110 m_baseURL + "smartclip_user_select_none.html"); 3107 m_baseURL + "smartclip_user_select_none.html");
3111 webView->resize(WebSize(500, 500)); 3108 webView->resize(WebSize(500, 500));
3112 webView->updateAllLifecyclePhases(); 3109 webView->updateAllLifecyclePhases();
3113 WebRect cropRect(0, 0, 100, 100); 3110 WebRect cropRect(0, 0, 100, 100);
3114 webView->extractSmartClipData(cropRect, clipText, clipHtml, clipRect); 3111 webView->mainFrameImpl()->extractSmartClipData(cropRect, clipText, clipHtml);
3115 EXPECT_STREQ("", clipText.utf8().c_str()); 3112 EXPECT_STREQ("", clipText.utf8().c_str());
3116 EXPECT_STREQ("", clipHtml.utf8().c_str()); 3113 EXPECT_STREQ("", clipHtml.utf8().c_str());
3117 } 3114 }
3118 3115
3119 TEST_P(WebViewTest, SmartClipDoesNotCrashPositionReversed) { 3116 TEST_P(WebViewTest, SmartClipDoesNotCrashPositionReversed) {
3120 WebString clipText; 3117 WebString clipText;
3121 WebString clipHtml; 3118 WebString clipHtml;
3122 WebRect clipRect;
3123 registerMockedHttpURLLoad("Ahem.ttf"); 3119 registerMockedHttpURLLoad("Ahem.ttf");
3124 registerMockedHttpURLLoad("smartclip_reversed_positions.html"); 3120 registerMockedHttpURLLoad("smartclip_reversed_positions.html");
3125 WebView* webView = m_webViewHelper.initializeAndLoad( 3121 WebViewImpl* webView = m_webViewHelper.initializeAndLoad(
3126 m_baseURL + "smartclip_reversed_positions.html"); 3122 m_baseURL + "smartclip_reversed_positions.html");
3127 webView->resize(WebSize(500, 500)); 3123 webView->resize(WebSize(500, 500));
3128 webView->updateAllLifecyclePhases(); 3124 webView->updateAllLifecyclePhases();
3129 // Left upper corner of the rect will be end position in the DOM hierarchy. 3125 // Left upper corner of the rect will be end position in the DOM hierarchy.
3130 WebRect cropRect(30, 110, 400, 250); 3126 WebRect cropRect(30, 110, 400, 250);
3131 // This should not still crash. See crbug.com/589082 for more details. 3127 // This should not still crash. See crbug.com/589082 for more details.
3132 webView->extractSmartClipData(cropRect, clipText, clipHtml, clipRect); 3128 webView->mainFrameImpl()->extractSmartClipData(cropRect, clipText, clipHtml);
3133 } 3129 }
3134 3130
3135 class CreateChildCounterFrameClient 3131 class CreateChildCounterFrameClient
3136 : public FrameTestHelpers::TestWebFrameClient { 3132 : public FrameTestHelpers::TestWebFrameClient {
3137 public: 3133 public:
3138 CreateChildCounterFrameClient() : m_count(0) {} 3134 CreateChildCounterFrameClient() : m_count(0) {}
3139 WebLocalFrame* createChildFrame(WebLocalFrame* parent, 3135 WebLocalFrame* createChildFrame(WebLocalFrame* parent,
3140 WebTreeScopeType, 3136 WebTreeScopeType,
3141 const WebString& name, 3137 const WebString& name,
3142 const WebString& uniqueName, 3138 const WebString& uniqueName,
(...skipping 1069 matching lines...) Expand 10 before | Expand all | Expand 10 after
4212 EXPECT_EQ(expectedWidth, vwElement->offsetWidth()); 4208 EXPECT_EQ(expectedWidth, vwElement->offsetWidth());
4213 EXPECT_EQ(expectedHeight, vwElement->offsetHeight()); 4209 EXPECT_EQ(expectedHeight, vwElement->offsetHeight());
4214 4210
4215 webView->resize(WebSize(800, 600)); 4211 webView->resize(WebSize(800, 600));
4216 frame->printEnd(); 4212 frame->printEnd();
4217 4213
4218 EXPECT_EQ(800, vwElement->offsetWidth()); 4214 EXPECT_EQ(800, vwElement->offsetWidth());
4219 } 4215 }
4220 4216
4221 } // namespace blink 4217 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/web/WebViewImpl.cpp ('k') | third_party/WebKit/public/web/WebLocalFrame.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698