test: Add a simple STK Agent script

This commit is contained in:
Denis Kenzior 2010-07-30 17:12:34 -05:00
parent 56ba93f261
commit 5e46a73ed0
2 changed files with 100 additions and 0 deletions

View File

@ -322,6 +322,7 @@ test_scripts = test/activate-context \
test/send-sms \
test/set-mic-volume \
test/set-speaker-volume \
test/simple-agent \
test/test-advice-of-charge \
test/test-call-barring \
test/test-call-forwarding \

99
test/simple-agent Executable file
View File

@ -0,0 +1,99 @@
#!/usr/bin/python
import gobject
import sys
import dbus
import dbus.service
import dbus.mainloop.glib
class GoBack(dbus.DBusException):
_dbus_error_name = "org.ofono.Error.GoBack"
class EndSession(dbus.DBusException):
_dbus_error_name = "org.ofono.Error.EndSession"
class StkAgent(dbus.service.Object):
exit_on_release = True
def set_exit_on_release(self, exit_on_release):
self.exit_on_release = exit_on_release
@dbus.service.method("org.ofono.SimToolkitAgent",
in_signature="", out_signature="")
def Release(self):
print "Release"
if self.exit_on_release:
mainloop.quit()
@dbus.service.method("org.ofono.SimToolkitAgent",
in_signature="sya(sy)y", out_signature="y")
def RequestSelection(self, title, icon, items, default):
print "Title: (%s)" % (title)
index = 0;
for item in items:
print "%d. %s" % (index, item[0])
index += 1
print "\nDefault: %d" % (default)
select = raw_input("Enter Selection (t, b):")
if select == 'b':
raise GoBack("User wishes to go back")
elif select == 't':
raise EndSession("User wishes to terminate session")
else:
return int(select);
@dbus.service.method("org.ofono.SimToolkitAgent",
in_signature="syb", out_signature="")
def DisplayText(self, title, icon, urgent):
print "DisplayText (%s, %s)" % (title, urgent)
@dbus.service.method("org.ofono.SimToolkitAgent",
in_signature="", out_signature="")
def Cancel(self):
print "Cancel"
if __name__ == '__main__':
dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
bus = dbus.SystemBus()
manager = dbus.Interface(bus.get_object("org.ofono", "/"),
"org.ofono.Manager")
properties = manager.GetProperties()
for path in properties["Modems"]:
modem = dbus.Interface(bus.get_object('org.ofono', path),
'org.ofono.Modem')
properties = modem.GetProperties()
if "org.ofono.SimToolkit" not in properties["Interfaces"]:
continue
stk = dbus.Interface(bus.get_object('org.ofono', path),
'org.ofono.SimToolkit')
properties = stk.GetProperties()
print "Main Menu:"
print "%s" % (properties["MainMenuTitle"])
print "\nItems:"
index = 0
for item in properties["MainMenu"]:
print "%d. %s" % (index, item[0])
index += 1
path = "/test/agent"
agent = StkAgent(bus, path)
select = int(raw_input("Enter Selection: "))
stk.SelectItem(select, path)
print "Agent registered for session"
mainloop = gobject.MainLoop()
mainloop.run()