OLD | NEW |
---|---|
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "platform/feature_policy/FeaturePolicy.h" | 5 #include "platform/feature_policy/FeaturePolicy.h" |
6 | 6 |
7 #include "platform/RuntimeEnabledFeatures.h" | 7 #include "platform/RuntimeEnabledFeatures.h" |
8 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
9 | 9 |
10 // Origin strings used for tests | 10 // Origin strings used for tests |
(...skipping 657 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
668 // | +-------------------------------------------+ | | 668 // | +-------------------------------------------+ | |
669 // | |(2) Origin B | | | 669 // | |(2) Origin B | | |
670 // | |Policy: {"default-self": ["*"], | | | 670 // | |Policy: {"default-self": ["*"], | | |
671 // | | "default-on": ["*"]} | | | 671 // | | "default-on": ["*"]} | | |
672 // | | +-------------+ | | | 672 // | | +-------------+ | | |
673 // | | |(3)Origin C | | | | 673 // | | |(3)Origin C | | | |
674 // | | |No Policy | | | | 674 // | | |No Policy | | | |
675 // | | +-------------+ | | | 675 // | | +-------------+ | | |
676 // | +-------------------------------------------+ | | 676 // | +-------------------------------------------+ | |
677 // +-----------------------------------------------+ | 677 // +-----------------------------------------------+ |
678 // Vibrate feature should be enabled in all frames; Docwrite feature | 678 // Default-self feature should be enabled in all frames; Default-on feature |
679 // should be enabled in frame 1, and disabled in frames 2 and 3. | 679 // should be enabled in frame 1, and disabled in frames 2 and 3. |
680 Vector<String> messages; | 680 Vector<String> messages; |
681 std::unique_ptr<FeaturePolicy> policy1 = | 681 std::unique_ptr<FeaturePolicy> policy1 = |
682 createFromParentPolicy(nullptr, m_originA); | 682 createFromParentPolicy(nullptr, m_originA); |
683 policy1->setHeaderPolicy("{\"default-self\": [\"self\", \"" ORIGIN_B | 683 policy1->setHeaderPolicy("{\"default-self\": [\"self\", \"" ORIGIN_B |
684 "\"], \"default-on\": [\"self\"]}", | 684 "\"], \"default-on\": [\"self\"]}", |
685 messages); | 685 messages); |
686 EXPECT_EQ(0UL, messages.size()); | 686 EXPECT_EQ(0UL, messages.size()); |
687 std::unique_ptr<FeaturePolicy> policy2 = | 687 std::unique_ptr<FeaturePolicy> policy2 = |
688 createFromParentPolicy(policy1.get(), m_originB); | 688 createFromParentPolicy(policy1.get(), m_originB); |
689 policy2->setHeaderPolicy( | 689 policy2->setHeaderPolicy( |
690 "{\"default-self\": [\"*\"], \"default-on\": [\"*\"]}", messages); | 690 "{\"default-self\": [\"*\"], \"default-on\": [\"*\"]}", messages); |
691 EXPECT_EQ(0UL, messages.size()); | 691 EXPECT_EQ(0UL, messages.size()); |
692 std::unique_ptr<FeaturePolicy> policy3 = | 692 std::unique_ptr<FeaturePolicy> policy3 = |
693 createFromParentPolicy(policy2.get(), m_originC); | 693 createFromParentPolicy(policy2.get(), m_originC); |
694 EXPECT_TRUE(policy1->isFeatureEnabled(kDefaultSelfFeature)); | 694 EXPECT_TRUE(policy1->isFeatureEnabled(kDefaultSelfFeature)); |
695 EXPECT_TRUE(policy1->isFeatureEnabled(kDefaultOnFeature)); | 695 EXPECT_TRUE(policy1->isFeatureEnabled(kDefaultOnFeature)); |
696 EXPECT_TRUE(policy2->isFeatureEnabled(kDefaultSelfFeature)); | 696 EXPECT_TRUE(policy2->isFeatureEnabled(kDefaultSelfFeature)); |
697 EXPECT_FALSE(policy2->isFeatureEnabled(kDefaultOnFeature)); | 697 EXPECT_FALSE(policy2->isFeatureEnabled(kDefaultOnFeature)); |
698 EXPECT_TRUE(policy3->isFeatureEnabled(kDefaultSelfFeature)); | 698 EXPECT_TRUE(policy3->isFeatureEnabled(kDefaultSelfFeature)); |
699 EXPECT_FALSE(policy3->isFeatureEnabled(kDefaultOnFeature)); | 699 EXPECT_FALSE(policy3->isFeatureEnabled(kDefaultOnFeature)); |
700 } | 700 } |
701 | 701 |
702 TEST_F(FeaturePolicyTest, TestFeatureEnabledForOrigin) { | |
raymes
2016/11/16 02:55:39
Hmm - is this not covered by other tests?
iclelland
2016/11/16 04:41:04
Only implicitly; feature policy inheritance would
raymes
2016/11/16 23:10:14
Ah ok that makes sense!
| |
703 // +-----------------------------------------------+ | |
704 // |(1) Origin A | | |
705 // |Policy: {"default-off": ["self", "Origin B"]} | | |
706 // +-----------------------------------------------+ | |
707 // Features should be enabled by the policy in frame 1 for origins A and B, | |
708 // and disabled for origin c. | |
raymes
2016/11/16 02:55:39
nit: C
raymes
2016/11/16 23:10:14
nit: C
iclelland
2016/11/17 04:13:32
Done.
| |
709 Vector<String> messages; | |
710 std::unique_ptr<FeaturePolicy> policy1 = | |
711 createFromParentPolicy(nullptr, m_originA); | |
712 policy1->setHeaderPolicy("{\"default-off\": [\"self\", \"" ORIGIN_B "\"]}", | |
713 messages); | |
714 EXPECT_EQ(0UL, messages.size()); | |
715 EXPECT_TRUE( | |
716 policy1->isFeatureEnabledForOrigin(kDefaultOffFeature, *m_originA)); | |
717 EXPECT_TRUE( | |
718 policy1->isFeatureEnabledForOrigin(kDefaultOffFeature, *m_originB)); | |
719 EXPECT_FALSE( | |
720 policy1->isFeatureEnabledForOrigin(kDefaultOffFeature, *m_originC)); | |
721 } | |
722 | |
702 } // namespace blink | 723 } // namespace blink |
OLD | NEW |