Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 // Copyright (c) 2014 The Chromium Authors. All rights reserved. | |
| 2 // Use of this source code is governed by a BSD-style license that can be | |
| 3 // found in the LICENSE file. | |
| 4 | |
| 5 #include "config.h" | |
|
tkent
2014/08/21 00:53:33
The main header file for this file is ExternalPopu
spartha
2014/08/21 10:05:44
Done.
| |
| 6 | |
| 7 #include "platform/PopupMenu.h" | |
| 8 | |
| 9 #include "platform/PopupMenuClient.h" | |
| 10 #include "public/web/WebPopupMenuInfo.h" | |
| 11 #include "web/ExternalPopupMenu.h" | |
| 12 #include <gtest/gtest.h> | |
| 13 | |
| 14 using namespace blink; | |
|
tkent
2014/08/21 00:53:33
See #4 of http://www.chromium.org/blink/coding-sty
spartha
2014/08/21 10:05:44
I have changed the namespace usage pattern. Most o
| |
| 15 | |
| 16 namespace { | |
| 17 | |
| 18 const size_t kListSize = 7; | |
| 19 | |
| 20 class TestPopupMenuClient : public PopupMenuClient { | |
| 21 public: | |
| 22 TestPopupMenuClient() : m_listSize(0) { } | |
| 23 virtual ~TestPopupMenuClient() { } | |
| 24 | |
| 25 virtual void valueChanged(unsigned listIndex, bool fireEvents = true) OVERRI DE { } | |
| 26 virtual void selectionChanged(unsigned listIndex, bool fireEvents = true) OV ERRIDE { } | |
| 27 virtual void selectionCleared() OVERRIDE { } | |
| 28 | |
| 29 virtual String itemText(unsigned listIndex) const OVERRIDE { return emptyStr ing(); } | |
| 30 virtual String itemToolTip(unsigned listIndex) const OVERRIDE { return empty String(); } | |
| 31 virtual String itemAccessibilityText(unsigned listIndex) const OVERRIDE { re turn emptyString(); } | |
| 32 virtual bool itemIsEnabled(unsigned listIndex) const OVERRIDE { return true; } | |
| 33 virtual PopupMenuStyle itemStyle(unsigned listIndex) const OVERRIDE | |
| 34 { | |
| 35 FontDescription fontDescription; | |
| 36 fontDescription.setComputedSize(12.0); | |
| 37 Font font(fontDescription); | |
| 38 font.update(nullptr); | |
| 39 bool displayNone = m_displayNoneIndexSet.find(listIndex) != m_displayNon eIndexSet.end(); | |
| 40 return PopupMenuStyle(Color::black, Color::white, font, true, displayNon e, Length(), TextDirection(), false /* has text direction override */); | |
| 41 } | |
| 42 virtual PopupMenuStyle menuStyle() const OVERRIDE { return itemStyle(0); } | |
| 43 virtual LayoutUnit clientPaddingLeft() const OVERRIDE { return 0; } | |
| 44 virtual LayoutUnit clientPaddingRight() const OVERRIDE { return 0; } | |
| 45 virtual int listSize() const OVERRIDE { return m_listSize; } | |
| 46 virtual int selectedIndex() const OVERRIDE { return 0; } | |
| 47 virtual void popupDidHide() OVERRIDE { } | |
| 48 virtual bool itemIsSeparator(unsigned listIndex) const OVERRIDE { return fal se;} | |
| 49 virtual bool itemIsLabel(unsigned listIndex) const OVERRIDE { return false; } | |
| 50 virtual bool itemIsSelected(unsigned listIndex) const OVERRIDE { return list Index == 0;} | |
| 51 virtual void setTextFromItem(unsigned listIndex) OVERRIDE { } | |
| 52 virtual bool multiple() const OVERRIDE { return false; } | |
| 53 | |
| 54 void setListSize(size_t size) { m_listSize = size; } | |
| 55 void setDisplayNoneIndex(unsigned index) { m_displayNoneIndexSet.insert(inde x); } | |
| 56 private: | |
| 57 size_t m_listSize; | |
| 58 std::set<unsigned> m_displayNoneIndexSet; | |
| 59 }; | |
| 60 | |
| 61 } // namespace | |
| 62 | |
| 63 namespace blink { | |
| 64 | |
| 65 class ExternalPopupMenuDisplayNoneItemsTest : public testing::Test { | |
| 66 public: | |
| 67 ExternalPopupMenuDisplayNoneItemsTest() { } | |
| 68 | |
| 69 protected: | |
| 70 virtual void SetUp() OVERRIDE | |
| 71 { | |
| 72 m_popupMenuClient.setListSize(kListSize); | |
| 73 | |
| 74 // Set the 4th an 5th items to have "display: none" property | |
| 75 m_popupMenuClient.setDisplayNoneIndex(3); | |
| 76 m_popupMenuClient.setDisplayNoneIndex(4); | |
| 77 } | |
| 78 virtual void TearDown() OVERRIDE { } | |
|
tkent
2014/08/21 00:53:33
Remove this. It's unnecessary.
spartha
2014/08/21 10:05:44
Done.
| |
| 79 | |
| 80 TestPopupMenuClient m_popupMenuClient; | |
| 81 }; | |
| 82 | |
| 83 TEST_F(ExternalPopupMenuDisplayNoneItemsTest, PopupMenuInfoSizeTest) | |
| 84 { | |
| 85 WebPopupMenuInfo info; | |
| 86 ExternalPopupMenu::getPopupMenuInfo(&info, &m_popupMenuClient); | |
| 87 EXPECT_EQ(5U, info.items.size()); | |
| 88 } | |
| 89 | |
| 90 TEST_F(ExternalPopupMenuDisplayNoneItemsTest, IndexMappingTest) | |
| 91 { | |
| 92 // 6th indexed item in popupmenu would be the 4th item in ExternalPopupMenu, | |
| 93 // and vice-versa. | |
| 94 EXPECT_EQ(4, ExternalPopupMenu::toExternalPopupMenuItemIndex(6, &m_popupMenu Client)); | |
| 95 EXPECT_EQ(6, ExternalPopupMenu::toPopupMenuItemIndex(4, &m_popupMenuClient)) ; | |
| 96 | |
| 97 // Invalid index, methods should return -1. | |
| 98 EXPECT_EQ(-1, ExternalPopupMenu::toExternalPopupMenuItemIndex(8, &m_popupMen uClient)); | |
| 99 EXPECT_EQ(-1, ExternalPopupMenu::toPopupMenuItemIndex(8, &m_popupMenuClient) ); | |
| 100 } | |
| 101 | |
| 102 } // namespace blink | |
| OLD | NEW |