| OLD | NEW |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "web/TextFinder.h" | 5 #include "web/TextFinder.h" |
| 6 | 6 |
| 7 #include "bindings/core/v8/ExceptionStatePlaceholder.h" | 7 #include "bindings/core/v8/ExceptionStatePlaceholder.h" |
| 8 #include "core/dom/Document.h" | 8 #include "core/dom/Document.h" |
| 9 #include "core/dom/NodeList.h" | 9 #include "core/dom/NodeList.h" |
| 10 #include "core/dom/Range.h" | 10 #include "core/dom/Range.h" |
| (...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 191 Node* textInBElement = document().body()->firstChild()->firstChild(); | 191 Node* textInBElement = document().body()->firstChild()->firstChild(); |
| 192 Node* textInIElement = document().body()->lastChild()->firstChild(); | 192 Node* textInIElement = document().body()->lastChild()->firstChild(); |
| 193 Node* textInUElement = shadowRoot->childNodes()->item(1)->firstChild(); | 193 Node* textInUElement = shadowRoot->childNodes()->item(1)->firstChild(); |
| 194 | 194 |
| 195 int identifier = 0; | 195 int identifier = 0; |
| 196 WebString searchText(String("foo")); | 196 WebString searchText(String("foo")); |
| 197 WebFindOptions findOptions; // Default. | 197 WebFindOptions findOptions; // Default. |
| 198 bool wrapWithinFrame = true; | 198 bool wrapWithinFrame = true; |
| 199 WebRect* selectionRect = nullptr; | 199 WebRect* selectionRect = nullptr; |
| 200 | 200 |
| 201 // TextIterator currently returns the matches in the composed treeorder, so | 201 // TextIterator currently returns the matches in the flat treeorder, so |
| 202 // in this case the matches will be returned in the order of | 202 // in this case the matches will be returned in the order of |
| 203 // <i> -> <u> -> <b>. | 203 // <i> -> <u> -> <b>. |
| 204 ASSERT_TRUE(textFinder().find(identifier, searchText, findOptions, wrapWithi
nFrame, selectionRect)); | 204 ASSERT_TRUE(textFinder().find(identifier, searchText, findOptions, wrapWithi
nFrame, selectionRect)); |
| 205 Range* activeMatch = textFinder().activeMatch(); | 205 Range* activeMatch = textFinder().activeMatch(); |
| 206 ASSERT_TRUE(activeMatch); | 206 ASSERT_TRUE(activeMatch); |
| 207 EXPECT_EQ(textInIElement, activeMatch->startContainer()); | 207 EXPECT_EQ(textInIElement, activeMatch->startContainer()); |
| 208 EXPECT_EQ(0, activeMatch->startOffset()); | 208 EXPECT_EQ(0, activeMatch->startOffset()); |
| 209 EXPECT_EQ(textInIElement, activeMatch->endContainer()); | 209 EXPECT_EQ(textInIElement, activeMatch->endContainer()); |
| 210 EXPECT_EQ(3, activeMatch->endOffset()); | 210 EXPECT_EQ(3, activeMatch->endOffset()); |
| 211 | 211 |
| (...skipping 96 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 308 | 308 |
| 309 int identifier = 0; | 309 int identifier = 0; |
| 310 WebString searchText(String("fOO")); | 310 WebString searchText(String("fOO")); |
| 311 WebFindOptions findOptions; // Default. | 311 WebFindOptions findOptions; // Default. |
| 312 | 312 |
| 313 textFinder().resetMatchCount(); | 313 textFinder().resetMatchCount(); |
| 314 textFinder().scopeStringMatches(identifier, searchText, findOptions, true); | 314 textFinder().scopeStringMatches(identifier, searchText, findOptions, true); |
| 315 while (textFinder().scopingInProgress()) | 315 while (textFinder().scopingInProgress()) |
| 316 runPendingTasks(); | 316 runPendingTasks(); |
| 317 | 317 |
| 318 // TextIterator currently returns the matches in the composed tree order, | 318 // TextIterator currently returns the matches in the flat tree order, |
| 319 // so in this case the matches will be returned in the order of | 319 // so in this case the matches will be returned in the order of |
| 320 // <i> -> <u> -> <b>. | 320 // <i> -> <u> -> <b>. |
| 321 EXPECT_EQ(3, textFinder().totalMatchCount()); | 321 EXPECT_EQ(3, textFinder().totalMatchCount()); |
| 322 WebVector<WebFloatRect> matchRects; | 322 WebVector<WebFloatRect> matchRects; |
| 323 textFinder().findMatchRects(matchRects); | 323 textFinder().findMatchRects(matchRects); |
| 324 ASSERT_EQ(3u, matchRects.size()); | 324 ASSERT_EQ(3u, matchRects.size()); |
| 325 EXPECT_EQ(findInPageRect(textInIElement, 0, textInIElement, 3), matchRects[0
]); | 325 EXPECT_EQ(findInPageRect(textInIElement, 0, textInIElement, 3), matchRects[0
]); |
| 326 EXPECT_EQ(findInPageRect(textInUElement, 0, textInUElement, 3), matchRects[1
]); | 326 EXPECT_EQ(findInPageRect(textInUElement, 0, textInUElement, 3), matchRects[1
]); |
| 327 EXPECT_EQ(findInPageRect(textInBElement, 0, textInBElement, 3), matchRects[2
]); | 327 EXPECT_EQ(findInPageRect(textInBElement, 0, textInBElement, 3), matchRects[2
]); |
| 328 } | 328 } |
| (...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 455 // There will be only one iteration before timeout, because increment | 455 // There will be only one iteration before timeout, because increment |
| 456 // of the TimeProxyPlatform timer is greater than timeout threshold. | 456 // of the TimeProxyPlatform timer is greater than timeout threshold. |
| 457 textFinder().scopeStringMatches(identifier, searchPattern, findOptions, true
); | 457 textFinder().scopeStringMatches(identifier, searchPattern, findOptions, true
); |
| 458 while (textFinder().scopingInProgress()) | 458 while (textFinder().scopingInProgress()) |
| 459 runPendingTasks(); | 459 runPendingTasks(); |
| 460 | 460 |
| 461 EXPECT_EQ(4, textFinder().totalMatchCount()); | 461 EXPECT_EQ(4, textFinder().totalMatchCount()); |
| 462 } | 462 } |
| 463 | 463 |
| 464 } // namespace blink | 464 } // namespace blink |
| OLD | NEW |