This series of patches fix the compilation problem, as well as some memory
leak. But the main focus is to enable Qt script so that phonesim GUI can be
controlled using JavaScript. In the meantime, D-Bus support is added for the
sake of test automation.
Here are several examples:
1. call.js (stands for incoming call and copy it to /tmp/call/)
tabRegistration.gbIncomingCall.leCaller.text = "12345";
tabRegistration.gbIncomingCall.pbIncomingCall.click();
Then we set the path of script and run the script with its name
dbus-send --system --print-reply --dest=org.phonesim /
org.phonesim.Script.SetPath string:/tmp/call
dbus-send --system --print-reply --dest=org.phonesim / org.phonesim.Script.Run
string:call.js
Now we have simulated an incoming call.
2. sms.js (stands for incoming sms and copy it to /tmp/sms/)
tabSMS.gbMessage1.leMessageSender.text = "Yang";
tabSMS.gbMessage1.leSMSClass.text = "1";
tabSMS.gbMessage1.teSMSText.setPlainText("This message is sent automatically
from phonesim");
tabSMS.gbMessage1.pbSendSMSMessage.click();
Then we do the similar things as first example:
dbus-send --system --print-reply --dest=org.phonesim /
org.phonesim.Script.SetPath string:/tmp/sms
dbus-send --system --print-reply --dest=org.phonesim / org.phonesim.Script.Run
string:sms.js
Now we have simulated an incoming sms.
3. Get the current path for script
dbus-send --system --print-reply --dest=org.phonesim /
org.phonesim.Script.GetPath
4. Make script return some string
The string can be any string, number, bool, date, etc in JavaScript, but it
couldn't be a object because of some side effect. Refer "QScriptValue Class
Reference" for details.
For example, if you want to know the current incoming number, you may write a
script as below:
// number.js
tabRegistration.gbIncomingCall.leCaller.text
After running the script the similar way as above, you may get the number.
By the way, you may need below file (/etc/dbus-1/system.d/phonesim.conf) so
that phonesim can register its service in system bus:
<!-- This configuration file specifies the required security policies
for oFono core daemon to work. -->
<!DOCTYPE busconfig PUBLIC "-//freedesktop//DTD D-BUS Bus Configuration 1.0//EN"
"http://www.freedesktop.org/standards/dbus/1.0/busconfig.dtd">
<busconfig>
<!-- ../system.conf have denied everything, so we just punch some holes -->
<policy user="root">
<allow own="org.phonesim"/>
<allow send_destination="org.phonesim"/>
</policy>
<policy at_console="true">
<allow send_destination="org.phonesim"/>
</policy>
<policy context="default">
<deny send_destination="org.phonesim"/>
</policy>
</busconfig>
Comments are welcome!
------------
Yang Gu (3):
Move def of class ControlWidget to header file
Some instances in ControlWidget need to be deleted
Enable Qt Script
Makefile.am | 5 +-
configure.ac | 2 +-
src/control.cpp | 165 ++++++++++++++++++++++++++++++++-----------------------
src/control.h | 106 +++++++++++++++++++++++++++++++++++-
4 files changed, 203 insertions(+), 75 deletions(-)
_______________________________________________
ofono mailing list
[email protected]
http://lists.ofono.org/listinfo/ofono