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

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

Issue 1605863002: Restart search in page when new text is found. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: small clean up Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 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 3549 matching lines...) Expand 10 before | Expand all | Expand 10 after
3560 TEST_P(ParameterizedWebFrameTest, FindInPage) 3560 TEST_P(ParameterizedWebFrameTest, FindInPage)
3561 { 3561 {
3562 registerMockedHttpURLLoad("find.html"); 3562 registerMockedHttpURLLoad("find.html");
3563 FrameTestHelpers::WebViewHelper webViewHelper(this); 3563 FrameTestHelpers::WebViewHelper webViewHelper(this);
3564 webViewHelper.initializeAndLoad(m_baseURL + "find.html"); 3564 webViewHelper.initializeAndLoad(m_baseURL + "find.html");
3565 WebFrame* frame = webViewHelper.webView()->mainFrame(); 3565 WebFrame* frame = webViewHelper.webView()->mainFrame();
3566 const int findIdentifier = 12345; 3566 const int findIdentifier = 12345;
3567 WebFindOptions options; 3567 WebFindOptions options;
3568 3568
3569 // Find in a <div> element. 3569 // Find in a <div> element.
3570 EXPECT_TRUE(frame->find(findIdentifier, WebString::fromUTF8("bar1"), options , false, 0)); 3570 EXPECT_TRUE(frame->find(findIdentifier, WebString::fromUTF8("bar1"), options , false, 0, nullptr));
3571 frame->stopFinding(false); 3571 frame->stopFinding(false);
3572 WebRange range = frame->selectionRange(); 3572 WebRange range = frame->selectionRange();
3573 EXPECT_EQ(5, range.startOffset()); 3573 EXPECT_EQ(5, range.startOffset());
3574 EXPECT_EQ(9, range.endOffset()); 3574 EXPECT_EQ(9, range.endOffset());
3575 EXPECT_TRUE(frame->document().focusedElement().isNull()); 3575 EXPECT_TRUE(frame->document().focusedElement().isNull());
3576 3576
3577 // Find in an <input> value. 3577 // Find in an <input> value.
3578 EXPECT_TRUE(frame->find(findIdentifier, WebString::fromUTF8("bar2"), options , false, 0)); 3578 EXPECT_TRUE(frame->find(findIdentifier, WebString::fromUTF8("bar2"), options , false, 0, nullptr));
3579 // Confirm stopFinding(false) sets the selection on the found text. 3579 // Confirm stopFinding(false) sets the selection on the found text.
3580 frame->stopFinding(false); 3580 frame->stopFinding(false);
3581 range = frame->selectionRange(); 3581 range = frame->selectionRange();
3582 ASSERT_FALSE(range.isNull()); 3582 ASSERT_FALSE(range.isNull());
3583 EXPECT_EQ(5, range.startOffset()); 3583 EXPECT_EQ(5, range.startOffset());
3584 EXPECT_EQ(9, range.endOffset()); 3584 EXPECT_EQ(9, range.endOffset());
3585 EXPECT_TRUE(frame->document().focusedElement().hasHTMLTagName("input")); 3585 EXPECT_TRUE(frame->document().focusedElement().hasHTMLTagName("input"));
3586 3586
3587 // Find in a <textarea> content. 3587 // Find in a <textarea> content.
3588 EXPECT_TRUE(frame->find(findIdentifier, WebString::fromUTF8("bar3"), options , false, 0)); 3588 EXPECT_TRUE(frame->find(findIdentifier, WebString::fromUTF8("bar3"), options , false, 0, nullptr));
3589 // Confirm stopFinding(false) sets the selection on the found text. 3589 // Confirm stopFinding(false) sets the selection on the found text.
3590 frame->stopFinding(false); 3590 frame->stopFinding(false);
3591 range = frame->selectionRange(); 3591 range = frame->selectionRange();
3592 ASSERT_FALSE(range.isNull()); 3592 ASSERT_FALSE(range.isNull());
3593 EXPECT_EQ(5, range.startOffset()); 3593 EXPECT_EQ(5, range.startOffset());
3594 EXPECT_EQ(9, range.endOffset()); 3594 EXPECT_EQ(9, range.endOffset());
3595 EXPECT_TRUE(frame->document().focusedElement().hasHTMLTagName("textarea")); 3595 EXPECT_TRUE(frame->document().focusedElement().hasHTMLTagName("textarea"));
3596 3596
3597 // Find in a contentEditable element. 3597 // Find in a contentEditable element.
3598 EXPECT_TRUE(frame->find(findIdentifier, WebString::fromUTF8("bar4"), options , false, 0)); 3598 EXPECT_TRUE(frame->find(findIdentifier, WebString::fromUTF8("bar4"), options , false, 0, nullptr));
3599 // Confirm stopFinding(false) sets the selection on the found text. 3599 // Confirm stopFinding(false) sets the selection on the found text.
3600 frame->stopFinding(false); 3600 frame->stopFinding(false);
3601 range = frame->selectionRange(); 3601 range = frame->selectionRange();
3602 ASSERT_FALSE(range.isNull()); 3602 ASSERT_FALSE(range.isNull());
3603 EXPECT_EQ(0, range.startOffset()); 3603 EXPECT_EQ(0, range.startOffset());
3604 EXPECT_EQ(4, range.endOffset()); 3604 EXPECT_EQ(4, range.endOffset());
3605 // "bar4" is surrounded by <span>, but the focusable node should be the pare nt <div>. 3605 // "bar4" is surrounded by <span>, but the focusable node should be the pare nt <div>.
3606 EXPECT_TRUE(frame->document().focusedElement().hasHTMLTagName("div")); 3606 EXPECT_TRUE(frame->document().focusedElement().hasHTMLTagName("div"));
3607 3607
3608 // Find in <select> content. 3608 // Find in <select> content.
3609 EXPECT_FALSE(frame->find(findIdentifier, WebString::fromUTF8("bar5"), option s, false, 0)); 3609 EXPECT_FALSE(frame->find(findIdentifier, WebString::fromUTF8("bar5"), option s, false, 0, nullptr));
3610 // If there are any matches, stopFinding will set the selection on the found text. 3610 // If there are any matches, stopFinding will set the selection on the found text.
3611 // However, we do not expect any matches, so check that the selection is nul l. 3611 // However, we do not expect any matches, so check that the selection is nul l.
3612 frame->stopFinding(false); 3612 frame->stopFinding(false);
3613 range = frame->selectionRange(); 3613 range = frame->selectionRange();
3614 ASSERT_TRUE(range.isNull()); 3614 ASSERT_TRUE(range.isNull());
3615 } 3615 }
3616 3616
3617 TEST_P(ParameterizedWebFrameTest, GetContentAsPlainText) 3617 TEST_P(ParameterizedWebFrameTest, GetContentAsPlainText)
3618 { 3618 {
3619 FrameTestHelpers::WebViewHelper webViewHelper(this); 3619 FrameTestHelpers::WebViewHelper webViewHelper(this);
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
3746 runPendingTasks(); 3746 runPendingTasks();
3747 3747
3748 // Note that the 'result 19' in the <select> element is not expected to prod uce a match. 3748 // Note that the 'result 19' in the <select> element is not expected to prod uce a match.
3749 static const char* kFindString = "result"; 3749 static const char* kFindString = "result";
3750 static const int kFindIdentifier = 12345; 3750 static const int kFindIdentifier = 12345;
3751 static const int kNumResults = 19; 3751 static const int kNumResults = 19;
3752 3752
3753 WebFindOptions options; 3753 WebFindOptions options;
3754 WebString searchText = WebString::fromUTF8(kFindString); 3754 WebString searchText = WebString::fromUTF8(kFindString);
3755 WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()-> mainFrame()); 3755 WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()-> mainFrame());
3756 EXPECT_TRUE(mainFrame->find(kFindIdentifier, searchText, options, false, 0)) ; 3756 EXPECT_TRUE(mainFrame->find(kFindIdentifier, searchText, options, false, 0, nullptr));
3757 3757
3758 mainFrame->resetMatchCount(); 3758 mainFrame->resetMatchCount();
3759 3759
3760 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false)) 3760 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false))
3761 frame->scopeStringMatches(kFindIdentifier, searchText, options, true); 3761 frame->scopeStringMatches(kFindIdentifier, searchText, options, true);
3762 3762
3763 runPendingTasks(); 3763 runPendingTasks();
3764 EXPECT_TRUE(client.findResultsAreReady()); 3764 EXPECT_TRUE(client.findResultsAreReady());
3765 3765
3766 WebVector<WebFloatRect> webMatchRects; 3766 WebVector<WebFloatRect> webMatchRects;
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
3862 webViewHelper.resize(WebSize(640, 480)); 3862 webViewHelper.resize(WebSize(640, 480));
3863 runPendingTasks(); 3863 runPendingTasks();
3864 3864
3865 static const char* kFindString = "hello"; 3865 static const char* kFindString = "hello";
3866 static const int kFindIdentifier = 12345; 3866 static const int kFindIdentifier = 12345;
3867 static const int kNumResults = 1; 3867 static const int kNumResults = 1;
3868 3868
3869 WebFindOptions options; 3869 WebFindOptions options;
3870 WebString searchText = WebString::fromUTF8(kFindString); 3870 WebString searchText = WebString::fromUTF8(kFindString);
3871 WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()-> mainFrame()); 3871 WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()-> mainFrame());
3872 EXPECT_TRUE(mainFrame->find(kFindIdentifier, searchText, options, false, 0)) ; 3872 EXPECT_TRUE(mainFrame->find(kFindIdentifier, searchText, options, false, 0, nullptr));
3873 3873
3874 mainFrame->resetMatchCount(); 3874 mainFrame->resetMatchCount();
3875 3875
3876 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false)) 3876 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false))
3877 frame->scopeStringMatches(kFindIdentifier, searchText, options, true); 3877 frame->scopeStringMatches(kFindIdentifier, searchText, options, true);
3878 3878
3879 runPendingTasks(); 3879 runPendingTasks();
3880 EXPECT_TRUE(client.findResultsAreReady()); 3880 EXPECT_TRUE(client.findResultsAreReady());
3881 EXPECT_EQ(kNumResults, client.count()); 3881 EXPECT_EQ(kNumResults, client.count());
3882 } 3882 }
(...skipping 14 matching lines...) Expand all
3897 3897
3898 WebFindOptions options; 3898 WebFindOptions options;
3899 WebString searchText = WebString::fromUTF8(kFindString); 3899 WebString searchText = WebString::fromUTF8(kFindString);
3900 WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()-> mainFrame()); 3900 WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()-> mainFrame());
3901 RefPtrWillBeRawPtr<WebLocalFrameImpl> secondFrame = toWebLocalFrameImpl(main Frame->traverseNext(false)); 3901 RefPtrWillBeRawPtr<WebLocalFrameImpl> secondFrame = toWebLocalFrameImpl(main Frame->traverseNext(false));
3902 RefPtrWillBeRawPtr<LocalFrame> holdSecondFrame(secondFrame->frame()); 3902 RefPtrWillBeRawPtr<LocalFrame> holdSecondFrame(secondFrame->frame());
3903 3903
3904 // Detach the frame before finding. 3904 // Detach the frame before finding.
3905 removeElementById(mainFrame, "frame"); 3905 removeElementById(mainFrame, "frame");
3906 3906
3907 EXPECT_TRUE(mainFrame->find(kFindIdentifier, searchText, options, false, 0)) ; 3907 EXPECT_TRUE(mainFrame->find(kFindIdentifier, searchText, options, false, 0, nullptr));
3908 EXPECT_FALSE(secondFrame->find(kFindIdentifier, searchText, options, false, 0)); 3908 EXPECT_FALSE(secondFrame->find(kFindIdentifier, searchText, options, false, 0, nullptr));
3909 3909
3910 runPendingTasks(); 3910 runPendingTasks();
3911 EXPECT_FALSE(client.findResultsAreReady()); 3911 EXPECT_FALSE(client.findResultsAreReady());
3912 3912
3913 mainFrame->resetMatchCount(); 3913 mainFrame->resetMatchCount();
3914 3914
3915 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false)) 3915 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false))
3916 frame->scopeStringMatches(kFindIdentifier, searchText, options, true); 3916 frame->scopeStringMatches(kFindIdentifier, searchText, options, true);
3917 3917
3918 runPendingTasks(); 3918 runPendingTasks();
(...skipping 14 matching lines...) Expand all
3933 static const char* kFindString = "result"; 3933 static const char* kFindString = "result";
3934 static const int kFindIdentifier = 12345; 3934 static const int kFindIdentifier = 12345;
3935 3935
3936 WebFindOptions options; 3936 WebFindOptions options;
3937 WebString searchText = WebString::fromUTF8(kFindString); 3937 WebString searchText = WebString::fromUTF8(kFindString);
3938 WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()-> mainFrame()); 3938 WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()-> mainFrame());
3939 WebLocalFrameImpl* secondFrame = toWebLocalFrameImpl(mainFrame->traverseNext (false)); 3939 WebLocalFrameImpl* secondFrame = toWebLocalFrameImpl(mainFrame->traverseNext (false));
3940 RefPtrWillBeRawPtr<LocalFrame> holdSecondFrame(secondFrame->frame()); 3940 RefPtrWillBeRawPtr<LocalFrame> holdSecondFrame(secondFrame->frame());
3941 3941
3942 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false)) 3942 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false))
3943 EXPECT_TRUE(frame->find(kFindIdentifier, searchText, options, false, 0)) ; 3943 EXPECT_TRUE(frame->find(kFindIdentifier, searchText, options, false, 0, nullptr));
3944 3944
3945 runPendingTasks(); 3945 runPendingTasks();
3946 EXPECT_FALSE(client.findResultsAreReady()); 3946 EXPECT_FALSE(client.findResultsAreReady());
3947 3947
3948 // Detach the frame between finding and scoping. 3948 // Detach the frame between finding and scoping.
3949 removeElementById(mainFrame, "frame"); 3949 removeElementById(mainFrame, "frame");
3950 3950
3951 mainFrame->resetMatchCount(); 3951 mainFrame->resetMatchCount();
3952 3952
3953 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false)) 3953 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false))
(...skipping 17 matching lines...) Expand all
3971 static const char* kFindString = "result"; 3971 static const char* kFindString = "result";
3972 static const int kFindIdentifier = 12345; 3972 static const int kFindIdentifier = 12345;
3973 3973
3974 WebFindOptions options; 3974 WebFindOptions options;
3975 WebString searchText = WebString::fromUTF8(kFindString); 3975 WebString searchText = WebString::fromUTF8(kFindString);
3976 WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()-> mainFrame()); 3976 WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()-> mainFrame());
3977 WebLocalFrameImpl* secondFrame = toWebLocalFrameImpl(mainFrame->traverseNext (false)); 3977 WebLocalFrameImpl* secondFrame = toWebLocalFrameImpl(mainFrame->traverseNext (false));
3978 RefPtrWillBeRawPtr<LocalFrame> holdSecondFrame(secondFrame->frame()); 3978 RefPtrWillBeRawPtr<LocalFrame> holdSecondFrame(secondFrame->frame());
3979 3979
3980 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false)) 3980 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false))
3981 EXPECT_TRUE(frame->find(kFindIdentifier, searchText, options, false, 0)) ; 3981 EXPECT_TRUE(frame->find(kFindIdentifier, searchText, options, false, 0, nullptr));
3982 3982
3983 runPendingTasks(); 3983 runPendingTasks();
3984 EXPECT_FALSE(client.findResultsAreReady()); 3984 EXPECT_FALSE(client.findResultsAreReady());
3985 3985
3986 mainFrame->resetMatchCount(); 3986 mainFrame->resetMatchCount();
3987 3987
3988 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false)) 3988 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false))
3989 frame->scopeStringMatches(kFindIdentifier, searchText, options, true); 3989 frame->scopeStringMatches(kFindIdentifier, searchText, options, true);
3990 3990
3991 // The first scopeStringMatches will have reset the state. Detach before it actually scopes. 3991 // The first scopeStringMatches will have reset the state. Detach before it actually scopes.
(...skipping 17 matching lines...) Expand all
4009 static const int kFindIdentifier = 12345; 4009 static const int kFindIdentifier = 12345;
4010 4010
4011 WebFindOptions options; 4011 WebFindOptions options;
4012 WebString searchText = WebString::fromUTF8(kFindString); 4012 WebString searchText = WebString::fromUTF8(kFindString);
4013 WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()-> mainFrame()); 4013 WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()-> mainFrame());
4014 4014
4015 // Check that child frame exists. 4015 // Check that child frame exists.
4016 EXPECT_TRUE(!!mainFrame->traverseNext(false)); 4016 EXPECT_TRUE(!!mainFrame->traverseNext(false));
4017 4017
4018 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false)) { 4018 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false)) {
4019 EXPECT_FALSE(frame->find(kFindIdentifier, searchText, options, false, 0) ); 4019 EXPECT_FALSE(frame->find(kFindIdentifier, searchText, options, false, 0, nullptr));
4020 } 4020 }
4021 4021
4022 runPendingTasks(); 4022 runPendingTasks();
4023 EXPECT_FALSE(client.findResultsAreReady()); 4023 EXPECT_FALSE(client.findResultsAreReady());
4024 4024
4025 mainFrame->resetMatchCount(); 4025 mainFrame->resetMatchCount();
4026 } 4026 }
4027 4027
4028 TEST_P(ParameterizedWebFrameTest, SetTickmarks) 4028 TEST_P(ParameterizedWebFrameTest, SetTickmarks)
4029 { 4029 {
4030 registerMockedHttpURLLoad("find.html"); 4030 registerMockedHttpURLLoad("find.html");
4031 4031
4032 FindUpdateWebFrameClient client; 4032 FindUpdateWebFrameClient client;
4033 FrameTestHelpers::WebViewHelper webViewHelper(this); 4033 FrameTestHelpers::WebViewHelper webViewHelper(this);
4034 webViewHelper.initializeAndLoad(m_baseURL + "find.html", true, &client); 4034 webViewHelper.initializeAndLoad(m_baseURL + "find.html", true, &client);
4035 webViewHelper.resize(WebSize(640, 480)); 4035 webViewHelper.resize(WebSize(640, 480));
4036 runPendingTasks(); 4036 runPendingTasks();
4037 4037
4038 static const char* kFindString = "foo"; 4038 static const char* kFindString = "foo";
4039 static const int kFindIdentifier = 12345; 4039 static const int kFindIdentifier = 12345;
4040 4040
4041 WebFindOptions options; 4041 WebFindOptions options;
4042 WebString searchText = WebString::fromUTF8(kFindString); 4042 WebString searchText = WebString::fromUTF8(kFindString);
4043 WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()-> mainFrame()); 4043 WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()-> mainFrame());
4044 EXPECT_TRUE(mainFrame->find(kFindIdentifier, searchText, options, false, 0)) ; 4044 EXPECT_TRUE(mainFrame->find(kFindIdentifier, searchText, options, false, 0, nullptr));
4045 4045
4046 mainFrame->resetMatchCount(); 4046 mainFrame->resetMatchCount();
4047 mainFrame->scopeStringMatches(kFindIdentifier, searchText, options, true); 4047 mainFrame->scopeStringMatches(kFindIdentifier, searchText, options, true);
4048 4048
4049 runPendingTasks(); 4049 runPendingTasks();
4050 EXPECT_TRUE(client.findResultsAreReady()); 4050 EXPECT_TRUE(client.findResultsAreReady());
4051 4051
4052 // Get the tickmarks for the original find request. 4052 // Get the tickmarks for the original find request.
4053 FrameView* frameView = webViewHelper.webViewImpl()->mainFrameImpl()->frameVi ew(); 4053 FrameView* frameView = webViewHelper.webViewImpl()->mainFrameImpl()->frameVi ew();
4054 RefPtrWillBeRawPtr<Scrollbar> scrollbar = frameView->createScrollbar(Horizon talScrollbar); 4054 RefPtrWillBeRawPtr<Scrollbar> scrollbar = frameView->createScrollbar(Horizon talScrollbar);
(...skipping 16 matching lines...) Expand all
4071 // Reset the tickmark behavior. 4071 // Reset the tickmark behavior.
4072 Vector<IntRect> resetTickmarks; 4072 Vector<IntRect> resetTickmarks;
4073 mainFrame->setTickmarks(resetTickmarks); 4073 mainFrame->setTickmarks(resetTickmarks);
4074 4074
4075 // Check that the original tickmarks are returned 4075 // Check that the original tickmarks are returned
4076 Vector<IntRect> originalTickmarksAfterReset; 4076 Vector<IntRect> originalTickmarksAfterReset;
4077 scrollbar->getTickmarks(originalTickmarksAfterReset); 4077 scrollbar->getTickmarks(originalTickmarksAfterReset);
4078 EXPECT_EQ(originalTickmarks, originalTickmarksAfterReset); 4078 EXPECT_EQ(originalTickmarks, originalTickmarksAfterReset);
4079 } 4079 }
4080 4080
4081 TEST_P(ParameterizedWebFrameTest, FindInPageJavaScriptUpdatesDOM)
4082 {
4083 registerMockedHttpURLLoad("find.html");
4084
4085 FindUpdateWebFrameClient client;
4086 FrameTestHelpers::WebViewHelper webViewHelper(this);
4087 webViewHelper.initializeAndLoad(m_baseURL + "find.html", true, &client);
4088 webViewHelper.resize(WebSize(640, 480));
4089 runPendingTasks();
4090
4091 WebFrame* frame = webViewHelper.webView()->mainFrame();
4092 const int findIdentifier = 12345;
4093 static const char* kFindString = "foo";
4094 WebString searchText = WebString::fromUTF8(kFindString);
4095 WebFindOptions options;
4096 bool activeNow;
4097
4098 frame->resetMatchCount();
4099 frame->scopeStringMatches(findIdentifier, searchText, options, true);
4100 runPendingTasks();
4101 EXPECT_TRUE(client.findResultsAreReady());
4102
4103 // Find in a <div> element.
4104 options.findNext = true;
4105 EXPECT_TRUE(frame->find(findIdentifier, searchText, options, false, 0, &acti veNow));
4106 EXPECT_TRUE(activeNow);
4107
4108 // Insert new text, which contains occurence of |searchText|.
4109 frame->executeScript(
4110 WebScriptSource("document.body.insertBefore(document.createTextNode('bar 5 foo5'), document.getElementsByTagName('textarea')[0]);"));
Finnur 2016/01/29 17:47:50 Nit: I would probably try to break this up into mo
dvadym 2016/02/01 12:41:10 Done.
4111
4112 // Find in a <input> element.
4113 EXPECT_TRUE(frame->find(findIdentifier, searchText, options, false, 0, &acti veNow));
4114 EXPECT_TRUE(activeNow);
4115
4116 // Find in the inserted text node.
4117 EXPECT_TRUE(frame->find(findIdentifier, searchText, options, false, 0, &acti veNow));
4118 frame->stopFinding(false);
4119 WebRange range = frame->selectionRange();
4120 EXPECT_EQ(5, range.startOffset());
4121 EXPECT_EQ(8, range.endOffset());
4122 EXPECT_TRUE(frame->document().focusedElement().isNull());
4123 EXPECT_FALSE(activeNow);
4124 }
4125
4081 static WebPoint topLeft(const WebRect& rect) 4126 static WebPoint topLeft(const WebRect& rect)
4082 { 4127 {
4083 return WebPoint(rect.x, rect.y); 4128 return WebPoint(rect.x, rect.y);
4084 } 4129 }
4085 4130
4086 static WebPoint bottomRightMinusOne(const WebRect& rect) 4131 static WebPoint bottomRightMinusOne(const WebRect& rect)
4087 { 4132 {
4088 // FIXME: If we don't subtract 1 from the x- and y-coordinates of the 4133 // FIXME: If we don't subtract 1 from the x- and y-coordinates of the
4089 // selection bounds, selectRange() will select the *next* element. That's 4134 // selection bounds, selectRange() will select the *next* element. That's
4090 // strictly correct, as hit-testing checks the pixel to the lower-right of 4135 // strictly correct, as hit-testing checks the pixel to the lower-right of
(...skipping 4314 matching lines...) Expand 10 before | Expand all | Expand 10 after
8405 } 8450 }
8406 8451
8407 TEST_F(WebFrameVisibilityChangeTest, RemoteFrameParentVisibilityChange) 8452 TEST_F(WebFrameVisibilityChangeTest, RemoteFrameParentVisibilityChange)
8408 { 8453 {
8409 swapLocalFrameToRemoteFrame(); 8454 swapLocalFrameToRemoteFrame();
8410 executeScriptOnMainFrame(WebScriptSource("document.querySelector('iframe').p arentElement.style.display = 'none';")); 8455 executeScriptOnMainFrame(WebScriptSource("document.querySelector('iframe').p arentElement.style.display = 'none';"));
8411 EXPECT_FALSE(remoteFrameClient()->isVisible()); 8456 EXPECT_FALSE(remoteFrameClient()->isVisible());
8412 } 8457 }
8413 8458
8414 } // namespace blink 8459 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698