Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 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 2183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2194 } | 2194 } |
| 2195 | 2195 |
| 2196 TEST_F(WebFrameTest, SelectRange) | 2196 TEST_F(WebFrameTest, SelectRange) |
| 2197 { | 2197 { |
| 2198 WebFrame* frame; | 2198 WebFrame* frame; |
| 2199 WebRect startWebRect; | 2199 WebRect startWebRect; |
| 2200 WebRect endWebRect; | 2200 WebRect endWebRect; |
| 2201 | 2201 |
| 2202 registerMockedHttpURLLoad("select_range_basic.html"); | 2202 registerMockedHttpURLLoad("select_range_basic.html"); |
| 2203 registerMockedHttpURLLoad("select_range_scroll.html"); | 2203 registerMockedHttpURLLoad("select_range_scroll.html"); |
| 2204 registerMockedHttpURLLoad("select_range_iframe.html"); | |
| 2205 registerMockedHttpURLLoad("select_range_editable.html"); | |
| 2206 | 2204 |
| 2207 m_webView = createWebViewForTextSelection(m_baseURL + "select_range_basic.ht ml"); | 2205 m_webView = createWebViewForTextSelection(m_baseURL + "select_range_basic.ht ml"); |
| 2208 frame = m_webView->mainFrame(); | 2206 frame = m_webView->mainFrame(); |
| 2209 EXPECT_EQ("Some test text for testing.", selectionAsString(frame)); | 2207 EXPECT_EQ("Some test text for testing.", selectionAsString(frame)); |
| 2210 m_webView->selectionBounds(startWebRect, endWebRect); | 2208 m_webView->selectionBounds(startWebRect, endWebRect); |
| 2211 frame->executeCommand(WebString::fromUTF8("Unselect")); | 2209 frame->executeCommand(WebString::fromUTF8("Unselect")); |
| 2212 EXPECT_EQ("", selectionAsString(frame)); | 2210 EXPECT_EQ("", selectionAsString(frame)); |
| 2213 frame->selectRange(topLeft(startWebRect), bottomRightMinusOne(endWebRect)); | 2211 frame->selectRange(topLeft(startWebRect), bottomRightMinusOne(endWebRect)); |
| 2214 EXPECT_EQ("Some test text for testing.", selectionAsString(frame)); | 2212 EXPECT_EQ("Some test text for testing.", selectionAsString(frame)); |
| 2215 m_webView->close(); | 2213 m_webView->close(); |
| 2216 m_webView = 0; | 2214 m_webView = 0; |
| 2217 | 2215 |
| 2218 m_webView = createWebViewForTextSelection(m_baseURL + "select_range_scroll.h tml"); | 2216 m_webView = createWebViewForTextSelection(m_baseURL + "select_range_scroll.h tml"); |
| 2219 frame = m_webView->mainFrame(); | 2217 frame = m_webView->mainFrame(); |
| 2220 EXPECT_EQ("Some offscreen test text for testing.", selectionAsString(frame)) ; | 2218 EXPECT_EQ("Some offscreen test text for testing.", selectionAsString(frame)) ; |
| 2221 m_webView->selectionBounds(startWebRect, endWebRect); | 2219 m_webView->selectionBounds(startWebRect, endWebRect); |
| 2222 frame->executeCommand(WebString::fromUTF8("Unselect")); | 2220 frame->executeCommand(WebString::fromUTF8("Unselect")); |
| 2223 EXPECT_EQ("", selectionAsString(frame)); | 2221 EXPECT_EQ("", selectionAsString(frame)); |
| 2224 frame->selectRange(topLeft(startWebRect), bottomRightMinusOne(endWebRect)); | 2222 frame->selectRange(topLeft(startWebRect), bottomRightMinusOne(endWebRect)); |
| 2225 EXPECT_EQ("Some offscreen test text for testing.", selectionAsString(frame)) ; | 2223 EXPECT_EQ("Some offscreen test text for testing.", selectionAsString(frame)) ; |
| 2226 m_webView->close(); | 2224 m_webView->close(); |
| 2227 m_webView = 0; | 2225 m_webView = 0; |
| 2226 } | |
| 2227 | |
| 2228 TEST_F(WebFrameTest, SelectRangeInIframe) { | |
| 2229 WebFrame* frame; | |
| 2230 WebRect startWebRect; | |
| 2231 WebRect endWebRect; | |
| 2232 | |
| 2233 registerMockedHttpURLLoad("select_range_iframe.html"); | |
| 2234 registerMockedHttpURLLoad("select_range_basic.html"); | |
| 2228 | 2235 |
| 2229 m_webView = createWebViewForTextSelection(m_baseURL + "select_range_iframe.h tml"); | 2236 m_webView = createWebViewForTextSelection(m_baseURL + "select_range_iframe.h tml"); |
| 2230 frame = m_webView->mainFrame(); | 2237 frame = m_webView->mainFrame(); |
| 2231 WebFrame* subframe = frame->findChildByExpression(WebString::fromUTF8("/html /body/iframe")); | 2238 WebFrame* subframe = frame->findChildByExpression(WebString::fromUTF8("/html /body/iframe")); |
| 2232 EXPECT_EQ("Some test text for testing.", selectionAsString(subframe)); | 2239 EXPECT_EQ("Some test text for testing.", selectionAsString(subframe)); |
| 2233 m_webView->selectionBounds(startWebRect, endWebRect); | 2240 m_webView->selectionBounds(startWebRect, endWebRect); |
| 2234 subframe->executeCommand(WebString::fromUTF8("Unselect")); | 2241 subframe->executeCommand(WebString::fromUTF8("Unselect")); |
| 2235 EXPECT_EQ("", selectionAsString(subframe)); | 2242 EXPECT_EQ("", selectionAsString(subframe)); |
| 2236 subframe->selectRange(topLeft(startWebRect), bottomRightMinusOne(endWebRect) ); | 2243 subframe->selectRange(topLeft(startWebRect), bottomRightMinusOne(endWebRect) ); |
| 2237 EXPECT_EQ("Some test text for testing.", selectionAsString(subframe)); | 2244 EXPECT_EQ("Some test text for testing.", selectionAsString(subframe)); |
| 2238 m_webView->close(); | 2245 m_webView->close(); |
| 2239 m_webView = 0; | 2246 m_webView = 0; |
| 2247 } | |
| 2248 | |
| 2249 TEST_F(WebFrameTest, SelectRangeDivContentEditable) { | |
| 2250 WebFrame* frame; | |
| 2251 WebRect startWebRect; | |
| 2252 WebRect endWebRect; | |
| 2253 | |
| 2254 registerMockedHttpURLLoad("select_range_div_editable.html"); | |
| 2240 | 2255 |
| 2241 // Select the middle of an editable element, then try to extend the selectio n to the top of the document. | 2256 // Select the middle of an editable element, then try to extend the selectio n to the top of the document. |
| 2242 // The selection range should be clipped to the bounds of the editable eleme nt. | 2257 // The selection range should be clipped to the bounds of the editable eleme nt. |
| 2243 m_webView = createWebViewForTextSelection(m_baseURL + "select_range_editable .html"); | 2258 m_webView = createWebViewForTextSelection(m_baseURL + "select_range_div_edit able.html"); |
| 2244 frame = m_webView->mainFrame(); | 2259 frame = m_webView->mainFrame(); |
| 2245 EXPECT_EQ("This text is initially selected.", selectionAsString(frame)); | 2260 EXPECT_EQ("This text is initially selected.", selectionAsString(frame)); |
| 2246 m_webView->selectionBounds(startWebRect, endWebRect); | 2261 m_webView->selectionBounds(startWebRect, endWebRect); |
| 2262 | |
| 2247 frame->selectRange(bottomRightMinusOne(endWebRect), WebPoint(0, 0)); | 2263 frame->selectRange(bottomRightMinusOne(endWebRect), WebPoint(0, 0)); |
| 2248 EXPECT_EQ("16-char header. This text is initially selected.", selectionAsStr ing(frame)); | 2264 EXPECT_EQ("16-char header. This text is initially selected.", selectionAsStr ing(frame)); |
| 2249 m_webView->close(); | 2265 m_webView->close(); |
| 2250 m_webView = 0; | 2266 m_webView = 0; |
| 2251 | 2267 |
| 2252 // As above, but extending the selection to the bottom of the document. | 2268 // As above, but extending the selection to the bottom of the document. |
| 2253 m_webView = createWebViewForTextSelection(m_baseURL + "select_range_editable .html"); | 2269 m_webView = createWebViewForTextSelection(m_baseURL + "select_range_div_edit able.html"); |
| 2270 frame = m_webView->mainFrame(); | |
| 2271 | |
| 2272 m_webView->selectionBounds(startWebRect, endWebRect); | |
| 2273 frame->selectRange(topLeft(startWebRect), bottomRightMinusOne(endWebRect)); | |
| 2274 EXPECT_EQ("This text is initially selected.", selectionAsString(frame)); | |
| 2275 m_webView->selectionBounds(startWebRect, endWebRect); | |
| 2276 | |
| 2277 m_webView->selectionBounds(startWebRect, endWebRect); | |
| 2278 frame->selectRange(topLeft(startWebRect), WebPoint(640, 480)); | |
| 2279 EXPECT_EQ("This text is initially selected. 16-char footer.", selectionAsStr ing(frame)); | |
| 2280 m_webView->close(); | |
| 2281 m_webView = 0; | |
| 2282 } | |
| 2283 | |
| 2284 // positionForPoint returns the wrong values for contenteditable spans. See | |
| 2285 // http://crbug.com/238334. | |
| 2286 TEST_F(WebFrameTest, DISABLED_SelectRangeSpanContentEditable) { | |
| 2287 WebFrame* frame; | |
| 2288 WebRect startWebRect; | |
| 2289 WebRect endWebRect; | |
| 2290 | |
| 2291 registerMockedHttpURLLoad("select_range_span_editable.html"); | |
| 2292 | |
| 2293 // Select the middle of an editable element, then try to extend the selectio n to the top of the document. | |
| 2294 // The selection range should be clipped to the bounds of the editable eleme nt. | |
| 2295 m_webView = createWebViewForTextSelection(m_baseURL + "select_range_span_edi table.html"); | |
| 2254 frame = m_webView->mainFrame(); | 2296 frame = m_webView->mainFrame(); |
| 2255 EXPECT_EQ("This text is initially selected.", selectionAsString(frame)); | 2297 EXPECT_EQ("This text is initially selected.", selectionAsString(frame)); |
| 2256 m_webView->selectionBounds(startWebRect, endWebRect); | 2298 m_webView->selectionBounds(startWebRect, endWebRect); |
| 2299 | |
| 2300 frame->selectRange(bottomRightMinusOne(endWebRect), WebPoint(0, 0)); | |
| 2301 EXPECT_EQ("16-char header. This text is initially selected.", selectionAsStr ing(frame)); | |
| 2302 m_webView->close(); | |
| 2303 m_webView = 0; | |
| 2304 | |
| 2305 // As above, but extending the selection to the bottom of the document. | |
| 2306 m_webView = createWebViewForTextSelection(m_baseURL + "select_range_span_edi table.html"); | |
| 2307 frame = m_webView->mainFrame(); | |
| 2308 | |
| 2309 m_webView->selectionBounds(startWebRect, endWebRect); | |
| 2310 frame->selectRange(topLeft(startWebRect), bottomRightMinusOne(endWebRect)); | |
| 2311 EXPECT_EQ("This text is initially selected.", selectionAsString(frame)); | |
| 2312 m_webView->selectionBounds(startWebRect, endWebRect); | |
| 2313 | |
| 2314 EXPECT_EQ("This text is initially selected.", selectionAsString(frame)); | |
| 2315 m_webView->selectionBounds(startWebRect, endWebRect); | |
| 2257 frame->selectRange(topLeft(startWebRect), WebPoint(640, 480)); | 2316 frame->selectRange(topLeft(startWebRect), WebPoint(640, 480)); |
| 2258 EXPECT_EQ("This text is initially selected. 16-char footer.", selectionAsStr ing(frame)); | 2317 EXPECT_EQ("This text is initially selected. 16-char footer.", selectionAsStr ing(frame)); |
| 2259 m_webView->close(); | 2318 m_webView->close(); |
| 2260 m_webView = 0; | 2319 m_webView = 0; |
| 2261 } | 2320 } |
| 2262 | 2321 |
| 2263 TEST_F(WebFrameTest, SelectRangeCanMoveSelectionStart) | 2322 TEST_F(WebFrameTest, SelectRangeCanMoveSelectionStart) |
| 2264 { | 2323 { |
| 2265 registerMockedHttpURLLoad("text_selection.html"); | 2324 registerMockedHttpURLLoad("text_selection.html"); |
| 2266 m_webView = createWebViewForTextSelection(m_baseURL + "text_selection.html") ; | 2325 m_webView = createWebViewForTextSelection(m_baseURL + "text_selection.html") ; |
| (...skipping 28 matching lines...) Expand all Loading... | |
| 2295 // Can extend the selection completely across editable elements. | 2354 // Can extend the selection completely across editable elements. |
| 2296 frame->executeScript(WebScriptSource("selectElement('footer_2');")); | 2355 frame->executeScript(WebScriptSource("selectElement('footer_2');")); |
| 2297 EXPECT_EQ("Footer 2.", selectionAsString(frame)); | 2356 EXPECT_EQ("Footer 2.", selectionAsString(frame)); |
| 2298 frame->selectRange(bottomRightMinusOne(elementBounds(frame, "footer_2")), to pLeft(elementBounds(frame, "header_2"))); | 2357 frame->selectRange(bottomRightMinusOne(elementBounds(frame, "footer_2")), to pLeft(elementBounds(frame, "header_2"))); |
| 2299 EXPECT_EQ("Header 2. ] [ Editable 1. Editable 2. ] [ Footer 1. Footer 2.", s electionAsString(frame)); | 2358 EXPECT_EQ("Header 2. ] [ Editable 1. Editable 2. ] [ Footer 1. Footer 2.", s electionAsString(frame)); |
| 2300 | 2359 |
| 2301 // If the selection is editable text, we can't extend it into non-editable t ext. | 2360 // If the selection is editable text, we can't extend it into non-editable t ext. |
| 2302 frame->executeScript(WebScriptSource("selectElement('editable_2');")); | 2361 frame->executeScript(WebScriptSource("selectElement('editable_2');")); |
| 2303 EXPECT_EQ("Editable 2.", selectionAsString(frame)); | 2362 EXPECT_EQ("Editable 2.", selectionAsString(frame)); |
| 2304 frame->selectRange(bottomRightMinusOne(elementBounds(frame, "editable_2")), topLeft(elementBounds(frame, "header_2"))); | 2363 frame->selectRange(bottomRightMinusOne(elementBounds(frame, "editable_2")), topLeft(elementBounds(frame, "header_2"))); |
| 2305 EXPECT_EQ("[ Editable 1. Editable 2.", selectionAsString(frame)); | 2364 // positionForPoint returns the wrong values for contenteditable spans. See |
| 2365 // http://crbug.com/238334. | |
| 2366 //EXPECT_EQ("[ Editable 1. Editable 2.", selectionAsString(frame)); | |
| 2306 } | 2367 } |
| 2307 | 2368 |
| 2308 TEST_F(WebFrameTest, SelectRangeCanMoveSelectionEnd) | 2369 TEST_F(WebFrameTest, SelectRangeCanMoveSelectionEnd) |
| 2309 { | 2370 { |
| 2310 registerMockedHttpURLLoad("text_selection.html"); | 2371 registerMockedHttpURLLoad("text_selection.html"); |
| 2311 m_webView = createWebViewForTextSelection(m_baseURL + "text_selection.html") ; | 2372 m_webView = createWebViewForTextSelection(m_baseURL + "text_selection.html") ; |
| 2312 WebFrame* frame = m_webView->mainFrame(); | 2373 WebFrame* frame = m_webView->mainFrame(); |
| 2313 | 2374 |
| 2314 // Select first span. We can move the end to include the second span. | 2375 // Select first span. We can move the end to include the second span. |
| 2315 frame->executeScript(WebScriptSource("selectElement('header_1');")); | 2376 frame->executeScript(WebScriptSource("selectElement('header_1');")); |
| (...skipping 24 matching lines...) Expand all Loading... | |
| 2340 // Can extend the selection completely across editable elements. | 2401 // Can extend the selection completely across editable elements. |
| 2341 frame->executeScript(WebScriptSource("selectElement('header_1');")); | 2402 frame->executeScript(WebScriptSource("selectElement('header_1');")); |
| 2342 EXPECT_EQ("Header 1.", selectionAsString(frame)); | 2403 EXPECT_EQ("Header 1.", selectionAsString(frame)); |
| 2343 frame->selectRange(topLeft(elementBounds(frame, "header_1")), bottomRightMin usOne(elementBounds(frame, "footer_1"))); | 2404 frame->selectRange(topLeft(elementBounds(frame, "header_1")), bottomRightMin usOne(elementBounds(frame, "footer_1"))); |
| 2344 EXPECT_EQ("Header 1. Header 2. ] [ Editable 1. Editable 2. ] [ Footer 1.", s electionAsString(frame)); | 2405 EXPECT_EQ("Header 1. Header 2. ] [ Editable 1. Editable 2. ] [ Footer 1.", s electionAsString(frame)); |
| 2345 | 2406 |
| 2346 // If the selection is editable text, we can't extend it into non-editable t ext. | 2407 // If the selection is editable text, we can't extend it into non-editable t ext. |
| 2347 frame->executeScript(WebScriptSource("selectElement('editable_1');")); | 2408 frame->executeScript(WebScriptSource("selectElement('editable_1');")); |
| 2348 EXPECT_EQ("Editable 1.", selectionAsString(frame)); | 2409 EXPECT_EQ("Editable 1.", selectionAsString(frame)); |
| 2349 frame->selectRange(topLeft(elementBounds(frame, "editable_1")), bottomRightM inusOne(elementBounds(frame, "footer_1"))); | 2410 frame->selectRange(topLeft(elementBounds(frame, "editable_1")), bottomRightM inusOne(elementBounds(frame, "footer_1"))); |
| 2350 EXPECT_EQ("Editable 1. Editable 2. ]", selectionAsString(frame)); | 2411 // positionForPoint returns the wrong values for contenteditable spans. See |
| 2412 // http://crbug.com/238334. | |
| 2413 //EXPECT_EQ("Editable 1. Editable 2. ]", selectionAsString(frame)); | |
| 2414 } | |
| 2415 | |
| 2416 // positionForPoint returns the wrong values for contenteditable spans. See | |
| 2417 // http://crbug.com/238334. | |
| 2418 TEST_F(WebFrameTest, DISABLED_PositionForPointTest) { | |
|
cjhopman
2013/05/06 21:49:37
I don't know how to actually write this test (shou
| |
| 2419 registerMockedHttpURLLoad("select_range_span_editable.html"); | |
| 2420 m_webView = createWebViewForTextSelection(m_baseURL + "select_range_span_edi table.html"); | |
| 2421 WebFrameImpl* mainFrame = static_cast<WebFrameImpl*>(m_webView->mainFrame()) ; | |
| 2422 WebCore::RenderObject* renderer = mainFrame->frame()->selection()->rootEdita bleElement()->renderer(); | |
| 2423 EXPECT_EQ(0, renderer->positionForPoint(WebCore::LayoutPoint(-1, -1)).deepEq uivalent().computeOffsetInContainerNode()); | |
| 2424 EXPECT_EQ(64, renderer->positionForPoint(WebCore::LayoutPoint(1000, 1000)).d eepEquivalent().computeOffsetInContainerNode()); | |
| 2425 | |
| 2426 registerMockedHttpURLLoad("select_range_div_editable.html"); | |
| 2427 m_webView = createWebViewForTextSelection(m_baseURL + "select_range_div_edit able.html"); | |
| 2428 mainFrame = static_cast<WebFrameImpl*>(m_webView->mainFrame()); | |
| 2429 renderer = mainFrame->frame()->selection()->rootEditableElement()->renderer( ); | |
| 2430 EXPECT_EQ(0, renderer->positionForPoint(WebCore::LayoutPoint(-1, -1)).deepEq uivalent().computeOffsetInContainerNode()); | |
| 2431 EXPECT_EQ(64, renderer->positionForPoint(WebCore::LayoutPoint(1000, 1000)).d eepEquivalent().computeOffsetInContainerNode()); | |
| 2351 } | 2432 } |
| 2352 | 2433 |
| 2353 #if OS(ANDROID) | 2434 #if OS(ANDROID) |
| 2435 TEST_F(WebFrameTest, SelectRangeStaysHorizontallyAlignedWhenMoved) | |
| 2436 { | |
| 2437 WebFrameImpl* frame; | |
| 2438 registerMockedHttpURLLoad("move_caret.html"); | |
| 2439 | |
| 2440 m_webView = createWebViewForTextSelection(m_baseURL + "move_caret.html"); | |
| 2441 frame = (WebFrameImpl*)m_webView->mainFrame(); | |
| 2442 | |
| 2443 WebRect initialStartRect; | |
| 2444 WebRect initialEndRect; | |
| 2445 WebRect startRect; | |
| 2446 WebRect endRect; | |
| 2447 | |
| 2448 frame->executeScript(WebScriptSource("selectRange();")); | |
| 2449 m_webView->selectionBounds(initialStartRect, initialEndRect); | |
| 2450 WebPoint movedStart(topLeft(initialStartRect)); | |
| 2451 | |
| 2452 movedStart.y += 40; | |
| 2453 frame->selectRange(movedStart, bottomRightMinusOne(initialEndRect)); | |
| 2454 m_webView->selectionBounds(startRect, endRect); | |
| 2455 EXPECT_EQ(startRect, initialStartRect); | |
| 2456 EXPECT_EQ(endRect, initialEndRect); | |
| 2457 | |
| 2458 movedStart.y -= 80; | |
| 2459 frame->selectRange(movedStart, bottomRightMinusOne(initialEndRect)); | |
| 2460 m_webView->selectionBounds(startRect, endRect); | |
| 2461 EXPECT_EQ(startRect, initialStartRect); | |
| 2462 EXPECT_EQ(endRect, initialEndRect); | |
| 2463 | |
| 2464 WebPoint movedEnd(bottomRightMinusOne(initialEndRect)); | |
| 2465 | |
| 2466 movedEnd.y += 40; | |
| 2467 frame->selectRange(topLeft(initialStartRect), movedEnd); | |
| 2468 m_webView->selectionBounds(startRect, endRect); | |
| 2469 EXPECT_EQ(startRect, initialStartRect); | |
| 2470 EXPECT_EQ(endRect, initialEndRect); | |
| 2471 | |
| 2472 movedEnd.y -= 80; | |
| 2473 frame->selectRange(topLeft(initialStartRect), movedEnd); | |
| 2474 m_webView->selectionBounds(startRect, endRect); | |
| 2475 EXPECT_EQ(startRect, initialStartRect); | |
| 2476 EXPECT_EQ(endRect, initialEndRect); | |
| 2477 } | |
| 2478 | |
| 2354 TEST_F(WebFrameTest, MoveCaretStaysHorizontallyAlignedWhenMoved) | 2479 TEST_F(WebFrameTest, MoveCaretStaysHorizontallyAlignedWhenMoved) |
| 2355 { | 2480 { |
| 2356 WebFrameImpl* frame; | 2481 WebFrameImpl* frame; |
| 2357 registerMockedHttpURLLoad("move_caret.html"); | 2482 registerMockedHttpURLLoad("move_caret.html"); |
| 2358 | 2483 |
| 2359 m_webView = createWebViewForTextSelection(m_baseURL + "move_caret.html"); | 2484 m_webView = createWebViewForTextSelection(m_baseURL + "move_caret.html"); |
| 2360 frame = (WebFrameImpl*)m_webView->mainFrame(); | 2485 frame = (WebFrameImpl*)m_webView->mainFrame(); |
| 2361 | 2486 |
| 2362 WebRect initialStartRect; | 2487 WebRect initialStartRect; |
| 2363 WebRect initialEndRect; | 2488 WebRect initialEndRect; |
| 2364 WebRect startRect; | 2489 WebRect startRect; |
| 2365 WebRect endRect; | 2490 WebRect endRect; |
| 2366 | 2491 |
| 2367 frame->executeScript(WebScriptSource("select();")); | 2492 frame->executeScript(WebScriptSource("selectCaret();")); |
| 2368 m_webView->selectionBounds(initialStartRect, initialEndRect); | 2493 m_webView->selectionBounds(initialStartRect, initialEndRect); |
| 2369 WebPoint moveTo(topLeft(initialStartRect)); | 2494 WebPoint moveTo(topLeft(initialStartRect)); |
| 2370 | 2495 |
| 2371 moveTo.y += 40; | 2496 moveTo.y += 40; |
| 2372 frame->moveCaretSelectionTowardsWindowPoint(moveTo); | 2497 frame->moveCaretSelectionTowardsWindowPoint(moveTo); |
| 2373 m_webView->selectionBounds(startRect, endRect); | 2498 m_webView->selectionBounds(startRect, endRect); |
| 2374 EXPECT_EQ(startRect, initialStartRect); | 2499 EXPECT_EQ(startRect, initialStartRect); |
| 2375 EXPECT_EQ(endRect, initialEndRect); | 2500 EXPECT_EQ(endRect, initialEndRect); |
| 2376 | 2501 |
| 2377 moveTo.y -= 80; | 2502 moveTo.y -= 80; |
| (...skipping 616 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2994 EXPECT_FALSE(client.wasProgrammaticScroll()); | 3119 EXPECT_FALSE(client.wasProgrammaticScroll()); |
| 2995 EXPECT_TRUE(client.wasUserScroll()); | 3120 EXPECT_TRUE(client.wasUserScroll()); |
| 2996 client.reset(); | 3121 client.reset(); |
| 2997 | 3122 |
| 2998 m_webView->close(); | 3123 m_webView->close(); |
| 2999 m_webView = 0; | 3124 m_webView = 0; |
| 3000 } | 3125 } |
| 3001 | 3126 |
| 3002 | 3127 |
| 3003 } // namespace | 3128 } // namespace |
| OLD | NEW |