本文整理汇总了C++中Member::allowStyleFromSource方法的典型用法代码示例。如果您正苦于以下问题:C++ Member::allowStyleFromSource方法的具体用法?C++ Member::allowStyleFromSource怎么用?C++ Member::allowStyleFromSource使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Member
的用法示例。
在下文中一共展示了Member::allowStyleFromSource方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: KURL
TEST_F(CSPDirectiveListTest, AllowFromSourceWithNonce)
{
struct TestCase {
const char* list;
const char* url;
const char* nonce;
bool expected;
} cases[] = {
// Doesn't affect lists without nonces:
{ "https://example.com", "https://example.com/file", "yay", true },
{ "https://example.com", "https://example.com/file", "boo", true },
{ "https://example.com", "https://example.com/file", "", true },
{ "https://example.com", "https://not.example.com/file", "yay", false },
{ "https://example.com", "https://not.example.com/file", "boo", false },
{ "https://example.com", "https://not.example.com/file", "", false },
// Doesn't affect URLs that match the whitelist.
{ "https://example.com 'nonce-yay'", "https://example.com/file", "yay", true },
{ "https://example.com 'nonce-yay'", "https://example.com/file", "boo", true },
{ "https://example.com 'nonce-yay'", "https://example.com/file", "", true },
// Does affect URLs that don't.
{ "https://example.com 'nonce-yay'", "https://not.example.com/file", "yay", true },
{ "https://example.com 'nonce-yay'", "https://not.example.com/file", "boo", false },
{ "https://example.com 'nonce-yay'", "https://not.example.com/file", "", false },
};
for (const auto& test : cases) {
SCOPED_TRACE(testing::Message() << "List: `" << test.list << "`, URL: `" << test.url << "`");
KURL resource = KURL(KURL(), test.url);
// Report-only 'script-src'
Member<CSPDirectiveList> directiveList = createList(String("script-src ") + test.list, ContentSecurityPolicyHeaderTypeReport);
EXPECT_EQ(test.expected, directiveList->allowScriptFromSource(resource, String(test.nonce), ResourceRequest::RedirectStatus::NoRedirect, ContentSecurityPolicy::SuppressReport));
// Enforce 'script-src'
directiveList = createList(String("script-src ") + test.list, ContentSecurityPolicyHeaderTypeEnforce);
EXPECT_EQ(test.expected, directiveList->allowScriptFromSource(resource, String(test.nonce), ResourceRequest::RedirectStatus::NoRedirect, ContentSecurityPolicy::SuppressReport));
// Report-only 'style-src'
directiveList = createList(String("style-src ") + test.list, ContentSecurityPolicyHeaderTypeReport);
EXPECT_EQ(test.expected, directiveList->allowStyleFromSource(resource, String(test.nonce), ResourceRequest::RedirectStatus::NoRedirect, ContentSecurityPolicy::SuppressReport));
// Enforce 'style-src'
directiveList = createList(String("style-src ") + test.list, ContentSecurityPolicyHeaderTypeEnforce);
EXPECT_EQ(test.expected, directiveList->allowStyleFromSource(resource, String(test.nonce), ResourceRequest::RedirectStatus::NoRedirect, ContentSecurityPolicy::SuppressReport));
// Report-only 'style-src'
directiveList = createList(String("default-src ") + test.list, ContentSecurityPolicyHeaderTypeReport);
EXPECT_EQ(test.expected, directiveList->allowScriptFromSource(resource, String(test.nonce), ResourceRequest::RedirectStatus::NoRedirect, ContentSecurityPolicy::SuppressReport));
EXPECT_EQ(test.expected, directiveList->allowStyleFromSource(resource, String(test.nonce), ResourceRequest::RedirectStatus::NoRedirect, ContentSecurityPolicy::SuppressReport));
// Enforce 'style-src'
directiveList = createList(String("default-src ") + test.list, ContentSecurityPolicyHeaderTypeEnforce);
EXPECT_EQ(test.expected, directiveList->allowScriptFromSource(resource, String(test.nonce), ResourceRequest::RedirectStatus::NoRedirect, ContentSecurityPolicy::SuppressReport));
EXPECT_EQ(test.expected, directiveList->allowStyleFromSource(resource, String(test.nonce), ResourceRequest::RedirectStatus::NoRedirect, ContentSecurityPolicy::SuppressReport));
}
}