[cvs] [Wiki] changed: SyncHowTo

Karsten Fourmont karsten at horde.org
Mon Jul 24 12:23:31 PDT 2006


karsten  Mon, 24 Jul 2006 12:23:31 -0700

Modified page: http://wiki.horde.org/SyncHowTo
New Revision:  1.25
Change log:  description of how to write a test case

@@ -62,8 +62,48 @@
 # Right-click on Simulator and click Settings > Communications > Redirect !SocketLib Calls to Host TCP/IP
 # Download and unzip synthesis client for !PalmOS from http://www.synthesis.ch/
 # Install simulator by dragging the enclosed .rpc file into the simulator window.
 # Start & configure the Synthesis client. Start a sync run.
+
+++ How to write a !SyncML test case
+
+The !SyncML package contains a testing script to replay prerecorded test sessions. This allows the developers to check if changes break things for one particular phone. So it would be great to have test cases for as many phones as possible. Here's how to create one:
+
+* Preparations in Horde:
+ * create a user "syncmltest" with password "syncmltest" in horde. If the user's already there first delete and then recreate to get a fresh start.
+ * create a single test entry in the app you want to test (kronolith|nag|mnemo|turba). The entry should be named "server1" and the description should contain an umlaut for charset testing.
+
+* Preparations in the Client (PDA/Outlook/whatever)
+ * Create a single testentry named "client1". A description containing an umlaut is also helpful. The database must only contain this single entry (so you might need to do a backup of your phone first)
+
+* Clean /tmp/sync: {{rm/tmp/sync/}}
+
+* Clean Horde !SyncML Data. Login as user syncml and go to {{http:[yourinstall]/horde/services/portal/syncml.php}}. Use the button "Delete all !SyncML Data" to delete all data for the syncmltest user.
+
+* Do a first sync run
+
+* In Horde: rename the "client1" entry to "client1s1" and create a new simple entry named "server2"
+
+* In the client: rename "server1" to "server1c1" and create a new simple  entry named "client2"
+
+* Do second sync run
+
+* Do a third sync run. This should do nothing
+
+* In the client, delete server2
+
+* in the server, delete client2
+
+* do a fourth sync run
+
+* The test itself is now finished. The database should now have to entries: client1s2 and server1c1
+
+* If your phone uses wbxml this must be converted to xml first: in /tmp/sync do a  {{for a in *.wbxml; do wbxml2xml -m 0  -o syncml_server_42.xml syncml_server_42.wbxml; done}}
+
+* copy all *.xml in /tmp/sync into a directory under framework/syncml/tests with name testcase_[descriptionoftestcase]
+
+* in framework/syncml/tests do a {{./testsync.php --dir=testcase_[descriptionoftestcase]}} to run the test.
+
 
 ++ Links
 SyncMLDevicesFileFormats
 SyncRoadMap


More information about the cvs mailing list