@@ -13,6 +13,7 @@ using ::testing::_;
1313
1414static const QString MODULE = " ui" ;
1515static const QString THEME_KEY = " theme" ;
16+ static const QString ACCENT_COLOR_KEY = " accentColor" ;
1617
1718class ThemeEngineTest : public testing ::Test
1819{
@@ -26,6 +27,7 @@ class ThemeEngineTest : public testing::Test
2627 m_themeSpies.push_back (std::make_unique<QSignalSpy>(&m_themeEngine, &ThemeEngine::bgColorChanged));
2728 m_themeSpies.push_back (std::make_unique<QSignalSpy>(&m_themeEngine, &ThemeEngine::foregroundColorChanged));
2829 m_themeSpies.push_back (std::make_unique<QSignalSpy>(&m_themeEngine, &ThemeEngine::borderColorChanged));
30+ m_themeSpies.push_back (std::make_unique<QSignalSpy>(&m_themeEngine, &ThemeEngine::accentColorChanged));
2931 }
3032
3133 void TearDown () override { m_themeEngine.setsettings (nullptr ); }
@@ -70,3 +72,24 @@ TEST_F(ThemeEngineTest, Theme)
7072 m_themeEngine.reloadTheme ();
7173 checkThemeSpies (4 );
7274}
75+
76+ TEST_F (ThemeEngineTest, AccentColor)
77+ {
78+ QSignalSpy spy (&m_themeEngine, &ThemeEngine::accentColorChanged);
79+
80+ EXPECT_CALL (*m_settings, getValue (MODULE, ACCENT_COLOR_KEY)).WillOnce (Return (QColor (255 , 0 , 0 )));
81+ ASSERT_EQ (m_themeEngine.accentColor (), QColor (255 , 0 , 0 ));
82+ ASSERT_EQ (spy.count (), 0 );
83+
84+ EXPECT_CALL (*m_settings, getValue (MODULE, ACCENT_COLOR_KEY)).WillOnce (Return (QColor (0 , 255 , 128 )));
85+ ASSERT_EQ (m_themeEngine.accentColor (), QColor (0 , 255 , 128 ));
86+ ASSERT_EQ (spy.count (), 0 );
87+
88+ EXPECT_CALL (*m_settings, setValue (MODULE, ACCENT_COLOR_KEY, QVariant (QColor (255 , 255 , 255 ))));
89+ m_themeEngine.setAccentColor (QColor (255 , 255 , 255 ));
90+ ASSERT_EQ (spy.count (), 1 );
91+
92+ EXPECT_CALL (*m_settings, setValue (MODULE, ACCENT_COLOR_KEY, QVariant (QColor (0 , 0 , 0 ))));
93+ m_themeEngine.setAccentColor (QColor (0 , 0 , 0 ));
94+ ASSERT_EQ (spy.count (), 2 );
95+ }
0 commit comments