1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
|
#include <gtest/gtest.h>
#include <glib-object.h>
#include <UnityCore/FilesystemLenses.h>
using namespace std;
using namespace unity::dash;
namespace
{
void WaitForResult(bool& result)
{
bool timeout_reached;
auto timeout_cb = [](gpointer data) -> gboolean
{
*(bool*)data = true;
return FALSE;
};
guint32 timeout_id = g_timeout_add(10000, timeout_cb, &timeout_reached);
while (!result && !timeout_reached)
{
g_main_context_iteration(g_main_context_get_thread_default(), TRUE);
}
if (result)
g_source_remove(timeout_id);
}
void WaitForLensesToLoad(FilesystemLenses& lenses)
{
bool result = false;
lenses.lenses_loaded.connect([&result] {result = true;});
WaitForResult(result);
EXPECT_TRUE(result);
}
TEST(TestFilesystemLenses, TestConstruction)
{
FilesystemLenses lenses0;
LensDirectoryReader::Ptr test_reader(new LensDirectoryReader(TESTDATADIR"/lenses"));
FilesystemLenses lenses1(test_reader);
}
TEST(TestFilesystemLenses, TestFileLoading)
{
LensDirectoryReader::Ptr test_reader(new LensDirectoryReader(TESTDATADIR"/lenses"));
FilesystemLenses lenses(test_reader);
WaitForLensesToLoad(lenses);
}
TEST(TestFilesystemLenses, TestLensesAdded)
{
LensDirectoryReader::Ptr test_reader(new LensDirectoryReader(TESTDATADIR"/lenses"));
FilesystemLenses lenses(test_reader);
unsigned int n_lenses = 0;
lenses.lens_added.connect([&n_lenses](Lens::Ptr & p) { ++n_lenses; });
WaitForLensesToLoad(lenses);
EXPECT_EQ(n_lenses, (unsigned int)3);
EXPECT_EQ(lenses.count, (unsigned int)3);
}
TEST(TestFilesystemLenses, TestLensContent)
{
LensDirectoryReader::Ptr test_reader(new LensDirectoryReader(TESTDATADIR"/lenses"));
FilesystemLenses lenses(test_reader);
WaitForLensesToLoad(lenses);
// Test that the lenses have loaded correctly
Lens::Ptr lens = lenses.GetLens("applications.lens");
EXPECT_TRUE(lens.get());
EXPECT_EQ(lens->dbus_name, "com.canonical.tests.Lens.Applications");
EXPECT_EQ(lens->dbus_path, "/com/canonical/tests/lens/applications");
EXPECT_EQ(lens->name, "Applications");
EXPECT_EQ(lens->icon_hint, "/usr/share/unity-lens-applications/applications.png");
EXPECT_EQ(lens->description, "Search for applications");
EXPECT_EQ(lens->search_hint, "Search Applications");
EXPECT_EQ(lens->visible, true);
EXPECT_EQ(lens->shortcut, "a");
lens = lenses.GetLens("files.lens");
EXPECT_TRUE(lens.get());
EXPECT_EQ(lens->dbus_name, "com.canonical.tests.Lens.Files");
EXPECT_EQ(lens->dbus_path, "/com/canonical/tests/lens/files");
EXPECT_EQ(lens->name, "Files");
EXPECT_EQ(lens->icon_hint, "/usr/share/unity-lens-files/files.png");
EXPECT_EQ(lens->description, "Search for Files & Folders");
EXPECT_EQ(lens->search_hint, "Search Files & Folders");
EXPECT_EQ(lens->visible, false);
EXPECT_EQ(lens->shortcut, "f");
lens = lenses.GetLens("social.lens");
EXPECT_TRUE(lens.get());
EXPECT_EQ(lens->dbus_name, "com.canonical.tests.Lens.Social");
EXPECT_EQ(lens->dbus_path, "/com/canonical/tests/lens/social");
EXPECT_EQ(lens->name, "Social");
EXPECT_EQ(lens->icon_hint, "/usr/share/unity-lens-social/social.png");
EXPECT_EQ(lens->description, "");
EXPECT_EQ(lens->search_hint, "");
EXPECT_EQ(lens->visible, true);
EXPECT_EQ(lens->shortcut, "");
}
}
|