@@ -65,6 +65,39 @@ namespace shellanything
6565 {
6666 }
6767 // --------------------------------------------------------------------------------------------------
68+ TEST_F (TestIcon, testOperatorEquals)
69+ {
70+ Icon iconA;
71+ Icon iconB;
72+
73+ #define ASSERT_ICON_EQUALS (iconA, iconB ) ASSERT_TRUE(iconA == iconB); ASSERT_FALSE(iconA != iconB);
74+ #define ASSERT_ICON_NOT_EQUALS (iconA, iconB ) ASSERT_TRUE(iconA != iconB); ASSERT_FALSE(iconA == iconB);
75+
76+ // assert equals
77+ ASSERT_ICON_EQUALS (iconA, iconB);
78+
79+ iconA.SetFileExtension (" txt" );
80+ ASSERT_ICON_NOT_EQUALS (iconA, iconB);
81+
82+ iconA.SetFileExtension (" exe" );
83+ iconB.SetFileExtension (" exe" );
84+ ASSERT_ICON_EQUALS (iconA, iconB);
85+
86+ iconA.SetPath (" foo.dll" );
87+ ASSERT_ICON_NOT_EQUALS (iconA, iconB);
88+
89+ iconA.SetPath (" bar.dll" );
90+ iconB.SetPath (" bar.dll" );
91+ ASSERT_ICON_EQUALS (iconA, iconB);
92+
93+ iconA.SetIndex (11 );
94+ ASSERT_ICON_NOT_EQUALS (iconA, iconB);
95+
96+ iconA.SetIndex (99 );
97+ iconB.SetIndex (99 );
98+ ASSERT_ICON_EQUALS (iconA, iconB);
99+ }
100+ // --------------------------------------------------------------------------------------------------
68101 TEST_F (TestIcon, testValidIcon)
69102 {
70103 // default ctor
@@ -100,11 +133,11 @@ namespace shellanything
100133 Icon icon;
101134 icon.SetPath (" path/to/a/file.ico" );
102135 icon.SetIndex (-99 );
103- ASSERT_FALSE (icon.IsValid ());
136+ ASSERT_TRUE (icon.IsValid ());
104137 }
105138 }
106139 // --------------------------------------------------------------------------------------------------
107- TEST_F (TestIcon, testResolveFileExtensionIcon )
140+ TEST_F (TestIcon, testResolveFileExtensionIconTxt )
108141 {
109142 Icon icon;
110143 icon.SetFileExtension (" txt" );
@@ -115,6 +148,36 @@ namespace shellanything
115148 ASSERT_TRUE (icon.GetFileExtension ().empty ());
116149 ASSERT_FALSE (icon.GetPath ().empty ());
117150 ASSERT_NE (Icon::INVALID_ICON_INDEX, icon.GetIndex ());
151+
152+ // assert we did not resolve to default unknown icon
153+ ASSERT_TRUE (icon != Icon::GetDefaultUnknownFileTypeIcon ());
154+ }
155+ // --------------------------------------------------------------------------------------------------
156+ TEST_F (TestIcon, testResolveFileExtensionIconHtml)
157+ {
158+ Icon icon;
159+ icon.SetFileExtension (" html" );
160+
161+ // act
162+ icon.ResolveFileExtensionIcon ();
163+
164+ ASSERT_TRUE (icon.GetFileExtension ().empty ());
165+ ASSERT_FALSE (icon.GetPath ().empty ());
166+ ASSERT_NE (Icon::INVALID_ICON_INDEX, icon.GetIndex ());
167+
168+ // assert we did not resolve to default unknown icon
169+ ASSERT_TRUE (icon != Icon::GetDefaultUnknownFileTypeIcon ());
170+ }
171+ // --------------------------------------------------------------------------------------------------
172+ TEST_F (TestIcon, testGetDefaultUnknownFileTypeIcon)
173+ {
174+ Icon icon = Icon::GetDefaultUnknownFileTypeIcon ();
175+
176+ ASSERT_TRUE (icon.IsValid ());
177+ ASSERT_TRUE (icon.GetFileExtension ().empty ());
178+
179+ ASSERT_FALSE (icon.GetPath ().empty ());
180+ ASSERT_NE (Icon::INVALID_ICON_INDEX, icon.GetIndex ());
118181 }
119182 // --------------------------------------------------------------------------------------------------
120183 TEST_F (TestIcon, testResolveMultipleFileExtensionIcon) // issue #98
0 commit comments