1// Copyright 2014 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5#include "config.h" 6#include "core/loader/MixedContentChecker.h" 7 8#include "platform/weborigin/KURL.h" 9#include "platform/weborigin/SecurityOrigin.h" 10#include "wtf/RefPtr.h" 11 12#include <base/macros.h> 13#include <gtest/gtest.h> 14 15namespace blink { 16 17TEST(MixedContentCheckerTest, IsMixedContent) 18{ 19 struct TestCase { 20 const char* origin; 21 const char* target; 22 bool expectation; 23 } cases[] = { 24 {"http://example.com/foo", "http://example.com/foo", false}, 25 {"http://example.com/foo", "https://example.com/foo", false}, 26 {"https://example.com/foo", "https://example.com/foo", false}, 27 {"https://example.com/foo", "wss://example.com/foo", false}, 28 {"https://example.com/foo", "http://example.com/foo", true}, 29 {"https://example.com/foo", "http://google.com/foo", true}, 30 {"https://example.com/foo", "ws://example.com/foo", true}, 31 {"https://example.com/foo", "ws://google.com/foo", true}, 32 }; 33 34 for (size_t i = 0; i < ARRAYSIZE_UNSAFE(cases); ++i) { 35 const char* origin = cases[i].origin; 36 const char* target = cases[i].target; 37 bool expectation = cases[i].expectation; 38 39 KURL originUrl(KURL(), origin); 40 RefPtr<SecurityOrigin> securityOrigin(SecurityOrigin::create(originUrl)); 41 KURL targetUrl(KURL(), target); 42 EXPECT_EQ(expectation, MixedContentChecker::isMixedContent(securityOrigin.get(), targetUrl)) << "Origin: " << origin << ", Target: " << target << ", Expectation: " << expectation; 43 } 44} 45 46} // namespace blink 47