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

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

Issue 2928033002: Move GetDocument method from WebFrame to WebLocalFrame. (Closed)
Patch Set: Split a DCHECK in two as suggested by boliu@. Created 3 years, 6 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 1322 matching lines...) Expand 10 before | Expand all | Expand 10 after
1333 EXPECT_EQ(0, web_view->MainFrameImpl()->GetScrollOffset().height); 1333 EXPECT_EQ(0, web_view->MainFrameImpl()->GetScrollOffset().height);
1334 1334
1335 // Set up a composition from existing text that needs to be committed. 1335 // Set up a composition from existing text that needs to be committed.
1336 Vector<CompositionUnderline> empty_underlines; 1336 Vector<CompositionUnderline> empty_underlines;
1337 WebLocalFrameBase* frame = web_view->MainFrameImpl(); 1337 WebLocalFrameBase* frame = web_view->MainFrameImpl();
1338 frame->GetFrame()->GetInputMethodController().SetCompositionFromExistingText( 1338 frame->GetFrame()->GetInputMethodController().SetCompositionFromExistingText(
1339 empty_underlines, 0, 3); 1339 empty_underlines, 0, 3);
1340 1340
1341 // Scroll the input field out of the viewport. 1341 // Scroll the input field out of the viewport.
1342 Element* element = static_cast<Element*>( 1342 Element* element = static_cast<Element*>(
1343 web_view->MainFrame()->GetDocument().GetElementById("btn")); 1343 web_view->MainFrameImpl()->GetDocument().GetElementById("btn"));
1344 element->scrollIntoView(); 1344 element->scrollIntoView();
1345 float offset_height = web_view->MainFrameImpl()->GetScrollOffset().height; 1345 float offset_height = web_view->MainFrameImpl()->GetScrollOffset().height;
1346 EXPECT_EQ(0, web_view->MainFrameImpl()->GetScrollOffset().width); 1346 EXPECT_EQ(0, web_view->MainFrameImpl()->GetScrollOffset().width);
1347 EXPECT_LT(0, offset_height); 1347 EXPECT_LT(0, offset_height);
1348 1348
1349 WebTextInputInfo info = frame->GetInputMethodController()->TextInputInfo(); 1349 WebTextInputInfo info = frame->GetInputMethodController()->TextInputInfo();
1350 EXPECT_EQ("hello", std::string(info.value.Utf8().data())); 1350 EXPECT_EQ("hello", std::string(info.value.Utf8().data()));
1351 1351
1352 // Verify that the input field is not scrolled back into the viewport. 1352 // Verify that the input field is not scrolled back into the viewport.
1353 frame->FrameWidget() 1353 frame->FrameWidget()
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
1533 1533
1534 TEST_P(WebViewTest, SetCompositionFromExistingTextInRichText) { 1534 TEST_P(WebViewTest, SetCompositionFromExistingTextInRichText) {
1535 RegisterMockedHttpURLLoad("content_editable_rich_text.html"); 1535 RegisterMockedHttpURLLoad("content_editable_rich_text.html");
1536 WebViewBase* web_view = web_view_helper_.InitializeAndLoad( 1536 WebViewBase* web_view = web_view_helper_.InitializeAndLoad(
1537 base_url_ + "content_editable_rich_text.html"); 1537 base_url_ + "content_editable_rich_text.html");
1538 web_view->SetInitialFocus(false); 1538 web_view->SetInitialFocus(false);
1539 WebVector<WebCompositionUnderline> underlines(static_cast<size_t>(1)); 1539 WebVector<WebCompositionUnderline> underlines(static_cast<size_t>(1));
1540 underlines[0] = WebCompositionUnderline(0, 4, 0, false, 0); 1540 underlines[0] = WebCompositionUnderline(0, 4, 0, false, 0);
1541 WebLocalFrameBase* frame = web_view->MainFrameImpl(); 1541 WebLocalFrameBase* frame = web_view->MainFrameImpl();
1542 frame->SetEditableSelectionOffsets(1, 1); 1542 frame->SetEditableSelectionOffsets(1, 1);
1543 WebDocument document = web_view->MainFrame()->GetDocument(); 1543 WebDocument document = web_view->MainFrameImpl()->GetDocument();
1544 EXPECT_FALSE(document.GetElementById("bold").IsNull()); 1544 EXPECT_FALSE(document.GetElementById("bold").IsNull());
1545 frame->SetCompositionFromExistingText(0, 4, underlines); 1545 frame->SetCompositionFromExistingText(0, 4, underlines);
1546 EXPECT_FALSE(document.GetElementById("bold").IsNull()); 1546 EXPECT_FALSE(document.GetElementById("bold").IsNull());
1547 } 1547 }
1548 1548
1549 TEST_P(WebViewTest, SetEditableSelectionOffsetsKeepsComposition) { 1549 TEST_P(WebViewTest, SetEditableSelectionOffsetsKeepsComposition) {
1550 RegisterMockedHttpURLLoad("input_field_populated.html"); 1550 RegisterMockedHttpURLLoad("input_field_populated.html");
1551 WebViewBase* web_view = web_view_helper_.InitializeAndLoad( 1551 WebViewBase* web_view = web_view_helper_.InitializeAndLoad(
1552 base_url_ + "input_field_populated.html"); 1552 base_url_ + "input_field_populated.html");
1553 web_view->SetInitialFocus(false); 1553 web_view->SetInitialFocus(false);
(...skipping 400 matching lines...) Expand 10 before | Expand all | Expand 10 after
1954 const std::string foo_url = base_url_ + "foo.html"; 1954 const std::string foo_url = base_url_ + "foo.html";
1955 const std::string bar_url = base_url_ + "bar.html"; 1955 const std::string bar_url = base_url_ + "bar.html";
1956 1956
1957 WebViewBase* web_view = web_view_helper_.InitializeAndLoad(foo_url); 1957 WebViewBase* web_view = web_view_helper_.InitializeAndLoad(foo_url);
1958 1958
1959 ASSERT_TRUE(web_view); 1959 ASSERT_TRUE(web_view);
1960 1960
1961 // Drag and drop barUrl and verify that we've navigated to it. 1961 // Drag and drop barUrl and verify that we've navigated to it.
1962 DragAndDropURL(web_view, bar_url); 1962 DragAndDropURL(web_view, bar_url);
1963 EXPECT_EQ(bar_url, 1963 EXPECT_EQ(bar_url,
1964 web_view->MainFrame()->GetDocument().Url().GetString().Utf8()); 1964 web_view->MainFrameImpl()->GetDocument().Url().GetString().Utf8());
1965 1965
1966 // Drag and drop fooUrl and verify that we've navigated back to it. 1966 // Drag and drop fooUrl and verify that we've navigated back to it.
1967 DragAndDropURL(web_view, foo_url); 1967 DragAndDropURL(web_view, foo_url);
1968 EXPECT_EQ(foo_url, 1968 EXPECT_EQ(foo_url,
1969 web_view->MainFrame()->GetDocument().Url().GetString().Utf8()); 1969 web_view->MainFrameImpl()->GetDocument().Url().GetString().Utf8());
1970 1970
1971 // Disable navigation on drag-and-drop. 1971 // Disable navigation on drag-and-drop.
1972 web_view->SettingsImpl()->SetNavigateOnDragDrop(false); 1972 web_view->SettingsImpl()->SetNavigateOnDragDrop(false);
1973 1973
1974 // Attempt to drag and drop to barUrl and verify that no navigation has 1974 // Attempt to drag and drop to barUrl and verify that no navigation has
1975 // occurred. 1975 // occurred.
1976 DragAndDropURL(web_view, bar_url); 1976 DragAndDropURL(web_view, bar_url);
1977 EXPECT_EQ(foo_url, 1977 EXPECT_EQ(foo_url,
1978 web_view->MainFrame()->GetDocument().Url().GetString().Utf8()); 1978 web_view->MainFrameImpl()->GetDocument().Url().GetString().Utf8());
1979 } 1979 }
1980 1980
1981 bool WebViewTest::TapElement(WebInputEvent::Type type, Element* element) { 1981 bool WebViewTest::TapElement(WebInputEvent::Type type, Element* element) {
1982 if (!element || !element->GetLayoutObject()) 1982 if (!element || !element->GetLayoutObject())
1983 return false; 1983 return false;
1984 1984
1985 DCHECK(web_view_helper_.WebView()); 1985 DCHECK(web_view_helper_.WebView());
1986 element->scrollIntoViewIfNeeded(); 1986 element->scrollIntoViewIfNeeded();
1987 1987
1988 // TODO(bokan): Technically incorrect, event positions should be in viewport 1988 // TODO(bokan): Technically incorrect, event positions should be in viewport
(...skipping 15 matching lines...) Expand all
2004 2004
2005 web_view_helper_.WebView()->HandleInputEvent(WebCoalescedInputEvent(event)); 2005 web_view_helper_.WebView()->HandleInputEvent(WebCoalescedInputEvent(event));
2006 RunPendingTasks(); 2006 RunPendingTasks();
2007 return true; 2007 return true;
2008 } 2008 }
2009 2009
2010 bool WebViewTest::TapElementById(WebInputEvent::Type type, 2010 bool WebViewTest::TapElementById(WebInputEvent::Type type,
2011 const WebString& id) { 2011 const WebString& id) {
2012 DCHECK(web_view_helper_.WebView()); 2012 DCHECK(web_view_helper_.WebView());
2013 Element* element = static_cast<Element*>( 2013 Element* element = static_cast<Element*>(
2014 web_view_helper_.WebView()->MainFrame()->GetDocument().GetElementById( 2014 web_view_helper_.WebView()->MainFrameImpl()->GetDocument().GetElementById(
2015 id)); 2015 id));
2016 return TapElement(type, element); 2016 return TapElement(type, element);
2017 } 2017 }
2018 2018
2019 IntSize WebViewTest::PrintICBSizeFromPageSize(const FloatSize& page_size) { 2019 IntSize WebViewTest::PrintICBSizeFromPageSize(const FloatSize& page_size) {
2020 // The expected layout size comes from the calculation done in 2020 // The expected layout size comes from the calculation done in
2021 // ResizePageRectsKeepingRatio() which is used from PrintContext::begin() to 2021 // ResizePageRectsKeepingRatio() which is used from PrintContext::begin() to
2022 // scale the page size. 2022 // scale the page size.
2023 const float ratio = page_size.Height() / (float)page_size.Width(); 2023 const float ratio = page_size.Height() / (float)page_size.Width();
2024 const int icb_width = 2024 const int icb_width =
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
2131 WebGestureEvent event(WebInputEvent::kGestureLongPress, 2131 WebGestureEvent event(WebInputEvent::kGestureLongPress,
2132 WebInputEvent::kNoModifiers, 2132 WebInputEvent::kNoModifiers,
2133 WebInputEvent::kTimeStampForTesting); 2133 WebInputEvent::kTimeStampForTesting);
2134 event.source_device = kWebGestureDeviceTouchscreen; 2134 event.source_device = kWebGestureDeviceTouchscreen;
2135 event.x = 10; 2135 event.x = 10;
2136 event.y = 10; 2136 event.y = 10;
2137 2137
2138 EXPECT_NE(WebInputEventResult::kHandledSystem, 2138 EXPECT_NE(WebInputEventResult::kHandledSystem,
2139 web_view->HandleInputEvent(WebCoalescedInputEvent(event))); 2139 web_view->HandleInputEvent(WebCoalescedInputEvent(event)));
2140 2140
2141 HTMLElement* element = 2141 HTMLElement* element = ToHTMLElement(
2142 ToHTMLElement(web_view->MainFrame()->GetDocument().GetElementById("obj")); 2142 web_view->MainFrameImpl()->GetDocument().GetElementById("obj"));
2143 EXPECT_FALSE(element->CanStartSelection()); 2143 EXPECT_FALSE(element->CanStartSelection());
2144 } 2144 }
2145 2145
2146 TEST_P(WebViewTest, LongPressObjectFallback) { 2146 TEST_P(WebViewTest, LongPressObjectFallback) {
2147 RegisterMockedHttpURLLoad("long_press_object_fallback.html"); 2147 RegisterMockedHttpURLLoad("long_press_object_fallback.html");
2148 2148
2149 WebViewBase* web_view = web_view_helper_.InitializeAndLoad( 2149 WebViewBase* web_view = web_view_helper_.InitializeAndLoad(
2150 base_url_ + "long_press_object_fallback.html"); 2150 base_url_ + "long_press_object_fallback.html");
2151 web_view->SettingsImpl()->SetAlwaysShowContextMenuOnTouch(true); 2151 web_view->SettingsImpl()->SetAlwaysShowContextMenuOnTouch(true);
2152 web_view->Resize(WebSize(500, 300)); 2152 web_view->Resize(WebSize(500, 300));
2153 web_view->UpdateAllLifecyclePhases(); 2153 web_view->UpdateAllLifecyclePhases();
2154 RunPendingTasks(); 2154 RunPendingTasks();
2155 2155
2156 WebGestureEvent event(WebInputEvent::kGestureLongPress, 2156 WebGestureEvent event(WebInputEvent::kGestureLongPress,
2157 WebInputEvent::kNoModifiers, 2157 WebInputEvent::kNoModifiers,
2158 WebInputEvent::kTimeStampForTesting); 2158 WebInputEvent::kTimeStampForTesting);
2159 event.source_device = kWebGestureDeviceTouchscreen; 2159 event.source_device = kWebGestureDeviceTouchscreen;
2160 event.x = 10; 2160 event.x = 10;
2161 event.y = 10; 2161 event.y = 10;
2162 2162
2163 EXPECT_EQ(WebInputEventResult::kHandledSystem, 2163 EXPECT_EQ(WebInputEventResult::kHandledSystem,
2164 web_view->HandleInputEvent(WebCoalescedInputEvent(event))); 2164 web_view->HandleInputEvent(WebCoalescedInputEvent(event)));
2165 2165
2166 HTMLElement* element = 2166 HTMLElement* element = ToHTMLElement(
2167 ToHTMLElement(web_view->MainFrame()->GetDocument().GetElementById("obj")); 2167 web_view->MainFrameImpl()->GetDocument().GetElementById("obj"));
2168 EXPECT_TRUE(element->CanStartSelection()); 2168 EXPECT_TRUE(element->CanStartSelection());
2169 } 2169 }
2170 2170
2171 TEST_P(WebViewTest, LongPressImage) { 2171 TEST_P(WebViewTest, LongPressImage) {
2172 RegisterMockedHttpURLLoad("long_press_image.html"); 2172 RegisterMockedHttpURLLoad("long_press_image.html");
2173 2173
2174 WebViewBase* web_view = 2174 WebViewBase* web_view =
2175 web_view_helper_.InitializeAndLoad(base_url_ + "long_press_image.html"); 2175 web_view_helper_.InitializeAndLoad(base_url_ + "long_press_image.html");
2176 web_view->SettingsImpl()->SetAlwaysShowContextMenuOnTouch(false); 2176 web_view->SettingsImpl()->SetAlwaysShowContextMenuOnTouch(false);
2177 web_view->Resize(WebSize(500, 300)); 2177 web_view->Resize(WebSize(500, 300));
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
2243 web_view->SettingsImpl()->SetTouchDragDropEnabled(true); 2243 web_view->SettingsImpl()->SetTouchDragDropEnabled(true);
2244 web_view->Resize(WebSize(500, 300)); 2244 web_view->Resize(WebSize(500, 300));
2245 web_view->UpdateAllLifecyclePhases(); 2245 web_view->UpdateAllLifecyclePhases();
2246 RunPendingTasks(); 2246 RunPendingTasks();
2247 2247
2248 WebString anchor_tag_id = WebString::FromUTF8("anchorTag"); 2248 WebString anchor_tag_id = WebString::FromUTF8("anchorTag");
2249 WebString image_tag_id = WebString::FromUTF8("imageTag"); 2249 WebString image_tag_id = WebString::FromUTF8("imageTag");
2250 2250
2251 EXPECT_TRUE(TapElementById(WebInputEvent::kGestureLongPress, anchor_tag_id)); 2251 EXPECT_TRUE(TapElementById(WebInputEvent::kGestureLongPress, anchor_tag_id));
2252 EXPECT_STREQ("anchor contextmenu", 2252 EXPECT_STREQ("anchor contextmenu",
2253 web_view->MainFrame()->GetDocument().Title().Utf8().data()); 2253 web_view->MainFrameImpl()->GetDocument().Title().Utf8().data());
2254 2254
2255 EXPECT_TRUE(TapElementById(WebInputEvent::kGestureLongPress, image_tag_id)); 2255 EXPECT_TRUE(TapElementById(WebInputEvent::kGestureLongPress, image_tag_id));
2256 EXPECT_STREQ("image contextmenu", 2256 EXPECT_STREQ("image contextmenu",
2257 web_view->MainFrame()->GetDocument().Title().Utf8().data()); 2257 web_view->MainFrameImpl()->GetDocument().Title().Utf8().data());
2258 } 2258 }
2259 2259
2260 TEST_P(WebViewTest, LongPressEmptyEditableSelection) { 2260 TEST_P(WebViewTest, LongPressEmptyEditableSelection) {
2261 RegisterMockedHttpURLLoad("long_press_empty_editable_selection.html"); 2261 RegisterMockedHttpURLLoad("long_press_empty_editable_selection.html");
2262 2262
2263 WebViewBase* web_view = web_view_helper_.InitializeAndLoad( 2263 WebViewBase* web_view = web_view_helper_.InitializeAndLoad(
2264 base_url_ + "long_press_empty_editable_selection.html"); 2264 base_url_ + "long_press_empty_editable_selection.html");
2265 web_view->SettingsImpl()->SetAlwaysShowContextMenuOnTouch(false); 2265 web_view->SettingsImpl()->SetAlwaysShowContextMenuOnTouch(false);
2266 web_view->Resize(WebSize(500, 300)); 2266 web_view->Resize(WebSize(500, 300));
2267 web_view->UpdateAllLifecyclePhases(); 2267 web_view->UpdateAllLifecyclePhases();
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
2378 WebInputEvent::kTimeStampForTesting); 2378 WebInputEvent::kTimeStampForTesting);
2379 event.source_device = kWebGestureDeviceTouchscreen; 2379 event.source_device = kWebGestureDeviceTouchscreen;
2380 event.x = 100; 2380 event.x = 100;
2381 event.y = 25; 2381 event.y = 25;
2382 event.data.tap.tap_count = 2; 2382 event.data.tap.tap_count = 2;
2383 2383
2384 web_view->HandleInputEvent(WebCoalescedInputEvent(event)); 2384 web_view->HandleInputEvent(WebCoalescedInputEvent(event));
2385 EXPECT_TRUE(frame->SelectionAsText().IsEmpty()); 2385 EXPECT_TRUE(frame->SelectionAsText().IsEmpty());
2386 2386
2387 HTMLTextAreaElement* text_area_element = toHTMLTextAreaElement( 2387 HTMLTextAreaElement* text_area_element = toHTMLTextAreaElement(
2388 web_view->MainFrame()->GetDocument().GetElementById(blanklinestextbox)); 2388 web_view->MainFrameImpl()->GetDocument().GetElementById(
2389 blanklinestextbox));
2389 text_area_element->setValue("hello"); 2390 text_area_element->setValue("hello");
2390 2391
2391 // Long-press past last word of textbox. 2392 // Long-press past last word of textbox.
2392 EXPECT_TRUE( 2393 EXPECT_TRUE(
2393 TapElementById(WebInputEvent::kGestureLongPress, blanklinestextbox)); 2394 TapElementById(WebInputEvent::kGestureLongPress, blanklinestextbox));
2394 EXPECT_TRUE(frame->SelectionAsText().IsEmpty()); 2395 EXPECT_TRUE(frame->SelectionAsText().IsEmpty());
2395 2396
2396 // Double-tap past last word of textbox. 2397 // Double-tap past last word of textbox.
2397 web_view->HandleInputEvent(WebCoalescedInputEvent(event)); 2398 web_view->HandleInputEvent(WebCoalescedInputEvent(event));
2398 EXPECT_TRUE(frame->SelectionAsText().IsEmpty()); 2399 EXPECT_TRUE(frame->SelectionAsText().IsEmpty());
(...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after
2733 2734
2734 TEST_P(WebViewTest, FinishComposingTextDoesntTriggerAutofillTextChange) { 2735 TEST_P(WebViewTest, FinishComposingTextDoesntTriggerAutofillTextChange) {
2735 RegisterMockedHttpURLLoad("input_field_populated.html"); 2736 RegisterMockedHttpURLLoad("input_field_populated.html");
2736 MockAutofillClient client; 2737 MockAutofillClient client;
2737 WebViewBase* web_view = web_view_helper_.InitializeAndLoad( 2738 WebViewBase* web_view = web_view_helper_.InitializeAndLoad(
2738 base_url_ + "input_field_populated.html"); 2739 base_url_ + "input_field_populated.html");
2739 WebLocalFrameBase* frame = web_view->MainFrameImpl(); 2740 WebLocalFrameBase* frame = web_view->MainFrameImpl();
2740 frame->SetAutofillClient(&client); 2741 frame->SetAutofillClient(&client);
2741 web_view->SetInitialFocus(false); 2742 web_view->SetInitialFocus(false);
2742 2743
2743 WebDocument document = web_view->MainFrame()->GetDocument(); 2744 WebDocument document = web_view->MainFrameImpl()->GetDocument();
2744 HTMLFormControlElement* form = 2745 HTMLFormControlElement* form =
2745 ToHTMLFormControlElement(document.GetElementById("sample")); 2746 ToHTMLFormControlElement(document.GetElementById("sample"));
2746 2747
2747 WebInputMethodController* active_input_method_controller = 2748 WebInputMethodController* active_input_method_controller =
2748 frame->FrameWidget()->GetActiveWebInputMethodController(); 2749 frame->FrameWidget()->GetActiveWebInputMethodController();
2749 // Set up a composition that needs to be committed. 2750 // Set up a composition that needs to be committed.
2750 std::string composition_text("testingtext"); 2751 std::string composition_text("testingtext");
2751 2752
2752 WebVector<WebCompositionUnderline> empty_underlines; 2753 WebVector<WebCompositionUnderline> empty_underlines;
2753 active_input_method_controller->SetComposition( 2754 active_input_method_controller->SetComposition(
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
2788 frame->SetCompositionFromExistingText(8, 12, empty_underlines); 2789 frame->SetCompositionFromExistingText(8, 12, empty_underlines);
2789 2790
2790 WebTextInputInfo info = frame->GetInputMethodController()->TextInputInfo(); 2791 WebTextInputInfo info = frame->GetInputMethodController()->TextInputInfo();
2791 EXPECT_EQ("0123456789abcdefghijklmnopqrstuvwxyz", 2792 EXPECT_EQ("0123456789abcdefghijklmnopqrstuvwxyz",
2792 std::string(info.value.Utf8().data())); 2793 std::string(info.value.Utf8().data()));
2793 EXPECT_EQ(8, info.composition_start); 2794 EXPECT_EQ(8, info.composition_start);
2794 EXPECT_EQ(12, info.composition_end); 2795 EXPECT_EQ(12, info.composition_end);
2795 2796
2796 EXPECT_EQ(0, client.TextChanges()); 2797 EXPECT_EQ(0, client.TextChanges());
2797 2798
2798 WebDocument document = web_view->MainFrame()->GetDocument(); 2799 WebDocument document = web_view->MainFrameImpl()->GetDocument();
2799 EXPECT_EQ(WebString::FromUTF8("none"), 2800 EXPECT_EQ(WebString::FromUTF8("none"),
2800 document.GetElementById("inputEvent").FirstChild().NodeValue()); 2801 document.GetElementById("inputEvent").FirstChild().NodeValue());
2801 2802
2802 frame->SetAutofillClient(0); 2803 frame->SetAutofillClient(0);
2803 } 2804 }
2804 2805
2805 class ViewCreatingWebViewClient : public FrameTestHelpers::TestWebViewClient { 2806 class ViewCreatingWebViewClient : public FrameTestHelpers::TestWebViewClient {
2806 public: 2807 public:
2807 ViewCreatingWebViewClient() : did_focus_called_(false) {} 2808 ViewCreatingWebViewClient() : did_focus_called_(false) {}
2808 2809
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after
2875 ->MainFrame()) 2876 ->MainFrame())
2876 ->Loader() 2877 ->Loader()
2877 .Load(request_with_target_start); 2878 .Load(request_with_target_start);
2878 EXPECT_TRUE(client.DidFocusCalled()); 2879 EXPECT_TRUE(client.DidFocusCalled());
2879 2880
2880 web_view_helper.Reset(); // Remove dependency on locally scoped client. 2881 web_view_helper.Reset(); // Remove dependency on locally scoped client.
2881 } 2882 }
2882 2883
2883 TEST_P(WebViewTest, DispatchesFocusOutFocusInOnViewToggleFocus) { 2884 TEST_P(WebViewTest, DispatchesFocusOutFocusInOnViewToggleFocus) {
2884 RegisterMockedHttpURLLoad("focusout_focusin_events.html"); 2885 RegisterMockedHttpURLLoad("focusout_focusin_events.html");
2885 WebView* web_view = web_view_helper_.InitializeAndLoad( 2886 WebViewBase* web_view = web_view_helper_.InitializeAndLoad(
2886 base_url_ + "focusout_focusin_events.html"); 2887 base_url_ + "focusout_focusin_events.html");
2887 2888
2888 web_view->SetFocus(true); 2889 web_view->SetFocus(true);
2889 web_view->SetFocus(false); 2890 web_view->SetFocus(false);
2890 web_view->SetFocus(true); 2891 web_view->SetFocus(true);
2891 2892
2892 WebElement element = 2893 WebElement element =
2893 web_view->MainFrame()->GetDocument().GetElementById("message"); 2894 web_view->MainFrameImpl()->GetDocument().GetElementById("message");
2894 EXPECT_STREQ("focusoutfocusin", element.TextContent().Utf8().data()); 2895 EXPECT_STREQ("focusoutfocusin", element.TextContent().Utf8().data());
2895 } 2896 }
2896 2897
2897 TEST_P(WebViewTest, DispatchesDomFocusOutDomFocusInOnViewToggleFocus) { 2898 TEST_P(WebViewTest, DispatchesDomFocusOutDomFocusInOnViewToggleFocus) {
2898 RegisterMockedHttpURLLoad("domfocusout_domfocusin_events.html"); 2899 RegisterMockedHttpURLLoad("domfocusout_domfocusin_events.html");
2899 WebView* web_view = web_view_helper_.InitializeAndLoad( 2900 WebViewBase* web_view = web_view_helper_.InitializeAndLoad(
2900 base_url_ + "domfocusout_domfocusin_events.html"); 2901 base_url_ + "domfocusout_domfocusin_events.html");
2901 2902
2902 web_view->SetFocus(true); 2903 web_view->SetFocus(true);
2903 web_view->SetFocus(false); 2904 web_view->SetFocus(false);
2904 web_view->SetFocus(true); 2905 web_view->SetFocus(true);
2905 2906
2906 WebElement element = 2907 WebElement element =
2907 web_view->MainFrame()->GetDocument().GetElementById("message"); 2908 web_view->MainFrameImpl()->GetDocument().GetElementById("message");
2908 EXPECT_STREQ("DOMFocusOutDOMFocusIn", element.TextContent().Utf8().data()); 2909 EXPECT_STREQ("DOMFocusOutDOMFocusIn", element.TextContent().Utf8().data());
2909 } 2910 }
2910 2911
2911 static void OpenDateTimeChooser(WebView* web_view, 2912 static void OpenDateTimeChooser(WebView* web_view,
2912 HTMLInputElement* input_element) { 2913 HTMLInputElement* input_element) {
2913 input_element->focus(); 2914 input_element->focus();
2914 2915
2915 WebKeyboardEvent key_event(WebInputEvent::kRawKeyDown, 2916 WebKeyboardEvent key_event(WebInputEvent::kRawKeyDown,
2916 WebInputEvent::kNoModifiers, 2917 WebInputEvent::kNoModifiers,
2917 WebInputEvent::kTimeStampForTesting); 2918 WebInputEvent::kTimeStampForTesting);
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
3004 3005
3005 // Clear the WebViewClient from the webViewHelper to avoid use-after-free in 3006 // Clear the WebViewClient from the webViewHelper to avoid use-after-free in
3006 // the WebViewHelper destructor. 3007 // the WebViewHelper destructor.
3007 web_view_helper_.Reset(); 3008 web_view_helper_.Reset();
3008 RuntimeEnabledFeatures::SetInputMultipleFieldsUIEnabled( 3009 RuntimeEnabledFeatures::SetInputMultipleFieldsUIEnabled(
3009 original_multiple_fields_flag); 3010 original_multiple_fields_flag);
3010 } 3011 }
3011 3012
3012 TEST_P(WebViewTest, DispatchesFocusBlurOnViewToggle) { 3013 TEST_P(WebViewTest, DispatchesFocusBlurOnViewToggle) {
3013 RegisterMockedHttpURLLoad("focus_blur_events.html"); 3014 RegisterMockedHttpURLLoad("focus_blur_events.html");
3014 WebView* web_view = 3015 WebViewBase* web_view =
3015 web_view_helper_.InitializeAndLoad(base_url_ + "focus_blur_events.html"); 3016 web_view_helper_.InitializeAndLoad(base_url_ + "focus_blur_events.html");
3016 3017
3017 web_view->SetFocus(true); 3018 web_view->SetFocus(true);
3018 web_view->SetFocus(false); 3019 web_view->SetFocus(false);
3019 web_view->SetFocus(true); 3020 web_view->SetFocus(true);
3020 3021
3021 WebElement element = 3022 WebElement element =
3022 web_view->MainFrame()->GetDocument().GetElementById("message"); 3023 web_view->MainFrameImpl()->GetDocument().GetElementById("message");
3023 // Expect not to see duplication of events. 3024 // Expect not to see duplication of events.
3024 EXPECT_STREQ("blurfocus", element.TextContent().Utf8().data()); 3025 EXPECT_STREQ("blurfocus", element.TextContent().Utf8().data());
3025 } 3026 }
3026 3027
3027 TEST_P(WebViewTest, SmartClipData) { 3028 TEST_P(WebViewTest, SmartClipData) {
3028 static const char kExpectedClipText[] = "\nPrice 10,000,000won"; 3029 static const char kExpectedClipText[] = "\nPrice 10,000,000won";
3029 static const char kExpectedClipHtml[] = 3030 static const char kExpectedClipHtml[] =
3030 "<div id=\"div4\" style=\"padding: 10px; margin: 10px; border: 2px " 3031 "<div id=\"div4\" style=\"padding: 10px; margin: 10px; border: 2px "
3031 "solid skyblue; float: left; width: 190px; height: 30px; " 3032 "solid skyblue; float: left; width: 190px; height: 30px; "
3032 "color: rgb(0, 0, 0); font-family: myahem; font-size: 8px; font-style: " 3033 "color: rgb(0, 0, 0); font-family: myahem; font-size: 8px; font-style: "
(...skipping 565 matching lines...) Expand 10 before | Expand all | Expand 10 after
3598 web_view->SetZoomLevel(WebView::ZoomFactorToZoomLevel(1)); 3599 web_view->SetZoomLevel(WebView::ZoomFactorToZoomLevel(1));
3599 size = web_view->ContentsPreferredMinimumSize(); 3600 size = web_view->ContentsPreferredMinimumSize();
3600 EXPECT_EQ(2, size.width); 3601 EXPECT_EQ(2, size.width);
3601 EXPECT_EQ(2, size.height); 3602 EXPECT_EQ(2, size.height);
3602 } 3603 }
3603 3604
3604 TEST_P(WebViewTest, PreferredSizeDirtyLayout) { 3605 TEST_P(WebViewTest, PreferredSizeDirtyLayout) {
3605 std::string url = base_url_ + "specify_size.html?100px:100px"; 3606 std::string url = base_url_ + "specify_size.html?100px:100px";
3606 URLTestHelpers::RegisterMockedURLLoad( 3607 URLTestHelpers::RegisterMockedURLLoad(
3607 ToKURL(url), testing::WebTestDataPath("specify_size.html")); 3608 ToKURL(url), testing::WebTestDataPath("specify_size.html"));
3608 WebView* web_view = web_view_helper_.InitializeAndLoad(url); 3609 WebViewBase* web_view = web_view_helper_.InitializeAndLoad(url);
3609 WebElement document_element = 3610 WebElement document_element =
3610 web_view->MainFrame()->GetDocument().DocumentElement(); 3611 web_view->MainFrameImpl()->GetDocument().DocumentElement();
3611 3612
3612 WebSize size = web_view->ContentsPreferredMinimumSize(); 3613 WebSize size = web_view->ContentsPreferredMinimumSize();
3613 EXPECT_EQ(100, size.width); 3614 EXPECT_EQ(100, size.width);
3614 EXPECT_EQ(100, size.height); 3615 EXPECT_EQ(100, size.height);
3615 3616
3616 document_element.SetAttribute("style", "display: none"); 3617 document_element.SetAttribute("style", "display: none");
3617 3618
3618 size = web_view->ContentsPreferredMinimumSize(); 3619 size = web_view->ContentsPreferredMinimumSize();
3619 EXPECT_EQ(0, size.width); 3620 EXPECT_EQ(0, size.width);
3620 EXPECT_EQ(0, size.height); 3621 EXPECT_EQ(0, size.height);
(...skipping 27 matching lines...) Expand all
3648 IntPoint tapped_position_; 3649 IntPoint tapped_position_;
3649 WebNode tapped_node_; 3650 WebNode tapped_node_;
3650 bool page_changed_ = false; 3651 bool page_changed_ = false;
3651 }; 3652 };
3652 3653
3653 TEST_P(WebViewTest, ShowUnhandledTapUIIfNeeded) { 3654 TEST_P(WebViewTest, ShowUnhandledTapUIIfNeeded) {
3654 std::string test_file = "show_unhandled_tap.html"; 3655 std::string test_file = "show_unhandled_tap.html";
3655 RegisterMockedHttpURLLoad("Ahem.ttf"); 3656 RegisterMockedHttpURLLoad("Ahem.ttf");
3656 RegisterMockedHttpURLLoad(test_file); 3657 RegisterMockedHttpURLLoad(test_file);
3657 UnhandledTapWebViewClient client; 3658 UnhandledTapWebViewClient client;
3658 WebView* web_view = web_view_helper_.InitializeAndLoad(base_url_ + test_file, 3659 WebViewBase* web_view = web_view_helper_.InitializeAndLoad(
3659 nullptr, &client); 3660 base_url_ + test_file, nullptr, &client);
3660 web_view->Resize(WebSize(500, 300)); 3661 web_view->Resize(WebSize(500, 300));
3661 web_view->UpdateAllLifecyclePhases(); 3662 web_view->UpdateAllLifecyclePhases();
3662 RunPendingTasks(); 3663 RunPendingTasks();
3663 3664
3664 // Scroll the bottom into view so we can distinguish window coordinates from 3665 // Scroll the bottom into view so we can distinguish window coordinates from
3665 // document coordinates. 3666 // document coordinates.
3666 EXPECT_TRUE(TapElementById(WebInputEvent::kGestureTap, 3667 EXPECT_TRUE(TapElementById(WebInputEvent::kGestureTap,
3667 WebString::FromUTF8("bottom"))); 3668 WebString::FromUTF8("bottom")));
3668 EXPECT_TRUE(client.GetWasCalled()); 3669 EXPECT_TRUE(client.GetWasCalled());
3669 EXPECT_EQ(64, client.GetTappedXPos()); 3670 EXPECT_EQ(64, client.GetTappedXPos());
3670 EXPECT_EQ(278, client.GetTappedYPos()); 3671 EXPECT_EQ(278, client.GetTappedYPos());
3671 EXPECT_FALSE(client.IsTappedNodeNull()); 3672 EXPECT_FALSE(client.IsTappedNodeNull());
3672 EXPECT_TRUE(client.GetWebNode().IsTextNode()); 3673 EXPECT_TRUE(client.GetWebNode().IsTextNode());
3673 3674
3674 // Test basic tap handling and notification. 3675 // Test basic tap handling and notification.
3675 client.Reset(); 3676 client.Reset();
3676 EXPECT_TRUE(TapElementById(WebInputEvent::kGestureTap, 3677 EXPECT_TRUE(TapElementById(WebInputEvent::kGestureTap,
3677 WebString::FromUTF8("target"))); 3678 WebString::FromUTF8("target")));
3678 EXPECT_TRUE(client.GetWasCalled()); 3679 EXPECT_TRUE(client.GetWasCalled());
3679 EXPECT_EQ(144, client.GetTappedXPos()); 3680 EXPECT_EQ(144, client.GetTappedXPos());
3680 EXPECT_EQ(82, client.GetTappedYPos()); 3681 EXPECT_EQ(82, client.GetTappedYPos());
3681 EXPECT_FALSE(client.IsTappedNodeNull()); 3682 EXPECT_FALSE(client.IsTappedNodeNull());
3682 EXPECT_TRUE(client.GetWebNode().IsTextNode()); 3683 EXPECT_TRUE(client.GetWebNode().IsTextNode());
3683 // Make sure the returned text node has the parent element that was our 3684 // Make sure the returned text node has the parent element that was our
3684 // target. 3685 // target.
3685 EXPECT_EQ(web_view->MainFrame()->GetDocument().GetElementById("target"), 3686 EXPECT_EQ(web_view->MainFrameImpl()->GetDocument().GetElementById("target"),
3686 client.GetWebNode().ParentNode()); 3687 client.GetWebNode().ParentNode());
3687 3688
3688 // Test correct conversion of coordinates to viewport space under pinch-zoom. 3689 // Test correct conversion of coordinates to viewport space under pinch-zoom.
3689 web_view->SetPageScaleFactor(2); 3690 web_view->SetPageScaleFactor(2);
3690 web_view->SetVisualViewportOffset(WebFloatPoint(50, 20)); 3691 web_view->SetVisualViewportOffset(WebFloatPoint(50, 20));
3691 client.Reset(); 3692 client.Reset();
3692 EXPECT_TRUE(TapElementById(WebInputEvent::kGestureTap, 3693 EXPECT_TRUE(TapElementById(WebInputEvent::kGestureTap,
3693 WebString::FromUTF8("target"))); 3694 WebString::FromUTF8("target")));
3694 EXPECT_TRUE(client.GetWasCalled()); 3695 EXPECT_TRUE(client.GetWasCalled());
3695 EXPECT_EQ(188, client.GetTappedXPos()); 3696 EXPECT_EQ(188, client.GetTappedXPos());
(...skipping 641 matching lines...) Expand 10 before | Expand all | Expand 10 after
4337 EXPECT_FALSE(frame_view->VisualViewportSuppliesScrollbars()); 4338 EXPECT_FALSE(frame_view->VisualViewportSuppliesScrollbars());
4338 if (RuntimeEnabledFeatures::RootLayerScrollingEnabled()) { 4339 if (RuntimeEnabledFeatures::RootLayerScrollingEnabled()) {
4339 EXPECT_NE(nullptr, 4340 EXPECT_NE(nullptr,
4340 frame_view->LayoutViewportScrollableArea()->VerticalScrollbar()); 4341 frame_view->LayoutViewportScrollableArea()->VerticalScrollbar());
4341 } else { 4342 } else {
4342 EXPECT_NE(nullptr, frame_view->VerticalScrollbar()); 4343 EXPECT_NE(nullptr, frame_view->VerticalScrollbar());
4343 } 4344 }
4344 } 4345 }
4345 4346
4346 } // namespace blink 4347 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/web/tests/WebSearchableFormDataTest.cpp ('k') | third_party/WebKit/public/web/WebAXObject.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698