Index: third_party/WebKit/Source/web/tests/WebFrameSerializerSanitizationTest.cpp |
diff --git a/third_party/WebKit/Source/web/tests/WebFrameSerializerTest.cpp b/third_party/WebKit/Source/web/tests/WebFrameSerializerSanitizationTest.cpp |
similarity index 77% |
copy from third_party/WebKit/Source/web/tests/WebFrameSerializerTest.cpp |
copy to third_party/WebKit/Source/web/tests/WebFrameSerializerSanitizationTest.cpp |
index e4e4606f31fec1ac9c406a9fcf1827353ee5e9c5..5b0ab1dc8e62ce361d0970ba5e05e78b31885a49 100644 |
--- a/third_party/WebKit/Source/web/tests/WebFrameSerializerTest.cpp |
+++ b/third_party/WebKit/Source/web/tests/WebFrameSerializerSanitizationTest.cpp |
@@ -39,12 +39,9 @@ |
#include "platform/weborigin/KURL.h" |
#include "platform/wtf/text/StringBuilder.h" |
#include "public/platform/Platform.h" |
-#include "public/platform/WebCString.h" |
-#include "public/platform/WebCache.h" |
#include "public/platform/WebString.h" |
#include "public/platform/WebURL.h" |
#include "public/platform/WebURLLoaderMockFactory.h" |
-#include "public/web/WebFrameSerializerClient.h" |
#include "testing/gtest/include/gtest/gtest.h" |
#include "web/WebLocalFrameImpl.h" |
#include "web/tests/FrameTestHelpers.h" |
@@ -52,18 +49,6 @@ |
namespace blink { |
namespace { |
-class SimpleWebFrameSerializerClient final : public WebFrameSerializerClient { |
- public: |
- String ToString() { return builder_.ToString(); } |
- |
- private: |
- void DidSerializeDataForFrame(const WebCString& data, |
- FrameSerializationStatus) final { |
- builder_.Append(data.Data(), data.length()); |
- } |
- |
- StringBuilder builder_; |
-}; |
class SimpleMHTMLPartsGenerationDelegate |
: public WebFrameSerializer::MHTMLPartsGenerationDelegate { |
@@ -105,122 +90,16 @@ int MatchSubstring(const String& str, const char* pattern, size_t size) { |
} // namespace |
-class WebFrameSerializerTest : public ::testing::Test { |
+class WebFrameSerializerSanitizationTest : public ::testing::Test { |
protected: |
- WebFrameSerializerTest() { helper_.Initialize(); } |
+ WebFrameSerializerSanitizationTest() { helper_.Initialize(); } |
- ~WebFrameSerializerTest() override { |
+ ~WebFrameSerializerSanitizationTest() override { |
Platform::Current() |
->GetURLLoaderMockFactory() |
->UnregisterAllURLsAndClearMemoryCache(); |
} |
- void RegisterMockedImageURLLoad(const String& url) { |
- // Image resources need to be mocked, but irrelevant here what image they |
- // map to. |
- RegisterMockedFileURLLoad(URLTestHelpers::ToKURL(url.Utf8().data()), |
- "frameserialization/awesome.png"); |
- } |
- void RegisterMockedFileURLLoad(const KURL& url, |
- const String& file_path, |
- const String& mime_type = "image/png") { |
- URLTestHelpers::RegisterMockedURLLoad( |
- url, testing::WebTestDataPath(file_path.Utf8().data()), mime_type); |
- } |
- |
- class SingleLinkRewritingDelegate |
- : public WebFrameSerializer::LinkRewritingDelegate { |
- public: |
- SingleLinkRewritingDelegate(const WebURL& url, const WebString& local_path) |
- : url_(url), local_path_(local_path) {} |
- |
- bool RewriteFrameSource(WebFrame* frame, |
- WebString* rewritten_link) override { |
- return false; |
- } |
- |
- bool RewriteLink(const WebURL& url, WebString* rewritten_link) override { |
- if (url != url_) |
- return false; |
- |
- *rewritten_link = local_path_; |
- return true; |
- } |
- |
- private: |
- const WebURL url_; |
- const WebString local_path_; |
- }; |
- |
- String SerializeFile(const String& url, const String& file_name) { |
- KURL parsed_url(kParsedURLString, url); |
- String file_path("frameserialization/" + file_name); |
- RegisterMockedFileURLLoad(parsed_url, file_path, "text/html"); |
- FrameTestHelpers::LoadFrame(MainFrameImpl(), url.Utf8().data()); |
- SingleLinkRewritingDelegate delegate(parsed_url, WebString("local")); |
- SimpleWebFrameSerializerClient serializer_client; |
- WebFrameSerializer::Serialize(MainFrameImpl(), &serializer_client, |
- &delegate); |
- return serializer_client.ToString(); |
- } |
- |
- WebViewBase* WebView() { return helper_.WebView(); } |
- |
- WebLocalFrameImpl* MainFrameImpl() { |
- return helper_.WebView()->MainFrameImpl(); |
- } |
- |
- private: |
- FrameTestHelpers::WebViewHelper helper_; |
-}; |
- |
-TEST_F(WebFrameSerializerTest, URLAttributeValues) { |
- RegisterMockedImageURLLoad("javascript:\""); |
- |
- const char* expected_html = |
- "\n<!-- saved from url=(0020)http://www.test.com/ -->\n" |
- "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; " |
- "charset=UTF-8\">\n" |
- "</head><body><img src=\"javascript:"\">\n" |
- "<a href=\"http://www.test.com/local#"\">local</a>\n" |
- "<a " |
- "href=\"http://www.example.com/#"><script>alert(0)</" |
- "script>\">external</a>\n" |
- "</body></html>"; |
- String actual_html = |
- SerializeFile("http://www.test.com", "url_attribute_values.html"); |
- EXPECT_EQ(expected_html, actual_html); |
-} |
- |
-TEST_F(WebFrameSerializerTest, EncodingAndNormalization) { |
- const char* expected_html = |
- "<!DOCTYPE html>\n" |
- "<!-- saved from url=(0020)http://www.test.com/ -->\n" |
- "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; " |
- "charset=EUC-KR\">\n" |
- "<title>Ensure NFC normalization is not performed by frame " |
- "serializer</title>\n" |
- "</head><body>\n" |
- "\xe4\xc5\xd1\xe2\n" |
- "\n</body></html>"; |
- String actual_html = |
- SerializeFile("http://www.test.com", "encoding_normalization.html"); |
- EXPECT_EQ(expected_html, actual_html); |
-} |
- |
-TEST_F(WebFrameSerializerTest, FromUrlWithMinusMinus) { |
- String actual_html = |
- SerializeFile("http://www.test.com?--x--", "text_only_page.html"); |
- EXPECT_EQ("<!-- saved from url=(0030)http://www.test.com/?-%2Dx-%2D -->", |
- actual_html.Substring(1, 60)); |
-} |
- |
-class WebFrameSerializerSanitizationTest : public WebFrameSerializerTest { |
- protected: |
- WebFrameSerializerSanitizationTest() {} |
- |
- ~WebFrameSerializerSanitizationTest() override {} |
- |
String GenerateMHTMLFromHtml(const String& url, const String& file_name) { |
return GenerateMHTML(url, file_name, "text/html", false); |
} |
@@ -274,10 +153,23 @@ class WebFrameSerializerSanitizationTest : public WebFrameSerializerTest { |
mhtml_delegate_.SetRemovePopupOverlay(remove_popup_overlay); |
} |
- protected: |
+ void RegisterMockedFileURLLoad(const KURL& url, |
+ const String& file_path, |
+ const String& mime_type = "image/png") { |
+ URLTestHelpers::RegisterMockedURLLoad( |
+ url, testing::WebTestDataPath(file_path.Utf8().data()), mime_type); |
+ } |
+ |
+ WebViewBase* WebView() { return helper_.WebView(); } |
+ |
+ WebLocalFrameImpl* MainFrameImpl() { |
+ return helper_.WebView()->MainFrameImpl(); |
+ } |
+ |
HistogramTester histogram_tester_; |
private: |
+ FrameTestHelpers::WebViewHelper helper_; |
SimpleMHTMLPartsGenerationDelegate mhtml_delegate_; |
}; |