diff --git a/all.js b/all.js index cef208b..cb601f7 100644 --- a/all.js +++ b/all.js @@ -53,6 +53,8 @@ #import "testcase/salesOrder/salesOrder.js" #import "testcase/salesOrder/salesOrderFields.js" +#import "testcase/sensitive/sensitive.js" + #import "testcase/shopIn/shopIn.js" #import "testcase/shopIn/shopInFields.js" diff --git a/lib/sales.js b/lib/sales.js index 78d70f6..1674d79 100644 --- a/lib/sales.js +++ b/lib/sales.js @@ -3,6 +3,7 @@ var colorSize = "no"; /** * 新增开单,无颜色尺码 核销5是指核销界面上按钮下标,多选是个按钮 + * * @param o 输入对象,eg: { "客户" : "zhhz1", "店员" : "005", "发货" : "仓库店","日期" : * "2015-10-01", "价格":"打包价","明细" : [ { "货品" : "k300", "数量" : 5,"备注" : * "xx" } ], "核销" : [ 5 ],"特殊货品" : { "抹零" : 9, "打包费" : 10 } , "现金" : @@ -16,6 +17,7 @@ function editSalesBillNoColorSize(o) { } /** * 新增开单,颜色尺码 + * * @param o 主要明细不同,其它同非颜色尺码,eg: { "明细" : [ { "货品" : "14L595", "数量" : [ 5, 6, 7 ] }, { * "货品" : "150921", "数量" : [ 1, 2, 3 ] } ],"关闭明细":"no" }; */ @@ -24,6 +26,7 @@ function editSalesBillColorSize(o) { } /** * 新增开单,尺码头部 + * * @param o 主要明细不同,其它同非颜色尺码,eg: { "明细" : [ { "货品" : "141229000", "颜色" : "灰色", * "尺码" : { "S2" : 2, "S3" : 3 } } ] }; */ @@ -32,6 +35,7 @@ function editSalesBillSizehead(o) { } /** * 具体实现 + * * @param o * @param colorSize * @returns @@ -82,6 +86,7 @@ function editSalesBill(o, colorSize) { } /** * 无颜色尺码明细 + * * @param o */ function editSalesBillDetNoColorSize(o) { @@ -148,6 +153,7 @@ function editSalesBillDetNoColorSize(o) { /** * 颜色尺码明细 + * * @param o */ function editSalesBillDetColorSize(o) { @@ -214,6 +220,7 @@ function editSalesBillDetColorSize(o) { /** * 尺码表头明细 { "明细" : [ { "货品" : "141229000", "颜色" : "灰色", "尺码" : { "S2" : 2, "S3" : * 3 } }, { "货品" : "141229000", "颜色" : "黑色", "尺码" : { "S1" : 1 } } ] }; + * * @param o */ function editSalesBillDetSizehead(o) { @@ -225,7 +232,7 @@ function editSalesBillDetSizehead(o) { var view1 = getScrollView(-1); var texts = getStaticTexts(view1); // 尺码头部下显示库存 文本框下标与标题不对应,根据相应X轴重新取值 - var tfidx = getDetSizheadTFIndex(titles); +// var tfidx = getDetSizheadTFIndex(titles); var tfNum = tfidx["明细输入框个数"];// 不能用标题个数判断 for (var i = 0; i < details.length; i++) { @@ -247,7 +254,8 @@ function editSalesBillDetSizehead(o) { var sizeObj = d["尺码"]; for ( var j in sizeObj) { var cm = sizeObj[j]; - colIndex = tfidx[j]; + // colIndex = tfidx[j]; + colIndex = titles[j]; f = new TField(j, TF, start + colIndex, cm); fields.push(f); } @@ -310,6 +318,7 @@ function editSalesBillCustomer(o) { /** * 简单字段输入 + * * @param o * @param key */ @@ -470,6 +479,7 @@ function editSalesBillGetValue() { } /** * 获取开单界面值 + * * @returns */ function getSalesBillValueByLabel() { @@ -531,6 +541,7 @@ function editSalesBillSave(o) { /** * 开单界面新增客户 eg:o={"名称":"小王","手机":"1234","店员":"000","适用价格":"零批价","地址":"a"}; + * * @param o */ function editSalesBillAddCustomer(o) { @@ -575,6 +586,7 @@ function editSalesBillAddCustomer(o) { } /** * 开单界面,新增货品 颜色尺码模式不会自动添加到单据,开单细节不同,因此暂时不放到editSalesBill中 + * * @param o * eg:{"款号":"kh","名称":"名称","进货价":120,"零批价":130,"打包价":140,"大客户价":150,"Vip价格":160, * "添加到单据":"否"} @@ -635,6 +647,7 @@ function editSalesBillAddGoods(o) { } /** * 刷卡 + * * @param o eg:{"刷卡":[100]} 或 {"刷卡":[100,"交"]} */ function editSalesBillCard(o) { @@ -642,6 +655,7 @@ function editSalesBillCard(o) { } /** * 汇款 + * * @param o eg:{"汇款":[100]} 或 {"汇款":[100,"交"]} */ function editSalesBillRemit(o) { @@ -690,6 +704,7 @@ function editSalesBillUnpay(o) { /** * 代收,模式2会返回代收金额 + * * @param o eg: {"代收":"是"} 或者 {"代收":{"物流商":"yt","运单号":"123","备注":"a","代收金额":90}} */ function editSalesBillAgency(o) { @@ -752,6 +767,7 @@ function editSalesBillAgency2(obj) { /** * 开单明细,点击款号TableView的cell + * * @param o eg: { "明细" : [ { "货品" : "30", "表格行包含" : "绿茶"} ]} * @returns */ @@ -781,6 +797,7 @@ function editSalesBillDetTapCell(o, colorSize) { /** * 颜色尺码库存数,只能根据坐标来判断属于哪个尺码,哪个颜色 + * * @returns {"花色-27-常青店":-3,... } 如果只显示本门店的,key中不带本店,eg:{"花色-27":-3,... } */ function getColorSizeStockNum() { @@ -846,6 +863,7 @@ function getColorSizeStockNum() { } /** * 如果不指定输入框个数,自动判断个数 + * * @param o * @returns {Number} 明细输入框个数 */ @@ -880,63 +898,66 @@ function getSalesBillDetTfNum(o, idx) { } /** * 尺码表头模式 获取明细输入框个数,标题列号,从0开始 + * * @params order 寻找顺序 * @returns {"明细输入框个数":10,"货品":0,"颜色":1,"T9":2,"S1":2,...} */ function getDetSizheadTitle(order) { // debugElementTree(window); // 标题以#开头,表示序号,以操作结束 - var texts = getStaticTexts(window), ignore = 1; + var ret = {}, colX = {}, temp = {}, colIndex = -1; + var texts = getStaticTexts(window); var qrTitle1 = getSalesBillDetTitle1Index(texts, order);// 起始标题 # 图 var qrTitle2 = getQResultTitle(texts, "操作", "#", order);// 结束标题 操作 - var ret = {}, temp = {}, colX = {}, colIndex = -1, i; - // 对应输入框的标题,货品,颜色,尺码...,单价,小计 - for (i = qrTitle1.index + 1; i < qrTitle2.index; i++) { - colIndex++; - var width = texts[i].rect().size.width; - if (width > 5) { - var title = texts[i].name(); - // logDebug("i=" + i + " title=" + title + " colIndex=" + colIndex); + for (var j = qrTitle1.index + 1; j < qrTitle2.index; j++) { + var width = texts[j].rect().size.width; + if (width > 5) {// 忽略隐藏标题 + var title = texts[j].name(); if (!isNull(title) && isDefined(title)) { - ret[title] = colIndex; - } else { - title = "cm" + colIndex; - ret[title] = colIndex; + colX[title] = getX(texts[j]); } - temp[title] = colIndex; - colX[title] = getX(texts[i]); - } else { - ignore++; } - } - ret["明细输入框个数"] = qrTitle2.index - qrTitle1.index - ignore;// 只是有效的输入框个数 - ret["标题坐标"] = colX;// 尺码表头显示尺码 确定TF对应的标题用,其他都是下标对应的关系 - // debugObject(colX,"colX"); - // debugObject(temp,"temp"); - // 其它尺码加入标题 - for (i = qrTitle2.index + 1; i < texts.length; i++) { - var y = getY(texts[i]); - if (y > 300) { - break;// 排除底下的静态文本 + + var headView = getScrollView(-2);// -2尺码表头 -1单据明细 + var headTexts = getStaticTexts(headView); + var len = headTexts.length; + // 获取第一行尺码组 + var x = 0, xPre = 0 + for (var i = 0; i < len; i++) { + var x = getX(headTexts[i]); + if (xPre > 0 && xPre > x) { + break; } - var x = texts[i].rect().origin.x; - var size = texts[i].name(); - var t = getKeyByXy(colX, x); - // logDebug("x=" + x + " size=" + size + " t=" + t); - if (!isNull(t) && isDefined(t) && !isNull(size) && isDefined(size)) { - ret[size] = temp[t]; - } else { - // logInfo("忽略 size=" + size + " t=" + t); + colIndex++;// 尺码下标 + var title = headTexts[i].name(); + if (isNull(title) || isUndefined(title)) { + title = "cm" + colIndex; } - + colX[title] = x; + xPre = x; } + ret = getDetSizheadTFIndex(colX);// 根据TF的X轴取下标,兼容是否显示库存 + ret["标题坐标"] = colX;// 尺码表头显示尺码 确定TF对应的标题用,其他都是下标对应的关系 + + // 其它尺码加入标题,取前4组尺码 其他的尺码组未维护,取出来没用 +// for (var ii = colIndex + 1, len = 4 * (colIndex + 1); ii < len; ii++) { +// var x = getX(headTexts[ii]); +// var size = texts[ii].name(); +// for ( var t in colX) { +// if (colX[t] == x) { +// ret[size] = temp[t]; // 根据X轴取标题 过滤掉隐藏的内容 +// break; +// } +// } +// } debugObject(ret, "ret"); return ret; } /** * 加载挂单 + * * @param i 下标,从0开始 */ function loadHangBill(i) { @@ -999,6 +1020,7 @@ function testGetColorSizeStockNum1() { } /** * 所有挂单 + * * @returns {Boolean} */ function testGetAllHangBills() { diff --git a/suite1.js b/suite1.js index a4f8ab8..c257f0a 100644 --- a/suite1.js +++ b/suite1.js @@ -21,11 +21,10 @@ function test000All() { var caseName="测试用例"; // TITLE_SXE = getTitleSXE();//新综合汇总 列表标题 // testCheckMenuAll();//菜单检查,跑用例前先跑一遍 - // run(caseName, "setSizeHeadParams_1");// // testSizeHead001_shop1(); - run(caseName, "onlyTest"); -// run(caseName, "ts100059Color");// +// run(caseName, "test280001"); + run(caseName, "onlyTest");// } function onlyTest(){ UIATarget.localTarget().logElementTree(); @@ -41,6 +40,9 @@ function onlyTest(){ // { "货品" : "agc001", "颜色" : "白色", "尺码" : { "L" : 10, "XL" : 20 } }, // { "货品" : "agc001", "颜色" : "黑色", "尺码" : { "S" : 30 } } ]}; // editSalesBill(json, colorSize); +// tapMenu("盘点管理", "更多", "未盘点款号"); +// var tf = getQueryTFields([ "厂商" ]); +// debugObject(tf[0]); // target.captureScreenWithName("test"); }catch(e){ @@ -53,6 +55,7 @@ function onlyTest(){ // debugObject(gCache,"gCache"); return true; } + // function loginGoodsParams001(){ var p1 = {"角色":"总经理","帐套":"autotest1"}; diff --git a/testcase/check/checkFields.js b/testcase/check/checkFields.js index aa5dfbd..8748ba9 100644 --- a/testcase/check/checkFields.js +++ b/testcase/check/checkFields.js @@ -355,53 +355,49 @@ function checkUnCheckCodeField(key, show) { switch (key) { case "code": case "款号": - f = new TField("款号", TF_AC, 0, "a", 1, 0); - if (show) { - f.value = "5880,kha,210元"; - } + f = new TField("款号_421", TF_AC, 0, "a", -1, 0); break; case "name": case "款号名称": - f = new TField("款号名称", TF, 1, "aaa"); + f = new TField("款号名称_525", TF, 1, "aaa"); break; case "brand": case "品牌": - f = new TField("品牌", TF, 2, "Addidas"); + f = new TField("品牌_156", TF_AC, 2, "Addidas",-1,0); if (show) { f.type = TF; - f.index = 1 } break; case "type": case "类别": - f = new TField("类别", TF_SC, 3, "登山服"); + f = new TField("类别_221", TF_SC, 3, "登山服"); break; case "provider": case "厂商": - f = new TField("厂商", TF_AC, 4, "adi", 1, 0); + f = new TField("厂商_451", TF_AC, 4, "adi", -1, 0); if (show) { f.value = "Adida公司"; } break; case "shop": case "门店": - f = new TField("门店", TF, 5, "常青店"); + f = new TField("门店_436", TF, 5, "常青店",-1,0);//实际为TF_AC break; case "day1": case "日期从": - f = new TField("日期从", TF_DT, 6, "2015-9-11"); + f = new TField("操作日期从_92", TF_DT, 6, getToday()); break; case "day2": case "日期到": - f = new TField("日期到", TF_DT, 7, getToday()); + f = new TField("到_93", TF_DT, 7, getToday()); break; case "batch1": case "批次从": - f = new TField("批次从", TF, 8, "1"); + f = new TField("批次从_544", TF, 8, "1"); break; case "batch2": case "批次到": - f = new TField("批次到", TF, 9, "20"); + f = new TField("到_545", TF, 9, "20"); break; default: logWarn("未知key=" + key); diff --git a/testcase/goods/goods.js b/testcase/goods/goods.js index 70b7008..0e24c91 100644 --- a/testcase/goods/goods.js +++ b/testcase/goods/goods.js @@ -3866,9 +3866,8 @@ function ts100116() { editSalesBill(json, colorSize); tapMenu("货品管理", "当前库存"); - var keys = { "款号" : code }; - var fields = queryGoodsStockFields(keys); - query(fields); + var qKeys = { "款号" : code }; + conditionQuery(qKeys); var qr = getQR(); var ret = isEqual(1, qr.data[0]["上架天数"]); diff --git a/testcase/goods/goodsFields.js b/testcase/goods/goodsFields.js index 75e62dd..8a45a4a 100644 --- a/testcase/goods/goodsFields.js +++ b/testcase/goods/goodsFields.js @@ -17,9 +17,7 @@ function testQueryGoodsStockFields() { * @returns */ function queryGoodsStockFields(keys, show) { - if (isUndefined(show)) { - show = false; - } + show = show || false; var idx = getValueFromCacheF1("getQueryBtnIndex");// 第一个...按钮下标 return getTFields("queryGoodsStockField", window, keys, show, idx); } diff --git a/testcase/goods/goodsInc.js b/testcase/goods/goodsInc.js index b871d64..8272ba8 100644 --- a/testcase/goods/goodsInc.js +++ b/testcase/goods/goodsInc.js @@ -2,6 +2,7 @@ //一些不靠谱的方法 /** * 加 + * * @param a * @param b * @returns {Number} @@ -23,6 +24,7 @@ function add(a, b) { } /** * 减 + * * @param a * @param b * @returns {Number} @@ -44,6 +46,7 @@ function sub(a, b) { } /** * 乘 + * * @param a * @param b * @returns {Number} @@ -63,6 +66,7 @@ function mul(a, b) { } /** * 除 + * * @param a * @param b * @returns {Number} @@ -93,6 +97,7 @@ function cToEn(str) { /** * 新增/修改客户 + * * @param keys * @param o * @returns keys @@ -137,6 +142,7 @@ function editCustomerSave(o) { } /** * 新增货品 + * * @param keys * @param o * @param isEdit @@ -177,6 +183,7 @@ function editGoodsSave(o) { } /** * 新增盘点处理 + * * @param keys * @param btn 全盘处理/部分处理 */ @@ -190,6 +197,7 @@ function editStockProcess(keys, btn) { } /** * 新增物流核销单 + * * @param o eg{ "物流" : "sf", "核销" : 0 }或{ "物流" : "sf", "核销" : [100] }批次号 * @returns */ @@ -211,6 +219,7 @@ function addLogisticsVerify(o) { /** * 对象相加 + * * @param jo1 不能为空 * @param jo2 * @returns @@ -237,6 +246,7 @@ function addObject(jo1, jo2) { /** * 新增厂商 + * * @param keys */ function addProvider(keys) { @@ -251,6 +261,7 @@ function addProvider(keys) { /** * 新增积分兑换 + * * @param customer * @param points 兑换积分 * @param money 兑换金额 @@ -267,6 +278,7 @@ function addRedeemPoints(customer, points, money) { } /** * 积分兑换 + * * @param points * @param money */ @@ -293,6 +305,7 @@ function addRedeemPointsFields(points, money) { } /** * 获取颜色尺码模式开单界面明细中货品的textField下标 + * * @returns {Number} */ function getBillDetCSGoodsFieldIndex() { @@ -313,6 +326,7 @@ function getBillDetCSGoodsFieldIndex() { } /** * 获取开单界面明细界面第一个内容为空的货品textField下标 + * * @param tfNum 明细输入框个数 * @param idx scrollView下标 默认-1 * @returns {Number} @@ -336,6 +350,7 @@ function getBillDetInputIndex(tfNum, idx) { } /** * 计算汇总值 + * * @param cond */ function getCounts(cond) { @@ -377,6 +392,7 @@ function getPopCollectionView(view, i) { } /** * 简单的月日转4位年月日 大于当日改成去年,需要定期清理数据 一般不会往后做数据 + * * @param day * @returns {String} */ @@ -391,6 +407,7 @@ function getDay04(day) { } /** * 将日期转化为4位年月日 + * * @param day * @returns {String} */ @@ -409,6 +426,7 @@ function getDayToFullYear(day) { } /** * 获取开单界面window视图中的值,标题与文本框必须一一对应 + * * @param firstTitle 起始标题 * @param arr 需要获取的标题数组 * @returns @@ -426,22 +444,22 @@ function getEditBillValue(firstTitle, arr) { } /** * 获取视图中所有元素的数组 + * * @param view * @returns */ function getElements(view) { - if (isUndefined(view)) { - view = window; - } + view = view || window; return view.elements(); } /** * 获取开单界面标题对应的TF下标 - * @param titles eg getDetSizheadTitle + * + * @param titleX eg getDetSizheadTitle()["标题坐标"] * @returns */ -function getDetSizheadTFIndex(titles) { - var titleX = titles["标题坐标"]; +function getDetSizheadTFIndex(titleX) { + debugObject(titleX, "titleX"); var texts = getTextFields(getScrollView(-1)); var arrX = [], x = 0, ret = {}; for (var i = 0, len = texts.length; i < len; i++) { @@ -451,8 +469,12 @@ function getDetSizheadTFIndex(titles) { if (isRepetition(arrX)) { break; } - var t = getKeyByXy(titleX, x); - ret[t] = i;// 根据X轴取标题 过滤掉隐藏的内容 + for ( var t in titleX) { + if (titleX[t] == x) { + ret[t] = i; // 根据X轴取标题 过滤掉隐藏的内容 + break; + } + } } ret["明细输入框个数"] = i--; debugObject(ret, "尺码表头显示尺码,tf下标为"); @@ -460,6 +482,7 @@ function getDetSizheadTFIndex(titles) { } /** * 获取尺码表头模式显示库存情况下,开单界面的明细值 + * * @returns {detResult} */ function getQRDet(view) { @@ -472,7 +495,7 @@ function getQRDet(view) { } var titles = getDetSizheadTitle(); - var titles_tf = getDetSizheadTFIndex(titles); + var titles_tf = getDetSizheadTFIndex(titles["标题坐标"]); var tfNum = titles_tf["明细输入框个数"]; delete titles_tf["明细输入框个数"]; var textFields = getTextFields(view); @@ -548,6 +571,7 @@ function getQR3(dataView, firstTitle, lastTitle) { } /** * 获取类似往来管理-客户账款-客户门店账-所有未结界面明细的查询结果 + * * @param dataView * @param firstTitle * @param lastTitle @@ -602,6 +626,7 @@ function getQResult3(dataView, firstTitle, lastTitle) { } /** * 类似核销界面取值 标题和内容都在一个视图内 + * * @param view getScrollView(-1,0) * @param firstTitle * @returns {QResult} @@ -649,6 +674,7 @@ function getQRVerify_x(view, firstTitle) { } /** * 获取类似往来管理-客户账款-所有统计window界面的值 + * * @param dataView * @param firstTitle * @param lastTitle @@ -682,6 +708,7 @@ function getQRStaticTexts(dataView, firstTitle, lastTitle) { } /** * 取指定范围内的随机数 + * * @param min * @param max * @param dn 小数位 @@ -694,6 +721,7 @@ function getRandomNum(min, max, dn) { } /** * 取N位随机字符串 + * * @param n * @returns {String} */ @@ -708,6 +736,7 @@ function getRandomStr(n) { } /** * 获取明细输入框标题,标题列号,从0开始 + * * @returns {"货品":0, "颜色":1, "尺码":2,... "明细输入框个数":10 } */ function getSalesBillDetTitleObject() { @@ -739,6 +768,7 @@ function getSalesBillDetTitleObject() { } /** * 获取明细输入框个数,标题列号,从0开始 + * * @returns {"货品":0, "颜色":1, "尺码":2,... "明细输入框个数":10 } */ function getSalesBillDetTfObject() { @@ -786,6 +816,7 @@ function getSalesBillDetTfObject() { } /** * 获取开单界面起始标题下标 + * * @param texts * @param order 获取顺序 asc desc * @returns {Number} @@ -864,6 +895,7 @@ function subTime(day1, day2) { /** * 点击第N行 + * * @param n 从0开始 * @param view * @param firstTitle 标题行第一个标题 @@ -901,6 +933,7 @@ function tapLine(n, view, firstTitle) { } /** * 点击导航栏左按钮,防止用例出错卡界面 + * * @param max 最大尝试次数 */ function tapNaviClose(max) { @@ -956,6 +989,7 @@ function tapStaticTextByValue(view1, txt1) { } /** * 点击第一个内容为希望值的静态文本 + * * @param name 默认为1,即点击第一条数据 * @param view1 */ @@ -977,6 +1011,7 @@ function tapTextByFirstWithName(name, view1) { /** * 修改密码 + * * @param oldSecure * @param newSecure */ @@ -1001,6 +1036,7 @@ function changeSecure(oldSecure, newSecure) { } /** * 修改TField值 + * * @param view * @param fields */ @@ -1029,6 +1065,7 @@ function checkDate(str) { } /** * 验证单据值 + * * @param json * @returns {Boolean} */ @@ -1038,6 +1075,7 @@ function checkBillValue(json) { } /** * 开单简单的界面值对比 TV的备注有用例覆盖,这里跳过 + * * @param exp * @returns {Boolean} */ @@ -1053,6 +1091,7 @@ function checkBillWinValue(exp) { } /** * 验证单据明细值 + * * @param exp json["明细值"] * @returns {Boolean} */ @@ -1066,6 +1105,7 @@ function checkBillDetValue(exp) { } /** * 模糊查询验证 + * * @param f * @param title1 * @param title2 比如款号名称对应款号/名称,2个符合一个就可以 @@ -1115,6 +1155,7 @@ function testCheckFuzzyQuery() { /** * 单项查询条件验证 + * * @param title * @param expected * @param type batch/day/in @@ -1179,6 +1220,7 @@ function checkQResultField(title, expected, type, expected2) { } /** * 验证其他角色门店查询结果 + * * @param onlymyshop 是否只显示本门店数据 默认本门店 * @returns {Boolean} */ @@ -1212,6 +1254,7 @@ function checkShopQueryRights(onlymyshop) { } /** * 清除指定下标的文本框的内容 + * * @param view * @param index * @param type "SC":TF_SC一类的文本框 @@ -1239,6 +1282,7 @@ function toDate(day) { /** * 先等1S,等到没有弹窗为止 + * * @param maxSeconds */ function waitUntilAlertInvisible(maxSeconds) { @@ -1253,6 +1297,7 @@ function waitUntilAlertInvisible(maxSeconds) { } /** * 等待loading图 activityIndicator + * * @param maxTime最大等待时间,默认60s */ function waitForLoad(maxTime) { @@ -1275,6 +1320,7 @@ function waitForLoad(maxTime) { } /** * 跳转到指定页面(输入值) + * * @param page * @param qr */ @@ -1300,6 +1346,7 @@ function goPage2(page, qr) { /** * 翻页检验 取页面每一条数据与其他页面的每一条数据做对比 正常情况下,应该不存在完全相同的数据吧~ 最后会回到第一页 + * * @param pageInfoView * @param dataView * @param firstTitle @@ -1391,6 +1438,7 @@ function goPageCheck(pageInfoView, dataView, firstTitle) { /** * 页面切换,输入页码后点取消,验证留在当前页 + * * @param qr */ function goPageCheckField() { @@ -1423,6 +1471,7 @@ function stringToDate(str) { /** * 操作时间是否相等 格式 mm-dd hh:mm + * * @param expected * @param actual * @param allow 允许的误差值,默认1分钟 @@ -1443,6 +1492,7 @@ function isAqualOptimeX(expected, actual, allow) { /** * 二维数组是否相似 + * * @param data1 * @param data2 * @param allow 操作时间允许的误差值,默认为0 @@ -1461,6 +1511,7 @@ function isEqualDyadicArray(data1, data2, allow) { /** * 2个对象相同属性的值是否相等 + * * @param expected * @param actual * @param allow 操作时间允许的误差值,默认为1分钟 @@ -1497,6 +1548,7 @@ function arrayToString(data) { } /** * 数组是否不同 + * * @param data1 * @param data2 * @returns {Boolean} @@ -1553,6 +1605,7 @@ function isDisabledTField(idx, view) { /** * 判断2个数组是否有相同数据 + * * @param arr1 * @param arr2 * @returns {Boolean} @@ -1574,6 +1627,7 @@ function isHasSame(arr1, arr2) { /** * 弹窗消息数组中是否包含希望内容 + * * @param str * @returns */ @@ -1584,6 +1638,7 @@ function isInAlertMsgs(str) { } /** * 数组b是否包含数组a + * * @param arr2 * @param arr1 * @returns {Boolean} @@ -1602,6 +1657,7 @@ function isInArray2(arr2, arr1) { } /** * 如果expected里的内容包含查询结果数据中一行数据的内容 ,返回真 + * * @param qr QResult对象 * @param expected 期望行数据对象 * @returns {Boolean} @@ -1661,6 +1717,7 @@ function scrollPrevPageCheck(pageInfoView, dataView, firstTitle) { /** * 详细页面滑动翻页验证 + * * @param dataView * @param firstTitle * @param titleTotal @@ -1710,6 +1767,7 @@ function scrollPrevPageCheck2(dataView, firstTitle, lastTitle) { /** * 下拉列表验证,有一个符合就返回true 已去除空格逗号等 + * * @param index 静态文本下标 * @param value 输入值 * @param expected 希望显示的内容 @@ -1743,6 +1801,7 @@ function dropDownListCheck(index, value, expected, o) { /** * 下拉列表验证,有一个不符合就返回false + * * @param index * @param value * @param expected @@ -1771,6 +1830,7 @@ function dropDownListCheck2(index, value, expected, o) { } /** * 下拉列表是否包含期望值的内容 + * * @param exp eg:exp = "进货价 零批价 打包价 大客户价 Vip价格" * @param view 默认window * @returns {Boolean} @@ -1794,6 +1854,7 @@ function isEqualDropDownListByExp(exp, view) { } /** * 是否空对象 + * * @param obj * @returns {Boolean} */ @@ -1805,6 +1866,7 @@ function isEmptyObject(obj) { } /** * 是否相等 不考虑标点符号 + * * @param expected * @param actual * @returns {Boolean} @@ -1820,6 +1882,7 @@ function isEqual2(expected, actual) { /** * 查询界面汇总值验证 会判断汇总栏有汇总值的标题的汇总值是否正确(没有作废数据影响的情况下) + * * @param arr 应该存在的汇总值的标题数组 * @param pageInfoView * @param dataView @@ -1874,6 +1937,7 @@ function isEqualCounts(arr, pageInfoView, dataView, firstTitle) { /** * 下拉框内容是否与期望内容相同 + * * @param expected * @param view1 * @returns {Boolean} @@ -1933,6 +1997,7 @@ function repealRecordsForCheck(day) { /** * 重试 + * * @param fn1 * @param maxTries 最大尝试次数 * @param i 延迟时间 @@ -1969,6 +2034,7 @@ function retry(fn1, maxTries, i) { } /** * 修改物流核销界面 + * * @param o */ function editLogisticsVerify(o) { @@ -1999,6 +2065,7 @@ function editLogisticsVerify(o) { } /** * 修改单据已经存在货品的数量等信息,均色均码和颜色尺码是一样的 + * * @param o */ function editBillDet(o) { @@ -2077,6 +2144,7 @@ function editBillDet(o) { } /** * 获取开单界面各种数量的标题名 + * * @param title * @returns {String} */ @@ -2092,6 +2160,7 @@ function getBillTitle_Num(title) { } /** * 获取数组中第一个与期望值相同的下标,没有返回-1 + * * @param arr * @param expected * @returns {Number} @@ -2113,6 +2182,7 @@ function getFirstIndexOfArrayIsExp(arr, expected) { } /** * 获取版本号 在主界面时取 + * * @returns */ function getIpadVer() { @@ -2123,6 +2193,7 @@ function getIpadVer() { /** * 期望界面的静态文本中是否包含value 类似销售开单,代收,物流商界面的内容判断 + * * @param texts * @param value * @param f1 @@ -2156,6 +2227,7 @@ function getImages(view1) { } /** * 模拟键盘输入 + * * @param view1 * @param f */ @@ -2177,6 +2249,7 @@ function setTextFieldValueByKb(view1, f) { } /** * 明细详细页面排序验证 + * * @param dataView * @param firstTitle * @param lastTitle @@ -2256,6 +2329,7 @@ function compareQR2(title, type, order, dataView, firstTitle, lastTitle) { } /** * 获取查询界面fields对象集 + * * @param keys */ function getQueryTFields(keys) { @@ -2571,6 +2645,16 @@ function getQueryTFields(keys) { break; } break; + case "盘点管理": + switch (gMenu2) { + case "更多": + switch (gMenu3) { + case "未盘点款号": + qFields = checkUnCheckCodeFields(keys); + break; + } + } + break; case "统计分析": switch (gMenu2) { case "收支表": @@ -2629,6 +2713,7 @@ function getQueryTFields(keys) { } /** * 条件查询 根据菜单直接找相应的fields + * * @param keys * @param tapClear false 不点击清除 * @param view 默认window @@ -2646,6 +2731,7 @@ function conditionQuery(keys, tapClear, view) { } /** * 去除字符串中的标点符号 + * * @param str * @returns */ @@ -2657,6 +2743,7 @@ function deletePunctuation(str) { } /** * 点击TF左上角的标签位置 eg 开单新界面模式 代收 + * * @param view * @param i */ @@ -2666,6 +2753,7 @@ function tapTFLabel(view, i) { } /** * 去除数组重复元素 + * * @param arr * @returns {Array} */ @@ -2681,6 +2769,7 @@ function getUnique(arr) { } /** * 判断数组是否有重复,有返回true + * * @param arr * @returns {Boolean} */ diff --git a/testcase/purchase/purchase.js b/testcase/purchase/purchase.js index 4d42fa4..07e6696 100644 --- a/testcase/purchase/purchase.js +++ b/testcase/purchase/purchase.js @@ -2683,12 +2683,8 @@ function test120050Field(price) { } function ts120050Det(num1, num2) { - if (isUndefined(num1)) { - num1 = 20; - } - if (isUndefined(num2)) { - num2 = 30; - } + num1 = num1 || 20; + num2 = num2 || 30; var det = {}; switch (colorSize) { case "no": diff --git a/testcase/purchaseOrder/purchaseOrder.js b/testcase/purchaseOrder/purchaseOrder.js index 31ce4c4..c75c195 100644 --- a/testcase/purchaseOrder/purchaseOrder.js +++ b/testcase/purchaseOrder/purchaseOrder.js @@ -921,8 +921,7 @@ function ts130012() { tapMenu("往来管理", "厂商账款", "厂商总账"); var keys = { "厂商" : "vell" }; - var fields = queryCustomerProviderAccountFields(keys); - query(fields); + conditionQuery(keys); var qr = getQR(); var a = qr.data[0]["余额"]; @@ -1265,33 +1264,19 @@ function ts130038() { var fields = purchaseOrderQueryBatchFields(keys); query(fields); var qr = getQR(); - var ret = qr.data.length > 0; - if (ret) { - ret = checkQResult("门店", "中洲店"); - } - - return ret; + return qr.data.length > 0 && checkQResult("门店", "中洲店"); } function ts130039() { tapMenu("采购订货", "按批次查"); var keys = { "日期从" : getDay(-365) }; - var fields = purchaseOrderQueryBatchFields(keys); - query(fields); + conditionQuery(keys); var qr = getQR(); - var ret = qr.data.length > 0; - if (ret) { - ret = checkQResult("操作人", "采购员"); - } + var ret = qr.data.length > 0 && checkQResult("操作人", "采购员"); tapMenu2("按明细查"); - fields = purchaseOrderQueryParticularFields(keys); - query(fields); + conditionQuery(keys); var qr = getQR(); - var ret2 = qr.data.length > 0; - if (ret2) { - ret2 = checkQResult("操作人", "采购员"); - } - + var ret2 = qr.data.length > 0 && checkQResult("操作人", "采购员"); return isAnd(ret, ret2); } function ts130040() { @@ -1327,10 +1312,7 @@ function ts130042() { function ts130041Field(json) { tapMenu("采购订货", "新增订货+"); editSalesBill(json, colorSize); - var cash = json["现金"]; - if (isUndefined(cash)) { - cash = 0; - } + var cash = json["现金"] || 0; tapMenu2("按批次查"); query(); @@ -1347,12 +1329,8 @@ function ts130041Field(json) { query(); qr = getQR(); exp = { "总数" : 0, "现金" : cash, "备注" : "预付款" };// 预付款单检查 - if (cash == 0) { - ret = isAnd(ret, !isEqualObject2(exp, qr.data[0])); - } else { - ret = isAnd(ret, isEqualObject2(exp, qr.data[0])); - } - + ret = cash == 0 ? isAnd(ret, !isEqualObject2(exp, qr.data[0])) : isAnd(ret, + isEqualObject2(exp, qr.data[0])); return ret; } function ts130043() { diff --git a/testcase/role/role.js b/testcase/role/role.js index d79375e..74adf8c 100644 --- a/testcase/role/role.js +++ b/testcase/role/role.js @@ -669,6 +669,11 @@ function checkRightsCheck() { tapMenu2("库存表"); arr = []; var f = checkMaterialFields([ "厂商" ]); + ret = isAnd(ret, checkRightsField(hasRights, getScrollView(), arr, window, + f)); + + tapMenu("盘点管理", "更多", "未盘点款号"); + var f=getQueryTFields([ "厂商" ]); ret = isAnd(ret, checkRightsField(hasRights, getScrollView(), arr, window, f)); return ret; @@ -696,8 +701,7 @@ function checkRightsStatisticAnalysis() { } else { ret = isAnd(ret, qr.data[0]["成本额"] == "", qr.data[0]["利润额"] == "");// 这里价值标题显示,但是无内容 } - tapNaviLeftButton(); - tapNaviLeftButton(); + tapNaviClose(); tapMenu2("汇总表"); tapMenu3("款号利润表"); @@ -751,18 +755,15 @@ function checkRightsStatisticPicture() { * @returns {Boolean} */ function checkRightsField(hasRights, view, arr, view2, f) { - if (isUndefined(hasRights)) { - hasRights == false; - } - var i, j; + hasRights = hasRights || false; + var i, j,ret = true; var texts = getStaticTexts(view); - var ret = true; for (i = 0; i < arr.length; i++) { var v, ok = false; for (j = 0; j < texts.length; j++) { var t = texts[j]; try { - v = eval("t." + "name" + "()"); + v = t.name(); } catch (e) { logError(e); } @@ -810,3 +811,4 @@ function checkRightsField(hasRights, view, arr, view2, f) { } return ret; } + diff --git a/testcase/salesOrder/salesOrder.js b/testcase/salesOrder/salesOrder.js index b2ef4f4..2bd3ba6 100644 --- a/testcase/salesOrder/salesOrder.js +++ b/testcase/salesOrder/salesOrder.js @@ -436,7 +436,7 @@ function test160001() { editSalesBillNoColorSize(json); tapMenu("销售订货", "按批次查"); - var i, j, ret = true; + var i, j; var keys = { "客户" : "xw", "日期从" : getDay(-30) }; var fields = salesOrderQueryBatchFields(keys); query(fields); @@ -1967,7 +1967,6 @@ function ts160073_74() { qo = { "备注" : "是否允许修改已发货的订单" }; o = { "新值" : "0", "数值" : [ "默认不允许", "in" ] }; ret = isAnd(ret, setGlobalParam(qo, o)); - return ret; } diff --git a/testcase/sensitive/sensitive.js b/testcase/sensitive/sensitive.js new file mode 100644 index 0000000..b4edfb8 --- /dev/null +++ b/testcase/sensitive/sensitive.js @@ -0,0 +1,35 @@ +// luxingxin <52619481 at qq.com> 20170209 +// 敏感字段检查 +// 帐套 审核环境-autotest1 +// 000~007勾选权限 +// 280~287不勾选相应权限 + +//角色 +function login000Sensitive() { + var p1 = { "角色" : "总经理", "帐套" : "autotest1" }; + var ok = login("000", "000000", p1); + if (ok) { + testSensitiveAll(true); + logout(); + } +} + +/** + * + * @param hasRights + * @returns {Boolean} + */ +function testSensitiveAll(hasRights) { + run("【盘点管理-更多-未盘点款号】", "test280001"); +} +// 厂商 +function test280001() { + tapMenu("盘点管理", "更多", "未盘点款号"); + var tf = getQueryTFields([ "厂商" ]); + var ret = isDisabledTField(tf["厂商"].index); + return hasRights ? ret : !ret; +} +// 厂商和进货价 +function test280005() { + +} diff --git a/testcase/shopOut/shopOut.js b/testcase/shopOut/shopOut.js index b193f32..392ffc4 100644 --- a/testcase/shopOut/shopOut.js +++ b/testcase/shopOut/shopOut.js @@ -190,7 +190,6 @@ function ts150010_2() { ret = ret && isEqual("", getTextFieldValue(window, i)); } } - return ret; } function ts150001_09() { @@ -266,8 +265,7 @@ function ts150001Field(qr, det) { function ts150002() { tapMenu("门店调出", "按批次查"); var keys = { "日期从" : getDay(-60), "调出门店" : "中洲店" }; - var fields = shopOutQueryBatchFields(keys); - query(fields); + conditionQuery(keys); tapTitle(getScrollView(), "状态"); tapTitle(getScrollView(), "状态"); diff --git a/testcase/sizeHead/sizeHead.js b/testcase/sizeHead/sizeHead.js index 88680fc..f69d20e 100644 --- a/testcase/sizeHead/sizeHead.js +++ b/testcase/sizeHead/sizeHead.js @@ -1178,6 +1178,7 @@ function test220068() { } /** * 220068实现 + * * @param haswarn 是否有错误提示 * @returns */ @@ -1801,6 +1802,7 @@ function test220109() { } /** * 验证尺码表头显示库存是否正确 + * * @param det1 开单前 会显示该颜色下所有尺码的库存 * @param det2 开单后 * @param dif @@ -1879,6 +1881,7 @@ function test220110() { } /** * 尺码表头库存验证 + * * @param menu * @param json * @param dif 开单前后库存变化 开单为+,入库为- 开单后+dif=开单前 @@ -2296,6 +2299,7 @@ function test220132() { } /** * 销售开单-更多-客户未发 + * * @param o */ function editSalesBillUnshipping(o) { @@ -2318,12 +2322,13 @@ function editSalesBillUnshipping(o) { } /** * 销售开单-更多-客户未发 明细值 界面接上个界面,导致元素混乱,因此单独取,方便以后优化 + * * @returns {detResult} */ function getQRCustUnshipping() { var view = getScrollView(-1); var titles = getDetSizheadTitle("desc");// 获取尺码表头 倒叙取值 - var titles_tf = getDetSizheadTFIndex(titles);// 获取输入框下标 + var titles_tf = getDetSizheadTFIndex(titles["标题坐标"]);// 获取输入框下标 var tfNum = titles_tf["明细输入框个数"]; delete titles_tf["明细输入框个数"]; // var titleTexts = getStaticTexts(window); @@ -2382,7 +2387,7 @@ function editBillUnshipping(o) { if (isDefined(details)) { var view1 = getScrollView(-1); var titles = getDetSizheadTitle("desc");// 获取尺码表头 倒叙取值 - var titles_tf = getDetSizheadTFIndex(titles);// 获取输入框下标 + var titles_tf = getDetSizheadTFIndex(titles["标题坐标"]);// 获取输入框下标 var tfNum = titles_tf["明细输入框个数"]; for (i = 0; i < details.length; i++) { var start = tfNum * i;