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

Side by Side Diff: Source/web/tests/WebFrameTest.cpp

Issue 241303002: Rename WebFrameImpl to WebLocalFrameImpl. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fix Mac too Created 6 years, 8 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 /* 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 28 matching lines...) Expand all
39 #include "RuntimeEnabledFeatures.h" 39 #include "RuntimeEnabledFeatures.h"
40 #include "SkBitmap.h" 40 #include "SkBitmap.h"
41 #include "SkCanvas.h" 41 #include "SkCanvas.h"
42 #include "URLTestHelpers.h" 42 #include "URLTestHelpers.h"
43 #include "UserAgentStyleSheets.h" 43 #include "UserAgentStyleSheets.h"
44 #include "WebDataSource.h" 44 #include "WebDataSource.h"
45 #include "WebDocument.h" 45 #include "WebDocument.h"
46 #include "WebFindOptions.h" 46 #include "WebFindOptions.h"
47 #include "WebFormElement.h" 47 #include "WebFormElement.h"
48 #include "WebFrameClient.h" 48 #include "WebFrameClient.h"
49 #include "WebFrameImpl.h"
50 #include "WebHistoryItem.h" 49 #include "WebHistoryItem.h"
50 #include "WebLocalFrameImpl.h"
51 #include "WebRange.h" 51 #include "WebRange.h"
52 #include "WebScriptSource.h" 52 #include "WebScriptSource.h"
53 #include "WebSearchableFormData.h" 53 #include "WebSearchableFormData.h"
54 #include "WebSecurityOrigin.h" 54 #include "WebSecurityOrigin.h"
55 #include "WebSecurityPolicy.h" 55 #include "WebSecurityPolicy.h"
56 #include "WebSettings.h" 56 #include "WebSettings.h"
57 #include "WebSpellCheckClient.h" 57 #include "WebSpellCheckClient.h"
58 #include "WebTextCheckingCompletion.h" 58 #include "WebTextCheckingCompletion.h"
59 #include "WebTextCheckingResult.h" 59 #include "WebTextCheckingResult.h"
60 #include "WebViewClient.h" 60 #include "WebViewClient.h"
(...skipping 3120 matching lines...) Expand 10 before | Expand all | Expand 10 after
3181 webViewHelper.webView()->layout(); 3181 webViewHelper.webView()->layout();
3182 runPendingTasks(); 3182 runPendingTasks();
3183 3183
3184 // Note that the 'result 19' in the <select> element is not expected to prod uce a match. 3184 // Note that the 'result 19' in the <select> element is not expected to prod uce a match.
3185 static const char* kFindString = "result"; 3185 static const char* kFindString = "result";
3186 static const int kFindIdentifier = 12345; 3186 static const int kFindIdentifier = 12345;
3187 static const int kNumResults = 19; 3187 static const int kNumResults = 19;
3188 3188
3189 WebFindOptions options; 3189 WebFindOptions options;
3190 WebString searchText = WebString::fromUTF8(kFindString); 3190 WebString searchText = WebString::fromUTF8(kFindString);
3191 WebFrameImpl* mainFrame = toWebFrameImpl(webViewHelper.webView()->mainFrame( )); 3191 WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()-> mainFrame());
3192 EXPECT_TRUE(mainFrame->find(kFindIdentifier, searchText, options, false, 0)) ; 3192 EXPECT_TRUE(mainFrame->find(kFindIdentifier, searchText, options, false, 0)) ;
3193 3193
3194 mainFrame->resetMatchCount(); 3194 mainFrame->resetMatchCount();
3195 3195
3196 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false)) 3196 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false))
3197 frame->scopeStringMatches(kFindIdentifier, searchText, options, true); 3197 frame->scopeStringMatches(kFindIdentifier, searchText, options, true);
3198 3198
3199 runPendingTasks(); 3199 runPendingTasks();
3200 EXPECT_TRUE(client.findResultsAreReady()); 3200 EXPECT_TRUE(client.findResultsAreReady());
3201 3201
(...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after
3298 webViewHelper.webView()->resize(WebSize(640, 480)); 3298 webViewHelper.webView()->resize(WebSize(640, 480));
3299 webViewHelper.webView()->layout(); 3299 webViewHelper.webView()->layout();
3300 runPendingTasks(); 3300 runPendingTasks();
3301 3301
3302 static const char* kFindString = "hello"; 3302 static const char* kFindString = "hello";
3303 static const int kFindIdentifier = 12345; 3303 static const int kFindIdentifier = 12345;
3304 static const int kNumResults = 1; 3304 static const int kNumResults = 1;
3305 3305
3306 WebFindOptions options; 3306 WebFindOptions options;
3307 WebString searchText = WebString::fromUTF8(kFindString); 3307 WebString searchText = WebString::fromUTF8(kFindString);
3308 WebFrameImpl* mainFrame = toWebFrameImpl(webViewHelper.webView()->mainFrame( )); 3308 WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()-> mainFrame());
3309 EXPECT_TRUE(mainFrame->find(kFindIdentifier, searchText, options, false, 0)) ; 3309 EXPECT_TRUE(mainFrame->find(kFindIdentifier, searchText, options, false, 0)) ;
3310 3310
3311 mainFrame->resetMatchCount(); 3311 mainFrame->resetMatchCount();
3312 3312
3313 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false)) 3313 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false))
3314 frame->scopeStringMatches(kFindIdentifier, searchText, options, true); 3314 frame->scopeStringMatches(kFindIdentifier, searchText, options, true);
3315 3315
3316 runPendingTasks(); 3316 runPendingTasks();
3317 EXPECT_TRUE(client.findResultsAreReady()); 3317 EXPECT_TRUE(client.findResultsAreReady());
3318 EXPECT_EQ(kNumResults, client.count()); 3318 EXPECT_EQ(kNumResults, client.count());
3319 } 3319 }
3320 3320
3321 TEST_F(WebFrameTest, FindOnDetachedFrame) 3321 TEST_F(WebFrameTest, FindOnDetachedFrame)
3322 { 3322 {
3323 registerMockedHttpURLLoad("find_in_page.html"); 3323 registerMockedHttpURLLoad("find_in_page.html");
3324 registerMockedHttpURLLoad("find_in_page_frame.html"); 3324 registerMockedHttpURLLoad("find_in_page_frame.html");
3325 3325
3326 FindUpdateWebFrameClient client; 3326 FindUpdateWebFrameClient client;
3327 FrameTestHelpers::WebViewHelper webViewHelper; 3327 FrameTestHelpers::WebViewHelper webViewHelper;
3328 webViewHelper.initializeAndLoad(m_baseURL + "find_in_page.html", true, &clie nt); 3328 webViewHelper.initializeAndLoad(m_baseURL + "find_in_page.html", true, &clie nt);
3329 webViewHelper.webView()->resize(WebSize(640, 480)); 3329 webViewHelper.webView()->resize(WebSize(640, 480));
3330 webViewHelper.webView()->layout(); 3330 webViewHelper.webView()->layout();
3331 runPendingTasks(); 3331 runPendingTasks();
3332 3332
3333 static const char* kFindString = "result"; 3333 static const char* kFindString = "result";
3334 static const int kFindIdentifier = 12345; 3334 static const int kFindIdentifier = 12345;
3335 3335
3336 WebFindOptions options; 3336 WebFindOptions options;
3337 WebString searchText = WebString::fromUTF8(kFindString); 3337 WebString searchText = WebString::fromUTF8(kFindString);
3338 WebFrameImpl* mainFrame = toWebFrameImpl(webViewHelper.webView()->mainFrame( )); 3338 WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()-> mainFrame());
3339 RefPtr<WebFrameImpl> secondFrame = toWebFrameImpl(mainFrame->traverseNext(fa lse)); 3339 RefPtr<WebLocalFrameImpl> secondFrame = toWebLocalFrameImpl(mainFrame->trave rseNext(false));
3340 RefPtr<WebCore::LocalFrame> holdSecondFrame = secondFrame->frame(); 3340 RefPtr<WebCore::LocalFrame> holdSecondFrame = secondFrame->frame();
3341 3341
3342 // Detach the frame before finding. 3342 // Detach the frame before finding.
3343 EXPECT_TRUE(mainFrame->document().getElementById("frame").remove()); 3343 EXPECT_TRUE(mainFrame->document().getElementById("frame").remove());
3344 3344
3345 EXPECT_TRUE(mainFrame->find(kFindIdentifier, searchText, options, false, 0)) ; 3345 EXPECT_TRUE(mainFrame->find(kFindIdentifier, searchText, options, false, 0)) ;
3346 EXPECT_FALSE(secondFrame->find(kFindIdentifier, searchText, options, false, 0)); 3346 EXPECT_FALSE(secondFrame->find(kFindIdentifier, searchText, options, false, 0));
3347 3347
3348 runPendingTasks(); 3348 runPendingTasks();
3349 EXPECT_FALSE(client.findResultsAreReady()); 3349 EXPECT_FALSE(client.findResultsAreReady());
(...skipping 19 matching lines...) Expand all
3369 webViewHelper.initializeAndLoad(m_baseURL + "find_in_page.html", true, &clie nt); 3369 webViewHelper.initializeAndLoad(m_baseURL + "find_in_page.html", true, &clie nt);
3370 webViewHelper.webView()->resize(WebSize(640, 480)); 3370 webViewHelper.webView()->resize(WebSize(640, 480));
3371 webViewHelper.webView()->layout(); 3371 webViewHelper.webView()->layout();
3372 runPendingTasks(); 3372 runPendingTasks();
3373 3373
3374 static const char* kFindString = "result"; 3374 static const char* kFindString = "result";
3375 static const int kFindIdentifier = 12345; 3375 static const int kFindIdentifier = 12345;
3376 3376
3377 WebFindOptions options; 3377 WebFindOptions options;
3378 WebString searchText = WebString::fromUTF8(kFindString); 3378 WebString searchText = WebString::fromUTF8(kFindString);
3379 WebFrameImpl* mainFrame = toWebFrameImpl(webViewHelper.webView()->mainFrame( )); 3379 WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()-> mainFrame());
3380 WebFrameImpl* secondFrame = toWebFrameImpl(mainFrame->traverseNext(false)); 3380 WebLocalFrameImpl* secondFrame = toWebLocalFrameImpl(mainFrame->traverseNext (false));
3381 RefPtr<WebCore::LocalFrame> holdSecondFrame = secondFrame->frame(); 3381 RefPtr<WebCore::LocalFrame> holdSecondFrame = secondFrame->frame();
3382 3382
3383 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false)) 3383 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false))
3384 EXPECT_TRUE(frame->find(kFindIdentifier, searchText, options, false, 0)) ; 3384 EXPECT_TRUE(frame->find(kFindIdentifier, searchText, options, false, 0)) ;
3385 3385
3386 runPendingTasks(); 3386 runPendingTasks();
3387 EXPECT_FALSE(client.findResultsAreReady()); 3387 EXPECT_FALSE(client.findResultsAreReady());
3388 3388
3389 // Detach the frame between finding and scoping. 3389 // Detach the frame between finding and scoping.
3390 EXPECT_TRUE(mainFrame->document().getElementById("frame").remove()); 3390 EXPECT_TRUE(mainFrame->document().getElementById("frame").remove());
(...skipping 19 matching lines...) Expand all
3410 webViewHelper.initializeAndLoad(m_baseURL + "find_in_page.html", true, &clie nt); 3410 webViewHelper.initializeAndLoad(m_baseURL + "find_in_page.html", true, &clie nt);
3411 webViewHelper.webView()->resize(WebSize(640, 480)); 3411 webViewHelper.webView()->resize(WebSize(640, 480));
3412 webViewHelper.webView()->layout(); 3412 webViewHelper.webView()->layout();
3413 runPendingTasks(); 3413 runPendingTasks();
3414 3414
3415 static const char* kFindString = "result"; 3415 static const char* kFindString = "result";
3416 static const int kFindIdentifier = 12345; 3416 static const int kFindIdentifier = 12345;
3417 3417
3418 WebFindOptions options; 3418 WebFindOptions options;
3419 WebString searchText = WebString::fromUTF8(kFindString); 3419 WebString searchText = WebString::fromUTF8(kFindString);
3420 WebFrameImpl* mainFrame = toWebFrameImpl(webViewHelper.webView()->mainFrame( )); 3420 WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()-> mainFrame());
3421 WebFrameImpl* secondFrame = toWebFrameImpl(mainFrame->traverseNext(false)); 3421 WebLocalFrameImpl* secondFrame = toWebLocalFrameImpl(mainFrame->traverseNext (false));
3422 RefPtr<WebCore::LocalFrame> holdSecondFrame = secondFrame->frame(); 3422 RefPtr<WebCore::LocalFrame> holdSecondFrame = secondFrame->frame();
3423 3423
3424 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false)) 3424 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false))
3425 EXPECT_TRUE(frame->find(kFindIdentifier, searchText, options, false, 0)) ; 3425 EXPECT_TRUE(frame->find(kFindIdentifier, searchText, options, false, 0)) ;
3426 3426
3427 runPendingTasks(); 3427 runPendingTasks();
3428 EXPECT_FALSE(client.findResultsAreReady()); 3428 EXPECT_FALSE(client.findResultsAreReady());
3429 3429
3430 mainFrame->resetMatchCount(); 3430 mainFrame->resetMatchCount();
3431 3431
(...skipping 18 matching lines...) Expand all
3450 webViewHelper.initializeAndLoad(m_baseURL + "find.html", true, &client); 3450 webViewHelper.initializeAndLoad(m_baseURL + "find.html", true, &client);
3451 webViewHelper.webView()->resize(WebSize(640, 480)); 3451 webViewHelper.webView()->resize(WebSize(640, 480));
3452 webViewHelper.webView()->layout(); 3452 webViewHelper.webView()->layout();
3453 runPendingTasks(); 3453 runPendingTasks();
3454 3454
3455 static const char* kFindString = "foo"; 3455 static const char* kFindString = "foo";
3456 static const int kFindIdentifier = 12345; 3456 static const int kFindIdentifier = 12345;
3457 3457
3458 WebFindOptions options; 3458 WebFindOptions options;
3459 WebString searchText = WebString::fromUTF8(kFindString); 3459 WebString searchText = WebString::fromUTF8(kFindString);
3460 WebFrameImpl* mainFrame = toWebFrameImpl(webViewHelper.webView()->mainFrame( )); 3460 WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()-> mainFrame());
3461 EXPECT_TRUE(mainFrame->find(kFindIdentifier, searchText, options, false, 0)) ; 3461 EXPECT_TRUE(mainFrame->find(kFindIdentifier, searchText, options, false, 0)) ;
3462 3462
3463 mainFrame->resetMatchCount(); 3463 mainFrame->resetMatchCount();
3464 mainFrame->scopeStringMatches(kFindIdentifier, searchText, options, true); 3464 mainFrame->scopeStringMatches(kFindIdentifier, searchText, options, true);
3465 3465
3466 runPendingTasks(); 3466 runPendingTasks();
3467 EXPECT_TRUE(client.findResultsAreReady()); 3467 EXPECT_TRUE(client.findResultsAreReady());
3468 3468
3469 // Get the tickmarks for the original find request. 3469 // Get the tickmarks for the original find request.
3470 WebCore::FrameView* frameView = webViewHelper.webViewImpl()->mainFrameImpl() ->frameView(); 3470 WebCore::FrameView* frameView = webViewHelper.webViewImpl()->mainFrameImpl() ->frameView();
(...skipping 268 matching lines...) Expand 10 before | Expand all | Expand 10 after
3739 return WebCore::VisiblePosition(renderer->positionForPoint(WebCore::LayoutPo int(x, y))).deepEquivalent().computeOffsetInContainerNode(); 3739 return WebCore::VisiblePosition(renderer->positionForPoint(WebCore::LayoutPo int(x, y))).deepEquivalent().computeOffsetInContainerNode();
3740 } 3740 }
3741 3741
3742 // positionForPoint returns the wrong values for contenteditable spans. See 3742 // positionForPoint returns the wrong values for contenteditable spans. See
3743 // http://crbug.com/238334. 3743 // http://crbug.com/238334.
3744 TEST_F(WebFrameTest, DISABLED_PositionForPointTest) 3744 TEST_F(WebFrameTest, DISABLED_PositionForPointTest)
3745 { 3745 {
3746 registerMockedHttpURLLoad("select_range_span_editable.html"); 3746 registerMockedHttpURLLoad("select_range_span_editable.html");
3747 FrameTestHelpers::WebViewHelper webViewHelper; 3747 FrameTestHelpers::WebViewHelper webViewHelper;
3748 initializeTextSelectionWebView(m_baseURL + "select_range_span_editable.html" , &webViewHelper); 3748 initializeTextSelectionWebView(m_baseURL + "select_range_span_editable.html" , &webViewHelper);
3749 WebFrameImpl* mainFrame = toWebFrameImpl(webViewHelper.webView()->mainFrame( )); 3749 WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()-> mainFrame());
3750 WebCore::RenderObject* renderer = mainFrame->frame()->selection().rootEditab leElement()->renderer(); 3750 WebCore::RenderObject* renderer = mainFrame->frame()->selection().rootEditab leElement()->renderer();
3751 EXPECT_EQ(0, computeOffset(renderer, -1, -1)); 3751 EXPECT_EQ(0, computeOffset(renderer, -1, -1));
3752 EXPECT_EQ(64, computeOffset(renderer, 1000, 1000)); 3752 EXPECT_EQ(64, computeOffset(renderer, 1000, 1000));
3753 3753
3754 registerMockedHttpURLLoad("select_range_div_editable.html"); 3754 registerMockedHttpURLLoad("select_range_div_editable.html");
3755 initializeTextSelectionWebView(m_baseURL + "select_range_div_editable.html", &webViewHelper); 3755 initializeTextSelectionWebView(m_baseURL + "select_range_div_editable.html", &webViewHelper);
3756 mainFrame = toWebFrameImpl(webViewHelper.webView()->mainFrame()); 3756 mainFrame = toWebLocalFrameImpl(webViewHelper.webView()->mainFrame());
3757 renderer = mainFrame->frame()->selection().rootEditableElement()->renderer() ; 3757 renderer = mainFrame->frame()->selection().rootEditableElement()->renderer() ;
3758 EXPECT_EQ(0, computeOffset(renderer, -1, -1)); 3758 EXPECT_EQ(0, computeOffset(renderer, -1, -1));
3759 EXPECT_EQ(64, computeOffset(renderer, 1000, 1000)); 3759 EXPECT_EQ(64, computeOffset(renderer, 1000, 1000));
3760 } 3760 }
3761 3761
3762 #if !OS(MACOSX) && !OS(LINUX) 3762 #if !OS(MACOSX) && !OS(LINUX)
3763 TEST_F(WebFrameTest, SelectRangeStaysHorizontallyAlignedWhenMoved) 3763 TEST_F(WebFrameTest, SelectRangeStaysHorizontallyAlignedWhenMoved)
3764 { 3764 {
3765 registerMockedHttpURLLoad("move_caret.html"); 3765 registerMockedHttpURLLoad("move_caret.html");
3766 3766
3767 FrameTestHelpers::WebViewHelper webViewHelper; 3767 FrameTestHelpers::WebViewHelper webViewHelper;
3768 initializeTextSelectionWebView(m_baseURL + "move_caret.html", &webViewHelper ); 3768 initializeTextSelectionWebView(m_baseURL + "move_caret.html", &webViewHelper );
3769 WebFrameImpl* frame = toWebFrameImpl(webViewHelper.webView()->mainFrame()); 3769 WebLocalFrameImpl* frame = toWebLocalFrameImpl(webViewHelper.webView()->main Frame());
3770 3770
3771 WebRect initialStartRect; 3771 WebRect initialStartRect;
3772 WebRect initialEndRect; 3772 WebRect initialEndRect;
3773 WebRect startRect; 3773 WebRect startRect;
3774 WebRect endRect; 3774 WebRect endRect;
3775 3775
3776 frame->executeScript(WebScriptSource("selectRange();")); 3776 frame->executeScript(WebScriptSource("selectRange();"));
3777 webViewHelper.webView()->selectionBounds(initialStartRect, initialEndRect); 3777 webViewHelper.webView()->selectionBounds(initialStartRect, initialEndRect);
3778 WebPoint movedStart(topLeft(initialStartRect)); 3778 WebPoint movedStart(topLeft(initialStartRect));
3779 3779
(...skipping 19 matching lines...) Expand all
3799 3799
3800 movedEnd.y -= 80; 3800 movedEnd.y -= 80;
3801 frame->selectRange(topLeft(initialStartRect), movedEnd); 3801 frame->selectRange(topLeft(initialStartRect), movedEnd);
3802 webViewHelper.webView()->selectionBounds(startRect, endRect); 3802 webViewHelper.webView()->selectionBounds(startRect, endRect);
3803 EXPECT_EQ(startRect, initialStartRect); 3803 EXPECT_EQ(startRect, initialStartRect);
3804 EXPECT_EQ(endRect, initialEndRect); 3804 EXPECT_EQ(endRect, initialEndRect);
3805 } 3805 }
3806 3806
3807 TEST_F(WebFrameTest, MoveCaretStaysHorizontallyAlignedWhenMoved) 3807 TEST_F(WebFrameTest, MoveCaretStaysHorizontallyAlignedWhenMoved)
3808 { 3808 {
3809 WebFrameImpl* frame; 3809 WebLocalFrameImpl* frame;
3810 registerMockedHttpURLLoad("move_caret.html"); 3810 registerMockedHttpURLLoad("move_caret.html");
3811 3811
3812 FrameTestHelpers::WebViewHelper webViewHelper; 3812 FrameTestHelpers::WebViewHelper webViewHelper;
3813 initializeTextSelectionWebView(m_baseURL + "move_caret.html", &webViewHelper ); 3813 initializeTextSelectionWebView(m_baseURL + "move_caret.html", &webViewHelper );
3814 frame = (WebFrameImpl*)webViewHelper.webView()->mainFrame(); 3814 frame = (WebLocalFrameImpl*)webViewHelper.webView()->mainFrame();
3815 3815
3816 WebRect initialStartRect; 3816 WebRect initialStartRect;
3817 WebRect initialEndRect; 3817 WebRect initialEndRect;
3818 WebRect startRect; 3818 WebRect startRect;
3819 WebRect endRect; 3819 WebRect endRect;
3820 3820
3821 frame->executeScript(WebScriptSource("selectCaret();")); 3821 frame->executeScript(WebScriptSource("selectCaret();"));
3822 webViewHelper.webView()->selectionBounds(initialStartRect, initialEndRect); 3822 webViewHelper.webView()->selectionBounds(initialStartRect, initialEndRect);
3823 WebPoint moveTo(topLeft(initialStartRect)); 3823 WebPoint moveTo(topLeft(initialStartRect));
3824 3824
(...skipping 376 matching lines...) Expand 10 before | Expand all | Expand 10 after
4201 }; 4201 };
4202 4202
4203 TEST_F(WebFrameTest, ReplaceMisspelledRange) 4203 TEST_F(WebFrameTest, ReplaceMisspelledRange)
4204 { 4204 {
4205 registerMockedHttpURLLoad("spell.html"); 4205 registerMockedHttpURLLoad("spell.html");
4206 FrameTestHelpers::WebViewHelper webViewHelper; 4206 FrameTestHelpers::WebViewHelper webViewHelper;
4207 webViewHelper.initializeAndLoad(m_baseURL + "spell.html"); 4207 webViewHelper.initializeAndLoad(m_baseURL + "spell.html");
4208 SpellCheckClient spellcheck; 4208 SpellCheckClient spellcheck;
4209 webViewHelper.webView()->setSpellCheckClient(&spellcheck); 4209 webViewHelper.webView()->setSpellCheckClient(&spellcheck);
4210 4210
4211 WebFrameImpl* frame = toWebFrameImpl(webViewHelper.webView()->mainFrame()); 4211 WebLocalFrameImpl* frame = toWebLocalFrameImpl(webViewHelper.webView()->main Frame());
4212 Document* document = frame->frame()->document(); 4212 Document* document = frame->frame()->document();
4213 Element* element = document->getElementById("data"); 4213 Element* element = document->getElementById("data");
4214 4214
4215 webViewHelper.webView()->settings()->setAsynchronousSpellCheckingEnabled(tru e); 4215 webViewHelper.webView()->settings()->setAsynchronousSpellCheckingEnabled(tru e);
4216 webViewHelper.webView()->settings()->setUnifiedTextCheckerEnabled(true); 4216 webViewHelper.webView()->settings()->setUnifiedTextCheckerEnabled(true);
4217 webViewHelper.webView()->settings()->setEditingBehavior(WebSettings::Editing BehaviorWin); 4217 webViewHelper.webView()->settings()->setEditingBehavior(WebSettings::Editing BehaviorWin);
4218 4218
4219 element->focus(); 4219 element->focus();
4220 document->execCommand("InsertText", false, "_wellcome_."); 4220 document->execCommand("InsertText", false, "_wellcome_.");
4221 4221
(...skipping 10 matching lines...) Expand all
4232 } 4232 }
4233 4233
4234 TEST_F(WebFrameTest, RemoveSpellingMarkers) 4234 TEST_F(WebFrameTest, RemoveSpellingMarkers)
4235 { 4235 {
4236 registerMockedHttpURLLoad("spell.html"); 4236 registerMockedHttpURLLoad("spell.html");
4237 FrameTestHelpers::WebViewHelper webViewHelper; 4237 FrameTestHelpers::WebViewHelper webViewHelper;
4238 webViewHelper.initializeAndLoad(m_baseURL + "spell.html"); 4238 webViewHelper.initializeAndLoad(m_baseURL + "spell.html");
4239 SpellCheckClient spellcheck; 4239 SpellCheckClient spellcheck;
4240 webViewHelper.webView()->setSpellCheckClient(&spellcheck); 4240 webViewHelper.webView()->setSpellCheckClient(&spellcheck);
4241 4241
4242 WebFrameImpl* frame = toWebFrameImpl(webViewHelper.webView()->mainFrame()); 4242 WebLocalFrameImpl* frame = toWebLocalFrameImpl(webViewHelper.webView()->main Frame());
4243 Document* document = frame->frame()->document(); 4243 Document* document = frame->frame()->document();
4244 Element* element = document->getElementById("data"); 4244 Element* element = document->getElementById("data");
4245 4245
4246 webViewHelper.webView()->settings()->setAsynchronousSpellCheckingEnabled(tru e); 4246 webViewHelper.webView()->settings()->setAsynchronousSpellCheckingEnabled(tru e);
4247 webViewHelper.webView()->settings()->setUnifiedTextCheckerEnabled(true); 4247 webViewHelper.webView()->settings()->setUnifiedTextCheckerEnabled(true);
4248 webViewHelper.webView()->settings()->setEditingBehavior(WebSettings::Editing BehaviorWin); 4248 webViewHelper.webView()->settings()->setEditingBehavior(WebSettings::Editing BehaviorWin);
4249 4249
4250 element->focus(); 4250 element->focus();
4251 document->execCommand("InsertText", false, "_wellcome_."); 4251 document->execCommand("InsertText", false, "_wellcome_.");
4252 4252
4253 frame->removeSpellingMarkers(); 4253 frame->removeSpellingMarkers();
4254 4254
4255 const int allTextBeginOffset = 0; 4255 const int allTextBeginOffset = 0;
4256 const int allTextLength = 11; 4256 const int allTextLength = 11;
4257 frame->selectRange(WebRange::fromDocumentRange(frame, allTextBeginOffset, al lTextLength)); 4257 frame->selectRange(WebRange::fromDocumentRange(frame, allTextBeginOffset, al lTextLength));
4258 RefPtrWillBeRawPtr<Range> selectionRange = frame->frame()->selection().toNor malizedRange(); 4258 RefPtrWillBeRawPtr<Range> selectionRange = frame->frame()->selection().toNor malizedRange();
4259 4259
4260 EXPECT_EQ(0U, document->markers().markersInRange(selectionRange.get(), Docum entMarker::Spelling).size()); 4260 EXPECT_EQ(0U, document->markers().markersInRange(selectionRange.get(), Docum entMarker::Spelling).size());
4261 } 4261 }
4262 4262
4263 TEST_F(WebFrameTest, MarkerHashIdentifiers) { 4263 TEST_F(WebFrameTest, MarkerHashIdentifiers) {
4264 registerMockedHttpURLLoad("spell.html"); 4264 registerMockedHttpURLLoad("spell.html");
4265 FrameTestHelpers::WebViewHelper webViewHelper; 4265 FrameTestHelpers::WebViewHelper webViewHelper;
4266 webViewHelper.initializeAndLoad(m_baseURL + "spell.html"); 4266 webViewHelper.initializeAndLoad(m_baseURL + "spell.html");
4267 4267
4268 static const uint32_t kHash = 42; 4268 static const uint32_t kHash = 42;
4269 SpellCheckClient spellcheck(kHash); 4269 SpellCheckClient spellcheck(kHash);
4270 webViewHelper.webView()->setSpellCheckClient(&spellcheck); 4270 webViewHelper.webView()->setSpellCheckClient(&spellcheck);
4271 4271
4272 WebFrameImpl* frame = toWebFrameImpl(webViewHelper.webView()->mainFrame()); 4272 WebLocalFrameImpl* frame = toWebLocalFrameImpl(webViewHelper.webView()->main Frame());
4273 Document* document = frame->frame()->document(); 4273 Document* document = frame->frame()->document();
4274 Element* element = document->getElementById("data"); 4274 Element* element = document->getElementById("data");
4275 4275
4276 webViewHelper.webView()->settings()->setAsynchronousSpellCheckingEnabled(tru e); 4276 webViewHelper.webView()->settings()->setAsynchronousSpellCheckingEnabled(tru e);
4277 webViewHelper.webView()->settings()->setUnifiedTextCheckerEnabled(true); 4277 webViewHelper.webView()->settings()->setUnifiedTextCheckerEnabled(true);
4278 webViewHelper.webView()->settings()->setEditingBehavior(WebSettings::Editing BehaviorWin); 4278 webViewHelper.webView()->settings()->setEditingBehavior(WebSettings::Editing BehaviorWin);
4279 4279
4280 element->focus(); 4280 element->focus();
4281 document->execCommand("InsertText", false, "wellcome."); 4281 document->execCommand("InsertText", false, "wellcome.");
4282 4282
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
4337 4337
4338 TEST_F(WebFrameTest, SlowSpellcheckMarkerPosition) 4338 TEST_F(WebFrameTest, SlowSpellcheckMarkerPosition)
4339 { 4339 {
4340 registerMockedHttpURLLoad("spell.html"); 4340 registerMockedHttpURLLoad("spell.html");
4341 FrameTestHelpers::WebViewHelper webViewHelper; 4341 FrameTestHelpers::WebViewHelper webViewHelper;
4342 webViewHelper.initializeAndLoad(m_baseURL + "spell.html"); 4342 webViewHelper.initializeAndLoad(m_baseURL + "spell.html");
4343 4343
4344 StubbornSpellCheckClient spellcheck; 4344 StubbornSpellCheckClient spellcheck;
4345 webViewHelper.webView()->setSpellCheckClient(&spellcheck); 4345 webViewHelper.webView()->setSpellCheckClient(&spellcheck);
4346 4346
4347 WebFrameImpl* frame = toWebFrameImpl(webViewHelper.webView()->mainFrame()); 4347 WebLocalFrameImpl* frame = toWebLocalFrameImpl(webViewHelper.webView()->main Frame());
4348 WebInputElement webInputElement = frame->document().getElementById("data").t o<WebInputElement>(); 4348 WebInputElement webInputElement = frame->document().getElementById("data").t o<WebInputElement>();
4349 Document* document = frame->frame()->document(); 4349 Document* document = frame->frame()->document();
4350 Element* element = document->getElementById("data"); 4350 Element* element = document->getElementById("data");
4351 4351
4352 webViewHelper.webView()->settings()->setAsynchronousSpellCheckingEnabled(tru e); 4352 webViewHelper.webView()->settings()->setAsynchronousSpellCheckingEnabled(tru e);
4353 webViewHelper.webView()->settings()->setUnifiedTextCheckerEnabled(true); 4353 webViewHelper.webView()->settings()->setUnifiedTextCheckerEnabled(true);
4354 webViewHelper.webView()->settings()->setEditingBehavior(WebSettings::Editing BehaviorWin); 4354 webViewHelper.webView()->settings()->setEditingBehavior(WebSettings::Editing BehaviorWin);
4355 4355
4356 element->focus(); 4356 element->focus();
4357 document->execCommand("InsertText", false, "wellcome "); 4357 document->execCommand("InsertText", false, "wellcome ");
4358 webInputElement.setSelectionRange(0, 0); 4358 webInputElement.setSelectionRange(0, 0);
4359 document->execCommand("InsertText", false, "he"); 4359 document->execCommand("InsertText", false, "he");
4360 4360
4361 spellcheck.kick(); 4361 spellcheck.kick();
4362 4362
4363 WebVector<uint32_t> documentMarkers; 4363 WebVector<uint32_t> documentMarkers;
4364 webViewHelper.webView()->spellingMarkers(&documentMarkers); 4364 webViewHelper.webView()->spellingMarkers(&documentMarkers);
4365 EXPECT_EQ(0U, documentMarkers.size()); 4365 EXPECT_EQ(0U, documentMarkers.size());
4366 } 4366 }
4367 4367
4368 // This test verifies that cancelling spelling request does not cause a 4368 // This test verifies that cancelling spelling request does not cause a
4369 // write-after-free when there's no spellcheck client set. 4369 // write-after-free when there's no spellcheck client set.
4370 TEST_F(WebFrameTest, CancelSpellingRequestCrash) 4370 TEST_F(WebFrameTest, CancelSpellingRequestCrash)
4371 { 4371 {
4372 registerMockedHttpURLLoad("spell.html"); 4372 registerMockedHttpURLLoad("spell.html");
4373 FrameTestHelpers::WebViewHelper webViewHelper; 4373 FrameTestHelpers::WebViewHelper webViewHelper;
4374 webViewHelper.initializeAndLoad(m_baseURL + "spell.html"); 4374 webViewHelper.initializeAndLoad(m_baseURL + "spell.html");
4375 webViewHelper.webView()->setSpellCheckClient(0); 4375 webViewHelper.webView()->setSpellCheckClient(0);
4376 4376
4377 WebFrameImpl* frame = toWebFrameImpl(webViewHelper.webView()->mainFrame()); 4377 WebLocalFrameImpl* frame = toWebLocalFrameImpl(webViewHelper.webView()->main Frame());
4378 Document* document = frame->frame()->document(); 4378 Document* document = frame->frame()->document();
4379 Element* element = document->getElementById("data"); 4379 Element* element = document->getElementById("data");
4380 4380
4381 webViewHelper.webView()->settings()->setAsynchronousSpellCheckingEnabled(tru e); 4381 webViewHelper.webView()->settings()->setAsynchronousSpellCheckingEnabled(tru e);
4382 webViewHelper.webView()->settings()->setUnifiedTextCheckerEnabled(true); 4382 webViewHelper.webView()->settings()->setUnifiedTextCheckerEnabled(true);
4383 webViewHelper.webView()->settings()->setEditingBehavior(WebSettings::Editing BehaviorWin); 4383 webViewHelper.webView()->settings()->setEditingBehavior(WebSettings::Editing BehaviorWin);
4384 4384
4385 element->focus(); 4385 element->focus();
4386 frame->frame()->editor().replaceSelectionWithText("A", false, false); 4386 frame->frame()->editor().replaceSelectionWithText("A", false, false);
4387 frame->frame()->spellChecker().cancelCheck(); 4387 frame->frame()->spellChecker().cancelCheck();
4388 } 4388 }
4389 4389
4390 TEST_F(WebFrameTest, SpellcheckResultErasesMarkers) 4390 TEST_F(WebFrameTest, SpellcheckResultErasesMarkers)
4391 { 4391 {
4392 registerMockedHttpURLLoad("spell.html"); 4392 registerMockedHttpURLLoad("spell.html");
4393 FrameTestHelpers::WebViewHelper webViewHelper; 4393 FrameTestHelpers::WebViewHelper webViewHelper;
4394 webViewHelper.initializeAndLoad(m_baseURL + "spell.html"); 4394 webViewHelper.initializeAndLoad(m_baseURL + "spell.html");
4395 4395
4396 StubbornSpellCheckClient spellcheck; 4396 StubbornSpellCheckClient spellcheck;
4397 webViewHelper.webView()->setSpellCheckClient(&spellcheck); 4397 webViewHelper.webView()->setSpellCheckClient(&spellcheck);
4398 4398
4399 WebFrameImpl* frame = toWebFrameImpl(webViewHelper.webView()->mainFrame()); 4399 WebLocalFrameImpl* frame = toWebLocalFrameImpl(webViewHelper.webView()->main Frame());
4400 WebInputElement webInputElement = frame->document().getElementById("data").t o<WebInputElement>(); 4400 WebInputElement webInputElement = frame->document().getElementById("data").t o<WebInputElement>();
4401 Document* document = frame->frame()->document(); 4401 Document* document = frame->frame()->document();
4402 Element* element = document->getElementById("data"); 4402 Element* element = document->getElementById("data");
4403 4403
4404 webViewHelper.webView()->settings()->setAsynchronousSpellCheckingEnabled(tru e); 4404 webViewHelper.webView()->settings()->setAsynchronousSpellCheckingEnabled(tru e);
4405 webViewHelper.webView()->settings()->setUnifiedTextCheckerEnabled(true); 4405 webViewHelper.webView()->settings()->setUnifiedTextCheckerEnabled(true);
4406 webViewHelper.webView()->settings()->setEditingBehavior(WebSettings::Editing BehaviorWin); 4406 webViewHelper.webView()->settings()->setEditingBehavior(WebSettings::Editing BehaviorWin);
4407 4407
4408 element->focus(); 4408 element->focus();
4409 document->execCommand("InsertText", false, "welcome "); 4409 document->execCommand("InsertText", false, "welcome ");
4410 document->markers().addMarker(rangeOfContents(element->toNode()).get(), Docu mentMarker::Spelling); 4410 document->markers().addMarker(rangeOfContents(element->toNode()).get(), Docu mentMarker::Spelling);
4411 document->markers().addMarker(rangeOfContents(element->toNode()).get(), Docu mentMarker::Grammar); 4411 document->markers().addMarker(rangeOfContents(element->toNode()).get(), Docu mentMarker::Grammar);
4412 document->markers().addMarker(rangeOfContents(element->toNode()).get(), Docu mentMarker::InvisibleSpellcheck); 4412 document->markers().addMarker(rangeOfContents(element->toNode()).get(), Docu mentMarker::InvisibleSpellcheck);
4413 EXPECT_EQ(3U, document->markers().markers().size()); 4413 EXPECT_EQ(3U, document->markers().markers().size());
4414 4414
4415 spellcheck.kickNoResults(); 4415 spellcheck.kickNoResults();
4416 EXPECT_EQ(0U, document->markers().markers().size()); 4416 EXPECT_EQ(0U, document->markers().markers().size());
4417 } 4417 }
4418 4418
4419 TEST_F(WebFrameTest, SpellcheckResultsSavedInDocument) 4419 TEST_F(WebFrameTest, SpellcheckResultsSavedInDocument)
4420 { 4420 {
4421 registerMockedHttpURLLoad("spell.html"); 4421 registerMockedHttpURLLoad("spell.html");
4422 FrameTestHelpers::WebViewHelper webViewHelper; 4422 FrameTestHelpers::WebViewHelper webViewHelper;
4423 webViewHelper.initializeAndLoad(m_baseURL + "spell.html"); 4423 webViewHelper.initializeAndLoad(m_baseURL + "spell.html");
4424 4424
4425 StubbornSpellCheckClient spellcheck; 4425 StubbornSpellCheckClient spellcheck;
4426 webViewHelper.webView()->setSpellCheckClient(&spellcheck); 4426 webViewHelper.webView()->setSpellCheckClient(&spellcheck);
4427 4427
4428 WebFrameImpl* frame = toWebFrameImpl(webViewHelper.webView()->mainFrame()); 4428 WebLocalFrameImpl* frame = toWebLocalFrameImpl(webViewHelper.webView()->main Frame());
4429 WebInputElement webInputElement = frame->document().getElementById("data").t o<WebInputElement>(); 4429 WebInputElement webInputElement = frame->document().getElementById("data").t o<WebInputElement>();
4430 Document* document = frame->frame()->document(); 4430 Document* document = frame->frame()->document();
4431 Element* element = document->getElementById("data"); 4431 Element* element = document->getElementById("data");
4432 4432
4433 webViewHelper.webView()->settings()->setAsynchronousSpellCheckingEnabled(tru e); 4433 webViewHelper.webView()->settings()->setAsynchronousSpellCheckingEnabled(tru e);
4434 webViewHelper.webView()->settings()->setUnifiedTextCheckerEnabled(true); 4434 webViewHelper.webView()->settings()->setUnifiedTextCheckerEnabled(true);
4435 webViewHelper.webView()->settings()->setEditingBehavior(WebSettings::Editing BehaviorWin); 4435 webViewHelper.webView()->settings()->setEditingBehavior(WebSettings::Editing BehaviorWin);
4436 4436
4437 element->focus(); 4437 element->focus();
4438 document->execCommand("InsertText", false, "wellcome "); 4438 document->execCommand("InsertText", false, "wellcome ");
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
4619 } 4619 }
4620 bool wasUserScroll() const { return m_didScrollMainFrame && !m_wasProgrammat icScroll; } 4620 bool wasUserScroll() const { return m_didScrollMainFrame && !m_wasProgrammat icScroll; }
4621 bool wasProgrammaticScroll() const { return m_didScrollMainFrame && m_wasPro grammaticScroll; } 4621 bool wasProgrammaticScroll() const { return m_didScrollMainFrame && m_wasPro grammaticScroll; }
4622 4622
4623 // WebFrameClient: 4623 // WebFrameClient:
4624 virtual void didChangeScrollOffset(WebLocalFrame* frame) OVERRIDE 4624 virtual void didChangeScrollOffset(WebLocalFrame* frame) OVERRIDE
4625 { 4625 {
4626 if (frame->parent()) 4626 if (frame->parent())
4627 return; 4627 return;
4628 EXPECT_FALSE(m_didScrollMainFrame); 4628 EXPECT_FALSE(m_didScrollMainFrame);
4629 WebCore::FrameView* view = toWebFrameImpl(frame)->frameView(); 4629 WebCore::FrameView* view = toWebLocalFrameImpl(frame)->frameView();
4630 // FrameView can be scrolled in FrameView::setFixedVisibleContentRect 4630 // FrameView can be scrolled in FrameView::setFixedVisibleContentRect
4631 // which is called from LocalFrame::createView (before the frame is asso ciated 4631 // which is called from LocalFrame::createView (before the frame is asso ciated
4632 // with the the view). 4632 // with the the view).
4633 if (view) { 4633 if (view) {
4634 m_didScrollMainFrame = true; 4634 m_didScrollMainFrame = true;
4635 m_wasProgrammaticScroll = view->inProgrammaticScroll(); 4635 m_wasProgrammaticScroll = view->inProgrammaticScroll();
4636 } 4636 }
4637 } 4637 }
4638 private: 4638 private:
4639 bool m_didScrollMainFrame; 4639 bool m_didScrollMainFrame;
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
4673 EXPECT_FALSE(client.wasUserScroll()); 4673 EXPECT_FALSE(client.wasUserScroll());
4674 EXPECT_FALSE(client.wasProgrammaticScroll()); 4674 EXPECT_FALSE(client.wasProgrammaticScroll());
4675 client.reset(); 4675 client.reset();
4676 4676
4677 // Non zero page scale and scroll. 4677 // Non zero page scale and scroll.
4678 webViewHelper.webViewImpl()->applyScrollAndScale(WebSize(9, 13), 0.6f); 4678 webViewHelper.webViewImpl()->applyScrollAndScale(WebSize(9, 13), 0.6f);
4679 EXPECT_TRUE(client.wasUserScroll()); 4679 EXPECT_TRUE(client.wasUserScroll());
4680 client.reset(); 4680 client.reset();
4681 4681
4682 // Programmatic scroll. 4682 // Programmatic scroll.
4683 WebFrameImpl* frameImpl = webViewHelper.webViewImpl()->mainFrameImpl(); 4683 WebLocalFrameImpl* frameImpl = webViewHelper.webViewImpl()->mainFrameImpl();
4684 frameImpl->executeScript(WebScriptSource("window.scrollTo(0, 20);")); 4684 frameImpl->executeScript(WebScriptSource("window.scrollTo(0, 20);"));
4685 EXPECT_FALSE(client.wasUserScroll()); 4685 EXPECT_FALSE(client.wasUserScroll());
4686 EXPECT_TRUE(client.wasProgrammaticScroll()); 4686 EXPECT_TRUE(client.wasProgrammaticScroll());
4687 client.reset(); 4687 client.reset();
4688 4688
4689 // Programmatic scroll to same offset. No scroll event should be generated. 4689 // Programmatic scroll to same offset. No scroll event should be generated.
4690 frameImpl->executeScript(WebScriptSource("window.scrollTo(0, 20);")); 4690 frameImpl->executeScript(WebScriptSource("window.scrollTo(0, 20);"));
4691 EXPECT_FALSE(client.wasProgrammaticScroll()); 4691 EXPECT_FALSE(client.wasProgrammaticScroll());
4692 EXPECT_FALSE(client.wasUserScroll()); 4692 EXPECT_FALSE(client.wasUserScroll());
4693 client.reset(); 4693 client.reset();
(...skipping 267 matching lines...) Expand 10 before | Expand all | Expand 10 after
4961 { 4961 {
4962 registerMockedHttpURLLoad("iframe_reload.html"); 4962 registerMockedHttpURLLoad("iframe_reload.html");
4963 registerMockedHttpURLLoad("visible_iframe.html"); 4963 registerMockedHttpURLLoad("visible_iframe.html");
4964 TestCachePolicyWebFrameClient mainClient; 4964 TestCachePolicyWebFrameClient mainClient;
4965 TestCachePolicyWebFrameClient childClient; 4965 TestCachePolicyWebFrameClient childClient;
4966 mainClient.setChildWebFrameClient(&childClient); 4966 mainClient.setChildWebFrameClient(&childClient);
4967 4967
4968 FrameTestHelpers::WebViewHelper webViewHelper; 4968 FrameTestHelpers::WebViewHelper webViewHelper;
4969 webViewHelper.initializeAndLoad(m_baseURL + "iframe_reload.html", true, &mai nClient); 4969 webViewHelper.initializeAndLoad(m_baseURL + "iframe_reload.html", true, &mai nClient);
4970 4970
4971 WebFrameImpl* mainFrame = webViewHelper.webViewImpl()->mainFrameImpl(); 4971 WebLocalFrameImpl* mainFrame = webViewHelper.webViewImpl()->mainFrameImpl();
4972 RefPtr<WebFrameImpl> childFrame = toWebFrameImpl(mainFrame->firstChild()); 4972 RefPtr<WebLocalFrameImpl> childFrame = toWebLocalFrameImpl(mainFrame->firstC hild());
4973 ASSERT_EQ(childFrame->client(), &childClient); 4973 ASSERT_EQ(childFrame->client(), &childClient);
4974 EXPECT_EQ(mainClient.childFrameCreationCount(), 1); 4974 EXPECT_EQ(mainClient.childFrameCreationCount(), 1);
4975 EXPECT_EQ(childClient.willSendRequestCallCount(), 1); 4975 EXPECT_EQ(childClient.willSendRequestCallCount(), 1);
4976 EXPECT_EQ(childClient.cachePolicy(), WebURLRequest::UseProtocolCachePolicy); 4976 EXPECT_EQ(childClient.cachePolicy(), WebURLRequest::UseProtocolCachePolicy);
4977 4977
4978 mainFrame->reload(false); 4978 mainFrame->reload(false);
4979 Platform::current()->unitTestSupport()->serveAsynchronousMockedRequests(); 4979 Platform::current()->unitTestSupport()->serveAsynchronousMockedRequests();
4980 4980
4981 // A new WebFrame should have been created, but the child WebFrameClient sho uld be reused. 4981 // A new WebFrame should have been created, but the child WebFrameClient sho uld be reused.
4982 ASSERT_NE(childFrame, toWebFrameImpl(mainFrame->firstChild())); 4982 ASSERT_NE(childFrame, toWebLocalFrameImpl(mainFrame->firstChild()));
4983 ASSERT_EQ(toWebFrameImpl(mainFrame->firstChild())->client(), &childClient); 4983 ASSERT_EQ(toWebLocalFrameImpl(mainFrame->firstChild())->client(), &childClie nt);
4984 4984
4985 EXPECT_EQ(mainClient.childFrameCreationCount(), 2); 4985 EXPECT_EQ(mainClient.childFrameCreationCount(), 2);
4986 EXPECT_EQ(childClient.willSendRequestCallCount(), 2); 4986 EXPECT_EQ(childClient.willSendRequestCallCount(), 2);
4987 EXPECT_EQ(childClient.cachePolicy(), WebURLRequest::ReloadIgnoringCacheData) ; 4987 EXPECT_EQ(childClient.cachePolicy(), WebURLRequest::ReloadIgnoringCacheData) ;
4988 } 4988 }
4989 4989
4990 class TestSameDocumentWebFrameClient : public FrameTestHelpers::TestWebFrameClie nt { 4990 class TestSameDocumentWebFrameClient : public FrameTestHelpers::TestWebFrameClie nt {
4991 public: 4991 public:
4992 TestSameDocumentWebFrameClient() 4992 TestSameDocumentWebFrameClient()
4993 : m_frameLoadTypeSameSeen(false) 4993 : m_frameLoadTypeSameSeen(false)
4994 { 4994 {
4995 } 4995 }
4996 4996
4997 virtual void willSendRequest(WebLocalFrame* frame, unsigned, WebURLRequest&, const WebURLResponse&) 4997 virtual void willSendRequest(WebLocalFrame* frame, unsigned, WebURLRequest&, const WebURLResponse&)
4998 { 4998 {
4999 if (toWebFrameImpl(frame)->frame()->loader().loadType() == WebCore::Fram eLoadTypeSame) 4999 if (toWebLocalFrameImpl(frame)->frame()->loader().loadType() == WebCore: :FrameLoadTypeSame)
5000 m_frameLoadTypeSameSeen = true; 5000 m_frameLoadTypeSameSeen = true;
5001 } 5001 }
5002 5002
5003 bool frameLoadTypeSameSeen() const { return m_frameLoadTypeSameSeen; } 5003 bool frameLoadTypeSameSeen() const { return m_frameLoadTypeSameSeen; }
5004 5004
5005 private: 5005 private:
5006 bool m_frameLoadTypeSameSeen; 5006 bool m_frameLoadTypeSameSeen;
5007 }; 5007 };
5008 5008
5009 TEST_F(WebFrameTest, NavigateToSame) 5009 TEST_F(WebFrameTest, NavigateToSame)
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
5220 WebCore::RenderLayerCompositor* compositor = webViewHelper.webViewImpl()->c ompositor(); 5220 WebCore::RenderLayerCompositor* compositor = webViewHelper.webViewImpl()->c ompositor();
5221 ASSERT_TRUE(compositor->scrollLayer()); 5221 ASSERT_TRUE(compositor->scrollLayer());
5222 5222
5223 // Verify that the WebLayer is not scrollable initially. 5223 // Verify that the WebLayer is not scrollable initially.
5224 WebCore::GraphicsLayer* scrollLayer = compositor->scrollLayer(); 5224 WebCore::GraphicsLayer* scrollLayer = compositor->scrollLayer();
5225 WebLayer* webScrollLayer = scrollLayer->platformLayer(); 5225 WebLayer* webScrollLayer = scrollLayer->platformLayer();
5226 ASSERT_FALSE(webScrollLayer->userScrollableHorizontal()); 5226 ASSERT_FALSE(webScrollLayer->userScrollableHorizontal());
5227 ASSERT_FALSE(webScrollLayer->userScrollableVertical()); 5227 ASSERT_FALSE(webScrollLayer->userScrollableVertical());
5228 5228
5229 // Call javascript to make the layer scrollable, and verify it. 5229 // Call javascript to make the layer scrollable, and verify it.
5230 WebFrameImpl* frame = (WebFrameImpl*)webViewHelper.webView()->mainFrame(); 5230 WebLocalFrameImpl* frame = (WebLocalFrameImpl*)webViewHelper.webView()->main Frame();
5231 frame->executeScript(WebScriptSource("allowScroll();")); 5231 frame->executeScript(WebScriptSource("allowScroll();"));
5232 webViewHelper.webView()->layout(); 5232 webViewHelper.webView()->layout();
5233 ASSERT_TRUE(webScrollLayer->userScrollableHorizontal()); 5233 ASSERT_TRUE(webScrollLayer->userScrollableHorizontal());
5234 ASSERT_TRUE(webScrollLayer->userScrollableVertical()); 5234 ASSERT_TRUE(webScrollLayer->userScrollableVertical());
5235 } 5235 }
5236 5236
5237 // Test that currentHistoryItem reflects the current page, not the provisional l oad. 5237 // Test that currentHistoryItem reflects the current page, not the provisional l oad.
5238 TEST_F(WebFrameTest, CurrentHistoryItem) 5238 TEST_F(WebFrameTest, CurrentHistoryItem)
5239 { 5239 {
5240 registerMockedHttpURLLoad("fixed_layout.html"); 5240 registerMockedHttpURLLoad("fixed_layout.html");
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
5293 { 5293 {
5294 UseMockScrollbarSettings mockScrollbarSettings; 5294 UseMockScrollbarSettings mockScrollbarSettings;
5295 registerMockedHttpURLLoad("fixed-position-in-fixed-viewport.html"); 5295 registerMockedHttpURLLoad("fixed-position-in-fixed-viewport.html");
5296 FrameTestHelpers::WebViewHelper webViewHelper; 5296 FrameTestHelpers::WebViewHelper webViewHelper;
5297 webViewHelper.initializeAndLoad(m_baseURL + "fixed-position-in-fixed-viewpor t.html", true, 0, 0, enableViewportSettings); 5297 webViewHelper.initializeAndLoad(m_baseURL + "fixed-position-in-fixed-viewpor t.html", true, 0, 0, enableViewportSettings);
5298 5298
5299 WebView* webView = webViewHelper.webView(); 5299 WebView* webView = webViewHelper.webView();
5300 webView->resize(WebSize(100, 100)); 5300 webView->resize(WebSize(100, 100));
5301 webView->layout(); 5301 webView->layout();
5302 5302
5303 Document* document = toWebFrameImpl(webView->mainFrame())->frame()->document (); 5303 Document* document = toWebLocalFrameImpl(webView->mainFrame())->frame()->doc ument();
5304 Element* bottomFixed = document->getElementById("bottom-fixed"); 5304 Element* bottomFixed = document->getElementById("bottom-fixed");
5305 Element* topBottomFixed = document->getElementById("top-bottom-fixed"); 5305 Element* topBottomFixed = document->getElementById("top-bottom-fixed");
5306 Element* rightFixed = document->getElementById("right-fixed"); 5306 Element* rightFixed = document->getElementById("right-fixed");
5307 Element* leftRightFixed = document->getElementById("left-right-fixed"); 5307 Element* leftRightFixed = document->getElementById("left-right-fixed");
5308 5308
5309 webView->resize(WebSize(100, 200)); 5309 webView->resize(WebSize(100, 200));
5310 webView->layout(); 5310 webView->layout();
5311 EXPECT_EQ(200, bottomFixed->offsetTop() + bottomFixed->offsetHeight()); 5311 EXPECT_EQ(200, bottomFixed->offsetTop() + bottomFixed->offsetHeight());
5312 EXPECT_EQ(200, topBottomFixed->offsetHeight()); 5312 EXPECT_EQ(200, topBottomFixed->offsetHeight());
5313 5313
(...skipping 29 matching lines...) Expand all
5343 { 5343 {
5344 FakeCompositingWebViewClient client; 5344 FakeCompositingWebViewClient client;
5345 registerMockedHttpURLLoad("fullscreen_div.html"); 5345 registerMockedHttpURLLoad("fullscreen_div.html");
5346 FrameTestHelpers::WebViewHelper webViewHelper; 5346 FrameTestHelpers::WebViewHelper webViewHelper;
5347 int viewportWidth = 640; 5347 int viewportWidth = 640;
5348 int viewportHeight = 480; 5348 int viewportHeight = 480;
5349 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "full screen_div.html", true, 0, &client, &configueCompositingWebView); 5349 WebViewImpl* webViewImpl = webViewHelper.initializeAndLoad(m_baseURL + "full screen_div.html", true, 0, &client, &configueCompositingWebView);
5350 webViewImpl->resize(WebSize(viewportWidth, viewportHeight)); 5350 webViewImpl->resize(WebSize(viewportWidth, viewportHeight));
5351 webViewImpl->layout(); 5351 webViewImpl->layout();
5352 5352
5353 Document* document = toWebFrameImpl(webViewImpl->mainFrame())->frame()->docu ment(); 5353 Document* document = toWebLocalFrameImpl(webViewImpl->mainFrame())->frame()- >document();
5354 WebCore::UserGestureIndicator gesture(WebCore::DefinitelyProcessingUserGestu re); 5354 WebCore::UserGestureIndicator gesture(WebCore::DefinitelyProcessingUserGestu re);
5355 Element* divFullscreen = document->getElementById("div1"); 5355 Element* divFullscreen = document->getElementById("div1");
5356 divFullscreen->webkitRequestFullscreen(); 5356 divFullscreen->webkitRequestFullscreen();
5357 webViewImpl->willEnterFullScreen(); 5357 webViewImpl->willEnterFullScreen();
5358 webViewImpl->didEnterFullScreen(); 5358 webViewImpl->didEnterFullScreen();
5359 webViewImpl->layout(); 5359 webViewImpl->layout();
5360 5360
5361 // Verify that the main frame is not scrollable. 5361 // Verify that the main frame is not scrollable.
5362 ASSERT_TRUE(WebCore::FullscreenElementStack::isFullScreen(*document)); 5362 ASSERT_TRUE(WebCore::FullscreenElementStack::isFullScreen(*document));
5363 WebLayer* webScrollLayer = webViewImpl->compositor()->scrollLayer()->platfor mLayer(); 5363 WebLayer* webScrollLayer = webViewImpl->compositor()->scrollLayer()->platfor mLayer();
(...skipping 11 matching lines...) Expand all
5375 TEST_F(WebFrameTest, RenderBlockPercentHeightDescendants) 5375 TEST_F(WebFrameTest, RenderBlockPercentHeightDescendants)
5376 { 5376 {
5377 registerMockedHttpURLLoad("percent-height-descendants.html"); 5377 registerMockedHttpURLLoad("percent-height-descendants.html");
5378 FrameTestHelpers::WebViewHelper webViewHelper; 5378 FrameTestHelpers::WebViewHelper webViewHelper;
5379 webViewHelper.initializeAndLoad(m_baseURL + "percent-height-descendants.html "); 5379 webViewHelper.initializeAndLoad(m_baseURL + "percent-height-descendants.html ");
5380 5380
5381 WebView* webView = webViewHelper.webView(); 5381 WebView* webView = webViewHelper.webView();
5382 webView->resize(WebSize(800, 800)); 5382 webView->resize(WebSize(800, 800));
5383 webView->layout(); 5383 webView->layout();
5384 5384
5385 Document* document = toWebFrameImpl(webView->mainFrame())->frame()->document (); 5385 Document* document = toWebLocalFrameImpl(webView->mainFrame())->frame()->doc ument();
5386 WebCore::RenderBlock* container = WebCore::toRenderBlock(document->getElemen tById("container")->renderer()); 5386 WebCore::RenderBlock* container = WebCore::toRenderBlock(document->getElemen tById("container")->renderer());
5387 WebCore::RenderBox* percentHeightInAnonymous = WebCore::toRenderBox(document ->getElementById("percent-height-in-anonymous")->renderer()); 5387 WebCore::RenderBox* percentHeightInAnonymous = WebCore::toRenderBox(document ->getElementById("percent-height-in-anonymous")->renderer());
5388 WebCore::RenderBox* percentHeightDirectChild = WebCore::toRenderBox(document ->getElementById("percent-height-direct-child")->renderer()); 5388 WebCore::RenderBox* percentHeightDirectChild = WebCore::toRenderBox(document ->getElementById("percent-height-direct-child")->renderer());
5389 5389
5390 EXPECT_TRUE(WebCore::RenderBlock::hasPercentHeightDescendant(percentHeightIn Anonymous)); 5390 EXPECT_TRUE(WebCore::RenderBlock::hasPercentHeightDescendant(percentHeightIn Anonymous));
5391 EXPECT_TRUE(WebCore::RenderBlock::hasPercentHeightDescendant(percentHeightDi rectChild)); 5391 EXPECT_TRUE(WebCore::RenderBlock::hasPercentHeightDescendant(percentHeightDi rectChild));
5392 5392
5393 ASSERT_TRUE(container->percentHeightDescendants()); 5393 ASSERT_TRUE(container->percentHeightDescendants());
5394 ASSERT_TRUE(container->hasPercentHeightDescendants()); 5394 ASSERT_TRUE(container->hasPercentHeightDescendants());
5395 EXPECT_EQ(2U, container->percentHeightDescendants()->size()); 5395 EXPECT_EQ(2U, container->percentHeightDescendants()->size());
5396 EXPECT_TRUE(container->percentHeightDescendants()->contains(percentHeightInA nonymous)); 5396 EXPECT_TRUE(container->percentHeightDescendants()->contains(percentHeightInA nonymous));
5397 EXPECT_TRUE(container->percentHeightDescendants()->contains(percentHeightDir ectChild)); 5397 EXPECT_TRUE(container->percentHeightDescendants()->contains(percentHeightDir ectChild));
5398 5398
5399 WebCore::RenderBlock* anonymousBlock = percentHeightInAnonymous->containingB lock(); 5399 WebCore::RenderBlock* anonymousBlock = percentHeightInAnonymous->containingB lock();
5400 EXPECT_TRUE(anonymousBlock->isAnonymous()); 5400 EXPECT_TRUE(anonymousBlock->isAnonymous());
5401 EXPECT_FALSE(anonymousBlock->hasPercentHeightDescendants()); 5401 EXPECT_FALSE(anonymousBlock->hasPercentHeightDescendants());
5402 } 5402 }
5403 5403
5404 } // namespace 5404 } // namespace
OLDNEW
« no previous file with comments | « Source/web/tests/ScrollingCoordinatorChromiumTest.cpp ('k') | Source/web/tests/WebPluginContainerTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698