Chromium Code Reviews| Index: content/renderer/external_popup_menu_browsertest.cc |
| diff --git a/content/renderer/external_popup_menu_browsertest.cc b/content/renderer/external_popup_menu_browsertest.cc |
| index a0a6a90c8f373354d170c5fe6757df2a4dcba85d..ba0b6d9cd099159a2a84f3d6b3afc1802ed4366b 100644 |
| --- a/content/renderer/external_popup_menu_browsertest.cc |
| +++ b/content/renderer/external_popup_menu_browsertest.cc |
| @@ -145,4 +145,54 @@ TEST_F(ExternalPopupMenuRemoveTest, RemoveOnChange) { |
| EXPECT_FALSE(SimulateElementClick(kSelectID)); |
| } |
| +class ExternalPopupMenuDisplayNoneTest : public RenderViewTest { |
| + public: |
| + ExternalPopupMenuDisplayNoneTest() {} |
| + RenderViewImpl* view() { |
| + return static_cast<RenderViewImpl*>(view_); |
| + } |
| + |
| + virtual void SetUp() { |
| + |
| + RenderViewTest::SetUp(); |
| + // We need to set this explictly as RenderMain is not run. |
| + blink::WebView::setUseExternalPopupMenus(true); |
| + |
| + std::string html = "<select id='mySelect'>" |
| + " <option value='zero'>zero</option>" |
| + " <optgroup label='hide' style='display: none'>" |
| + " <option value='one'>one</option>" |
| + " </optgroup>" |
| + " <option value='two'>two</option>" |
| + " <option value='three'>three</option>" |
| + " <option value='four'>four</option>" |
| + " <option value='five'>five</option>" |
| + "</select>"; |
| + // Load the test page. |
| + LoadHTML(html.c_str()); |
| + |
| + // Set a minimum size and give focus so simulated events work. |
| + view()->webwidget()->resize(blink::WebSize(500, 500)); |
| + view()->webwidget()->setFocus(true); |
| + } |
| + |
| + std::string GetSelectedValue() { |
| + base::string16 script(base::ASCIIToUTF16(kSelectID)); |
| + script.append(base::ASCIIToUTF16(".value")); |
|
keishi
2014/08/06 03:10:55
Maybe if you used selectedIndex, you won't need to
spartha
2014/08/06 05:29:32
Since we are skipping an item because of "display:
keishi
2014/08/06 06:43:27
I'm not sure.
After calling "view()->OnSelectPopup
spartha
2014/08/06 11:09:40
Done.
|
| + std::string value; |
| + ExecuteJavaScriptAndReturnStringValue(script, value); |
| + return value; |
| + } |
| +}; |
| + |
| +TEST_F(ExternalPopupMenuDisplayNoneTest, SelectItem) { |
| + // Click the text field once to show the popup. |
| + EXPECT_TRUE(SimulateElementClick(kSelectID)); |
| + |
| + // Select index 1 item. This should select item with value 'two'. |
| + view()->OnSelectPopupMenuItem(1); |
| + |
| + EXPECT_EQ("two",GetSelectedValue()); |
| +} |
| + |
| } // namespace content |