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
ofono@ofono.org
http://lists.ofono.org/listinfo/ofono

Reply via email to