| Index: third_party/WebKit/Source/core/origin_trials/DocumentOriginTrialContextTest.cpp
|
| diff --git a/third_party/WebKit/Source/core/origin_trials/DocumentOriginTrialContextTest.cpp b/third_party/WebKit/Source/core/origin_trials/DocumentOriginTrialContextTest.cpp
|
| index 1c6b231da903fda202aeab81209f183c1ec034b3..f647371648f66b6ed908c2a955a4c6e030bb332f 100644
|
| --- a/third_party/WebKit/Source/core/origin_trials/DocumentOriginTrialContextTest.cpp
|
| +++ b/third_party/WebKit/Source/core/origin_trials/DocumentOriginTrialContextTest.cpp
|
| @@ -11,6 +11,7 @@
|
| #include "core/html/HTMLDocument.h"
|
| #include "core/html/HTMLHeadElement.h"
|
| #include "core/html/HTMLMetaElement.h"
|
| +#include "core/origin_trials/OriginTrials.h"
|
| #include "core/testing/DummyPageHolder.h"
|
| #include "platform/weborigin/KURL.h"
|
| #include "platform/weborigin/SecurityOrigin.h"
|
| @@ -45,17 +46,6 @@ protected:
|
| m_pageHolder.clear();
|
| }
|
|
|
| - void SetUp() override
|
| - {
|
| - setInnerHTML(
|
| - "<html>"
|
| - "<head>"
|
| - "</head>"
|
| - "<body>"
|
| - "</body>"
|
| - "</html>");
|
| - }
|
| -
|
| Document& document() { return m_pageHolder->document(); }
|
|
|
| void setPageOrigin(const String& origin)
|
| @@ -68,10 +58,11 @@ protected:
|
| void setInnerHTML(const char* htmlContent)
|
| {
|
| document().documentElement()->setInnerHTML(String::fromUTF8(htmlContent), ASSERT_NO_EXCEPTION);
|
| + OriginTrials::from(&document())->resetOriginTrialsForTesting();
|
| document().view()->updateAllLifecyclePhases();
|
| }
|
|
|
| - void addTrialToken(const AtomicString& token)
|
| + void addXSSToken(const AtomicString& token)
|
| {
|
| HTMLElement* head = document().head();
|
| ASSERT_TRUE(head);
|
| @@ -82,6 +73,34 @@ protected:
|
| head->appendChild(meta.release());
|
| }
|
|
|
| + void addPreScriptToken(const AtomicString& token)
|
| + {
|
| + m_preScriptTokens.append(token);
|
| + }
|
| +
|
| + void addPostScriptToken(const AtomicString& token)
|
| + {
|
| + m_postScriptTokens.append(token);
|
| + }
|
| +
|
| + void addPostHeadToken(const AtomicString& token)
|
| + {
|
| + m_postHeadTokens.append(token);
|
| + }
|
| +
|
| + void resetDocument()
|
| + {
|
| + String preScriptHTML, postScriptHTML, postHeadHTML;
|
| + for (const String& token : m_preScriptTokens)
|
| + preScriptHTML.append(String::format("<meta http-equiv=\"%s\" content=\"%s\">", OriginTrialContext::kTrialHeaderName, token.utf8().data()));
|
| + for (const String& token : m_postScriptTokens)
|
| + postScriptHTML.append(String::format("<meta http-equiv=\"%s\" content=\"%s\">", OriginTrialContext::kTrialHeaderName, token.utf8().data()));
|
| + for (const String& token : m_postHeadTokens)
|
| + postHeadHTML.append(String::format("<meta http-equiv=\"%s\" content=\"%s\">", OriginTrialContext::kTrialHeaderName, token.utf8().data()));
|
| + String documentHTML = String::format("<html><head>%s<script></script>%s</head><body>%s</body></html>", preScriptHTML.utf8().data(), postScriptHTML.utf8().data(), postHeadHTML.utf8().data());
|
| + setInnerHTML(documentHTML.utf8().data());
|
| + }
|
| +
|
| Vector<String> getTokens()
|
| {
|
| return document().createOriginTrialContext()->getTokens();
|
| @@ -90,18 +109,35 @@ protected:
|
| private:
|
| OwnPtr<DummyPageHolder> m_pageHolder;
|
| const bool m_frameworkWasEnabled;
|
| + Vector<String> m_preScriptTokens;
|
| + Vector<String> m_postScriptTokens;
|
| + Vector<String> m_postHeadTokens;
|
| };
|
|
|
| TEST_F(DocumentOriginTrialContextTest, DetectsZeroTokens)
|
| {
|
| String errorMessage;
|
| + setInnerHTML(
|
| + "<html>"
|
| + "<head>"
|
| + "</head>"
|
| + "<body>"
|
| + "</body>"
|
| + "</html>");
|
| Vector<String> tokens = getTokens();
|
| EXPECT_EQ(0UL, tokens.size());
|
| }
|
|
|
| TEST_F(DocumentOriginTrialContextTest, ExtractsSingleToken)
|
| {
|
| - addTrialToken(kGoodTrialToken);
|
| + setInnerHTML(String::format(
|
| + "<html>"
|
| + "<head>"
|
| + "<meta http-equiv=\"%s\" content=\"%s\">"
|
| + "</head>"
|
| + "<body>"
|
| + "</body>"
|
| + "</html>", OriginTrialContext::kTrialHeaderName, kGoodTrialToken).utf8().data());
|
| Vector<String> tokens = getTokens();
|
| EXPECT_EQ(1UL, tokens.size());
|
| EXPECT_EQ(kGoodTrialToken, tokens[0]);
|
| @@ -109,8 +145,16 @@ TEST_F(DocumentOriginTrialContextTest, ExtractsSingleToken)
|
|
|
| TEST_F(DocumentOriginTrialContextTest, ExtractsAllTokens)
|
| {
|
| - addTrialToken(kGoodTrialToken);
|
| - addTrialToken(kAnotherTrialToken);
|
| + setInnerHTML(String::format(
|
| + "<html>"
|
| + "<head>"
|
| + "<meta http-equiv=\"%s\" content=\"%s\">"
|
| + "<meta http-equiv=\"%s\" content=\"%s\">"
|
| + "</head>"
|
| + "<body>"
|
| + "</body>"
|
| + "</html>", OriginTrialContext::kTrialHeaderName, kGoodTrialToken,
|
| + OriginTrialContext::kTrialHeaderName, kAnotherTrialToken).utf8().data());
|
| EXPECT_THAT(getTokens(), UnorderedElementsAre(kGoodTrialToken, kAnotherTrialToken));
|
| }
|
|
|
|
|