Added draw tests for MenuBar, RangeSlider, Tabs and TextBox

This commit is contained in:
Bruno Van de Velde 2017-10-02 19:57:40 +02:00
parent d5c2bc18ef
commit 309cd144d6
29 changed files with 347 additions and 14 deletions

View File

@ -115,17 +115,20 @@ TEST_CASE("[MenuBar]")
menuBar->addMenu("Help");
menuBar->addMenuItem("About");
REQUIRE(menuBar->getMenus().size() == 3);
REQUIRE(menuBar->getMenus()["File"].size() == 2);
REQUIRE(menuBar->getMenus()["File"][0] == "Load");
REQUIRE(menuBar->getMenus()["File"][1] == "Save");
REQUIRE(menuBar->getMenus()["Edit"].size() == 4);
REQUIRE(menuBar->getMenus()["Edit"][0] == "Undo");
REQUIRE(menuBar->getMenus()["Edit"][1] == "Redo");
REQUIRE(menuBar->getMenus()["Edit"][2] == "Copy");
REQUIRE(menuBar->getMenus()["Edit"][3] == "Paste");
REQUIRE(menuBar->getMenus()["Help"].size() == 1);
REQUIRE(menuBar->getMenus()["Help"][0] == "About");
SECTION("Verify that menus were added")
{
REQUIRE(menuBar->getMenus().size() == 3);
REQUIRE(menuBar->getMenus()["File"].size() == 2);
REQUIRE(menuBar->getMenus()["File"][0] == "Load");
REQUIRE(menuBar->getMenus()["File"][1] == "Save");
REQUIRE(menuBar->getMenus()["Edit"].size() == 4);
REQUIRE(menuBar->getMenus()["Edit"][0] == "Undo");
REQUIRE(menuBar->getMenus()["Edit"][1] == "Redo");
REQUIRE(menuBar->getMenus()["Edit"][2] == "Copy");
REQUIRE(menuBar->getMenus()["Edit"][3] == "Paste");
REQUIRE(menuBar->getMenus()["Help"].size() == 1);
REQUIRE(menuBar->getMenus()["Help"][0] == "About");
}
SECTION("Adding menu items to older menu")
{
@ -161,6 +164,12 @@ TEST_CASE("[MenuBar]")
REQUIRE(menuBar->getMenus()["Edit"].size() == 4);
REQUIRE(menuBar->getMenus()["Help"].size() == 1);
}
SECTION("Removing all menus")
{
menuBar->removeAllMenus();
REQUIRE(menuBar->getMenus().empty());
}
}
SECTION("Invalid addMenuItem calls")
@ -184,7 +193,14 @@ TEST_CASE("[MenuBar]")
REQUIRE(menuBar->getMinimumSubMenuWidth() == 150);
}
// TODO: setInvertedMenuDirection
SECTION("InvertedMenuDirection")
{
REQUIRE(!menuBar->getInvertedMenuDirection());
menuBar->setInvertedMenuDirection(true);
REQUIRE(menuBar->getInvertedMenuDirection());
menuBar->setInvertedMenuDirection(false);
REQUIRE(!menuBar->getInvertedMenuDirection());
}
SECTION("Events / Signals")
{
@ -288,4 +304,45 @@ TEST_CASE("[MenuBar]")
testSavingWidget("MenuBar", menuBar);
}
SECTION("Draw")
{
TEST_DRAW_INIT(150, 70, menuBar)
menuBar->enable();
menuBar->setPosition(10, 5);
menuBar->setSize(130, 20);
menuBar->setTextSize(16);
menuBar->setMinimumSubMenuWidth(60);
menuBar->addMenu("File");
menuBar->addMenuItem("Quit");
menuBar->addMenu("Edit");
menuBar->addMenuItem("Undo");
menuBar->addMenuItem("Redo");
menuBar->addMenu("Help");
tgui::MenuBarRenderer renderer = tgui::RendererData::create();
renderer.setTextColor(sf::Color::Red);
renderer.setSelectedTextColor(sf::Color::Blue);
renderer.setBackgroundColor(sf::Color::Green);
renderer.setSelectedBackgroundColor(sf::Color::Yellow);
renderer.setDistanceToSide(3);
renderer.setOpacity(0.7f);
menuBar->setRenderer(renderer.getData());
TEST_DRAW("MenuBar.png")
sf::Vector2f mousePos = {52, 15};
menuBar->mouseMoved(mousePos);
menuBar->leftMousePressed(mousePos);
menuBar->leftMouseReleased(mousePos);
TEST_DRAW("MenuBar_MenuOpen.png")
mousePos = {52, 55};
menuBar->mouseMoved(mousePos);
TEST_DRAW("MenuBar_MenuHover.png")
}
}

View File

@ -292,4 +292,97 @@ TEST_CASE("[RangeSlider]")
testSavingWidget("RangeSlider", slider, false);
}
SECTION("Draw")
{
TEST_DRAW_INIT(120, 60, slider)
slider->enable();
slider->setPosition({10, 15});
slider->setSize({100, 30});
slider->setMinimum(1000);
slider->setMaximum(2000);
slider->setSelectionStart(1200);
slider->setSelectionEnd(1650);
tgui::RangeSliderRenderer renderer = tgui::RendererData::create();
renderer.setTrackColor(sf::Color::Green);
renderer.setThumbColor(sf::Color::Red);
renderer.setBorderColor(sf::Color::Blue);
renderer.setSelectedTrackColor(sf::Color::White);
renderer.setBorders({1, 2, 3, 4});
renderer.setOpacity(0.7f);
slider->setRenderer(renderer.getData());
auto setHoverRenderer = [&](bool textured){
renderer.setTrackColorHover(sf::Color::Cyan);
renderer.setThumbColorHover(sf::Color::Magenta);
renderer.setBorderColorHover(sf::Color::Yellow);
renderer.setSelectedTrackColorHover(sf::Color::Black);
if (textured)
{
renderer.setTextureTrackHover("resources/Texture3.png");
renderer.setTextureThumbHover("resources/Texture4.png");
}
};
const auto mousePos = slider->getPosition() + (slider->getSize() / 2.f);
SECTION("Colored")
{
SECTION("NormalState")
{
TEST_DRAW("RangeSlider_Normal_NormalSet.png")
SECTION("HoverSet")
{
setHoverRenderer(false);
TEST_DRAW("RangeSlider_Normal_HoverSet.png")
}
}
SECTION("HoverState")
{
slider->mouseMoved(mousePos);
TEST_DRAW("RangeSlider_Hover_NormalSet.png")
SECTION("HoverSet")
{
setHoverRenderer(false);
TEST_DRAW("RangeSlider_Hover_HoverSet.png")
}
}
}
SECTION("Textured")
{
renderer.setTextureTrack("resources/Texture1.png");
renderer.setTextureThumb("resources/Texture2.png");
SECTION("NormalState")
{
TEST_DRAW("RangeSlider_Normal_TextureNormalSet.png")
SECTION("HoverSet")
{
setHoverRenderer(true);
TEST_DRAW("RangeSlider_Normal_TextureHoverSet.png")
}
}
SECTION("HoverState")
{
slider->mouseMoved(mousePos);
TEST_DRAW("RangeSlider_Hover_TextureNormalSet.png")
SECTION("HoverSet")
{
setHoverRenderer(true);
TEST_DRAW("RangeSlider_Hover_TextureHoverSet.png")
}
}
}
}
}

View File

@ -155,4 +155,121 @@ TEST_CASE("[Tabs]")
testSavingWidget("Tabs", tabs);
}
SECTION("Draw")
{
TEST_DRAW_INIT(120, 40, tabs)
tabs->enable();
tabs->setPosition({10, 5});
tabs->setSize({100, 30});
tabs->add("1");
tabs->add("2");
tabs->add("3");
tgui::TabsRenderer renderer = tgui::RendererData::create();
renderer.setBackgroundColor(sf::Color::Green);
renderer.setSelectedBackgroundColor(sf::Color::Black);
renderer.setTextColor(sf::Color::Red);
renderer.setSelectedTextColor(sf::Color::White);
renderer.setBorderColor({235, 125, 0});
renderer.setBorders({1, 2, 3, 4});
renderer.setOpacity(0.7f);
tabs->setRenderer(renderer.getData());
auto setHoverRenderer = [&](bool textured){
renderer.setBackgroundColorHover(sf::Color::Cyan);
renderer.setSelectedBackgroundColorHover(sf::Color::Blue);
renderer.setTextColorHover(sf::Color::Magenta);
renderer.setSelectedTextColorHover(sf::Color::Yellow);
if (textured)
{
//renderer.setTextureTabHover("resources/Texture3.png");
//renderer.setTextureSelectedTabHover("resources/Texture4.png");
}
};
SECTION("Colored")
{
SECTION("NormalState")
{
TEST_DRAW("Tabs_Normal_NormalSet.png")
SECTION("HoverSet")
{
setHoverRenderer(false);
TEST_DRAW("Tabs_Normal_HoverSet.png")
}
}
SECTION("HoverState (mouse not over selected tab)")
{
tabs->mouseMoved(tabs->getPosition() + (tabs->getSize() / 2.f));
TEST_DRAW("Tabs_Hover_NormalSet.png")
SECTION("HoverSet")
{
setHoverRenderer(false);
TEST_DRAW("Tabs_Hover_HoverSet.png")
}
}
SECTION("HoverState (mouse on selected tab)")
{
tabs->mouseMoved(tabs->getPosition() + (tabs->getSize() * (2.f / 3.f)));
TEST_DRAW("Tabs_HoverSelected_NormalSet.png")
SECTION("HoverSet")
{
setHoverRenderer(false);
TEST_DRAW("Tabs_HoverSelected_HoverSet.png")
}
}
}
SECTION("Textured")
{
renderer.setTextureTab("resources/Texture1.png");
renderer.setTextureSelectedTab("resources/Texture2.png");
SECTION("NormalState")
{
TEST_DRAW("Tabs_Normal_TextureNormalSet.png")
SECTION("HoverSet")
{
setHoverRenderer(true);
TEST_DRAW("Tabs_Normal_TextureHoverSet.png")
}
}
SECTION("HoverState")
{
tabs->mouseMoved(tabs->getPosition() + (tabs->getSize() / 2.f));
TEST_DRAW("Tabs_Hover_TextureNormalSet.png")
SECTION("HoverSet")
{
setHoverRenderer(true);
TEST_DRAW("Tabs_Hover_TextureHoverSet.png")
}
}
SECTION("HoverState")
{
tabs->mouseMoved(tabs->getPosition() + (tabs->getSize() * (2.f / 3.f)));
TEST_DRAW("Tabs_HoverSelected_TextureNormalSet.png")
SECTION("HoverSet")
{
setHoverRenderer(true);
TEST_DRAW("Tabs_HoverSelected_TextureHoverSet.png")
}
}
}
}
}

View File

@ -150,8 +150,30 @@ TEST_CASE("[TextBox]")
REQUIRE(textBox->isVerticalScrollbarPresent() == true);
}
// TODO: setCaretPosition
// TODO: getLinesCount
SECTION("CaretPosition")
{
REQUIRE(textBox->getCaretPosition() == 0);
textBox->setText("Some\ntext");
REQUIRE(textBox->getCaretPosition() == 9);
textBox->setCaretPosition(7);
REQUIRE(textBox->getCaretPosition() == 7);
textBox->setCaretPosition(25);
REQUIRE(textBox->getCaretPosition() == 9);
}
SECTION("LinesCount")
{
REQUIRE(textBox->getLinesCount() == 1);
textBox->setText("Some text");
REQUIRE(textBox->getLinesCount() == 1);
textBox->setText("More\nthan\none\nline");
REQUIRE(textBox->getLinesCount() == 4);
}
SECTION("Events / Signals")
{
@ -267,6 +289,50 @@ TEST_CASE("[TextBox]")
testSavingWidget("TextBox", textBox);
}
SECTION("Draw")
{
TEST_DRAW_INIT(270, 160, textBox)
textBox->enable();
textBox->setPosition(10, 5);
textBox->setSize(250, 150);
textBox->setText("Something");
textBox->setTextSize(16);
textBox->setText("Cupcake ipsum dolor sit. Amet candy canes sesame snaps cupcake apple pie lemon drops jelly apple pie candy canes. Powder donut sugar plum croissant gingerbread sesame snaps pie. Caramels cupcake icing. Bear claw lemon drops carrot cake chocolate ice cream jelly beans gummi bears.");
tgui::TextBoxRenderer renderer = tgui::RendererData::create();
renderer.setBackgroundColor(sf::Color::Yellow);
renderer.setTextColor(sf::Color::Blue);
renderer.setSelectedTextColor(sf::Color::Red);
renderer.setSelectedTextBackgroundColor(sf::Color::Cyan);
renderer.setCaretColor(sf::Color::Green);
renderer.setBorderColor(sf::Color::Magenta);
renderer.setCaretWidth(1);
renderer.setBorders({1, 2, 3, 4});
renderer.setPadding({4, 3, 2, 1});
renderer.setOpacity(0.7f);
textBox->setRenderer(renderer.getData());
tgui::ScrollbarRenderer scrollbarRenderer = tgui::RendererData::create();
scrollbarRenderer.setTrackColor(sf::Color::Green);
scrollbarRenderer.setThumbColor(sf::Color::Red);
scrollbarRenderer.setArrowBackgroundColor(sf::Color::Blue);
scrollbarRenderer.setArrowColor(sf::Color::White);
scrollbarRenderer.setOpacity(0.7f);
renderer.setScrollbar(scrollbarRenderer.getData());
SECTION("Colored")
{
TEST_DRAW("TextBox.png")
}
SECTION("Textured")
{
renderer.setTextureBackground("resources/Texture1.png");
TEST_DRAW("TextBox_Textured.png")
}
}
SECTION("Bug Fixes")
{
SECTION("ctrl+alt+A should not act as ctrl+A (https://github.com/texus/TGUI/issues/43)")

BIN
tests/expected/MenuBar.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 590 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 592 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 928 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 903 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 592 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 592 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 903 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 903 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1007 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1007 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1007 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1007 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1007 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

BIN
tests/expected/TextBox.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB