You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by ac...@apache.org on 2017/08/10 05:59:01 UTC
[04/14] incubator-weex git commit: * [test] add new script
* [test] add new script
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/ee0bc569
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/ee0bc569
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/ee0bc569
Branch: refs/heads/0.16-dev
Commit: ee0bc56995ea1bede3b13c3766844c981b7c74cf
Parents: d965147
Author: gurisxie <27...@qq.com>
Authored: Wed Aug 9 13:57:47 2017 +0800
Committer: gurisxie <27...@qq.com>
Committed: Wed Aug 9 13:57:47 2017 +0800
----------------------------------------------------------------------
test/pages/components/iconfont.vue | 71 ++++++++++
test/pages/components/input-event.vue | 65 ++++++++++
test/pages/components/refresh-loading.vue | 115 +++++++++++++++++
test/pages/components/switch-event.vue | 60 +++++++++
test/pages/components/web-event.vue | 56 ++++++++
test/pages/modules/animation-translate.vue | 129 +++++++++++++++++++
test/pages/modules/clipboard-event.vue | 57 ++++++++
test/pages/modules/downgrade-event.vue | 74 +++++++++++
test/pages/modules/gesture-longpress.vue | 75 +++++++++++
test/pages/modules/modal-event.vue | 61 +++++++++
test/pages/modules/picker-event.vue | 63 +++++++++
test/pages/modules/storage-event.vue | 59 +++++++++
test/pages/modules/stream-result.vue | 85 ++++++++++++
test/run.sh | 28 +++-
test/scripts/components/iconfont.test.js | 34 +++++
test/scripts/components/input-event.test.js | 38 ++++++
test/scripts/components/refresh-loading.test.js | 38 ++++++
test/scripts/components/switch-event.test.js | 38 ++++++
test/scripts/components/web-event.test.js | 30 +++++
.../scripts/modules/animation-translate.test.js | 40 ++++++
test/scripts/modules/clipboard-event.test.js | 35 +++++
test/scripts/modules/downgrade-event.test.js | 30 +++++
test/scripts/modules/gesture-longpress.test.js | 37 ++++++
test/scripts/modules/modal-event.test.js | 32 +++++
test/scripts/modules/picker-event.test.js | 35 +++++
test/scripts/modules/storage-event.test.js | 36 ++++++
test/scripts/modules/stream-result.test.js | 34 +++++
test/scripts/util.js | 38 ++++++
test/scripts/zcover-generate.js | 32 +++++
29 files changed, 1520 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/ee0bc569/test/pages/components/iconfont.vue
----------------------------------------------------------------------
diff --git a/test/pages/components/iconfont.vue b/test/pages/components/iconfont.vue
new file mode 100644
index 0000000..e7b6737
--- /dev/null
+++ b/test/pages/components/iconfont.vue
@@ -0,0 +1,71 @@
+<template>
+ <div>
+ <panel title = 'iconfont' :padding-body='0'>
+ <div style='flex-direction:row'>
+ <button class='mr-base' type="info" size="middle" value="change" @click.native="change"></button>
+ </div>
+ <panel title='校验结果:'>
+ <text :style="{'font-size':'30px','font-family':fontF}">{{resultTxt}}</text>
+ </panel>
+ </panel>
+ <wxc-desc>
+ <text class='desc'>
+测试点:
+ *
+
+测试方式:
+ *
+ *
+ </text>
+ </wxc-desc>
+ </div>
+</template>
+<script>
+ var he = require('he');
+ module.exports = {
+ data : {
+ fontF:'iconfont2',
+ resultTxt:''
+ },
+ components: {
+ "wxc-desc":require('../include/wxc-desc.vue'),
+ panel: require('../include/panel.vue'),
+ button: require('../include/button.vue'),
+ },
+ mounted: function () {
+ var dom = weex.requireModule('dom');
+ //目前支持ttf、woff文件,不支持svg、eot类型
+ dom.addRule('fontFace', {
+ 'fontFamily': "iconfont2",
+ 'src': "url('http://at.alicdn.com/t/font_1469606063_76593.ttf')"
+ });
+ dom.addRule('fontFace', {
+ 'fontFamily': "iconfont3",
+ 'src': "url('http://at.alicdn.com/t/font_1469606522_9417143.woff')"
+ });
+ this.resultTxt=he.decode('http ttf: ')
+ },
+ methods : {
+ change:function() {
+ this.fontF='iconfont3';
+ this.resultTxt = he.decode('http woff: ')
+ },
+ }
+ }
+</script>
+
+<style scoped>
+ .origin{background-color: #FFFFDF;width: 200;height: 50;}
+ .mr-base{
+ margin: 10px;
+ }
+ .desc{
+ color:#aa0000;
+ font-size: 30px;
+ }
+ .input{
+ width: 500px;
+ height:100px;
+ border-width: 1px;
+ }
+</style>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/ee0bc569/test/pages/components/input-event.vue
----------------------------------------------------------------------
diff --git a/test/pages/components/input-event.vue b/test/pages/components/input-event.vue
new file mode 100644
index 0000000..2135963
--- /dev/null
+++ b/test/pages/components/input-event.vue
@@ -0,0 +1,65 @@
+<template>
+ <div>
+ <panel title = 'input-event' :padding-body='0'>
+ <div>
+ <input class="input mr-base" type="text" placeholder="onchange" @change="eventChange"></input>
+ </div>
+ <panel title='校验结果:'>
+ <text style="font-size:30px">{{resultTxt}}</text>
+ </panel>
+ </panel>
+ <wxc-desc>
+ <text class='desc'>
+测试点:
+ *
+
+测试方式:
+ *
+ *
+ </text>
+ </wxc-desc>
+ </div>
+</template>
+<script>
+ module.exports = {
+ data : {
+ width : '',
+ height: '',
+ resultTxt:''
+ },
+ components: {
+ "wxc-desc":require('../include/wxc-desc.vue'),
+ panel: require('../include/panel.vue'),
+ button: require('../include/button.vue'),
+ },
+ methods : {
+ eventInput:function (e) {
+ this.resultTxt='input:' + e.value
+ },
+ eventChange:function(e){
+ this.resultTxt='change:'+ e.value
+ },
+ eventFocus:function (e) {
+ this.resultTxt='focus:'+ e.value
+ },
+ eventBlur:function (e) {
+ this.resultTxt='blur:'+ e.value
+ }
+ }
+ }
+</script>
+
+<style scoped>
+ .mr-base{
+ margin: 10px;
+ }
+ .desc{
+ color:#aa0000;
+ font-size: 30px;
+ }
+ .input{
+ width: 500px;
+ height:100px;
+ border-width: 1px;
+ }
+</style>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/ee0bc569/test/pages/components/refresh-loading.vue
----------------------------------------------------------------------
diff --git a/test/pages/components/refresh-loading.vue b/test/pages/components/refresh-loading.vue
new file mode 100644
index 0000000..940297c
--- /dev/null
+++ b/test/pages/components/refresh-loading.vue
@@ -0,0 +1,115 @@
+<template>
+ <div>
+ <panel title = 'refresh-loading' :padding-body='0'>
+ <div style='flex-direction:row'>
+ <button class='mr-base' type="info" size="middle" value="hideRefresh" @click.native="hideRefresh"></button>
+ <button class='mr-base' type="info" size="middle" value="hideLoading" @click.native="hideLoading"></button>
+ </div>
+ <panel title='校验结果:'>
+ <text style="font-size:30px">refresh:{{refreshDisplay}}</text>
+ <text style="font-size:30px">loading:{{loadingDisplay}}</text>
+ </panel>
+ </panel>
+ <list>
+ <refresh class="refresh" :display="refreshDisplay" @refresh="onrefresh">
+ <loading-indicator class="indicator"></loading-indicator>
+ <text class="refresh-txt">↓ 下拉刷新</text>
+ </refresh>
+
+ <cell v-for="(k,v) in cells" style="height:100">
+ <text class="txt">{{k}}-{{v}}</text>
+ </cell>
+
+ <loading class="refresh" :display="loadingDisplay" @loading="onloading">
+ <loading-indicator class="indicator"></loading-indicator>
+ <text class="refresh-txt">↑ 上拉加载</text>
+ </loading>
+ </list>
+
+ <wxc-desc>
+ <text class='desc'>
+测试点:
+ * 图片加载后调用load事件及native高宽
+
+测试方式:
+ * 校验第一张图片的native高宽
+ * 切换图片后,校验第二张图片的native高宽
+ </text>
+ </wxc-desc>
+ </div>
+</template>
+<script>
+ module.exports = {
+ data : {
+ width : '',
+ height: '',
+ refreshDisplay: 'hide',
+ loadingDisplay: 'hide',
+ cells: [0,1,2,3,4,5,6,7,8,9],
+ },
+ components: {
+ "wxc-desc":require('../include/wxc-desc.vue'),
+ panel: require('../include/panel.vue'),
+ button: require('../include/button.vue'),
+ },
+ methods : {
+ onrefresh: function(e) {
+ // show refresh
+ this.refreshDisplay = 'show';
+ },
+ hideRefresh: function(e) {
+ // hide refresh
+ if (this.refreshDisplay !== 'hide') {
+ this.refreshDisplay = 'hide';
+ }
+ },
+
+ onloading: function() {
+ // show
+ this.loadingDisplay = 'show';
+
+ },
+ hideLoading:function() {
+ if (this.loadingDisplay !== 'hide') {
+ this.loadingDisplay = 'hide';
+ }
+ },
+ }
+ }
+</script>
+
+<style scoped>
+ .mr-base{
+ margin: 10px;
+ }
+ .desc{
+ color:#aa0000;
+ font-size: 30px;
+ }
+ .refresh{
+ flex-direction:row;
+ justify-content:center;
+ align-items: center;
+ width:750;
+ height: 100;
+ border-width:3;
+ background-color: #33b5e5;
+ }
+ .refresh-txt {
+ font-size: 30;
+ color: #FFFF00;
+ text-align: center;
+ }
+ .indicator{
+ height: 50;
+ width: 50;
+ color: #889967;
+ }
+ .txt {
+ font-size:40;
+ height:100;
+ padding:30;
+ border-width:1;
+ border-style:dotted;
+ }
+</style>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/ee0bc569/test/pages/components/switch-event.vue
----------------------------------------------------------------------
diff --git a/test/pages/components/switch-event.vue b/test/pages/components/switch-event.vue
new file mode 100644
index 0000000..a14991f
--- /dev/null
+++ b/test/pages/components/switch-event.vue
@@ -0,0 +1,60 @@
+<template>
+ <div>
+ <panel title = 'switch-event' :padding-body='0'>
+ <div style='flex-direction:row'>
+ <switch class="origin mr-base" @change="change"></switch>
+ </div>
+ <panel title='校验结果:'>
+ <text style="font-size:30px">{{resultTxt}}</text>
+ </panel>
+ </panel>
+ <wxc-desc>
+ <text class='desc'>
+测试点:
+ *
+
+测试方式:
+ *
+ *
+ </text>
+ </wxc-desc>
+ </div>
+</template>
+<script>
+ module.exports = {
+ data : {
+ width : '',
+ height: '',
+ resultTxt:''
+ },
+ components: {
+ "wxc-desc":require('../include/wxc-desc.vue'),
+ panel: require('../include/panel.vue'),
+ button: require('../include/button.vue'),
+ },
+ methods : {
+ click:function() {
+ this.resultTxt = 'click response'
+ },
+ change:function(e) {
+ this.resultTxt = 'change response:' + e.value
+ },
+ }
+ }
+</script>
+
+<style scoped>
+ .origin{background-color: #FFFFDF;width: 200;height: 50;}
+ .mr-base{
+ margin: 10px;
+ }
+ .desc{
+ color:#aa0000;
+ font-size: 30px;
+ }
+ .input{
+ width: 500px;
+ height:100px;
+ border-width: 1px;
+ }
+</style>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/ee0bc569/test/pages/components/web-event.vue
----------------------------------------------------------------------
diff --git a/test/pages/components/web-event.vue b/test/pages/components/web-event.vue
new file mode 100644
index 0000000..9de03f8
--- /dev/null
+++ b/test/pages/components/web-event.vue
@@ -0,0 +1,56 @@
+<template>
+ <div>
+ <panel title = 'web-event' :padding-body='0'>
+ <div style='flex-direction:row'>
+ <web class="mr-base web" :src = "src" @pagestart = "pagestartEvt" @pagefinish = "pagefinishEvt" @error = "errorEvt"></web>
+ </div>
+ <panel title='校验结果:'>
+ <text style="font-size:30px">{{resultTxt}}</text>
+ </panel>
+ </panel>
+ <wxc-desc>
+ <text class='desc'>
+测试点:
+ *
+
+测试方式:
+ *
+ *
+ </text>
+ </wxc-desc>
+ </div>
+</template>
+<script>
+ module.exports = {
+ data : {
+ src:'http://h5.m.taobao.com',
+ resultTxt:''
+ },
+ components: {
+ "wxc-desc":require('../include/wxc-desc.vue'),
+ panel: require('../include/panel.vue'),
+ button: require('../include/button.vue'),
+ },
+ methods : {
+ pagefinishEvt:function(e){
+ this.resultTxt = 'page finish'
+ }
+ }
+ }
+</script>
+
+<style scoped>
+ .origin{background-color: #FFFFDF;width: 200;height: 50;}
+ .mr-base{
+ margin: 10px;
+ }
+ .desc{
+ color:#aa0000;
+ font-size: 30px;
+ }
+ .web{
+ width: 500px;
+ height:300px;
+ border-width: 1px;
+ }
+</style>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/ee0bc569/test/pages/modules/animation-translate.vue
----------------------------------------------------------------------
diff --git a/test/pages/modules/animation-translate.vue b/test/pages/modules/animation-translate.vue
new file mode 100644
index 0000000..f490bf8
--- /dev/null
+++ b/test/pages/modules/animation-translate.vue
@@ -0,0 +1,129 @@
+<template>
+ <div>
+ <panel title = 'animation-translate' :padding-body='0'>
+ <div style='flex-direction:row'>
+ <button class='mr-base' type="info" size="middle" value="translate" @click.native="translate"></button>
+ <button class='mr-base' type="info" size="middle" value="translateX" @click.native="translateX"></button>
+ <button class='mr-base' type="info" size="middle" value="translateY" @click.native="translateY"></button>
+ </div>
+ <panel title='校验结果:'>
+ <text style="font-size:30px">{{resultTxt}}</text>
+ <text style="font-size:30px">top:{{top}}</text>
+ <text style="font-size:30px">left:{{left}}</text>
+ </panel>
+ </panel>
+ <div ref="block" class="block" :style="{'transform-origin':transformOrigin}">
+ <text class="font" :value = 'testValue'></text>
+ </div>
+ <wxc-desc>
+ <text class='desc'>
+测试点:
+ *
+
+测试方式:
+ *
+ *
+ </text>
+ </wxc-desc>
+ </div>
+</template>
+<script>
+ const animation = weex.requireModule('animation');
+ const dom = weex.requireModule('dom');
+
+ module.exports = {
+ data : {
+ resultTxt:'',
+ top:'',
+ left:'',
+ transformOrigin: 'center center',
+ current_rotate: 0,
+ current_scale: 1,
+ current_color: '#FF0000',
+ current_opacity: 1,
+ current_translate: '',
+ current_translateX:'',
+ current_translateY:'',
+ current_transform: '',
+ isStop: true,
+ testValue:"test"
+ },
+ components: {
+ "wxc-desc":require('../include/wxc-desc.vue'),
+ panel: require('../include/panel.vue'),
+ button: require('../include/button.vue'),
+ },
+ methods : {
+ anim: function (styles, timingFunction, duration, callback) {
+ animation.transition(this.$refs.block, {
+ styles: styles,
+ timingFunction: timingFunction,
+ duration: duration
+ }, callback);
+ },
+
+ translate: function (e) {
+ this.resultTxt=''
+ this.current_translate = this.current_translate ? '' : 'translate(50%, 50%)';
+ this.anim({
+ transform: this.current_translate
+ }, 'linear', 500, ()=>{
+ this.resultTxt='translate结束'
+ dom.getComponentRect(this.$refs.block, option => {
+ console.log('getComponentRect:', option)
+ this.top = option.size.top;
+ this.left = option.size.left;
+ })
+ });
+ },
+ translateX: function (e) {
+ this.resultTxt=''
+ this.current_translateX = this.current_translateX ? '' : 'translateX(-400px)';
+ this.anim({
+ transform: this.current_translateX
+ }, 'linear', 500, ()=>{
+ this.resultTxt='translateX结束'
+ dom.getComponentRect(this.$refs.block, option => {
+ console.log('getComponentRect:', option)
+ this.top = option.size.top;
+ this.left = option.size.left;
+ })
+ });
+ },
+ translateY: function (e) {
+ this.resultTxt=''
+ this.current_translateY = this.current_translateY ? '' : 'translateY(-125px)';
+ this.anim({
+ transform: this.current_translateY
+ }, 'linear', 500, ()=>{
+ this.resultTxt='translateY结束'
+ dom.getComponentRect(this.$refs.block, option => {
+ console.log('getComponentRect:', option)
+ this.top = option.size.top;
+ this.left = option.size.left;
+ })
+ });
+ },
+ }
+ }
+</script>
+
+<style scoped>
+ .block {
+ position: absolute;
+ width: 300;
+ height: 300;
+ top: 350;
+ left: 250;
+ bottom:250;
+ background-color: #FF0000;
+ }
+ .origin{background-color: #FFFFDF;width: 200;height: 50;}
+ .mr-base{
+ margin: 10px;
+ }
+ .desc{
+ color:#aa0000;
+ font-size: 30px;
+ }
+</style>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/ee0bc569/test/pages/modules/clipboard-event.vue
----------------------------------------------------------------------
diff --git a/test/pages/modules/clipboard-event.vue b/test/pages/modules/clipboard-event.vue
new file mode 100644
index 0000000..865daee
--- /dev/null
+++ b/test/pages/modules/clipboard-event.vue
@@ -0,0 +1,57 @@
+<template>
+ <div>
+ <panel title = 'clipboard-event' :padding-body='0'>
+ <div style='flex-direction:row'>
+ <button class='mr-base' type="info" size="middle" value="setItem" @click.native="setItem"></button>
+ <button class='mr-base' type="info" size="middle" value="getItem" @click.native="getItem"></button>
+ </div>
+ <panel title='校验结果:'>
+ <text style="font-size:30px">{{resultTxt}}</text>
+ </panel>
+ </panel>
+ <wxc-desc>
+ <text class='desc'>
+测试点:
+ *
+
+测试方式:
+ *
+ *
+ </text>
+ </wxc-desc>
+ </div>
+</template>
+<script>
+ var clipboard = weex.requireModule("clipboard");
+ module.exports = {
+ data : {
+ resultTxt:'',
+ },
+ components: {
+ "wxc-desc":require('../include/wxc-desc.vue'),
+ panel: require('../include/panel.vue'),
+ button: require('../include/button.vue'),
+ },
+ methods : {
+ setItem:function() {
+ clipboard.setString('clipboard-value');
+ },
+ getItem:function() {
+ clipboard.getString((e)=>{
+ this.resultTxt = e.data;
+ });
+ }
+ }
+ }
+</script>
+
+<style scoped>
+ .origin{background-color: #FFFFDF;width: 200;height: 50;}
+ .mr-base{
+ margin: 10px;
+ }
+ .desc{
+ color:#aa0000;
+ font-size: 30px;
+ }
+</style>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/ee0bc569/test/pages/modules/downgrade-event.vue
----------------------------------------------------------------------
diff --git a/test/pages/modules/downgrade-event.vue b/test/pages/modules/downgrade-event.vue
new file mode 100644
index 0000000..4669d96
--- /dev/null
+++ b/test/pages/modules/downgrade-event.vue
@@ -0,0 +1,74 @@
+<template>
+ <div>
+ <panel title = 'clipboard-event' :padding-body='0'>
+ <div style='flex-direction:row'>
+ <button class='mr-base' type="info" size="middle" value="setItem" @click.native="setItem"></button>
+ <button class='mr-base' type="info" size="middle" value="getItem" @click.native="getItem"></button>
+ </div>
+ <panel title='校验结果:'>
+ <text style="font-size:30px">{{resultTxt}}</text>
+ </panel>
+ </panel>
+ <wxc-desc>
+ <text class='desc'>
+测试点:
+ *
+
+测试方式:
+ *
+ *
+ </text>
+ </wxc-desc>
+ </div>
+</template>
+<script>
+ import Downgrade from '@weex-project/downgrade'
+
+ Downgrade.condition({
+ ios: {
+ osVersion: '>1.0',
+ appVersion: '>1.0.0',
+ weexVersion: '>1',
+ deviceModel: ['iPhone5,1']
+ },
+ android: {
+ osVersion: '>1.0',
+ appVersion: '>1.0.0',
+ weexVersion: '>1',
+ deviceModel: ['G-2PW2100']
+ }
+ });
+
+ var clipboard = weex.requireModule("clipboard");
+ module.exports = {
+ data : {
+ resultTxt:'',
+ },
+ components: {
+ "wxc-desc":require('../include/wxc-desc.vue'),
+ panel: require('../include/panel.vue'),
+ button: require('../include/button.vue'),
+ },
+ methods : {
+ setItem:function() {
+ clipboard.setString('clipboard-value');
+ },
+ getItem:function() {
+ clipboard.getString((e)=>{
+ this.resultTxt = e.data;
+ });
+ }
+ }
+ }
+</script>
+
+<style scoped>
+ .origin{background-color: #FFFFDF;width: 200;height: 50;}
+ .mr-base{
+ margin: 10px;
+ }
+ .desc{
+ color:#aa0000;
+ font-size: 30px;
+ }
+</style>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/ee0bc569/test/pages/modules/gesture-longpress.vue
----------------------------------------------------------------------
diff --git a/test/pages/modules/gesture-longpress.vue b/test/pages/modules/gesture-longpress.vue
new file mode 100644
index 0000000..adb88d5
--- /dev/null
+++ b/test/pages/modules/gesture-longpress.vue
@@ -0,0 +1,75 @@
+<template>
+ <div>
+ <panel title = 'gesture-longpress' :padding-body='0'>
+ <div style='flex-direction:row'>
+ <button class='mr-base' type="info" size="middle" value="longpress" @longpress.native="longpress"></button>
+ </div>
+ <panel title='校验结果:'>
+ <text test-id='result' style="font-size:30px">{{resultTxt}}</text>
+ </panel>
+ </panel>
+ <wxc-desc>
+ <text class='desc'>
+测试点:
+ *
+
+测试方式:
+ *
+ *
+ </text>
+ </wxc-desc>
+ </div>
+</template>
+<script>
+ var clipboard = weex.requireModule("clipboard");
+ module.exports = {
+ data : {
+ resultTxt:'',
+ screenX:'',
+ screenY:'',
+ identifier:'',
+ pageX:'',
+ pageY:''
+ },
+ components: {
+ "wxc-desc":require('../include/wxc-desc.vue'),
+ panel: require('../include/panel.vue'),
+ button: require('../include/button.vue'),
+ },
+ methods : {
+ longpress:function(e) {
+ if(typeof window != 'undefined')
+ {
+ this.screenY=e.touch.screenY;
+ this.identifier=e.touch.identifier;
+ this.screenX=e.touch.screenX;
+ this.pageY=e.touch.pageY;
+ this.pageX=e.touch.pageX;
+
+ }
+ else
+ {
+ var dict= e.changedTouches[0];
+ this.screenY=dict.screenY;
+ this.identifier=dict.identifier;
+ this.screenX=dict.screenX;
+ this.pageY=dict.pageY;
+ this.pageX=dict.pageX;
+ this.resultTxt = JSON.stringify(dict)
+ }
+
+ }
+ }
+ }
+</script>
+
+<style scoped>
+ .origin{background-color: #FFFFDF;width: 200;height: 50;}
+ .mr-base{
+ margin: 10px;
+ }
+ .desc{
+ color:#aa0000;
+ font-size: 30px;
+ }
+</style>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/ee0bc569/test/pages/modules/modal-event.vue
----------------------------------------------------------------------
diff --git a/test/pages/modules/modal-event.vue b/test/pages/modules/modal-event.vue
new file mode 100644
index 0000000..eed3612
--- /dev/null
+++ b/test/pages/modules/modal-event.vue
@@ -0,0 +1,61 @@
+<template>
+ <div>
+ <panel title = 'modal-event' :padding-body='0'>
+ <div style='flex-direction:row'>
+ <button class='mr-base' type="info" size="middle" value="alertClick" @click.native="alertClick"></button>
+ </div>
+ <panel title='校验结果:'>
+ <text style="font-size:30px">{{resultTxt}}</text>
+ </panel>
+ </panel>
+ <wxc-desc>
+ <text class='desc'>
+测试点:
+ *
+
+测试方式:
+ *
+ *
+ </text>
+ </wxc-desc>
+ </div>
+</template>
+<script>
+ var GET_URL = 'http://httpbin.org/get';
+ var modal = weex.requireModule("modal");
+ module.exports = {
+ data : {
+ resultTxt:'',
+ sendtype:'json',
+ detail:''
+ },
+ components: {
+ "wxc-desc":require('../include/wxc-desc.vue'),
+ panel: require('../include/panel.vue'),
+ button: require('../include/button.vue'),
+ },
+ methods : {
+ alertClick:function() {
+ var params = {
+ 'message':'message',
+ 'okTitle':'OK',
+ }
+ modal.alert(params,()=>{
+ this.resultTxt = 'alert success';
+ })
+ },
+
+ }
+ }
+</script>
+
+<style scoped>
+ .origin{background-color: #FFFFDF;width: 200;height: 50;}
+ .mr-base{
+ margin: 10px;
+ }
+ .desc{
+ color:#aa0000;
+ font-size: 30px;
+ }
+</style>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/ee0bc569/test/pages/modules/picker-event.vue
----------------------------------------------------------------------
diff --git a/test/pages/modules/picker-event.vue b/test/pages/modules/picker-event.vue
new file mode 100644
index 0000000..9e08ff9
--- /dev/null
+++ b/test/pages/modules/picker-event.vue
@@ -0,0 +1,63 @@
+<template>
+ <div>
+ <panel title = 'picker-event' :padding-body='0'>
+ <div style='flex-direction:row'>
+ <button class='mr-base' type="info" size="middle" value="showPicker" @click.native="showPicker"></button>
+ </div>
+ <panel title='校验结果:'>
+ <text style="font-size:30px">{{resultTxt}}</text>
+ </panel>
+ </panel>
+ <wxc-desc>
+ <text class='desc'>
+测试点:
+ *
+
+测试方式:
+ *
+ *
+ </text>
+ </wxc-desc>
+ </div>
+</template>
+<script>
+ var GET_URL = 'http://httpbin.org/get';
+ var picker = weex.requireModule("picker");
+ module.exports = {
+ data : {
+ resultTxt:'',
+ sendtype:'json',
+ detail:''
+ },
+ components: {
+ "wxc-desc":require('../include/wxc-desc.vue'),
+ panel: require('../include/panel.vue'),
+ button: require('../include/button.vue'),
+ },
+ methods : {
+ showPicker:function() {
+ var params = {
+ 'value':'2018-01-01',
+ 'max':'2020-01-01',
+ 'min':'2010-01-01',
+ }
+ picker.pickDate(params, (ret) => {
+ if(ret.result == 'success') {
+ this.resultTxt = ret.data;
+ }
+ });
+ }
+ }
+ }
+</script>
+
+<style scoped>
+ .origin{background-color: #FFFFDF;width: 200;height: 50;}
+ .mr-base{
+ margin: 10px;
+ }
+ .desc{
+ color:#aa0000;
+ font-size: 30px;
+ }
+</style>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/ee0bc569/test/pages/modules/storage-event.vue
----------------------------------------------------------------------
diff --git a/test/pages/modules/storage-event.vue b/test/pages/modules/storage-event.vue
new file mode 100644
index 0000000..85b6861
--- /dev/null
+++ b/test/pages/modules/storage-event.vue
@@ -0,0 +1,59 @@
+<template>
+ <div>
+ <panel title = 'storage-event' :padding-body='0'>
+ <div style='flex-direction:row'>
+ <button class='mr-base' type="info" size="middle" value="setItem" @click.native="setItem"></button>
+ <button class='mr-base' type="info" size="middle" value="getItem" @click.native="getItem"></button>
+ </div>
+ <panel title='校验结果:'>
+ <text style="font-size:30px">{{resultTxt}}</text>
+ </panel>
+ </panel>
+ <wxc-desc>
+ <text class='desc'>
+测试点:
+ *
+
+测试方式:
+ *
+ *
+ </text>
+ </wxc-desc>
+ </div>
+</template>
+<script>
+ var storage = weex.requireModule("storage");
+ module.exports = {
+ data : {
+ resultTxt:'',
+ },
+ components: {
+ "wxc-desc":require('../include/wxc-desc.vue'),
+ panel: require('../include/panel.vue'),
+ button: require('../include/button.vue'),
+ },
+ methods : {
+ setItem:function() {
+ storage.setItem('key', 'value', ()=>{
+ this.resultTxt = 'setItem success';
+ });
+ },
+ getItem:function() {
+ storage.getItem('key', (e)=>{
+ this.resultTxt = 'getItem:'+e.data;
+ });
+ }
+ }
+ }
+</script>
+
+<style scoped>
+ .origin{background-color: #FFFFDF;width: 200;height: 50;}
+ .mr-base{
+ margin: 10px;
+ }
+ .desc{
+ color:#aa0000;
+ font-size: 30px;
+ }
+</style>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/ee0bc569/test/pages/modules/stream-result.vue
----------------------------------------------------------------------
diff --git a/test/pages/modules/stream-result.vue b/test/pages/modules/stream-result.vue
new file mode 100644
index 0000000..6df7d03
--- /dev/null
+++ b/test/pages/modules/stream-result.vue
@@ -0,0 +1,85 @@
+<template>
+ <div>
+ <panel title = 'stream-result' :padding-body='0'>
+ <div style='flex-direction:row'>
+ <button class='mr-base' type="info" size="middle" value="streamGet" @click.native="streamGet"></button>
+ </div>
+ <panel title='校验结果:'>
+ <text style="font-size:30px">{{resultTxt}}</text>
+ <text style="font-size:30px">{{detail}}</text>
+ </panel>
+ </panel>
+ <wxc-desc>
+ <text class='desc'>
+测试点:
+ *
+
+测试方式:
+ *
+ *
+ </text>
+ </wxc-desc>
+ </div>
+</template>
+<script>
+ var GET_URL = 'http://httpbin.org/get';
+ var stream = weex.requireModule("stream");
+ module.exports = {
+ data : {
+ resultTxt:'',
+ sendtype:'json',
+ detail:''
+ },
+ components: {
+ "wxc-desc":require('../include/wxc-desc.vue'),
+ panel: require('../include/panel.vue'),
+ button: require('../include/button.vue'),
+ },
+ methods : {
+ streamGet:function() {
+ this.streamFetch("GET",GET_URL);
+ },
+ streamFetch:function(stype,surl){
+ var me = this;
+ if(this.sendtype=="jsonp"){
+ surl=this.JSONP_URL;
+ }
+ stream.fetch({
+ method: stype,
+ url: surl,
+ type:this.sendtype,
+ timeout : 10000
+ }, function(ret) {
+ nativeLog(JSON.stringify(ret)+ typeof(ret.data));
+ if(stype=="HEAD"){
+ console.log('get:'+ret);
+ me.resultTxt = 'response:success'
+ me.detail = ret.statusText;
+ }else{
+ if(!ret.ok){
+ me.resultTxt = 'response:failed';
+ me.detail = (typeof(ret.data)!='undefined'?JSON.stringify(ret.data):"");
+ }else{
+ me.resultTxt = 'response:success';
+ me.detail = "data type:"+ typeof(ret.data) + "; " +JSON.stringify(ret.data);
+ }
+ }
+ },function(response){
+ console.log('get in progress:'+JSON.stringify(response));
+ me.resultTxt = JSON.stringify(response);
+ });
+ }
+ }
+ }
+</script>
+
+<style scoped>
+ .origin{background-color: #FFFFDF;width: 200;height: 50;}
+ .mr-base{
+ margin: 10px;
+ }
+ .desc{
+ color:#aa0000;
+ font-size: 30px;
+ }
+</style>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/ee0bc569/test/run.sh
----------------------------------------------------------------------
diff --git a/test/run.sh b/test/run.sh
index edeb4a2..8284fad 100755
--- a/test/run.sh
+++ b/test/run.sh
@@ -32,10 +32,13 @@ function buildiOS {
builddir=$(pwd)'/ios/playground'
current_dir=$PWD
cd $builddir
- product=$(PWD)'/build/Debug-iphoneos/WeexDemo.app'
-
+
pod update
- [ -f product ] && rm -rf product
+ if [ $needCoverage = "cover" ] && [ -d "./XcodeCoverage/" ]; then
+ ./XcodeCoverage/podsGcovConfig
+ fi
+ product=$(PWD)'/build/Debug-iphonesimulator/'
+ [ -f $product ] && rm -rf $product
xcodebuild clean build -quiet -workspace WeexDemo.xcworkspace -sdk iphonesimulator -scheme Pods-WeexDemo SYMROOT=$(PWD)/build CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO
xcodebuild clean build -quiet -workspace WeexDemo.xcworkspace -sdk iphonesimulator -scheme WeexSDK SYMROOT=$(PWD)/build CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO
@@ -46,16 +49,28 @@ function buildiOS {
}
+function coverageGenerate {
+ current_dir=$PWD
+ xcodeCover="${current_dir}/ios/playground/XcodeCoverage"
+ if [ -d $xcodeCover ]; then
+ cd $xcodeCover
+ ./getcov -o . -p WeexSDK -x
+ fi
+}
+
function runiOS {
echo 'Run in iOS...'
echo $1
- buildiOS
+ buildiOS $2
echo 'killAll Simulator......'
killAll Simulator || echo 'killall failed'
# ps -ef
startMacacaServer
startWeexServer
platform=ios ./node_modules/mocha/bin/mocha $1 -f '@ignore-ios' -i --recursive --bail --verbose
+ if [ $needCoverage = "cover" ]; then
+ coverageGenerate
+ fi
}
function runWeb {
@@ -71,6 +86,8 @@ function killserver {
platform_android='android'
platform=${1:-$platform_android}
+coverage_status='noCover'
+needCoverage=${2:-$coverage_status}
killserver
#run tests
@@ -80,6 +97,7 @@ elif [ $platform = 'web' ];
then
runWeb ./test/scripts/
else
- runiOS ./test/scripts/
+ echo "$needCoverage"
+ runiOS ./test/scripts/ "$needCoverage"
fi
killserver
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/ee0bc569/test/scripts/components/iconfont.test.js
----------------------------------------------------------------------
diff --git a/test/scripts/components/iconfont.test.js b/test/scripts/components/iconfont.test.js
new file mode 100644
index 0000000..1019fc4
--- /dev/null
+++ b/test/scripts/components/iconfont.test.js
@@ -0,0 +1,34 @@
+'use strict';
+
+var _ = require('macaca-utils');
+var assert = require('chai').assert
+var wd = require('weex-wd')
+var path = require('path');
+var os = require('os');
+var util = require("../util.js");
+
+var switchTag = 'XCUIElementTypeSwitch';
+
+var goal = 'iconfont';
+var interval = util.getGETActionWaitTimeMills();
+describe('weex '+goal+' test', function () {
+ this.timeout(util.getTimeoutMills());
+ var driver = util.createDriver(wd);
+
+ before(function () {
+ return util.init(driver)
+ .get(util.getPage('/components/'+goal+'.js'))
+ .waitForElementByName(goal, interval, 2000)
+ });
+
+ after(function () {
+ return util.quit(driver);
+ })
+
+ it('#1 '+goal + ' event', () => {
+ //TODO :截图比对
+ return driver.waitForElementByName('change', interval, 2000)
+ .click()
+ .sleep(500);
+ })
+});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/ee0bc569/test/scripts/components/input-event.test.js
----------------------------------------------------------------------
diff --git a/test/scripts/components/input-event.test.js b/test/scripts/components/input-event.test.js
new file mode 100644
index 0000000..7a1868f
--- /dev/null
+++ b/test/scripts/components/input-event.test.js
@@ -0,0 +1,38 @@
+'use strict';
+
+var _ = require('macaca-utils');
+var assert = require('chai').assert
+var wd = require('weex-wd')
+var path = require('path');
+var os = require('os');
+var util = require("../util.js");
+
+var inputTag = 'XCUIElementTypeTextField';
+
+var goal = 'input-event';
+var interval = util.getGETActionWaitTimeMills();
+describe('weex '+goal+' test', function () {
+ this.timeout(util.getTimeoutMills());
+ var driver = util.createDriver(wd);
+
+ before(function () {
+ return util.init(driver)
+ .get(util.getPage('/components/'+goal+'.js'))
+ .waitForElementByName(goal, interval, 2000)
+ });
+
+ after(function () {
+ return util.quit(driver);
+ })
+
+ it('#1 '+goal + ' event', () => {
+ return driver
+ .waitForElementByClassName(inputTag, interval, 2000)
+ .sendKeys('testChange')
+ .sleep(500)
+ .sendKeys('\n')
+ .waitForElementByName('change:testChange', interval, 2000)
+
+
+ })
+});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/ee0bc569/test/scripts/components/refresh-loading.test.js
----------------------------------------------------------------------
diff --git a/test/scripts/components/refresh-loading.test.js b/test/scripts/components/refresh-loading.test.js
new file mode 100644
index 0000000..ca3f196
--- /dev/null
+++ b/test/scripts/components/refresh-loading.test.js
@@ -0,0 +1,38 @@
+'use strict';
+
+var _ = require('macaca-utils');
+var assert = require('chai').assert
+var wd = require('weex-wd')
+var path = require('path');
+var os = require('os');
+var util = require("../util.js");
+
+var goal = 'refresh-loading';
+describe('weex '+goal+' test', function () {
+ this.timeout(util.getTimeoutMills());
+ var driver = util.createDriver(wd);
+
+ before(function () {
+ return util.init(driver)
+ .get(util.getPage('/components/'+goal+'.js'))
+ .waitForElementByName("refresh:hide", util.getGETActionWaitTimeMills(), 2000)
+ });
+
+ after(function () {
+ return util.quit(driver);
+ })
+
+ it('#1 '+goal + ' event', () => {
+ return driver
+ .drag('toUp',0.4)
+ .waitForElementByName("refresh:show", util.getGETActionWaitTimeMills(), 2000)
+ .waitForElementByName("hideRefresh").click()
+ .waitForElementByName("refresh:hide", util.getGETActionWaitTimeMills(), 2000)
+
+ .drag('toDown',0.4)
+ .drag('toDown',0.4)
+ .waitForElementByName("loading:show", util.getGETActionWaitTimeMills(), 2000)
+ .waitForElementByName("hideLoading").click()
+ .waitForElementByName("loading:hide", util.getGETActionWaitTimeMills(), 2000)
+ })
+});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/ee0bc569/test/scripts/components/switch-event.test.js
----------------------------------------------------------------------
diff --git a/test/scripts/components/switch-event.test.js b/test/scripts/components/switch-event.test.js
new file mode 100644
index 0000000..93e1253
--- /dev/null
+++ b/test/scripts/components/switch-event.test.js
@@ -0,0 +1,38 @@
+'use strict';
+
+var _ = require('macaca-utils');
+var assert = require('chai').assert
+var wd = require('weex-wd')
+var path = require('path');
+var os = require('os');
+var util = require("../util.js");
+
+var switchTag = 'XCUIElementTypeSwitch';
+
+var goal = 'switch-event';
+var interval = util.getGETActionWaitTimeMills();
+describe('weex '+goal+' test', function () {
+ this.timeout(util.getTimeoutMills());
+ var driver = util.createDriver(wd);
+
+ before(function () {
+ return util.init(driver)
+ .get(util.getPage('/components/'+goal+'.js'))
+ .waitForElementByName(goal, interval, 2000)
+ });
+
+ after(function () {
+ return util.quit(driver);
+ })
+
+ it('#1 '+goal + ' event', () => {
+ return driver
+ .waitForElementByClassName(switchTag, interval, 2000)
+ .click()
+ .waitForElementByName('change response:true', interval, 2000)
+
+ .waitForElementByClassName(switchTag, interval, 2000)
+ .click()
+ .waitForElementByName('change response:false', interval, 2000)
+ })
+});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/ee0bc569/test/scripts/components/web-event.test.js
----------------------------------------------------------------------
diff --git a/test/scripts/components/web-event.test.js b/test/scripts/components/web-event.test.js
new file mode 100644
index 0000000..2ecee7a
--- /dev/null
+++ b/test/scripts/components/web-event.test.js
@@ -0,0 +1,30 @@
+'use strict';
+
+var _ = require('macaca-utils');
+var assert = require('chai').assert
+var wd = require('weex-wd')
+var path = require('path');
+var os = require('os');
+var util = require("../util.js");
+
+var goal = 'web-event';
+var interval = util.getGETActionWaitTimeMills();
+describe('weex '+goal+' test', function () {
+ this.timeout(util.getTimeoutMills());
+ var driver = util.createDriver(wd);
+
+ before(function () {
+ return util.init(driver)
+ .get(util.getPage('/components/'+goal+'.js'))
+ .waitForElementByName(goal, interval, 2000)
+ });
+
+ after(function () {
+ return util.quit(driver);
+ })
+
+ it('#1 '+goal + ' event', () => {
+ return driver
+ .waitForElementByName('page finish', interval, 2000)
+ })
+});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/ee0bc569/test/scripts/modules/animation-translate.test.js
----------------------------------------------------------------------
diff --git a/test/scripts/modules/animation-translate.test.js b/test/scripts/modules/animation-translate.test.js
new file mode 100644
index 0000000..6ef5d42
--- /dev/null
+++ b/test/scripts/modules/animation-translate.test.js
@@ -0,0 +1,40 @@
+'use strict';
+
+var _ = require('macaca-utils');
+var assert = require('chai').assert
+var wd = require('weex-wd')
+var path = require('path');
+var os = require('os');
+var util = require("../util.js");
+
+
+var goal = 'animation-translate';
+var timeout = util.getGETActionWaitTimeMills();
+describe('weex '+goal+' test', function () {
+ this.timeout(util.getTimeoutMills());
+ var driver = util.createDriver(wd);
+
+ before(function () {
+ return util.init(driver)
+ .get(util.getPage('/modules/'+goal+'.js'))
+ .waitForElementByName(goal, timeout, 2000)
+ });
+
+ after(function () {
+ return util.quit(driver);
+ })
+
+ it('#1 '+goal + ' event', () => {
+ //TODO :截图比对
+ return driver.waitForElementByName('translate', timeout, 2000)
+ .click()
+ .waitForElementByName('translate结束')
+ .waitForElementByName('translateX', timeout, 2000)
+ .click()
+ .waitForElementByName('translateX结束')
+ .waitForElementByName('translateY', timeout, 2000)
+ .click()
+ .waitForElementByName('translateY结束')
+
+ })
+});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/ee0bc569/test/scripts/modules/clipboard-event.test.js
----------------------------------------------------------------------
diff --git a/test/scripts/modules/clipboard-event.test.js b/test/scripts/modules/clipboard-event.test.js
new file mode 100644
index 0000000..403bb8d
--- /dev/null
+++ b/test/scripts/modules/clipboard-event.test.js
@@ -0,0 +1,35 @@
+'use strict';
+
+var _ = require('macaca-utils');
+var assert = require('chai').assert
+var wd = require('weex-wd')
+var path = require('path');
+var os = require('os');
+var util = require("../util.js");
+
+
+var goal = 'clipboard-event';
+var timeout = util.getGETActionWaitTimeMills();
+describe('weex '+goal+' test', function () {
+ this.timeout(util.getTimeoutMills());
+ var driver = util.createDriver(wd);
+
+ before(function () {
+ return util.init(driver)
+ .get(util.getPage('/modules/'+goal+'.js'))
+ .waitForElementByName(goal, timeout, 2000)
+ });
+
+ after(function () {
+ return util.quit(driver);
+ })
+
+ it('#1 '+goal + ' event', () => {
+ //TODO :截图比对
+ return driver.waitForElementByName('setItem', timeout, 2000)
+ .click()
+ .waitForElementByName('getItem', timeout, 2000)
+ .click()
+ .waitForElementByName('clipboard-value', timeout, 2000)
+ })
+});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/ee0bc569/test/scripts/modules/downgrade-event.test.js
----------------------------------------------------------------------
diff --git a/test/scripts/modules/downgrade-event.test.js b/test/scripts/modules/downgrade-event.test.js
new file mode 100644
index 0000000..ce169f7
--- /dev/null
+++ b/test/scripts/modules/downgrade-event.test.js
@@ -0,0 +1,30 @@
+'use strict';
+
+var _ = require('macaca-utils');
+var assert = require('chai').assert
+var wd = require('weex-wd')
+var path = require('path');
+var os = require('os');
+var util = require("../util.js");
+
+
+var goal = 'downgrade-event';
+var timeout = util.getGETActionWaitTimeMills();
+describe('weex '+goal+' test', function () {
+ this.timeout(util.getTimeoutMills());
+ var driver = util.createDriver(wd);
+
+ before(function () {
+ return util.init(driver)
+ .get(util.getPage('/modules/'+goal+'.js'))
+ });
+
+ after(function () {
+ return util.quit(driver);
+ })
+
+ it('#1 '+goal + ' event', () => {
+ //TODO :截图比对
+ return driver.sleep(1000).dismissAlert().catch(function(){});
+ })
+});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/ee0bc569/test/scripts/modules/gesture-longpress.test.js
----------------------------------------------------------------------
diff --git a/test/scripts/modules/gesture-longpress.test.js b/test/scripts/modules/gesture-longpress.test.js
new file mode 100644
index 0000000..e600404
--- /dev/null
+++ b/test/scripts/modules/gesture-longpress.test.js
@@ -0,0 +1,37 @@
+'use strict';
+
+var _ = require('macaca-utils');
+var assert = require('chai').assert
+var wd = require('weex-wd')
+var path = require('path');
+var os = require('os');
+var util = require("../util.js");
+
+
+var goal = 'gesture-longpress';
+var timeout = util.getGETActionWaitTimeMills();
+describe('weex '+goal+' test', function () {
+ this.timeout(util.getTimeoutMills());
+ var driver = util.createDriver(wd);
+
+ before(function () {
+ return util.init(driver)
+ .get(util.getPage('/modules/'+goal+'.js'))
+ .waitForElementByName(goal, timeout, 2000)
+ });
+
+ after(function () {
+ return util.quit(driver);
+ })
+
+ it('#1 '+goal + ' event', () => {
+ return driver.waitForElementByName('longpress', timeout, 2000)
+ .touch('press', { duration: 2 })
+ .sleep(1000)
+ .waitForElementById('result',timeout,1000)
+ .text()
+ .then((text) => {
+ assert.include(text, 'screenY')
+ })
+ })
+});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/ee0bc569/test/scripts/modules/modal-event.test.js
----------------------------------------------------------------------
diff --git a/test/scripts/modules/modal-event.test.js b/test/scripts/modules/modal-event.test.js
new file mode 100644
index 0000000..58f2499
--- /dev/null
+++ b/test/scripts/modules/modal-event.test.js
@@ -0,0 +1,32 @@
+'use strict';
+
+var _ = require('macaca-utils');
+var assert = require('chai').assert
+var wd = require('weex-wd')
+var path = require('path');
+var os = require('os');
+var util = require("../util.js");
+
+var goal = 'modal-event';
+var timeout = util.getGETActionWaitTimeMills();
+describe('weex '+goal+' test', function () {
+ this.timeout(util.getTimeoutMills());
+ var driver = util.createDriver(wd);
+
+ before(function () {
+ return util.init(driver)
+ .get(util.getPage('/modules/'+goal+'.js'))
+ .waitForElementByName(goal, timeout, 2000)
+ });
+
+ after(function () {
+ return util.quit(driver);
+ })
+
+ it('#1 '+goal + ' event', () => {
+ //TODO :截图比对
+ return driver.waitForElementByName('alertClick', timeout, 2000)
+ .click()
+ .waitForElementByName('alert success', timeout, 2000)
+ })
+});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/ee0bc569/test/scripts/modules/picker-event.test.js
----------------------------------------------------------------------
diff --git a/test/scripts/modules/picker-event.test.js b/test/scripts/modules/picker-event.test.js
new file mode 100644
index 0000000..9184f9d
--- /dev/null
+++ b/test/scripts/modules/picker-event.test.js
@@ -0,0 +1,35 @@
+'use strict';
+
+var _ = require('macaca-utils');
+var assert = require('chai').assert
+var wd = require('weex-wd')
+var path = require('path');
+var os = require('os');
+var util = require("../util.js");
+
+
+var goal = 'picker-event';
+var timeout = util.getGETActionWaitTimeMills();
+describe('weex '+goal+' test', function () {
+ this.timeout(util.getTimeoutMills());
+ var driver = util.createDriver(wd);
+
+ before(function () {
+ return util.init(driver)
+ .get(util.getPage('/modules/'+goal+'.js'))
+ .waitForElementByName(goal, timeout, 2000)
+ });
+
+ after(function () {
+ return util.quit(driver);
+ })
+
+ it('#1 '+goal + ' event', () => {
+ //TODO :截图比对
+ return driver.waitForElementByName('showPicker', timeout, 2000)
+ .click()
+ .waitForElementByName('Done', timeout, 2000)
+ .click()
+ .waitForElementByName('2018-01-01')
+ })
+});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/ee0bc569/test/scripts/modules/storage-event.test.js
----------------------------------------------------------------------
diff --git a/test/scripts/modules/storage-event.test.js b/test/scripts/modules/storage-event.test.js
new file mode 100644
index 0000000..8b855f8
--- /dev/null
+++ b/test/scripts/modules/storage-event.test.js
@@ -0,0 +1,36 @@
+'use strict';
+
+var _ = require('macaca-utils');
+var assert = require('chai').assert
+var wd = require('weex-wd')
+var path = require('path');
+var os = require('os');
+var util = require("../util.js");
+
+
+var goal = 'storage-event';
+var timeout = util.getGETActionWaitTimeMills();
+describe('weex '+goal+' test', function () {
+ this.timeout(util.getTimeoutMills());
+ var driver = util.createDriver(wd);
+
+ before(function () {
+ return util.init(driver)
+ .get(util.getPage('/modules/'+goal+'.js'))
+ .waitForElementByName(goal, timeout, 2000)
+ });
+
+ after(function () {
+ return util.quit(driver);
+ })
+
+ it('#1 '+goal + ' event', () => {
+ //TODO :截图比对
+ return driver.waitForElementByName('setItem', timeout, 2000)
+ .click()
+ .waitForElementByName('setItem success', timeout, 2000)
+ .waitForElementByName('getItem', timeout, 2000)
+ .click()
+ .waitForElementByName('getItem:value', timeout, 2000)
+ })
+});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/ee0bc569/test/scripts/modules/stream-result.test.js
----------------------------------------------------------------------
diff --git a/test/scripts/modules/stream-result.test.js b/test/scripts/modules/stream-result.test.js
new file mode 100644
index 0000000..3503cdd
--- /dev/null
+++ b/test/scripts/modules/stream-result.test.js
@@ -0,0 +1,34 @@
+'use strict';
+
+var _ = require('macaca-utils');
+var assert = require('chai').assert
+var wd = require('weex-wd')
+var path = require('path');
+var os = require('os');
+var util = require("../util.js");
+
+var switchTag = 'XCUIElementTypeSwitch';
+
+var goal = 'stream-result';
+var timeout = util.getGETActionWaitTimeMills();
+describe('weex '+goal+' test', function () {
+ this.timeout(util.getTimeoutMills());
+ var driver = util.createDriver(wd);
+
+ before(function () {
+ return util.init(driver)
+ .get(util.getPage('/modules/'+goal+'.js'))
+ .waitForElementByName(goal, timeout, 2000)
+ });
+
+ after(function () {
+ return util.quit(driver);
+ })
+
+ it('#1 '+goal + ' event', () => {
+ //TODO :截图比对
+ return driver.waitForElementByName('streamGet', timeout, 2000)
+ .click()
+ .waitForElementByName('response:success', timeout, 2000)
+ })
+});
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/ee0bc569/test/scripts/util.js
----------------------------------------------------------------------
diff --git a/test/scripts/util.js b/test/scripts/util.js
index fd9fa43..6992429 100644
--- a/test/scripts/util.js
+++ b/test/scripts/util.js
@@ -156,6 +156,44 @@ module.exports = {
.sleep(1000)
})
})
+
+ //direct : toUp,toDown,toLeft,toRight, dragStartPct: 偏移量,0~1
+ driverFactory.addPromiseChainMethod('drag', function(direct,dragStartPct) {
+ return this.getWindowSize()
+ .then(size => {
+ let {width,height} = size;
+ if(!direct){direct='toUp';}if(!dragStartPct){dragStartPct=0;}
+ let fromX,toX,fromY,toY;
+ switch (direct) {
+ case 'toUp':
+ fromX = toX = Math.floor(width / 2);
+ fromY = Math.floor(height * 1 / 4 + height * dragStartPct * 3/4);
+ toY = Math.floor(height * 3 / 4 + height * dragStartPct * 1/4);
+ break;
+ case 'toLeft':
+ fromY = toY = Math.floor(height / 2);
+ fromX = Math.floor(width * 1 / 4 + width * dragStartPct * 3 / 4);
+ toX = Math.floor(width * 3 / 4 + width * dragStartPct * 1 / 4);
+ break;
+ case 'toRight':
+ fromY = toY = Math.floor(height / 2);
+ toX = Math.floor(width * 1 / 4 + width * dragStartPct * 3 / 4);
+ fromX = Math.floor(width * 3 / 4 + width * dragStartPct * 1 / 4);
+ break;
+ case 'toDown':
+ default:
+ fromX = toX = Math.floor(width / 2);
+ toY = Math.floor(height * 1 / 4 + height * dragStartPct * 3/4);
+ fromY = Math.floor(height * 3 / 4 + height * dragStartPct * 1/4);
+ break;
+ }
+ return this.touch('drag', {
+ fromX: fromX,fromY: fromY,toX: toX,toY: toY,duration: 0.1
+ })
+ .sleep(500)
+ })
+ });
+
driverFactory.addPromiseChainMethod('swipeLeft', function (distanceRatio, yRatio) {
return this
.getWindowSize()
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/ee0bc569/test/scripts/zcover-generate.js
----------------------------------------------------------------------
diff --git a/test/scripts/zcover-generate.js b/test/scripts/zcover-generate.js
new file mode 100644
index 0000000..bc958a0
--- /dev/null
+++ b/test/scripts/zcover-generate.js
@@ -0,0 +1,32 @@
+'use strict';
+
+var _ = require('macaca-utils');
+var assert = require('chai').assert
+var wd = require('weex-wd')
+var path = require('path');
+var os = require('os');
+var util = require("./util.js");
+
+var goal = 'cover-generate';
+var timeout = util.getGETActionWaitTimeMills();
+describe('weex '+goal+' test @ignore-android', function () {
+ this.timeout(util.getTimeoutMills());
+ var driver = util.createDriver(wd);
+
+ before(function () {
+ return util.init(driver)
+ .get(util.getPage('/modules/'+goal+'.js'))
+ .waitForElementByName(goal, timeout, 2000)
+ });
+
+ after(function () {
+ return util.quit(driver);
+ })
+
+ it('#1 '+goal + ' event', () => {
+ //TODO :截图比对
+ return driver.waitForElementByName('generate', timeout, 2000)
+ .click()
+ .waitForElementByName('coverage success', timeout, 2000)
+ })
+});
\ No newline at end of file