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 "core/html/HTMLIFrameElement.h" | 5 #include "core/html/HTMLIFrameElement.h" |
6 | 6 |
7 #include "core/dom/Document.h" | 7 #include "core/dom/Document.h" |
8 #include "testing/gtest/include/gtest/gtest.h" | 8 #include "testing/gtest/include/gtest/gtest.h" |
9 | 9 |
10 namespace blink { | 10 namespace blink { |
11 | 11 |
12 // Test setting via the Element attribute (HTML codepath). | 12 // Test setting permission via the Element attribute (HTML codepath). |
13 TEST(HTMLIFrameElementTest, SetPermissionsAttribute) { | 13 TEST(HTMLIFrameElementTest, SetPermissionsAttribute) { |
14 Document* document = Document::create(); | 14 Document* document = Document::create(); |
15 HTMLIFrameElement* iframe = HTMLIFrameElement::create(*document); | 15 HTMLIFrameElement* iframe = HTMLIFrameElement::create(*document); |
16 | 16 |
17 iframe->setAttribute(HTMLNames::permissionsAttr, "geolocation"); | 17 iframe->setAttribute(HTMLNames::permissionsAttr, "geolocation"); |
18 EXPECT_EQ("geolocation", iframe->permissions()->value()); | 18 EXPECT_EQ("geolocation", iframe->permissions()->value()); |
19 iframe->setAttribute(HTMLNames::permissionsAttr, "geolocation notifications"); | 19 iframe->setAttribute(HTMLNames::permissionsAttr, "geolocation notifications"); |
20 EXPECT_EQ("geolocation notifications", iframe->permissions()->value()); | 20 EXPECT_EQ("geolocation notifications", iframe->permissions()->value()); |
21 } | 21 } |
22 | 22 |
23 // Test setting via the DOMTokenList (JS codepath). | 23 // Test setting permission via the DOMTokenList (JS codepath). |
24 TEST(HTMLIFrameElementTest, SetPermissionsAttributeJS) { | 24 TEST(HTMLIFrameElementTest, SetPermissionsAttributeJS) { |
25 Document* document = Document::create(); | 25 Document* document = Document::create(); |
26 HTMLIFrameElement* iframe = HTMLIFrameElement::create(*document); | 26 HTMLIFrameElement* iframe = HTMLIFrameElement::create(*document); |
27 | 27 |
28 iframe->permissions()->setValue("midi"); | 28 iframe->permissions()->setValue("midi"); |
29 EXPECT_EQ("midi", iframe->getAttribute(HTMLNames::permissionsAttr)); | 29 EXPECT_EQ("midi", iframe->getAttribute(HTMLNames::permissionsAttr)); |
30 } | 30 } |
31 | 31 |
| 32 // Test setting feature policy via the Element attribute (HTML codepath). |
| 33 TEST(HTMLIFrameElementTest, SetAllowAttribute) { |
| 34 Document* document = Document::create(); |
| 35 HTMLIFrameElement* iframe = HTMLIFrameElement::create(*document); |
| 36 |
| 37 iframe->setAttribute(HTMLNames::allowAttr, "fullscreen"); |
| 38 EXPECT_EQ("fullscreen", iframe->allow()->value()); |
| 39 iframe->setAttribute(HTMLNames::allowAttr, "fullscreen vibrate"); |
| 40 EXPECT_EQ("fullscreen vibrate", iframe->allow()->value()); |
| 41 } |
| 42 |
| 43 // Test setting feature policy via the DOMTokenList (JS codepath). |
| 44 TEST(HTMLIFrameElementTest, SetAllowAttributeJS) { |
| 45 Document* document = Document::create(); |
| 46 HTMLIFrameElement* iframe = HTMLIFrameElement::create(*document); |
| 47 |
| 48 iframe->allow()->setValue("fullscreen"); |
| 49 EXPECT_EQ("fullscreen", iframe->getAttribute(HTMLNames::allowAttr)); |
| 50 } |
| 51 |
32 } // namespace blink | 52 } // namespace blink |
OLD | NEW |