| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 "base/strings/string_piece.h" | 5 #include "base/strings/string_piece.h" |
| 6 #include "content/common/cross_site_document_classifier.h" | 6 #include "content/common/cross_site_document_classifier.h" |
| 7 #include "testing/gtest/include/gtest/gtest.h" | 7 #include "testing/gtest/include/gtest/gtest.h" |
| 8 | 8 |
| 9 using base::StringPiece; | 9 using base::StringPiece; |
| 10 | 10 |
| (...skipping 12 matching lines...) Expand all Loading... |
| 23 EXPECT_FALSE(CrossSiteDocumentClassifier::IsBlockableScheme(mailto_url)); | 23 EXPECT_FALSE(CrossSiteDocumentClassifier::IsBlockableScheme(mailto_url)); |
| 24 EXPECT_FALSE(CrossSiteDocumentClassifier::IsBlockableScheme(about_url)); | 24 EXPECT_FALSE(CrossSiteDocumentClassifier::IsBlockableScheme(about_url)); |
| 25 EXPECT_TRUE(CrossSiteDocumentClassifier::IsBlockableScheme(http_url)); | 25 EXPECT_TRUE(CrossSiteDocumentClassifier::IsBlockableScheme(http_url)); |
| 26 EXPECT_TRUE(CrossSiteDocumentClassifier::IsBlockableScheme(https_url)); | 26 EXPECT_TRUE(CrossSiteDocumentClassifier::IsBlockableScheme(https_url)); |
| 27 } | 27 } |
| 28 | 28 |
| 29 TEST(CrossSiteDocumentClassifierTest, IsSameSite) { | 29 TEST(CrossSiteDocumentClassifierTest, IsSameSite) { |
| 30 GURL a_com_url0("https://mock1.a.com:8080/page1.html"); | 30 GURL a_com_url0("https://mock1.a.com:8080/page1.html"); |
| 31 GURL a_com_url1("https://mock2.a.com:9090/page2.html"); | 31 GURL a_com_url1("https://mock2.a.com:9090/page2.html"); |
| 32 GURL a_com_url2("https://a.com/page3.html"); | 32 GURL a_com_url2("https://a.com/page3.html"); |
| 33 EXPECT_TRUE(CrossSiteDocumentClassifier::IsSameSite(a_com_url0, a_com_url1)); | 33 url::Origin a_com_origin0(a_com_url0); |
| 34 EXPECT_TRUE(CrossSiteDocumentClassifier::IsSameSite(a_com_url1, a_com_url2)); | 34 EXPECT_TRUE( |
| 35 EXPECT_TRUE(CrossSiteDocumentClassifier::IsSameSite(a_com_url2, a_com_url0)); | 35 CrossSiteDocumentClassifier::IsSameSite(a_com_origin0, a_com_url1)); |
| 36 EXPECT_TRUE(CrossSiteDocumentClassifier::IsSameSite(url::Origin(a_com_url1), |
| 37 a_com_url2)); |
| 38 EXPECT_TRUE(CrossSiteDocumentClassifier::IsSameSite(url::Origin(a_com_url2), |
| 39 a_com_url0)); |
| 36 | 40 |
| 37 GURL b_com_url0("https://mock1.b.com/index.html"); | 41 GURL b_com_url0("https://mock1.b.com/index.html"); |
| 38 EXPECT_FALSE(CrossSiteDocumentClassifier::IsSameSite(a_com_url0, b_com_url0)); | 42 EXPECT_FALSE( |
| 43 CrossSiteDocumentClassifier::IsSameSite(a_com_origin0, b_com_url0)); |
| 39 | 44 |
| 40 GURL about_blank_url("about:blank"); | 45 GURL about_blank_url("about:blank"); |
| 41 EXPECT_FALSE( | 46 EXPECT_FALSE( |
| 42 CrossSiteDocumentClassifier::IsSameSite(a_com_url0, about_blank_url)); | 47 CrossSiteDocumentClassifier::IsSameSite(a_com_origin0, about_blank_url)); |
| 43 | 48 |
| 44 GURL chrome_url("chrome://extension"); | 49 GURL chrome_url("chrome://extension"); |
| 45 EXPECT_FALSE(CrossSiteDocumentClassifier::IsSameSite(a_com_url0, chrome_url)); | 50 EXPECT_FALSE( |
| 51 CrossSiteDocumentClassifier::IsSameSite(a_com_origin0, chrome_url)); |
| 46 | 52 |
| 47 GURL empty_url(""); | 53 GURL empty_url(""); |
| 48 EXPECT_FALSE(CrossSiteDocumentClassifier::IsSameSite(a_com_url0, empty_url)); | 54 EXPECT_FALSE( |
| 55 CrossSiteDocumentClassifier::IsSameSite(a_com_origin0, empty_url)); |
| 49 } | 56 } |
| 50 | 57 |
| 51 TEST(CrossSiteDocumentClassifierTest, IsValidCorsHeaderSet) { | 58 TEST(CrossSiteDocumentClassifierTest, IsValidCorsHeaderSet) { |
| 52 GURL frame_origin("http://www.google.com"); | 59 url::Origin frame_origin(GURL("http://www.google.com")); |
| 53 GURL site_origin("http://www.yahoo.com"); | 60 GURL site_origin_url("http://www.yahoo.com"); |
| 54 | 61 |
| 55 EXPECT_TRUE(CrossSiteDocumentClassifier::IsValidCorsHeaderSet( | 62 EXPECT_TRUE(CrossSiteDocumentClassifier::IsValidCorsHeaderSet( |
| 56 frame_origin, site_origin, "*")); | 63 frame_origin, site_origin_url, "*")); |
| 57 EXPECT_FALSE(CrossSiteDocumentClassifier::IsValidCorsHeaderSet( | 64 EXPECT_FALSE(CrossSiteDocumentClassifier::IsValidCorsHeaderSet( |
| 58 frame_origin, site_origin, "\"*\"")); | 65 frame_origin, site_origin_url, "\"*\"")); |
| 59 EXPECT_TRUE(CrossSiteDocumentClassifier::IsValidCorsHeaderSet( | 66 EXPECT_TRUE(CrossSiteDocumentClassifier::IsValidCorsHeaderSet( |
| 60 frame_origin, site_origin, "http://mail.google.com")); | 67 frame_origin, site_origin_url, "http://mail.google.com")); |
| 61 EXPECT_FALSE(CrossSiteDocumentClassifier::IsValidCorsHeaderSet( | 68 EXPECT_FALSE(CrossSiteDocumentClassifier::IsValidCorsHeaderSet( |
| 62 frame_origin, site_origin, "https://mail.google.com")); | 69 frame_origin, site_origin_url, "https://mail.google.com")); |
| 63 EXPECT_FALSE(CrossSiteDocumentClassifier::IsValidCorsHeaderSet( | 70 EXPECT_FALSE(CrossSiteDocumentClassifier::IsValidCorsHeaderSet( |
| 64 frame_origin, site_origin, "http://yahoo.com")); | 71 frame_origin, site_origin_url, "http://yahoo.com")); |
| 65 EXPECT_FALSE(CrossSiteDocumentClassifier::IsValidCorsHeaderSet( | 72 EXPECT_FALSE(CrossSiteDocumentClassifier::IsValidCorsHeaderSet( |
| 66 frame_origin, site_origin, "www.google.com")); | 73 frame_origin, site_origin_url, "www.google.com")); |
| 67 } | 74 } |
| 68 | 75 |
| 69 TEST(CrossSiteDocumentClassifierTest, SniffForHTML) { | 76 TEST(CrossSiteDocumentClassifierTest, SniffForHTML) { |
| 70 StringPiece html_data(" \t\r\n <HtMladfokadfkado"); | 77 StringPiece html_data(" \t\r\n <HtMladfokadfkado"); |
| 71 StringPiece comment_html_data(" <!-- this is comment --> <html><body>"); | 78 StringPiece comment_html_data(" <!-- this is comment --> <html><body>"); |
| 72 StringPiece two_comments_html_data( | 79 StringPiece two_comments_html_data( |
| 73 "<!-- this is comment -->\n<!-- this is comment --><html><body>"); | 80 "<!-- this is comment -->\n<!-- this is comment --><html><body>"); |
| 74 StringPiece mixed_comments_html_data( | 81 StringPiece mixed_comments_html_data( |
| 75 "<!-- this is comment <!-- --> <script></script>"); | 82 "<!-- this is comment <!-- --> <script></script>"); |
| 76 StringPiece non_html_data(" var name=window.location;\nadfadf"); | 83 StringPiece non_html_data(" var name=window.location;\nadfadf"); |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 110 | 117 |
| 111 EXPECT_TRUE(CrossSiteDocumentClassifier::SniffForJSON(json_data)); | 118 EXPECT_TRUE(CrossSiteDocumentClassifier::SniffForJSON(json_data)); |
| 112 EXPECT_FALSE(CrossSiteDocumentClassifier::SniffForJSON(non_json_data0)); | 119 EXPECT_FALSE(CrossSiteDocumentClassifier::SniffForJSON(non_json_data0)); |
| 113 EXPECT_FALSE(CrossSiteDocumentClassifier::SniffForJSON(non_json_data1)); | 120 EXPECT_FALSE(CrossSiteDocumentClassifier::SniffForJSON(non_json_data1)); |
| 114 | 121 |
| 115 // Basic bounds check. | 122 // Basic bounds check. |
| 116 EXPECT_FALSE(CrossSiteDocumentClassifier::SniffForJSON(empty_data)); | 123 EXPECT_FALSE(CrossSiteDocumentClassifier::SniffForJSON(empty_data)); |
| 117 } | 124 } |
| 118 | 125 |
| 119 } // namespace content | 126 } // namespace content |
| OLD | NEW |