diff options
author | Charles Kerr <charles.kerr@canonical.com> | 2012-11-07 08:55:12 +0000 |
---|---|---|
committer | Tarmac <Unknown> | 2012-11-07 08:55:12 +0000 |
commit | 2893be94b74895718d829b2f22388ea607de0980 (patch) | |
tree | d6a8e1a54f050aad7e2b97d9614b2252597a3179 /tests/test-indicator.cc | |
parent | d1bb8ca95f0f9d39c344fa41e297c73e88143800 (diff) | |
parent | 7ebd1bec24a732a0f7069e727ff4036f6b925e99 (diff) | |
download | ayatana-indicator-datetime-2893be94b74895718d829b2f22388ea607de0980.tar.gz ayatana-indicator-datetime-2893be94b74895718d829b2f22388ea607de0980.tar.bz2 ayatana-indicator-datetime-2893be94b74895718d829b2f22388ea607de0980.zip |
Add scaffolding for Google Tests. Fixes: https://bugs.launchpad.net/bugs/985060.
Approved by Lars Uebernickel, PS Jenkins bot.
Diffstat (limited to 'tests/test-indicator.cc')
-rw-r--r-- | tests/test-indicator.cc | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/tests/test-indicator.cc b/tests/test-indicator.cc new file mode 100644 index 0000000..67a2780 --- /dev/null +++ b/tests/test-indicator.cc @@ -0,0 +1,93 @@ +/* +Copyright 2012 Canonical Ltd. + +Authors: + Charles Kerr <charles.kerr@canonical.com> + +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 <http://www.gnu.org/licenses/>. +*/ + +#include <gtest/gtest.h> + +#include <glib-object.h> + +/*** +**** +***/ + +namespace +{ + void ensure_glib_initialized () + { + static bool initialized = false; + + if (G_UNLIKELY(!initialized)) + { + initialized = true; + g_type_init(); + g_setenv ("GSETTINGS_SCHEMA_DIR", SCHEMA_DIR, TRUE); + } + } +} + +/*** +**** +***/ + +class IndicatorTest : public ::testing::Test +{ + private: + + guint log_handler_id; + + int log_count_ipower_actual; + + static void log_count_func (const gchar *log_domain, + GLogLevelFlags log_level, + const gchar *message, + gpointer user_data) + { + reinterpret_cast<IndicatorTest*>(user_data)->log_count_ipower_actual++; + } + + protected: + + int log_count_ipower_expected; + + protected: + + virtual void SetUp() + { + const GLogLevelFlags flags = GLogLevelFlags(G_LOG_LEVEL_CRITICAL|G_LOG_LEVEL_WARNING); + log_handler_id = g_log_set_handler ("Indicator-Power", flags, log_count_func, this); + log_count_ipower_expected = 0; + log_count_ipower_actual = 0; + + ensure_glib_initialized (); + } + + virtual void TearDown() + { + ASSERT_EQ (log_count_ipower_expected, log_count_ipower_actual); + g_log_remove_handler ("Indicator-Power", log_handler_id); + } +}; + +/*** +**** +***/ + +TEST_F(IndicatorTest, HelloWorld) +{ + ASSERT_TRUE (TRUE); +} |