aboutsummaryrefslogtreecommitdiff
path: root/libcontextsubscriber
diff options
context:
space:
mode:
authorMarja Hassinen <ext-marja.2.hassinen@nokia.com>2009-09-11 14:24:47 +0300
committerMarja Hassinen <ext-marja.2.hassinen@nokia.com>2009-09-11 14:24:47 +0300
commita7b641122cae7077de844c9831111ff784304c2e (patch)
tree18b13b1216fe3038db88052166013be34351708b /libcontextsubscriber
parentddfa69b8e9fdc8256025d08e1e4cd197884c9e7d (diff)
libcontextsubscriber plugins: Adding a customer test for plugins: changing the plugin which provides a property.
Diffstat (limited to 'libcontextsubscriber')
-rw-r--r--libcontextsubscriber/customer-tests/pluginchanging/pluginchanging.py82
-rwxr-xr-xlibcontextsubscriber/customer-tests/runTests.sh4
2 files changed, 84 insertions, 2 deletions
diff --git a/libcontextsubscriber/customer-tests/pluginchanging/pluginchanging.py b/libcontextsubscriber/customer-tests/pluginchanging/pluginchanging.py
new file mode 100644
index 00000000..b564db52
--- /dev/null
+++ b/libcontextsubscriber/customer-tests/pluginchanging/pluginchanging.py
@@ -0,0 +1,82 @@
+#!/usr/bin/env python
+##
+## This file is part of ContextKit.
+##
+## Copyright (C) 2009 Nokia. All rights reserved.
+##
+## Contact: Marius Vollmer <marius.vollmer@nokia.com>
+##
+## This library is free software; you can redistribute it and/or
+## modify it under the terms of the GNU Lesser General Public License
+## version 2.1 as published by the Free Software Foundation.
+##
+## This library is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+## Lesser General Public License for more details.
+##
+## You should have received a copy of the GNU Lesser General Public
+## License along with this library; if not, write to the Free Software
+## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+## 02110-1301 USA
+##
+##
+## Requires python2.5-gobject and python2.5-dbus
+##
+import sys
+import unittest
+import os
+import string
+from subprocess import Popen, PIPE
+import time
+import signal
+
+def proc_kill(pid):
+ os.system('../common/rec-kill.sh %d' % pid)
+
+def timeoutHandler(signum, frame):
+ raise Exception('tests has been running for too long')
+
+def stdoutRead (object,lines):
+ list = []
+ for i in range(lines):
+ list.append(object.stdout.readline().rstrip())
+ return list
+
+class Subscription(unittest.TestCase):
+
+ def setUp(self):
+ os.environ["CONTEXT_PROVIDERS"] = "."
+
+ self.context_client = Popen(["context-listen","Test.Time"],stdin=PIPE,stdout=PIPE,stderr=PIPE)
+
+ def tearDown(self):
+ proc_kill(self.context_client.pid)
+ os.remove('time.context')
+
+ def testChangingPlugin(self):
+
+ # Copy the declaration file, declaring libcontextsubscribertime1 plugin.
+ os.system('cp time1.context.temp time.context.temp')
+ os.system('mv time.context.temp time.context')
+ actual = self.context_client.stdout.readline().rstrip()
+
+ # The client got a value provided by the libcontextsubscribertime1
+ self.assertEqual(actual.startswith("Test.Time = QString:Time1: "), True, "Got: %s" % actual)
+
+ # Modify the registry so that the key is now provided by libcontextsubscribertime2
+ os.system('cp time2.context.temp time.context.temp')
+ os.system('mv time.context.temp time.context')
+
+ # Assert that the client starts getting the value from the correct plugin
+ # (not necessarily the first one)
+ actual = self.context_client.stdout.readline().rstrip()
+ actual = self.context_client.stdout.readline().rstrip()
+
+ self.assertEqual(actual.startswith("Test.Time = QString:Time2: "), True, "Got: %s" % actual)
+
+if __name__ == "__main__":
+ sys.stdout = os.fdopen(sys.stdout.fileno(), 'w', 1)
+ signal.signal(signal.SIGALRM, timeoutHandler)
+ signal.alarm(30)
+ unittest.main()
diff --git a/libcontextsubscriber/customer-tests/runTests.sh b/libcontextsubscriber/customer-tests/runTests.sh
index a901888b..f0ba2042 100755
--- a/libcontextsubscriber/customer-tests/runTests.sh
+++ b/libcontextsubscriber/customer-tests/runTests.sh
@@ -1,11 +1,11 @@
#!/bin/bash
-DIRS="commander subscription asynchronicity registry bluez-plugin2"
+DIRS="commander subscription asynchronicity registry bluez-plugin2 pluginchanging"
if pkg-config contextprovider-1.0 || [ -e ../../libcontextprovider/src/.libs/libcontextprovider.so ]
then
export CONTEXT_PROVIDERS=.
- export LD_LIBRARY_PATH=../../src/.libs:../../plugins/bluez/.libs:../../../libcontextprovider/src/.libs
+ export LD_LIBRARY_PATH=../../src/.libs:../../plugins/bluez/.libs:../../../libcontextprovider/src/.libs:../testplugins/timeplugin1/.libs:../testplugins/timeplugin2/.libs
export PATH=$PATH:../../../python:../../cli:../../reg-cli
for dir in $DIRS; do