summaryrefslogtreecommitdiffstats
path: root/chrome_frame
diff options
context:
space:
mode:
authoramit@chromium.org <amit@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-19 23:47:41 +0000
committeramit@chromium.org <amit@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-10-19 23:47:41 +0000
commite3de01ae77f4a4f116d9a6d42c1f6b4e22923a9e (patch)
treeda1e8ac0a36fc1698711ec507a69817c4fd0b40c /chrome_frame
parente07594f7947be07a671d4458deb4d15ce08417f1 (diff)
downloadchromium_src-e3de01ae77f4a4f116d9a6d42c1f6b4e22923a9e.zip
chromium_src-e3de01ae77f4a4f116d9a6d42c1f6b4e22923a9e.tar.gz
chromium_src-e3de01ae77f4a4f116d9a6d42c1f6b4e22923a9e.tar.bz2
GCF activation for alternate content types
Added a few tests to test GCF activation for content types other than text/html using HTTP header. BUG=56269 TEST=new tests added. Review URL: http://codereview.chromium.org/3528020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@63133 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome_frame')
-rw-r--r--chrome_frame/test/navigation_test.cc63
1 files changed, 63 insertions, 0 deletions
diff --git a/chrome_frame/test/navigation_test.cc b/chrome_frame/test/navigation_test.cc
index 75fb8ba..c1c2e7e 100644
--- a/chrome_frame/test/navigation_test.cc
+++ b/chrome_frame/test/navigation_test.cc
@@ -836,4 +836,67 @@ TEST_F(FullTabDownloadTest, CF_DownloadFileFromPost) {
file_util::DieFileDie(temp_file_path, false);
}
+// Test fixture for testing if http header works for supported content types
+class HttpHeaderTest : public MockIEEventSinkTest, public testing::Test {
+ public:
+ HttpHeaderTest() {}
+
+ void HeaderTestWithData(const char* content_type, const char* data) {
+ const wchar_t* relative_url = L"/header_test";
+ const char* kHeaderFormat =
+ "HTTP/1.1 200 OK\r\n"
+ "Connection: close\r\n"
+ "Content-Type: %s\r\n"
+ "X-UA-Compatible: chrome=1\r\n";
+ std::string header = StringPrintf(kHeaderFormat, content_type);
+ std::wstring url = server_mock_.Resolve(relative_url);
+ EXPECT_CALL(server_mock_, Get(_, StrEq(relative_url), _))
+ .WillRepeatedly(SendFast(header, data));
+
+ InSequence expect_in_sequence_for_scope;
+
+ ie_mock_.ExpectNavigation(IN_CF, url);
+ EXPECT_CALL(ie_mock_, OnLoad(IN_CF, StrEq(url)))
+ .WillOnce(CloseBrowserMock(&ie_mock_));
+
+ LaunchIEAndNavigate(url);
+ }
+};
+
+const char* kXmlContent =
+ "<tree>"
+ "<node href=\"root.htm\" text=\"Root\">"
+ "<node href=\"child1.htm\" text=\"Child 1\" />"
+ "<node href=\"child2.htm\" text=\"Child 2\" />"
+ "</node>"
+ "</tree>";
+
+TEST_F(HttpHeaderTest, ApplicationXhtml) {
+ HeaderTestWithData("application/xhtml+xml", kXmlContent);
+}
+
+TEST_F(HttpHeaderTest, ApplicationXml) {
+ HeaderTestWithData("application/xml", kXmlContent);
+}
+
+TEST_F(HttpHeaderTest, TextXml) {
+ HeaderTestWithData("text/xml", kXmlContent);
+}
+
+const char* kImageSvg =
+ "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" "
+ "\"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">"
+ "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100%\" height=\"100%\">"
+ "<rect height=\"100\" width=\"300\" "
+ "style=\"fill:rgb(0,0,255);stroke-width:2;\"/>"
+ "</svg>";
+
+TEST_F(HttpHeaderTest, DISABLED_ImageSvg) {
+ HeaderTestWithData("image/svg", kImageSvg);
+}
+
+TEST_F(HttpHeaderTest, ImageSvgXml) {
+ HeaderTestWithData("image/svg+xml", kImageSvg);
+}
+
} // namespace chrome_frame_test