mirror of
https://github.com/panda3d/panda3d.git
synced 2026-02-21 22:59:11 -06:00
tests: add unit tests for DirectOptionMenu
This commit is contained in:
73
tests/gui/test_DirectOptionMenu.py
Normal file
73
tests/gui/test_DirectOptionMenu.py
Normal file
@@ -0,0 +1,73 @@
|
||||
from direct.gui.DirectOptionMenu import DirectOptionMenu
|
||||
import pytest
|
||||
|
||||
|
||||
def test_menu_destroy():
|
||||
menu = DirectOptionMenu(items=["item1", "item2"])
|
||||
menu.destroy()
|
||||
|
||||
|
||||
def test_showPopupMenu():
|
||||
menu = DirectOptionMenu()
|
||||
|
||||
# Showing an option menu without items will raise an exception
|
||||
with pytest.raises(Exception):
|
||||
menu.showPopupMenu()
|
||||
|
||||
menu["items"] = ["item1", "item2"]
|
||||
menu.showPopupMenu()
|
||||
assert not menu.popupMenu.isHidden()
|
||||
assert not menu.cancelFrame.isHidden()
|
||||
|
||||
menu.hidePopupMenu()
|
||||
assert menu.popupMenu.isHidden()
|
||||
assert menu.cancelFrame.isHidden()
|
||||
|
||||
|
||||
def test_index():
|
||||
menu = DirectOptionMenu(items=["item1", "item2"])
|
||||
assert menu.index("item1") == 0
|
||||
assert menu.index("item2") == 1
|
||||
|
||||
|
||||
def test_set_get():
|
||||
menu = DirectOptionMenu(items=["item1", "item2"])
|
||||
menu.set(1, False)
|
||||
assert menu.selectedIndex == 1
|
||||
assert menu.get() == "item2"
|
||||
assert menu["text"] == "item2"
|
||||
|
||||
|
||||
def test_initialitem():
|
||||
# initialitem by string
|
||||
menuByStr = DirectOptionMenu(items=["item1", "item2"], initialitem="item2")
|
||||
assert menuByStr.get() == "item2"
|
||||
assert menuByStr["text"] == "item2"
|
||||
|
||||
# initialitem by Index
|
||||
menuByIdx = DirectOptionMenu(items=["item1", "item2"], initialitem=1)
|
||||
assert menuByIdx.get() == "item2"
|
||||
assert menuByIdx["text"] == "item2"
|
||||
|
||||
|
||||
def test_item_text_scale():
|
||||
highlightScale = (2, 2)
|
||||
unhighlightScale = (0.5, 0.5)
|
||||
menu = DirectOptionMenu(
|
||||
items=["item1", "item2"],
|
||||
item_text_scale=unhighlightScale,
|
||||
highlightScale=highlightScale)
|
||||
|
||||
# initial scale
|
||||
item = menu.component("item0")
|
||||
|
||||
item_text_scale = 0.8
|
||||
assert item["text_scale"] == unhighlightScale
|
||||
|
||||
# highlight scale
|
||||
menu._highlightItem(item, 0)
|
||||
assert item["text_scale"] == highlightScale
|
||||
|
||||
# back to initial scale
|
||||
menu._unhighlightItem(item, item["frameColor"])
|
||||
assert item["text_scale"] == unhighlightScale
|
||||
Reference in New Issue
Block a user