calabash-android 0.5.16.pre1 → 0.6.0.prelatestcrosswalk

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,152 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <project name="" default="package" basedir=".">
3
- <description>
4
- Bits and pieces plucked out of $ANDROID_HOME/tools/ant/build.xml
5
- </description>
6
-
7
- <property name="adb.device.arg" value="" />
8
- <property environment="env"/>
9
- <property name="staging.dir" location="staging"/>
10
- <property name="bin.dir" location="bin"/>
11
- <property name="test.app.aapt" location="${bin.dir}/Test_aapt.apk"/>
12
- <property name="dex.file" location="${bin.dir}/classes.dex"/>
13
- <property name="test.app.unsigned" location="${bin.dir}/Test_unsigned.apk"/>
14
- <property name="calabashjs.dir" location="calabash-js/src"/>
15
-
16
- <!-- Windows support -->
17
- <condition property="bat" value=".bat" else=""><os family="windows" /></condition>
18
-
19
- <property name="dx" location="${tools.dir}/dx${bat}" />
20
- <property name="aapt" location="${tools.dir}/aapt" />
21
-
22
- <property name="android.lib" location="${env.ANDROID_HOME}/platforms/android-${android.api.level}/android.jar"/>
23
- <path id="android.antlibs">
24
- <pathelement path="${env.ANDROID_HOME}/tools/lib/ant-tasks.jar" />
25
- <pathelement path="${env.ANDROID_HOME}/tools/lib/anttasks.jar" />
26
- <pathelement path="${env.ANDROID_HOME}/tools/lib/sdklib.jar" />
27
- <pathelement path="${env.ANDROID_HOME}/tools/lib/androidprefs.jar" />
28
- </path>
29
-
30
- <path id="jar.libs.ref">
31
- <fileset dir="${staging.dir}/libs/" includes="*.jar" />
32
- </path>
33
-
34
- <path id="cucumber.path">
35
- <fileset dir="cucumber/" includes="*.jar" />
36
- </path>
37
-
38
- <path id="android.target.classpath">
39
- <fileset dir="${env.ANDROID_HOME}/platforms/android-${android.api.level}/" includes="*.jar"/>
40
- </path>
41
-
42
- <target name="-check.preconditions">
43
- <available file="${calabashjs.dir}" type="dir" property="doesCalabashJsExist" />
44
- <fail unless="doesCalabashJsExist">
45
- ${calabashjs.dir} does not exist.
46
- </fail>
47
- <antversion property="version.running" />
48
- <fail message="FATAL ERROR: The running Ant version, ${version.running}, is too old.">
49
- <condition>
50
- <not>
51
- <antversion atleast="1.8" />
52
- </not>
53
- </condition>
54
- </fail>
55
- </target>
56
-
57
- <target name="-stage">
58
- <mkdir dir="${staging.dir}"/>
59
- <mkdir dir="${bin.dir}"/>
60
- <antcall target="-prepare.testserver"/>
61
- </target>
62
-
63
- <target name="-prepare.testserver" description="Makes sure the testserver matches the tested application by looking at its manifest file">
64
- <copy todir="${staging.dir}">
65
- <fileset dir="instrumentation-backend" />
66
- </copy>
67
- <copy todir="${staging.dir}/libs">
68
- <fileset erroronmissingdir="false" dir="${env.ANDROID_HOME}/add-ons/addon-google_apis-google_inc_-${android.api.level}/libs"/>
69
- <fileset erroronmissingdir="false" dir="${env.ANDROID_HOME}/add-ons/addon-google_apis-google-${android.api.level}/libs"/>
70
- </copy>
71
- <copy todir="${staging.dir}/assets">
72
- <fileset dir="${calabashjs.dir}"/>
73
- </copy>
74
- <replace file="${staging.dir}/src/sh/calaba/instrumentationbackend/actions/version/Version.java" token="####VERSION####" value="${version}" failOnNoReplacements="true" />
75
-
76
- <property name="src.dir.absolute" location="${staging.dir}/src" />
77
- <pathconvert property="testserver.actions" pathsep="${line.separator}" dirsep=".">
78
- <fileset dir="${src.dir.absolute}" includes="sh/calaba/instrumentationbackend/actions/**/*.java" />
79
- <globmapper from="${src.dir.absolute}/*.java" to="*" handledirsep="true" />
80
- </pathconvert>
81
- <echo file="${staging.dir}/assets/actions" message="${testserver.actions}${line.separator}" />
82
- </target>
83
-
84
-
85
- <target name="-compile">
86
- <antcall target="-stage" />
87
- <javac
88
- srcdir="${staging.dir}/src"
89
- destdir="${bin.dir}"
90
- verbose="${verbose}"
91
- source="1.6"
92
- target="1.6"
93
- debug="true"
94
- includeantruntime="false"
95
- bootclasspathref="android.target.classpath"
96
- classpath="${extensible.classpath}"
97
- classpathref="jar.libs.ref" />
98
- </target>
99
-
100
-
101
- <target name="package" depends="-check.preconditions">
102
- <antcall target="-compile" />
103
- <antcall target="-aapt" />
104
- <antcall target="-dex" />
105
- <antcall target="-apk" />
106
- </target>
107
-
108
-
109
- <target name="clean" description="clean up">
110
- <delete dir="${staging.dir}"/>
111
- <delete dir="${bin.dir}"/>
112
- </target>
113
-
114
- <target name="-aapt">
115
- <exec executable="${aapt}" failonerror="yes">
116
- <arg value="package" />
117
- <arg value="-f" />
118
- <arg value="-F" />
119
- <arg file="${test.app.aapt}" />
120
- <arg value="-I" />
121
- <arg path="${android.lib}" />
122
- <arg value="-A" />
123
- <arg path="${staging.dir}/assets" />
124
- <arg value="-m" />
125
- <arg value="-J" />
126
- <arg path="gen" />
127
- </exec>
128
- </target>
129
-
130
- <target name="-dex">
131
- <copy todir="${bin.dir}/libs">
132
- <fileset dir="instrumentation-backend/libs"/>
133
- </copy>
134
- <exec executable="${dx}" failonerror="yes">
135
- <arg value="--dex" />
136
- <arg value="--output" />
137
- <arg file="${dex.file}" />
138
- <arg path="${bin.dir}" />
139
- </exec>
140
- </target>
141
-
142
- <target name="-apk">
143
- <exec executable="java" failonerror="yes">
144
- <arg value="-jar" />
145
- <arg value="${staging.dir}/CalabashApkBuilder.jar" />
146
- <arg file="${test.app.unsigned}" />
147
- <arg file="${test.app.aapt}" />
148
- <arg file="${dex.file}" />
149
- </exec>
150
- </target>
151
-
152
- </project>
@@ -1,172 +0,0 @@
1
- (function () {
2
- /** David Mark's isHostMethod function,
3
- * http://peter.michaux.ca/articles/feature-detection-state-of-the-art-browser-scripting
4
- * Modified to use strict equality
5
- */
6
- function isHostMethod (object, property)
7
- {
8
- var t = typeof object[property];
9
- return t==='function' ||
10
- (!!(t==='object' && object[property])) ||
11
- t==='unknown';
12
- }
13
- /*http://www.w3.org/TR/DOM-Level-2-Core/core.html*/
14
- var NODE_TYPES = {
15
- /*ELEMENT_NODE : */ 1 : 'ELEMENT_NODE',
16
- /*ATTRIBUTE_NODE : */ 2: 'ATTRIBUTE_NODE',
17
- /*TEXT_NODE : */ 3 : 'TEXT_NODE',
18
- /*DOCUMENT_NODE : */ 9 : 'DOCUMENT_NODE'
19
- };
20
-
21
- function computeRectForNode(object)
22
- {
23
- var res = {}, boundingBox;
24
- if (isHostMethod(object,'getBoundingClientRect'))
25
- {
26
- boundingBox = object.getBoundingClientRect();
27
- var rect = {};
28
- rect.width = boundingBox.width;
29
- rect.height = boundingBox.height;
30
- rect.left = boundingBox.left;
31
- rect.top = boundingBox.top;
32
- res.rect = rect;
33
- res.rect.center_x = rect.left + Math.floor(rect.width/2);
34
- res.rect.center_y = rect.top + Math.floor(rect.height/2);
35
- }
36
- res.nodeType = NODE_TYPES[object.nodeType] || res.nodeType + ' (Unexpected)';
37
- res.nodeName = object.nodeName;
38
- res.id = object.id || '';
39
- res['class'] = object.className || '';
40
- if (object.href)
41
- {
42
- res.href = object.href;
43
- }
44
- if (object.hasOwnProperty('value'))
45
- {
46
- res.value = object.value || '';
47
- }
48
- res.html = object.outerHTML || '';
49
- res.textContent = object.textContent;
50
- return res;
51
- }
52
- function toJSON(object)
53
- {
54
- var res, i, N, spanEl, parentEl;
55
- if (typeof object==='undefined')
56
- {
57
- throw {message:'Calling toJSON with undefined'};
58
- }
59
- else if (object instanceof Text)
60
- {
61
- parentEl = object.parentElement;
62
- if (parentEl)
63
- {
64
- spanEl = document.createElement("calabash");
65
- spanEl.style.display = "inline";
66
- spanEl.innerHTML = object.textContent;
67
- parentEl.replaceChild(spanEl, object);
68
- res = computeRectForNode(spanEl);
69
- res.nodeType = NODE_TYPES[object.nodeType];
70
- delete res.nodeName;
71
- delete res.id;
72
- delete res['class'];
73
-
74
- parentEl.replaceChild(object,spanEl);
75
- }
76
- else
77
- {
78
- res = object;
79
- }
80
-
81
-
82
- }
83
- else if (object instanceof Node)
84
- {
85
- res = computeRectForNode(object);
86
- }
87
- else if (object instanceof NodeList ||
88
- (typeof object=='object' && object &&
89
- typeof object.length === 'number' &&
90
- object.length > 0
91
- && typeof object[0] !== 'undefined'))
92
- {
93
- res = [];
94
- for (i=0,N=object.length;i<N;i++)
95
- {
96
- res[i] = toJSON(object[i]);
97
- }
98
- }
99
- else
100
- {
101
- res = object;
102
- }
103
- return res;
104
- }
105
-
106
- function applyMethods(object, arguments) {
107
- var length = arguments.length;
108
-
109
- for(var i = 0; i < length; i++) {
110
- var argument = arguments[i];
111
-
112
- if (typeof argument === 'string') {
113
- argument = {method_name: argument, arguments: []}
114
- }
115
-
116
- var methodName = argument.method_name;
117
- var methodArguments = argument.arguments;
118
-
119
- if (typeof object[methodName] === 'undefined') {
120
- var type = Object.prototype.toString.call(object);
121
-
122
- object =
123
- {
124
- error: "No such method '" + methodName + "'",
125
- methodName: methodName,
126
- receiverString: object.constructor.name,
127
- receiverClass: type
128
- };
129
-
130
- break;
131
- } else {
132
- object = object[methodName].apply(object, methodArguments);
133
- }
134
- }
135
- }
136
-
137
- var exp = '%@'/* dynamic */,
138
- queryType = '%@' /* dynamic */,
139
- arguments = '%@' /* dynamic */,
140
- nodes = null,
141
- res = [],
142
- i,N;
143
- try
144
- {
145
- if (queryType==='xpath')
146
- {
147
- nodes = document.evaluate(exp, document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
148
- for (i=0,N=nodes.snapshotLength;i<N;i++)
149
- {
150
- res[i] = nodes.snapshotItem(i);
151
- }
152
- }
153
- else
154
- {
155
- res = document.querySelectorAll(exp);
156
- }
157
- }
158
- catch (e)
159
- {
160
- return JSON.stringify({error:'Exception while running query: '+exp, details:e.toString()})
161
- }
162
-
163
- if (arguments !== '%@') {
164
- var length = res.length;
165
-
166
- for (var i = 0; i < length; i++) {
167
- res[i] = applyMethods(res[i], arguments);
168
- }
169
- }
170
-
171
- return JSON.stringify(toJSON(res));
172
- })();