1
#include <gtest/gtest.h>
2
#include <glib-object.h>
3
#include <UnityCore/FilesystemLenses.h>
6
using namespace unity::dash;
11
void WaitForResult(bool& result)
15
auto timeout_cb = [](gpointer data) -> gboolean
21
guint32 timeout_id = g_timeout_add_seconds(10, timeout_cb, &timeout_reached);
23
while (!result && !timeout_reached)
25
g_main_context_iteration(g_main_context_get_thread_default(), TRUE);
28
g_source_remove(timeout_id);
31
void WaitForLensesToLoad(FilesystemLenses& lenses)
35
auto lenses_loaded_cb = [&result]()
39
lenses.lenses_loaded.connect(sigc::slot<void>(lenses_loaded_cb));
41
WaitForResult(result);
45
TEST(TestFilesystemLenses, TestConstruction)
47
FilesystemLenses lenses0;
48
FilesystemLenses lenses1(TESTDATADIR"/lenses");
51
TEST(TestFilesystemLenses, TestFileLoading)
53
FilesystemLenses lenses(TESTDATADIR"/lenses");
54
WaitForLensesToLoad(lenses);
57
TEST(TestFilesystemLenses, TestLensesAdded)
59
FilesystemLenses lenses(TESTDATADIR"/lenses");
62
auto lens_added_cb = [&n_lenses](Lens::Ptr & p)
66
lenses.lens_added.connect(sigc::slot<void, Lens::Ptr&>(lens_added_cb));
68
WaitForLensesToLoad(lenses);
69
EXPECT_EQ(n_lenses, (unsigned int)3);
70
EXPECT_EQ(lenses.count, (unsigned int)3);
73
TEST(TestFilesystemLenses, TestLensContent)
75
FilesystemLenses lenses(TESTDATADIR"/lenses");
76
WaitForLensesToLoad(lenses);
78
// Test that the lenses have loaded correctly
79
Lens::Ptr lens = lenses.GetLens("applications.lens");
80
EXPECT_TRUE(lens.get());
81
EXPECT_EQ(lens->dbus_name, "com.canonical.tests.Lens.Applications");
82
EXPECT_EQ(lens->dbus_path, "/com/canonical/tests/lens/applications");
83
EXPECT_EQ(lens->name, "Applications");
84
EXPECT_EQ(lens->icon, "/usr/share/unity-lens-applications/applications.png");
85
EXPECT_EQ(lens->description, "Search for applications");
86
EXPECT_EQ(lens->search_hint, "Search Applications");
87
EXPECT_EQ(lens->visible, true);
88
EXPECT_EQ(lens->shortcut, "a");
90
lens = lenses.GetLens("files.lens");
91
EXPECT_TRUE(lens.get());
92
EXPECT_EQ(lens->dbus_name, "com.canonical.tests.Lens.Files");
93
EXPECT_EQ(lens->dbus_path, "/com/canonical/tests/lens/files");
94
EXPECT_EQ(lens->name, "Files");
95
EXPECT_EQ(lens->icon, "/usr/share/unity-lens-files/files.png");
96
EXPECT_EQ(lens->description, "Search for Files & Folders");
97
EXPECT_EQ(lens->search_hint, "Search Files & Folders");
98
EXPECT_EQ(lens->visible, true);
99
EXPECT_EQ(lens->shortcut, "f");
101
lens = lenses.GetLens("social.lens");
102
EXPECT_TRUE(lens.get());
103
EXPECT_EQ(lens->dbus_name, "com.canonical.tests.Lens.Social");
104
EXPECT_EQ(lens->dbus_path, "/com/canonical/tests/lens/social");
105
EXPECT_EQ(lens->name, "Social");
106
EXPECT_EQ(lens->icon, "/usr/share/unity-lens-social/social.png");
107
EXPECT_EQ(lens->description, "");
108
EXPECT_EQ(lens->search_hint, "");
109
EXPECT_EQ(lens->visible, false);
110
EXPECT_EQ(lens->shortcut, "");