TestScriptSecurityManager.cpp (1929B)
1 /* This Source Code Form is subject to the terms of the Mozilla Public 2 * License, v. 2.0. If a copy of the MPL was not distributed with this 3 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ 4 #include "gtest/gtest.h" 5 6 #include "nsCOMPtr.h" 7 #include "nsIURI.h" 8 #include "nsNetUtil.h" 9 #include "nsScriptSecurityManager.h" 10 11 namespace mozilla { 12 13 TEST(ScriptSecurityManager, IsHttpOrHttpsAndCrossOrigin) 14 { 15 nsCOMPtr<nsIURI> uriA; 16 NS_NewURI(getter_AddRefs(uriA), "https://apple.com"); 17 nsCOMPtr<nsIURI> uriB; 18 NS_NewURI(getter_AddRefs(uriB), "https://google.com"); 19 nsCOMPtr<nsIURI> uriB_http; 20 NS_NewURI(getter_AddRefs(uriB_http), "http://google.com"); 21 nsCOMPtr<nsIURI> aboutBlank; 22 NS_NewURI(getter_AddRefs(aboutBlank), "about:blank"); 23 nsCOMPtr<nsIURI> aboutConfig; 24 NS_NewURI(getter_AddRefs(aboutConfig), "about:config"); 25 nsCOMPtr<nsIURI> example_com; 26 NS_NewURI(getter_AddRefs(example_com), "https://example.com"); 27 nsCOMPtr<nsIURI> example_com_with_path; 28 NS_NewURI(getter_AddRefs(example_com_with_path), 29 "https://example.com/test/1/2/3"); 30 nsCOMPtr<nsIURI> nullURI = nullptr; 31 32 ASSERT_TRUE(nsScriptSecurityManager::IsHttpOrHttpsAndCrossOrigin(uriA, uriB)); 33 ASSERT_TRUE( 34 nsScriptSecurityManager::IsHttpOrHttpsAndCrossOrigin(uriB, uriB_http)); 35 36 ASSERT_FALSE(nsScriptSecurityManager::IsHttpOrHttpsAndCrossOrigin( 37 aboutBlank, aboutConfig)); 38 ASSERT_FALSE(nsScriptSecurityManager::IsHttpOrHttpsAndCrossOrigin( 39 aboutBlank, aboutBlank)); 40 ASSERT_FALSE( 41 nsScriptSecurityManager::IsHttpOrHttpsAndCrossOrigin(uriB, aboutConfig)); 42 ASSERT_FALSE(nsScriptSecurityManager::IsHttpOrHttpsAndCrossOrigin( 43 example_com, example_com_with_path)); 44 ASSERT_FALSE( 45 nsScriptSecurityManager::IsHttpOrHttpsAndCrossOrigin(uriB_http, nullURI)); 46 ASSERT_FALSE( 47 nsScriptSecurityManager::IsHttpOrHttpsAndCrossOrigin(nullURI, uriB_http)); 48 } 49 50 } // namespace mozilla