#include "Lts/Common/LtsTimelineClassic/TimelineIndicator.h" #include #include namespace LtsTimelineClassic { class TimelineIndicatorTest : public ::testing::Test { protected: void SetUp() override { static int argc = 1; static char* argv[] = {const_cast("test")}; if (!qApp) { m_app = std::make_unique(argc, argv); } } void TearDown() override { m_app.reset(); } private: std::unique_ptr m_app; }; TEST(TimelineIndicatorTest, ConstructorCreatesValidIndicator) { QWidget parent; TimelineIndicator indicator(&parent); EXPECT_NO_THROW(indicator.update()); } TEST(TimelineIndicatorTest, SlotZoomChangesIndex) { QWidget parent; TimelineIndicator indicator(&parent); int initialIndex = indicator.zoomLevelComboBox()->currentIndex(); indicator.slotZoom(); // Zoom out should decrease index (if not already at 0) if (initialIndex > 0) { EXPECT_EQ(indicator.zoomLevelComboBox()->currentIndex(), initialIndex - 1); } else { EXPECT_EQ(indicator.zoomLevelComboBox()->currentIndex(), 0); } } TEST(TimelineIndicatorTest, SlotUnzoomChangesIndex) { QWidget parent; TimelineIndicator indicator(&parent); int initialIndex = indicator.zoomLevelComboBox()->currentIndex(); int maxIndex = indicator.zoomLevelComboBox()->count() - 1; // Set to a lower index to allow unzoom indicator.zoomLevelComboBox()->setCurrentIndex(1); indicator.slotUnzoom(); EXPECT_EQ(indicator.zoomLevelComboBox()->currentIndex(), 2); } } // namespace LtsTimelineClassic