/* * Copyright 2013 Canonical Ltd. * * Authors: * Charles Kerr * * This program is free software: you can redistribute it and/or modify it * under the terms of the GNU General Public License version 3, as published * by the Free Software Foundation. * * This program is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranties of * MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program. If not, see . */ #include "geoclue-fixture.h" #include using ayatana::indicator::datetime::GeoclueTimezone; // This test looks small because the interesting // work is all happening in GeoclueFixture... TEST_F(GeoclueFixture, ChangeDetected) { GeoclueTimezone tz; wait_msec(500); // wait for the bus to get set up EXPECT_EQ(timezone_1, tz.timezone.get()); // Start listening for a timezone change, then change the timezone. bool changed = false; auto connection = tz.timezone.changed().connect( [&changed, this](const std::string& s){ g_debug("timezone changed to %s", s.c_str()); changed = true; g_main_loop_quit(loop); }); const std::string timezone_2 = "America/Chicago"; setGeoclueTimezoneOnIdle(timezone_2); g_main_loop_run(loop); EXPECT_EQ(timezone_2, tz.timezone.get()); }