eedb/tests/unit/test_eedb_DefaultNavigationBar.cpp
Bartosz Wieczorek 9730da4805 refactor
2018-01-26 14:58:40 +01:00

48 lines
1.2 KiB
C++

#include "WidgetTest.hpp"
#include <eedb/widgets/DefaultNavigationBar.hpp>
#include <Wt/WMenuItem.h>
#include <Wt/WNavigationBar.h>
struct SimpleCallback {
MOCK_METHOD0(callback, void());
};
class DefaultNavigationBarTests : public WidgetTest {
public:
DefaultNavigationBarTests() : WidgetTest(), sut(std::make_unique< eedb::DefaultNavigationBar >()) {
sut->attachTo(app.root());
}
auto find_logoutItem() {
return ut_find< Wt::WMenuItem >("navigation_bar.session_menu.logout");
}
auto find_homeItem() {
return ut_find< Wt::WMenuItem >("navigation_bar.home_menu");
}
auto find_navigationBar() {
return ut_find< Wt::WNavigationBar >("navigation_bar");
}
protected:
std::unique_ptr< eedb::DefaultNavigationBar > sut;
};
TEST_F(DefaultNavigationBarTests, hasAllNeededElements) {
find_logoutItem();
find_homeItem();
find_navigationBar();
}
TEST_F(DefaultNavigationBarTests, loginAction) {
SimpleCallback cb;
EXPECT_CALL(cb, callback());
sut->registerLogoutAction([&]() { cb.callback(); });
auto logoutItem = find_logoutItem();
logoutItem->triggered().emit(logoutItem);
}