| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2014 Google Inc. All rights reserved. | 2 * Copyright (C) 2014 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 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 175 << "'."; | 175 << "'."; |
| 176 } | 176 } |
| 177 EXPECT_EQ(test.policy == kReferrerPolicyDefault | 177 EXPECT_EQ(test.policy == kReferrerPolicyDefault |
| 178 ? kReferrerPolicyNoReferrerWhenDowngrade | 178 ? kReferrerPolicyNoReferrerWhenDowngrade |
| 179 : test.policy, | 179 : test.policy, |
| 180 result.referrer_policy); | 180 result.referrer_policy); |
| 181 } | 181 } |
| 182 } | 182 } |
| 183 | 183 |
| 184 TEST(SecurityPolicyTest, TrustworthyWhiteList) { | 184 TEST(SecurityPolicyTest, TrustworthyWhiteList) { |
| 185 const char* insecure_ur_ls[] = { | 185 const char* insecure_urls[] = { |
| 186 "http://a.test/path/to/file.html", "http://b.test/path/to/file.html", | 186 "http://a.test/path/to/file.html", "http://b.test/path/to/file.html", |
| 187 "blob:http://c.test/b3aae9c8-7f90-440d-8d7c-43aa20d72fde", | 187 "blob:http://c.test/b3aae9c8-7f90-440d-8d7c-43aa20d72fde", |
| 188 "filesystem:http://d.test/path/t/file.html", | 188 "filesystem:http://d.test/path/t/file.html", |
| 189 }; | 189 }; |
| 190 | 190 |
| 191 for (const char* url : insecure_ur_ls) { | 191 for (const char* url : insecure_urls) { |
| 192 RefPtr<SecurityOrigin> origin = SecurityOrigin::CreateFromString(url); | 192 RefPtr<SecurityOrigin> origin = SecurityOrigin::CreateFromString(url); |
| 193 EXPECT_FALSE(origin->IsPotentiallyTrustworthy()); | 193 EXPECT_FALSE(origin->IsPotentiallyTrustworthy()); |
| 194 SecurityPolicy::AddOriginTrustworthyWhiteList(origin); | 194 SecurityPolicy::AddOriginTrustworthyWhiteList(origin); |
| 195 EXPECT_TRUE(origin->IsPotentiallyTrustworthy()); | 195 EXPECT_TRUE(origin->IsPotentiallyTrustworthy()); |
| 196 } | 196 } |
| 197 | 197 |
| 198 // Tests that adding URLs that have inner-urls to the whitelist | 198 // Tests that adding URLs that have inner-urls to the whitelist |
| 199 // takes effect on the origins of the inner-urls (and vice versa). | 199 // takes effect on the origins of the inner-urls (and vice versa). |
| 200 struct TestCase { | 200 struct TestCase { |
| 201 const char* url; | 201 const char* url; |
| 202 const char* another_url_in_origin; | 202 const char* another_url_in_origin; |
| 203 }; | 203 }; |
| 204 TestCase insecure_ur_ls_with_inner_origin[] = { | 204 TestCase insecure_urls_with_inner_origin[] = { |
| 205 {"blob:http://e.test/b3aae9c8-7f90-440d-8d7c-43aa20d72fde", | 205 {"blob:http://e.test/b3aae9c8-7f90-440d-8d7c-43aa20d72fde", |
| 206 "http://e.test/foo.html"}, | 206 "http://e.test/foo.html"}, |
| 207 {"filesystem:http://f.test/path/t/file.html", "http://f.test/bar.html"}, | 207 {"filesystem:http://f.test/path/t/file.html", "http://f.test/bar.html"}, |
| 208 {"http://g.test/foo.html", | 208 {"http://g.test/foo.html", |
| 209 "blob:http://g.test/b3aae9c8-7f90-440d-8d7c-43aa20d72fde"}, | 209 "blob:http://g.test/b3aae9c8-7f90-440d-8d7c-43aa20d72fde"}, |
| 210 {"http://h.test/bar.html", "filesystem:http://h.test/path/t/file.html"}, | 210 {"http://h.test/bar.html", "filesystem:http://h.test/path/t/file.html"}, |
| 211 }; | 211 }; |
| 212 for (const TestCase& test : insecure_ur_ls_with_inner_origin) { | 212 for (const TestCase& test : insecure_urls_with_inner_origin) { |
| 213 // Actually origins of both URLs should be same. | 213 // Actually origins of both URLs should be same. |
| 214 RefPtr<SecurityOrigin> origin1 = SecurityOrigin::CreateFromString(test.url); | 214 RefPtr<SecurityOrigin> origin1 = SecurityOrigin::CreateFromString(test.url); |
| 215 RefPtr<SecurityOrigin> origin2 = | 215 RefPtr<SecurityOrigin> origin2 = |
| 216 SecurityOrigin::CreateFromString(test.another_url_in_origin); | 216 SecurityOrigin::CreateFromString(test.another_url_in_origin); |
| 217 | 217 |
| 218 EXPECT_FALSE(origin1->IsPotentiallyTrustworthy()); | 218 EXPECT_FALSE(origin1->IsPotentiallyTrustworthy()); |
| 219 EXPECT_FALSE(origin2->IsPotentiallyTrustworthy()); | 219 EXPECT_FALSE(origin2->IsPotentiallyTrustworthy()); |
| 220 SecurityPolicy::AddOriginTrustworthyWhiteList(origin1); | 220 SecurityPolicy::AddOriginTrustworthyWhiteList(origin1); |
| 221 EXPECT_TRUE(origin1->IsPotentiallyTrustworthy()); | 221 EXPECT_TRUE(origin1->IsPotentiallyTrustworthy()); |
| 222 EXPECT_TRUE(origin2->IsPotentiallyTrustworthy()); | 222 EXPECT_TRUE(origin2->IsPotentiallyTrustworthy()); |
| 223 } | 223 } |
| 224 } | 224 } |
| 225 | 225 |
| 226 } // namespace blink | 226 } // namespace blink |
| OLD | NEW |