2
2
3
3
#include < XdgUtils/DesktopEntry/DesktopEntry.h>
4
4
5
- using namespace XdgUtils ;
5
+ using namespace XdgUtils ::DesktopEntry ;
6
6
7
7
class TestDesktopEntry : public ::testing::Test {
8
8
protected:
@@ -29,13 +29,13 @@ class TestDesktopEntry : public ::testing::Test {
29
29
30
30
31
31
TEST_F (TestDesktopEntry, create) {
32
- DesktopEntry::DesktopEntry a;
32
+ DesktopEntry a;
33
33
auto entryPath = " Desktop Entry/Name" ;
34
34
auto entryValue = " A" ;
35
35
a.set (entryPath, entryValue);
36
36
37
37
// Copy constructor
38
- DesktopEntry::DesktopEntry b = a;
38
+ DesktopEntry b = a;
39
39
ASSERT_EQ (a.get (entryPath), b.get (entryPath));
40
40
41
41
ASSERT_EQ (a, b);
@@ -45,7 +45,7 @@ TEST_F(TestDesktopEntry, create) {
45
45
}
46
46
47
47
TEST_F (TestDesktopEntry, readWrite) {
48
- DesktopEntry::DesktopEntry entry;
48
+ DesktopEntry entry;
49
49
50
50
std::stringstream in (exampleDesktopEntry);
51
51
in >> entry;
@@ -57,7 +57,7 @@ TEST_F(TestDesktopEntry, readWrite) {
57
57
}
58
58
59
59
TEST_F (TestDesktopEntry, paths) {
60
- DesktopEntry::DesktopEntry entry{
60
+ DesktopEntry entry{
61
61
" [Desktop Entry]\n "
62
62
" Version=1.0\n "
63
63
" Type=Application\n "
@@ -104,7 +104,7 @@ TEST_F(TestDesktopEntry, get) {
104
104
" Name=Create a new Foo!\n "
105
105
" Icon=fooview-new\n " ;
106
106
107
- DesktopEntry::DesktopEntry entry;
107
+ DesktopEntry entry;
108
108
109
109
std::stringstream in (s);
110
110
in >> entry;
@@ -115,7 +115,7 @@ TEST_F(TestDesktopEntry, get) {
115
115
}
116
116
117
117
TEST_F (TestDesktopEntry, set) {
118
- DesktopEntry::DesktopEntry entry;
118
+ DesktopEntry entry;
119
119
entry.set (" A/B" , " C" );
120
120
121
121
std::stringstream out;
@@ -126,7 +126,7 @@ TEST_F(TestDesktopEntry, set) {
126
126
}
127
127
128
128
TEST_F (TestDesktopEntry, edit) {
129
- DesktopEntry::DesktopEntry entry;
129
+ DesktopEntry entry;
130
130
131
131
std::stringstream in (exampleDesktopEntry);
132
132
in >> entry;
@@ -157,7 +157,7 @@ TEST_F(TestDesktopEntry, edit) {
157
157
}
158
158
159
159
TEST_F (TestDesktopEntry, exists) {
160
- DesktopEntry::DesktopEntry entry;
160
+ DesktopEntry entry;
161
161
162
162
std::stringstream in (exampleDesktopEntry);
163
163
in >> entry;
@@ -167,7 +167,7 @@ TEST_F(TestDesktopEntry, exists) {
167
167
}
168
168
169
169
TEST_F (TestDesktopEntry, removeGroup) {
170
- DesktopEntry::DesktopEntry entry;
170
+ DesktopEntry entry;
171
171
172
172
std::string entryStr = {" [G1]\n Name=1\n [g2]\n Name=2\n " };
173
173
std::stringstream in (entryStr);
@@ -184,7 +184,7 @@ TEST_F(TestDesktopEntry, removeGroup) {
184
184
}
185
185
186
186
TEST_F (TestDesktopEntry, removeEntry) {
187
- DesktopEntry::DesktopEntry entry;
187
+ DesktopEntry entry;
188
188
189
189
std::string entryStr = {" [G1]\n Name=1\n Icon=1\n [g2]\n Name=2\n " };
190
190
std::stringstream in (entryStr);
@@ -201,7 +201,7 @@ TEST_F(TestDesktopEntry, removeEntry) {
201
201
}
202
202
203
203
TEST_F (TestDesktopEntry, arraySubscriptOperatorAccessGroup) {
204
- DesktopEntry::DesktopEntry entry;
204
+ DesktopEntry entry;
205
205
206
206
entry[" Group" ] = " Group" ;
207
207
@@ -212,7 +212,7 @@ TEST_F(TestDesktopEntry, arraySubscriptOperatorAccessGroup) {
212
212
}
213
213
214
214
TEST_F (TestDesktopEntry, arraySubscriptOperatorAccessEntry) {
215
- DesktopEntry::DesktopEntry entry;
215
+ DesktopEntry entry;
216
216
entry[" Group/Key" ] = " My App" ;
217
217
218
218
ASSERT_EQ (static_cast <std::string>(entry[" Group/Key" ]), " My App" );
@@ -223,3 +223,26 @@ TEST_F(TestDesktopEntry, arraySubscriptOperatorAccessEntry) {
223
223
ASSERT_EQ (out.str (), " [Group]\n "
224
224
" Key=My App" );
225
225
}
226
+
227
+ TEST_F (TestDesktopEntry, copy) {
228
+ DesktopEntry a;
229
+ a[" g/k" ] = " v" ;
230
+
231
+ // Assert that values are copied
232
+ DesktopEntry b = a;
233
+ ASSERT_EQ (static_cast <std::string>(b[" g/k" ]), " v" );
234
+
235
+ // Assert that b inner data pointers are different from the a ones
236
+ b[" g/k" ] = " v1" ;
237
+ ASSERT_EQ (static_cast <std::string>(a[" g/k" ]), " v" );
238
+ ASSERT_EQ (static_cast <std::string>(b[" g/k" ]), " v1" );
239
+ }
240
+
241
+ TEST_F (TestDesktopEntry, move) {
242
+ DesktopEntry a;
243
+ a[" g/k" ] = " v" ;
244
+
245
+ // Assert that values are copied
246
+ DesktopEntry b = std::move (a);
247
+ ASSERT_EQ (static_cast <std::string>(b[" g/k" ]), " v" );
248
+ }
0 commit comments