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 |