blob: c935ed0b8317123817ea74c0797cae9bf15c1f8c [file] [log] [blame]
// Copyright 2018 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 "third_party/blink/renderer/core/script/layered_api.h"
#include "testing/gtest/include/gtest/gtest.h"
namespace blink {
namespace layered_api {
namespace {
TEST(LayeredAPITest, ResolveFetchingURL) {
KURL base_url("https://example.com/base/path/");
EXPECT_EQ(ResolveFetchingURL(KURL("https://example.com/")),
KURL("https://example.com/"));
EXPECT_EQ(ResolveFetchingURL(KURL("std:blank")), KURL("std:blank"));
EXPECT_EQ(ResolveFetchingURL(KURL("std:none")), NullURL());
// Fallback syntax is currently disabled and rejected.
// https://crbug.com/864748
EXPECT_EQ(ResolveFetchingURL(KURL("std:blank|https://example.com/")),
NullURL());
}
TEST(LayeredAPITest, GetInternalURL) {
EXPECT_EQ(GetInternalURL(KURL("https://example.com/")), NullURL());
EXPECT_EQ(GetInternalURL(KURL("std:blank")),
KURL("std-internal://blank/index.js"));
EXPECT_EQ(GetInternalURL(KURL("std-internal://blank/index.js")),
KURL("std-internal://blank/index.js"));
EXPECT_EQ(GetInternalURL(KURL("std-internal://blank/foo/bar.js")),
KURL("std-internal://blank/foo/bar.js"));
}
TEST(LayeredAPITest, InternalURLRelativeResolution) {
EXPECT_EQ(KURL(KURL("std-internal://blank/index.js"), "./sub.js"),
KURL("std-internal://blank/sub.js"));
EXPECT_EQ(KURL(KURL("std-internal://blank/index.js"), "/sub.js"),
KURL("std-internal://blank/sub.js"));
EXPECT_EQ(KURL(KURL("std-internal://blank/index.js"), "./foo/bar.js"),
KURL("std-internal://blank/foo/bar.js"));
EXPECT_EQ(KURL(KURL("std-internal://blank/foo/bar.js"), "../baz.js"),
KURL("std-internal://blank/baz.js"));
}
TEST(LayeredAPITest, GetSourceText) {
EXPECT_EQ(GetSourceText(KURL("std-internal://blank/index.js")), String(""));
EXPECT_EQ(GetSourceText(KURL("std-internal://blank/not-found.js")), String());
EXPECT_EQ(GetSourceText(KURL("std-internal://none/index.js")), String());
EXPECT_EQ(GetSourceText(KURL("https://example.com/")), String());
}
} // namespace
} // namespace layered_api
} // namespace blink