blob: 83dc24d4f48a6e538e65d210a3598fbe559d9ceb [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "config.h"
#include "core/loader/MixedContentChecker.h"
#include "platform/weborigin/KURL.h"
#include "platform/weborigin/SecurityOrigin.h"
#include "wtf/RefPtr.h"
#include <base/macros.h>
#include <gtest/gtest.h>
namespace WebCore {
TEST(MixedContentCheckerTest, IsMixedContent)
{
struct TestCase {
const char* origin;
const char* target;
bool expectation;
} cases[] = {
{"http://example.com/foo", "http://example.com/foo", false},
{"http://example.com/foo", "https://example.com/foo", false},
{"https://example.com/foo", "https://example.com/foo", false},
{"https://example.com/foo", "wss://example.com/foo", false},
{"https://example.com/foo", "http://example.com/foo", true},
{"https://example.com/foo", "http://google.com/foo", true},
{"https://example.com/foo", "ws://example.com/foo", true},
{"https://example.com/foo", "ws://google.com/foo", true},
};
for (size_t i = 0; i < ARRAYSIZE_UNSAFE(cases); ++i) {
const char* origin = cases[i].origin;
const char* target = cases[i].target;
bool expectation = cases[i].expectation;
KURL originUrl(KURL(), origin);
RefPtr<SecurityOrigin> securityOrigin(SecurityOrigin::create(originUrl));
KURL targetUrl(KURL(), target);
EXPECT_EQ(expectation, MixedContentChecker::isMixedContent(securityOrigin.get(), targetUrl)) << "Origin: " << origin << ", Target: " << target << ", Expectation: " << expectation;
}
}
} // namespace WebCore