OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "config.h" | 5 #include "config.h" |
6 #include "core/page/ContextMenuController.h" | 6 #include "core/page/ContextMenuController.h" |
7 | 7 |
8 #include "core/clipboard/DataTransfer.h" | 8 #include "core/clipboard/DataTransfer.h" |
9 #include "core/events/MouseEvent.h" | 9 #include "core/events/MouseEvent.h" |
10 #include "core/frame/FrameView.h" | 10 #include "core/frame/FrameView.h" |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
47 "<menuitem label=\"Item2\" onclick='document.title = \"Title 2\";'>" | 47 "<menuitem label=\"Item2\" onclick='document.title = \"Title 2\";'>" |
48 "<menuitem label=\"Item3\" onclick='document.title = \"Title 3\";'>" | 48 "<menuitem label=\"Item3\" onclick='document.title = \"Title 3\";'>" |
49 "<menu label='Submenu'>" | 49 "<menu label='Submenu'>" |
50 "<menuitem label=\"Item4\" onclick='document.title = \"Title 4\";'>" | 50 "<menuitem label=\"Item4\" onclick='document.title = \"Title 4\";'>" |
51 "<menuitem label=\"Item5\" onclick='document.title = \"Title 5\";'>" | 51 "<menuitem label=\"Item5\" onclick='document.title = \"Title 5\";'>" |
52 "<menuitem label=\"Item6\" onclick='document.title = \"Title 6\";'>" | 52 "<menuitem label=\"Item6\" onclick='document.title = \"Title 6\";'>" |
53 "</menu>" | 53 "</menu>" |
54 "<menuitem id=\"item7\" type=\"checkbox\" checked label=\"Item7\"" | 54 "<menuitem id=\"item7\" type=\"checkbox\" checked label=\"Item7\"" |
55 "onclick='if (document.getElementById(\"item7\").hasAttribute(\"checked\
"))" | 55 "onclick='if (document.getElementById(\"item7\").hasAttribute(\"checked\
"))" |
56 "document.title = \"Title 7 checked\"; else document.title = \"Title 7 n
ot checked\";'>" | 56 "document.title = \"Title 7 checked\"; else document.title = \"Title 7 n
ot checked\";'>" |
| 57 "<menuitem id=\"item8\" type=\"radio\" radiogroup=\"group\" label=\"Item
8\"" |
| 58 "onclick='if (document.getElementById(\"item8\").hasAttribute(\"checked\
"))" |
| 59 "document.title = \"Title 8 checked\"; else if (document.getElementById(
\"item9\").hasAttribute(\"checked\"))" |
| 60 "document.title = \"Title 8 not checked and Title 9 checked\";'>" |
| 61 "<menuitem id=\"item9\" type=\"radio\" radiogroup=\"group\" checked labe
l=\"Item9\"" |
| 62 "onclick='if (document.getElementById(\"item9\").hasAttribute(\"checked\
"))" |
| 63 "document.title = \"Title 9 checked\"; else document.title = \"Title 9 n
ot checked\";'>" |
| 64 "<menuitem id=\"item10\" type=\"radio\" radiogroup=\"group\" label=\"Ite
m10\"" |
| 65 "onclick='if (document.getElementById(\"item10\").hasAttribute(\"checked
\"))" |
| 66 "document.title = \"Title 10 checked\"; else if (document.getElementById
(\"item8\").hasAttribute(\"checked\"))" |
| 67 "document.title = \"Title 10 not checked and Title 8 checked\";'>" |
57 "</menu>" | 68 "</menu>" |
58 "</button>"); | 69 "</button>"); |
59 | 70 |
60 // Create right button click event and pass it to context menu controller. | 71 // Create right button click event and pass it to context menu controller. |
61 RefPtrWillBeRawPtr<Event> event = MouseEvent::create(EventTypeNames::click,
false, false, | 72 RefPtrWillBeRawPtr<Event> event = MouseEvent::create(EventTypeNames::click,
false, false, |
62 document().domWindow(), 50, 50, 0, 0, 0, 0, 0, false, false, false, fals
e, 1, 0, nullptr, nullptr); | 73 document().domWindow(), 50, 50, 0, 0, 0, 0, 0, false, false, false, fals
e, 1, 0, nullptr, nullptr); |
63 document().getElementById("button_id")->focus(); | 74 document().getElementById("button_id")->focus(); |
64 event->setTarget(document().getElementById("button_id")); | 75 event->setTarget(document().getElementById("button_id")); |
65 document().page()->contextMenuController().handleContextMenuEvent(event.get(
)); | 76 document().page()->contextMenuController().handleContextMenuEvent(event.get(
)); |
66 | 77 |
67 // Item 1 | 78 // Item 1 |
68 // Item 2 | 79 // Item 2 |
69 // Item 3 | 80 // Item 3 |
70 // Submenu > Item 4 | 81 // Submenu > Item 4 |
71 // Item 5 | 82 // Item 5 |
72 // Item 6 | 83 // Item 6 |
73 // *Item 7 | 84 // *Item 7 |
| 85 // Item 8 |
| 86 // *Item 9 |
| 87 // Item 10 |
74 const Vector<ContextMenuItem>& items = document().page()->contextMenuControl
ler().contextMenu()->items(); | 88 const Vector<ContextMenuItem>& items = document().page()->contextMenuControl
ler().contextMenu()->items(); |
75 EXPECT_EQ(5u, items.size()); | 89 EXPECT_EQ(8u, items.size()); |
76 EXPECT_EQ(ActionType, items[0].type()); | 90 EXPECT_EQ(ActionType, items[0].type()); |
77 EXPECT_STREQ("Item1", items[0].title().utf8().data()); | 91 EXPECT_STREQ("Item1", items[0].title().utf8().data()); |
78 document().page()->contextMenuController().contextMenuItemSelected(&items[0]
); | 92 document().page()->contextMenuController().contextMenuItemSelected(&items[0]
); |
79 EXPECT_STREQ("Title 1", document().title().utf8().data()); | 93 EXPECT_STREQ("Title 1", document().title().utf8().data()); |
80 EXPECT_EQ(SubmenuType, items[3].type()); | 94 EXPECT_EQ(SubmenuType, items[3].type()); |
81 EXPECT_STREQ("Submenu", items[3].title().utf8().data()); | 95 EXPECT_STREQ("Submenu", items[3].title().utf8().data()); |
82 const Vector<ContextMenuItem>& subMenuItems = items[3].subMenuItems(); | 96 const Vector<ContextMenuItem>& subMenuItems = items[3].subMenuItems(); |
83 EXPECT_EQ(3u, subMenuItems.size()); | 97 EXPECT_EQ(3u, subMenuItems.size()); |
84 EXPECT_STREQ("Item6", subMenuItems[2].title().utf8().data()); | 98 EXPECT_STREQ("Item6", subMenuItems[2].title().utf8().data()); |
85 document().page()->contextMenuController().contextMenuItemSelected(&subMenuI
tems[2]); | 99 document().page()->contextMenuController().contextMenuItemSelected(&subMenuI
tems[2]); |
86 EXPECT_STREQ("Title 6", document().title().utf8().data()); | 100 EXPECT_STREQ("Title 6", document().title().utf8().data()); |
87 document().page()->contextMenuController().contextMenuItemSelected(&items[4]
); | 101 document().page()->contextMenuController().contextMenuItemSelected(&items[4]
); |
88 EXPECT_STREQ("Title 7 checked", document().title().utf8().data()); | 102 EXPECT_STREQ("Title 7 checked", document().title().utf8().data()); |
89 document().page()->contextMenuController().contextMenuItemSelected(&items[4]
); | 103 document().page()->contextMenuController().contextMenuItemSelected(&items[4]
); |
90 EXPECT_STREQ("Title 7 not checked", document().title().utf8().data()); | 104 EXPECT_STREQ("Title 7 not checked", document().title().utf8().data()); |
| 105 document().page()->contextMenuController().contextMenuItemSelected(&items[5]
); |
| 106 EXPECT_STREQ("Title 8 not checked and Title 9 checked", document().title().u
tf8().data()); |
| 107 document().page()->contextMenuController().contextMenuItemSelected(&items[7]
); |
| 108 EXPECT_STREQ("Title 10 not checked and Title 8 checked", document().title().
utf8().data()); |
91 } | 109 } |
92 | 110 |
93 } | 111 } |
OLD | NEW |