Skip to contentSkip to conversation

Use org.ofono.phonesim.Script as interface name

PATCH In review Yang Gu 2 participants 3 messages Oct 14, 2010

lore
Share & tools
lore

Yang Gu

author
#0 lore raw

PATCH 1/2 Use org.ofono.phonesim.Script as interface name

---
 src/control.h |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
src/control.h +2 -2
index e455437..3c85e22 100644
@@ -31,9 +31,9 @@ class Control;
 class Script: public QDBusAbstractAdaptor
 {
 Q_OBJECT
-    Q_CLASSINFO("D-Bus Interface", "org.phonesim.Script")
+    Q_CLASSINFO("D-Bus Interface", "org.ofono.phonesim.Script")
     Q_CLASSINFO("D-Bus Introspection", ""
-"  <interface name=\"org.phonesim.Script\">\n"
+"  <interface name=\"org.ofono.phonesim.Script\">\n"
 "    <method name=\"SetPath\">\n"
 "      <arg direction=\"in\" type=\"s\" name=\"path\"/>\n"
 "    </method>\n"
Signature · 1 line
1.7.2.3
author
#1 lore raw

PATCH 2/2 doc: Describe the scriptable feature

---
 doc/scriptable.txt |   55 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 55 insertions(+), 0 deletions(-)
 create mode 100644 doc/scriptable.txt
doc/scriptable.txt new file +55 -0
new file mode 100644
index 0000000..670bd21
@@ -0,0 +1,55 @@
+With the support of QtScript, now phonesim is scriptable, which means you may
+manipulate or extend phonesim's functionality using ECMA script language
+(defined in ECMA-262). At the same time, some D-Bus interface and dedicated
+methods are also defined to facilitate this feature. As a result, full test
+automation can be achieved (Without this, if you want to initiate an incoming
+call, you have to do some operations manually within phonesim GUI).  Below are
+several examples:
+
+1. call.js (stand for incoming call and copy it to /tmp/call/)
+tabRegistration.gbIncomingCall.leCaller.text = "12345";
+tabRegistration.gbIncomingCall.pbIncomingCall.click();
+
+Then set the path of script and run the script with its name:
+
+dbus-send --session --print-reply --dest=org.ofono.phonesim /
+org.ofono.phonesim.Script.SetPath string:/tmp/call
+
+dbus-send --session --print-reply --dest=org.ofono.phonesim /
+org.ofono.phonesim.Script.Run string:call.js
+
+Now you have simulated an incoming call.
+
+PS: If you want to know the hierarchy of UI elements, check the file
+src/controlbase.ui
+
+2. sms.js (stand for incoming sms and copy it to /tmp/sms/)
+tabSMS.gbMessage1.leMessageSender.text = "Yang";
+tabSMS.gbMessage1.leSMSClass.text = "1";
+tabSMS.gbMessage1.teSMSText.setPlainText("Sent from phonesim");
+tabSMS.gbMessage1.pbSendSMSMessage.click();
+
+Then do the similar things as first example:
+
+dbus-send --session --print-reply --dest=org.ofono.phonesim /
+org.ofono.phonesim.Script.SetPath string:/tmp/sms
+
+dbus-send --session --print-reply --dest=org.ofono.phonesim /
+org.ofono.phonesim.Script.Run string:sms.js
+
+Now you have simulated an incoming sms.
+
+3. Get the current path for script
+dbus-send --session --print-reply --dest=org.ofono.phonesim /
+org.ofono.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.
Signature · 1 line
1.7.2.3
#2 lore raw
In reply to Yang Gu

Hi Yang,

Quoted 3 lines · Yang Gu
---
 src/control.h |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

Both patches have been applied, thanks.

Regards,
-Denis