* [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 <279483...@qq.com> Authored: Wed Aug 9 13:57:47 2017 +0800 Committer: gurisxie <279483...@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