test: Added Username/Password input support in simple-agent
[framework/connectivity/connman.git] / test / test-session
index 21a2019..5f0685b 100755 (executable)
@@ -2,6 +2,7 @@
 
 import sys
 import gobject
+import string
 
 import dbus
 import dbus.service
@@ -146,7 +147,7 @@ class SessionApplication(dbus.service.Object):
                                                      "net.connman.Session")
 
                except dbus.DBusException, e:
-                       if e.get_dbus_name() in ['net.connman.Error.InvalidArguments']:
+                       if e.get_dbus_name() in ['net.connman.Error.Failed']:
                                print e.get_dbus_message()
                                return
                        traceback.print_exc()
@@ -171,11 +172,15 @@ class SessionApplication(dbus.service.Object):
                                in_signature='', out_signature='')
        def Connect(self):
                print "Connect session"
+
+               if self.session == None:
+                       print "no session running -> drop request"
+                       return
+
                try:
                        self.session.Connect()
                except dbus.DBusException, e:
-                       if e.get_dbus_name() in ['net.connman.Error.InProgress',
-                                                'net.connman.Error.AlreadyConnected']:
+                       if e.get_dbus_name() in ['net.connman.Error.Failed']:
                                print e.get_dbus_message()
                                return
                        traceback.print_exc()
@@ -185,11 +190,15 @@ class SessionApplication(dbus.service.Object):
                                in_signature='', out_signature='')
        def Disconnect(self):
                print "Disconnect session"
+
+               if self.session == None:
+                       print "no session running -> drop request"
+                       return
+
                try:
                        self.session.Disconnect()
                except dbus.DBusException, e:
-                       if e.get_dbus_name() in ['net.connman.Error.AlreadyDisabled',
-                                                'net.connman.Error.NotConnected']:
+                       if e.get_dbus_name() in ['net.connman.Error.Failed']:
                                print e.get_dbus_message()
                                return
                        traceback.print_exc()
@@ -199,11 +208,16 @@ class SessionApplication(dbus.service.Object):
                                in_signature='sv', out_signature='')
        def Change(self, key, value):
                print "Update session settings"
+
+               if self.session == None:
+                       print "no session running -> drop request"
+                       return
+
                try:
                        val = self.type_convert(key, value)
                        self.session.Change(key, val)
                except dbus.DBusException, e:
-                       if e.get_dbus_name() in ['net.connman.Error.InvalidArguments']:
+                       if e.get_dbus_name() in ['net.connman.Error.Failed']:
                                print e.get_dbus_message()
                                return
                        traceback.print_exc()
@@ -255,8 +269,10 @@ def main():
        app_path = sys.argv[2]
        bus = dbus.SessionBus()
 
+       app_name = "com.example.SessionApplication.%s" % (string.strip(app_path, "/"))
+
        if sys.argv[1] == "run":
-               name = dbus.service.BusName("com.example.SessionApplication", bus)
+               name = dbus.service.BusName(app_name, bus)
                mainloop = gobject.MainLoop()
 
                app = SessionApplication(bus, app_path, mainloop)
@@ -264,7 +280,7 @@ def main():
                mainloop.run()
                return
 
-       app = dbus.Interface(bus.get_object("com.example.SessionApplication", app_path),
+       app = dbus.Interface(bus.get_object(app_name, app_path),
                             "com.example.TestSession")
 
        if sys.argv[1] == "create":
@@ -280,14 +296,14 @@ def main():
                app.Disconnect()
 
        elif sys.argv[1] == "change":
-               if len(sys.argv) < 4:
+               if len(sys.argv) < 5:
                        print "Arguments missing"
                        sys.exit(1)
 
                app.Change(sys.argv[3], sys.argv[4:])
 
        elif sys.argv[1] == "configure":
-               if len(sys.argv) < 4:
+               if len(sys.argv) < 5:
                        print "Arguments missing"
                        sys.exit(1)