eedb/tests/unit/test_eedb_DefaultNavigationBar.cpp
2017-03-22 10:00:26 +01:00

37 lines
897 B
C++

#include "WidgetTest.hpp"
#include <eedb/widgets/DefaultNavigationBar.hpp>
#include <Wt/WMenuItem>
struct SimpleCallback {
MOCK_METHOD0(callback, void());
};
class NavigationBarTests : public WidgetTest {
public:
NavigationBarTests() : 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");
}
protected:
std::unique_ptr< eedb::DefaultNavigationBar > sut;
};
TEST_F(NavigationBarTests, loginAction) {
SimpleCallback cb;
EXPECT_CALL(cb, callback());
sut->registerLogoutAction([&]() { cb.callback(); });
auto logoutItem = find_logoutItem();
logoutItem->triggered().emit(logoutItem);
}