| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2010 Google Inc. All rights reserved. | 2 * Copyright (C) 2010 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 3698 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3709 webViewHelper.initializeAndLoad(m_baseURL + "hello_world.html", true, &webFr
ameClient); | 3709 webViewHelper.initializeAndLoad(m_baseURL + "hello_world.html", true, &webFr
ameClient); |
| 3710 | 3710 |
| 3711 FrameTestHelpers::reloadFrame(webViewHelper.webView()->mainFrame()); | 3711 FrameTestHelpers::reloadFrame(webViewHelper.webView()->mainFrame()); |
| 3712 } | 3712 } |
| 3713 | 3713 |
| 3714 class FindUpdateWebFrameClient : public FrameTestHelpers::TestWebFrameClient { | 3714 class FindUpdateWebFrameClient : public FrameTestHelpers::TestWebFrameClient { |
| 3715 public: | 3715 public: |
| 3716 FindUpdateWebFrameClient() | 3716 FindUpdateWebFrameClient() |
| 3717 : m_findResultsAreReady(false) | 3717 : m_findResultsAreReady(false) |
| 3718 , m_count(-1) | 3718 , m_count(-1) |
| 3719 , m_activeIndex(-1) |
| 3719 { | 3720 { |
| 3720 } | 3721 } |
| 3721 | 3722 |
| 3722 void reportFindInPageMatchCount(int, int count, bool finalUpdate) override | 3723 void reportFindInPageMatchCount(int, int count, bool finalUpdate) override |
| 3723 { | 3724 { |
| 3724 m_count = count; | 3725 m_count = count; |
| 3725 if (finalUpdate) | 3726 if (finalUpdate) |
| 3726 m_findResultsAreReady = true; | 3727 m_findResultsAreReady = true; |
| 3727 } | 3728 } |
| 3728 | 3729 |
| 3730 void reportFindInPageSelection(int, int activeMatchOrdinal, const WebRect&)
override |
| 3731 { |
| 3732 m_activeIndex = activeMatchOrdinal; |
| 3733 } |
| 3734 |
| 3729 bool findResultsAreReady() const { return m_findResultsAreReady; } | 3735 bool findResultsAreReady() const { return m_findResultsAreReady; } |
| 3730 int count() const { return m_count; } | 3736 int count() const { return m_count; } |
| 3737 int activeIndex() const { return m_activeIndex; } |
| 3731 | 3738 |
| 3732 private: | 3739 private: |
| 3733 bool m_findResultsAreReady; | 3740 bool m_findResultsAreReady; |
| 3734 int m_count; | 3741 int m_count; |
| 3742 int m_activeIndex; |
| 3735 }; | 3743 }; |
| 3736 | 3744 |
| 3737 TEST_P(ParameterizedWebFrameTest, FindInPageMatchRects) | 3745 TEST_P(ParameterizedWebFrameTest, FindInPageMatchRects) |
| 3738 { | 3746 { |
| 3739 registerMockedHttpURLLoad("find_in_page.html"); | 3747 registerMockedHttpURLLoad("find_in_page.html"); |
| 3740 registerMockedHttpURLLoad("find_in_page_frame.html"); | 3748 registerMockedHttpURLLoad("find_in_page_frame.html"); |
| 3741 | 3749 |
| 3742 FindUpdateWebFrameClient client; | 3750 FindUpdateWebFrameClient client; |
| 3743 FrameTestHelpers::WebViewHelper webViewHelper(this); | 3751 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 3744 webViewHelper.initializeAndLoad(m_baseURL + "find_in_page.html", true, &clie
nt); | 3752 webViewHelper.initializeAndLoad(m_baseURL + "find_in_page.html", true, &clie
nt); |
| (...skipping 102 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3847 // Result 18 should be normalized with respect to the position:relative div,
and not it's | 3855 // Result 18 should be normalized with respect to the position:relative div,
and not it's |
| 3848 // immediate containing div. Consequently, result 18 should be above result
17. | 3856 // immediate containing div. Consequently, result 18 should be above result
17. |
| 3849 EXPECT_TRUE(webMatchRects[17].y > webMatchRects[18].y); | 3857 EXPECT_TRUE(webMatchRects[17].y > webMatchRects[18].y); |
| 3850 | 3858 |
| 3851 // Resizing should update the rects version. | 3859 // Resizing should update the rects version. |
| 3852 webViewHelper.resize(WebSize(800, 600)); | 3860 webViewHelper.resize(WebSize(800, 600)); |
| 3853 runPendingTasks(); | 3861 runPendingTasks(); |
| 3854 EXPECT_TRUE(mainFrame->findMatchMarkersVersion() != rectsVersion); | 3862 EXPECT_TRUE(mainFrame->findMatchMarkersVersion() != rectsVersion); |
| 3855 } | 3863 } |
| 3856 | 3864 |
| 3865 TEST_F(WebFrameTest, FindInPageActiveIndex) |
| 3866 { |
| 3867 registerMockedHttpURLLoad("find_match_count.html"); |
| 3868 |
| 3869 FindUpdateWebFrameClient client; |
| 3870 FrameTestHelpers::WebViewHelper webViewHelper; |
| 3871 webViewHelper.initializeAndLoad(m_baseURL + "find_match_count.html", true, &
client); |
| 3872 webViewHelper.webView()->resize(WebSize(640, 480)); |
| 3873 runPendingTasks(); |
| 3874 |
| 3875 const char* kFindString = "a"; |
| 3876 const int kFindIdentifier = 7777; |
| 3877 const int kActiveIndex = 1; |
| 3878 |
| 3879 WebFindOptions options; |
| 3880 WebString searchText = WebString::fromUTF8(kFindString); |
| 3881 WebLocalFrameImpl* mainFrame = toWebLocalFrameImpl(webViewHelper.webView()->
mainFrame()); |
| 3882 EXPECT_TRUE(mainFrame->find(kFindIdentifier, searchText, options, false, 0))
; |
| 3883 mainFrame->resetMatchCount(); |
| 3884 |
| 3885 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false)) |
| 3886 frame->toWebLocalFrame()->scopeStringMatches(kFindIdentifier, searchText
, options, true); |
| 3887 |
| 3888 runPendingTasks(); |
| 3889 EXPECT_TRUE(mainFrame->find(kFindIdentifier, searchText, options, false, 0))
; |
| 3890 mainFrame->stopFinding(true); |
| 3891 |
| 3892 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false)) |
| 3893 frame->toWebLocalFrame()->scopeStringMatches(kFindIdentifier, searchText
, options, true); |
| 3894 |
| 3895 runPendingTasks(); |
| 3896 EXPECT_TRUE(client.findResultsAreReady()); |
| 3897 EXPECT_EQ(kActiveIndex, client.activeIndex()); |
| 3898 |
| 3899 const char* kFindStringNew = "e"; |
| 3900 WebString searchTextNew = WebString::fromUTF8(kFindStringNew); |
| 3901 |
| 3902 EXPECT_TRUE(mainFrame->find(kFindIdentifier, searchTextNew, options, false,
0)); |
| 3903 mainFrame->resetMatchCount(); |
| 3904 |
| 3905 for (WebFrame* frame = mainFrame; frame; frame = frame->traverseNext(false)) |
| 3906 frame->toWebLocalFrame()->scopeStringMatches(kFindIdentifier, searchText
New, options, true); |
| 3907 |
| 3908 runPendingTasks(); |
| 3909 EXPECT_TRUE(client.findResultsAreReady()); |
| 3910 EXPECT_EQ(kActiveIndex, client.activeIndex()); |
| 3911 } |
| 3912 |
| 3857 TEST_P(ParameterizedWebFrameTest, FindInPageSkipsHiddenFrames) | 3913 TEST_P(ParameterizedWebFrameTest, FindInPageSkipsHiddenFrames) |
| 3858 { | 3914 { |
| 3859 registerMockedHttpURLLoad("find_in_hidden_frame.html"); | 3915 registerMockedHttpURLLoad("find_in_hidden_frame.html"); |
| 3860 | 3916 |
| 3861 FindUpdateWebFrameClient client; | 3917 FindUpdateWebFrameClient client; |
| 3862 FrameTestHelpers::WebViewHelper webViewHelper(this); | 3918 FrameTestHelpers::WebViewHelper webViewHelper(this); |
| 3863 webViewHelper.initializeAndLoad(m_baseURL + "find_in_hidden_frame.html", tru
e, &client); | 3919 webViewHelper.initializeAndLoad(m_baseURL + "find_in_hidden_frame.html", tru
e, &client); |
| 3864 webViewHelper.resize(WebSize(640, 480)); | 3920 webViewHelper.resize(WebSize(640, 480)); |
| 3865 runPendingTasks(); | 3921 runPendingTasks(); |
| 3866 | 3922 |
| (...skipping 4540 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8407 } | 8463 } |
| 8408 | 8464 |
| 8409 TEST_F(WebFrameVisibilityChangeTest, RemoteFrameParentVisibilityChange) | 8465 TEST_F(WebFrameVisibilityChangeTest, RemoteFrameParentVisibilityChange) |
| 8410 { | 8466 { |
| 8411 swapLocalFrameToRemoteFrame(); | 8467 swapLocalFrameToRemoteFrame(); |
| 8412 executeScriptOnMainFrame(WebScriptSource("document.querySelector('iframe').p
arentElement.style.display = 'none';")); | 8468 executeScriptOnMainFrame(WebScriptSource("document.querySelector('iframe').p
arentElement.style.display = 'none';")); |
| 8413 EXPECT_FALSE(remoteFrameClient()->isVisible()); | 8469 EXPECT_FALSE(remoteFrameClient()->isVisible()); |
| 8414 } | 8470 } |
| 8415 | 8471 |
| 8416 } // namespace blink | 8472 } // namespace blink |
| OLD | NEW |