Commit 535464a2 authored by 马博's avatar 马博

test

parent 43a6f0d8
package http.cases.FloorTest;
import base.DuibaLog;
import base.DuibaTestBase;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import http.service.Authorization;
import http.service.Manager.FloorService;
import http.service.app.HomeService;
import http.service.hd.ActivityService;
import http.service.hd.DevFloorBannerService;
import http.service.hd.DevItemService;
import http.service.hd.DevSkinService;
import io.restassured.path.json.JsonPath;
import io.restassured.response.Response;
import org.springframework.beans.factory.annotation.Autowired;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import utils.MatcherString;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
import static io.restassured.path.json.JsonPath.from;
/**
* Created by mabo on 2018/6/8
*/
public class ActiveGroup_FloorTest extends DuibaTestBase {
@Autowired
HomeService homeService;
@Autowired
FloorService floorService;
@Autowired
Authorization authorization;
@Autowired
DevSkinService devSkinService;
@Autowired
DevFloorBannerService devFloorBannerService;
@Autowired
DevItemService devItemService;
@Autowired
ActivityService activityService;
private DuibaLog logger = DuibaLog.getLogger();
private String skinId=null;
private String floorId=null;
@BeforeClass
public void beforeClass(){
try{
Map map = jdbc.findSimpleResult("select * from credits_dev.tb_credits_floor_skin where skin_name = ?","mabo楼层皮肤ActiveGroup");
skinId = String.valueOf(map.get("id"));
map = jdbc.findSimpleResult("select * from credits_dev.tb_credits_floor_code WHERE floor_name= ?","maboActiveGroup");
floorId = String.valueOf(map.get("id"));
Response response = devSkinService.saveSkin(authorization.hdLoginmabo(),"18740","198");
response = floorService.deleteSkin(authorization.ssoLogin(),skinId,"1");
response = floorService.deleteFloor(authorization.ssoLogin(),floorId);
}catch(Exception e){
}
}
@Test
public void A_创建活动楼层皮肤() throws Exception {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");//设置日期格式
logger.info(df.format(new Date()));
String type = "5";
String dataType = "2";
String name = "maboActiveGroup";
String skinWidth = "640";
String html = " <section class=\"subpage-item a-fadeinT\">\n" +
" <div class=\"plays-warp\">\n" +
" <div class=\"plays-title\"></div>\n" +
" <div class=\"plays\" id=\"plays\">\n" +
" {@each list as item, index}\n" +
" {@if index == 0}\n" +
" <a href=\"${item.link}\" class=\"play\" db-log=\"${item.stInfo}\" style=\"top:0rem\">\n" +
" {@/if}\n" +
" {@if index == 1}\n" +
" <a href=\"${item.link}\" class=\"play\" db-log=\"${item.stInfo}\" d style=\"top:0.35rem\">\n" +
" {@/if}\n" +
" {@if index == 2}\n" +
" <a href=\"${item.link}\" class=\"play\" db-log=\"${item.stInfo}\" style=\"top:1.625rem\">\n" +
" {@/if}\n" +
" {@if index == 3}\n" +
" <a href=\"${item.link}\" class=\"play\" db-log=\"${item.stInfo}\" style=\"top:1.975rem\">\n" +
" {@/if}\n" +
" <img src=\"${!!item.whitethumb?item.whitethumb:item.thumb}\" class=\"play-img\">\n" +
" <p class=\"play-title\">${item.title}</p>\n" +
" <div class=\"play-btn\">抽奖</div>\n" +
" </a>\n" +
" {@/each}\n" +
" <div class=\"retry\">加载更多</div>\n" +
" <!--<div class=\"loading\" style=\"display: block\">\n" +
" <div></div>\n" +
" </div>-->\n" +
" <div class=\"nomore\" display>没有更多了</div>\n" +
" </div>\n" +
" </div>\n" +
" </section>";
String css = ".plays-warp {\n" +
" position: relative;\n" +
" width: 3.2rem;\n" +
" margin-top: 0.05rem;\n" +
"}\n" +
".plays-warp .plays {\n" +
" width: 100%;\n" +
" height: 100%;\n" +
"}\n" +
".plays-warp .plays-title {\n" +
" position: absolute;\n" +
" width: 1.575rem;\n" +
" height: 0.3rem;\n" +
" background-image: url(\"data:image/png;base64,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\");\n" +
" background-repeat: no-repeat;\n" +
" background-size: 100% 100%;\n" +
"}\n" +
".plays-warp .play {\n" +
" position: absolute;\n" +
" z-index: 1;\n" +
" width: 1.575rem;\n" +
" height: 1.575rem;\n" +
" background-color: #fff;\n" +
"}\n" +
".plays-warp .play .play-img {\n" +
" width: 1.475rem;\n" +
" height: 0.92rem;\n" +
" margin: 0.05rem 0.05rem 0 0.05rem;\n" +
"}\n" +
".plays-warp .play .play-title {\n" +
" width: 1.2rem;\n" +
" margin: 0.1rem auto 0;\n" +
" font-size: 0.12rem;\n" +
" text-align: center;\n" +
" padding: 0.01rem;\n" +
" text-overflow: ellipsis;\n" +
" white-space: nowrap;\n" +
" overflow: hidden;\n" +
"}\n" +
".plays-warp .play .play-btn {\n" +
" display: block;\n" +
" margin: 0.075rem auto 0;\n" +
" width: 0.42rem;\n" +
" height: 0.19rem;\n" +
" background-color: #ee2b0f;\n" +
" text-align: center;\n" +
" line-height: 0.2rem;\n" +
" color: #ffffff;\n" +
" font-size: 0.11rem;\n" +
" border-radius: 0.095rem;\n" +
"}\n" +
".plays-warp .play:nth-child(2n) {\n" +
" position: absolute;\n" +
" top: 0.35rem;\n" +
" width: 1.575rem;\n" +
" height: 1.575rem;\n" +
"}\n" +
".plays-warp .play:nth-child(2n+1) {\n" +
" position: absolute;\n" +
" width: 1.575rem;\n" +
" height: 1.575rem;\n" +
" left: 1.625rem;\n" +
"}\n" +
".plays-warp .play:nth-child(5)::after {\n" +
" position: absolute;\n" +
" z-index: 1;\n" +
" content: '';\n" +
" display: inline-block;\n" +
" width: 0.235rem;\n" +
" height: 0.26rem;\n" +
" right: 0.1rem;\n" +
" top: 0.1rem;\n" +
" background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC8AAAA0CAMAAAAt6JHGAAAABGdBTUEAALGPC/xhBQAAAhlQTFRF/0ND/0JC/0ND/0RE/0JC/0ND/0RE/2Bg/0ND/0ND/0RE/0VF/0RE/0ND/0JC/0JC/0ZG/0JC/0JC/0ND/0JC/0ND/0ND/0lJ/0ND/0JC/0JC/0RE/0ND/0ND/0RE/0JC/0RE/0VF/0JC/0RE/0ND/0ZG/0ZG/0ND/0ND/0ND/0hI/0JC/////0JC/0JC/0ND/0JC/0JC/0ND/0ND/0ND/0lJ/0ND/0ND/0ND/0ND/0ND/0RE/0ND/0ND/0ND/0ND/0RE/0RE/0ND/0ND/0RE/0VF/0JC/1BQ/05O/0RE/0JC/0ND/0JC/0JC/0RE/0RE/0RE/0VF/0pK/0ND/0JC/0RE/0ND/0ND/0RE/0JC/0ND/0VF/0VF/0ND/0ZG/0ND/0ND/0ND/1VV/0RE/0JC/0ND/0RE/0ZG/0ND/0ND/0ND/0ZG/0ND/0ND/2Zm/0RE/0lJ/0ZG/0RE/0ND/0ND/0ND/0JC/0ND/0ND/0ND/0RE/0RE/0JC/01N/1VV/0VF/0dH/0ND/0ZG/0RE/0JC/0JC/0RE/0ND/0ND/0ND/0RE/0JC/0JC/0ND/0ND/0ND/0JC/0hI/0JC/0dH/0JC/0JC/0ND/4CA/0RE/0ND/0lJ/01N/0ND/0ND/0JC/1VV/0ND/0ND/0ZG/4CA/0JC/0RE/0ND/0ND/0ND/0ND/0JC/0pK/0VF/0ND/0VF/0JC/0JCAAAA/0JCBNtqdQAAALJ0Uk5TgdCnZkm+jwgXtx4aKZxNoiGx3EhodskckTK5T5tzaaZTRote3iwznbpfIMQB4OcTUYcmqFcVLorZ6ExxkJ+Mrjx4eayIXb0QDW02q99gS2KEShhYyET0VFK1ek5ZxhZuslAGLYPCfAuU6codNY0FgAc+YezlmY6hhpiTVu8UCUMv5DoibJJlv7bdQPbU/O0qqifyEvfApAJ1ciMK+eH+A/H4KAT6OH71Of3THzTLP57rACBWuFsAAAKbSURBVEjHldZldyIxFAbgrLu7u7u7u7v7brfuW3c3tq5QoIVSKN124b2/cCcTCgwzQPZ+CUOek5PJ3NyEQS5GiofUlkn6erol5asq1MZMdFvGl3Z18uYeEXnvxvXlfUSKP3WDeFyN4jOdH3K/1L14NXG9jMjhPHmiR+VUZ+SfN7xzkHFc1vs3n+wUNS5F+pyXFCv6tP7zV4odJUOlYb7KFofTldTqkH/7miSie8o32GU4nQ74FpcUpzHha3/R//jB35KcLKp/L8u7RrgvH5b1Hep6XpTl3uPcp1llPe3m/oI0p43c98r7YeV9j7TKe8oB26c0TT6f+GIdPp/YLf7CVSsTm/hXn+cLRhclgBUr//0FJlX2B/DzhcgaVNPEMouoJbQ/mmkZWKOB38F7eX3KbNT65WA79b4J6M+yuVLTAafL4fF41in9SmMnK5hf510WYDt/MqUBs/mPCWBcvHA2M+n8NGCuKCEZwDet72Ztwv8Y5fGd++nATNH7E+jU+kF2SPhg+ElJqRmit1nJ9YAXKd8KdiAw/hgPdfzkwCyIVgPtmvFtYHt0828ElnrVx0XAVo3fC7ZZ59vmAFvU/G0H1mrmUwS2Rr/+CUBSRyulLAYWujTjjyr5Oanz1l3KeyfN56eQSN4pf/ig4hP1+eDfJtZqwXrS+Hye/047+dzuPLWjwO32iJXftGFF7hJTII3z3e4U3laq+7dPNvt7RX3e75D09wP1vECOP5iq/915UpvXEjwv0nskis/jsPP3Y3w/gPDz+mk8XgiNx4A3Js/oj/B4FqPqWh8Ft0fofGwfj8Yf1sDAY+hJtZFuM2fD0AMV185F6rKbdzQ3gIj7Q3/NmbMhbCupHIm4XxjcT2rPm4vqk48NHHUaXHH+AWsCTuVQ6BInAAAAAElFTkSuQmCC\");\n" +
" background-repeat: no-repeat;\n" +
" background-size: 100% 100%;\n" +
"}\n" +
".plays-warp .play:nth-child(6)::after {\n" +
" position: absolute;\n" +
" content: '';\n" +
" display: inline-block;\n" +
" width: 0.26rem;\n" +
" height: 0.28rem;\n" +
" right: 0.1rem;\n" +
" top: 0.1rem;\n" +
" background-image: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADQAAAA4CAMAAACFZCuiAAAABGdBTUEAALGPC/xhBQAAAYxQTFRFz2D/zlL/z1j/zVH/zlP/zFL/zlL/zFD/zVP/zFH/zlH/zVH/zFH/zFD/zFH/zVH/zFD/zlH/zVP/zFH/zFH/zFD/z1P/zFH/zVH/zFH/zVD/0VX/zlP/zVT/zVH/zVD/zFD/0lr/zFH/zlH/zVP/zVD/z1L/zVD/zFD/0VX/zFH/zFD/zGb/zFH/zFH/zFL/zVD/zFD/zlL/zFH/z1L/zFL/zFP/zVD/zlL/zFH/zVH/zVD/zVH/zlH/zFL/zVH/zVH/0VH/zFH/zVD/zVH//4D/zlX/0VH/zVH/zFH/////zVH/zVD/zFH/zFH/zVL/zFH/zVH/zFX/0FX/1VX//1X/1VX/0V3/zVD/zlL/zVL/zVH/zVD/zVH/zFH/zVH/zFH/z1H/zFH/0FH/01n/zVH/zVH/0FD/zFH/0FP/zFH/zFD/zFH/zFD/zVD/zFD/zlH/zVD/zVD/zFD/zFH/zVH/11H//4D/zFH/z1P/zlH/zFD/zVH/zVD/z1H/zVX/01j/zFD/AAAAzFD/Ec9dOAAAAIN0Uk5TEGMgmFNahiMu13LHm/GHtkaBR5c860pVnYjVJ0Q9SGzYEV9YTVw77sgh8GkK97mDws8f5jWWUH9dw/3b4DlkmtEW3KhbAhUsxuMBi8uwyWeNhA8bEgMMC59Ok+T+o77zq0W0JhfArTaqK/ry3ftm4i+VvL/s+RME1CU/3nFWTyQdjADvH/EaAAACf0lEQVRIx52WZ1siMRRGZ3vvvffee9Nde2+rIhYE3VUp0juyK8z7/vHNlAwLghDOl5snyXkmk5nkXg07KUQTyWI6k0kXk4looc4ErbYjrsdYRUyPN5H866xDyr+LVAqwAYFSAymnh9iQkJ6rJ2VT3JVUdqcUDLMJ4WCttLrJpmyuVkvBFhxhBf+XsmG2RDhbkXIptkgq50hTbBldSqVQ61KoZEsBKhCwJD+V8JvSupq0bkhxKhIXkq4q6UIaVpVi0ApUpqBNqktRLaEuJbSkGZ+Vn/QY8Ub5DLmnbHOeq+XroveCaI+JeK/80JiU1Iqm9Be4acQS/pDb8rAdYhQuH9kr2ldIzzQeGJOKWlpKWKlI2i8TL5cBL/ldjJ4lrwI/jMlpLeNIMz5HWpPL7wAOknsxg7kILwO3jc6MI80BR3dKLGOBPeIJwDHxQKs/4yxvaxu5Lim5fptskAfQzX2YjqzhJAdxidby5EZsxdzo9FRvxDx5Dijuxzb7cPpEPxZpbURSSsahPG5L0xsmHWQeWJ4Vk+fhPgV00dryhCNFDmN2oPadPLPoBI5wGLiIOx774046EodGxJJqJC4Y+yriNRHvy9+oUJHEp7SlbN4iQo6Kvrti7JaIo/KHRawiPepG1UZgiXwswrIYGxdxQh4N6xBakvED1EqR58A7MfTUZXxfeQjbOu6qF4u3nSvsfRuX5Uob13KkIBOA3kYCUEg13px6Uitm1dOnb1A9UfOneklQR2pafAimFMsckw9qBZXFvErpJulttUj8OvHp45DdHm8kVcpR37cvK4ufB0THSN+SKb3cRaqD+9ULIb1Wk4C3Ij+MqUrA1pu8uoT+BbvxDyUHlVFU5Tj1AAAAAElFTkSuQmCC\");\n" +
" background-repeat: no-repeat;\n" +
" background-size: 100% 100%;\n" +
"}\n" +
".plays-warp .retry,\n" +
".plays-warp .loading,\n" +
".plays-warp .nomore {\n" +
" position: absolute;\n" +
" z-index: 0;\n" +
" display: none;\n" +
" width: 1.575rem;\n" +
" height: 0.3rem;\n" +
" bottom: 0.05rem;\n" +
" right: 0;\n" +
" color: #888888;\n" +
" font-size: 0.12rem;\n" +
" text-align: center;\n" +
" line-height: 0.3rem;\n" +
"}";
String js = " if(data && data.list && data.list.length > 1) {\n" +
"\t// 爱奇艺定制去掉游戏\n" +
"\tif (global.appId == 31819) {\n" +
"\t \tvar _list = [];\n" +
"\t\tdata.list.forEach(function(item, index) {\n" +
"\t\t if(item.activityType !== 28 && item.activityType !== 46 && item.activityType !== 47) {\n" +
"\t\t\t_list.push(item)\n" +
"\t\t }\n" +
"\t\t});\n" +
"\t \tdata.list = _list;\n" +
"\t}\n" +
"\t//初次显示的数据\n" +
" var showData = {};\n" +
" var isFirst = true;\n" +
" //点击更多显示的数据\n" +
" var dat = [];\n" +
" //数据索引\n" +
" var pageIndex = 4;\n" +
" //计算高度,top\n" +
" var playHeight = 315;\n" +
" var initHeight = [3.25, 3.6];\n" +
" showData.list = data.list.splice(0,4);\n" +
" if (showData.list.length == 3 ) {\n" +
" showData.list.splice(2,1); \n" +
" }\n" +
" dat = showData.list;\n" +
" // yangzuo.extend(data, global);\n" +
"\t console.log(showData);\n" +
" $(\"#renderRoot\").append(juicer(html, showData));\n" +
" // 显示是否还有\n" +
" var $retry = $('.retry');\n" +
" var $nomore = $('.nomore');\n" +
" var $plays = $('#plays');\n" +
"\t var $retry = $('.retry');\n" +
" var showDataLen = data.list.length;\n" +
" var totalLen = data.list.length;\n" +
" //容器高度\n" +
" function warpPlayHeight() {\n" +
" totalLen = 4 * (pageIndex / 4 - 1) + dat.length; \n" +
" if (totalLen < 3) {\n" +
" $plays.height('1.925rem'); \n" +
" } else if (totalLen < 5) {\n" +
" $plays.height('3.55rem'); \n" +
" } else {\n" +
" if (dat.length == 0){\n" +
" $plays.height((totalLen/4-1) * 3.25 + 3.55 - 1.625+\"rem\");\n" +
" } else {\n" +
" $plays.height((totalLen /4-1) * 3.25 + 3.55+ \"rem\"); \n" +
" }\n" +
" if (dat.length < 4 && data.list.length < 4) {\n" +
" $retry.hide();\n" +
" $nomore.show();\n" +
" console.log('没有更多了');\n" +
" return false;\n" +
" }\n" +
" }\n" +
" }\n" +
" warpPlayHeight();\n" +
" // 显示更多 或者 没有更多\n" +
" function hasMore() {\n" +
" console.log(data.list.length);\n" +
" if (isFirst){\n" +
" console.log(showData.list, isFirst);\n" +
" if (showData.list.length < 4){\n" +
" $retry.hide();\n" +
" $nomore.show();\n" +
" isFirst = false;\n" +
" return false;\n" +
" } else {\n" +
" $nomore.hide();\n" +
" $retry.show();\n" +
" isFirst = false;\n" +
" return false;\n" +
" }\n" +
" }\n" +
" if (dat.length < 4 || data.list.length == 1 || data.list.length == 0){\n" +
" $retry.hide();\n" +
" $nomore.show();\n" +
" } else {\n" +
" $nomore.hide();\n" +
" $retry.show();\n" +
" }\n" +
" }\n" +
" hasMore();\n" +
" function getMore() {\n" +
" dat = data.list.splice(0, 4);\n" +
" pageIndex += 4; \n" +
" if (dat.length == 3){\n" +
" dat.length = 2;\n" +
" dat.splice(2,1);\n" +
" } \n" +
" if (dat.length == 1) {\n" +
" dat.length = 0;\n" +
" dat.splice(0, 1);\n" +
" return false;\n" +
" }\n" +
" warpPlayHeight();\n" +
" for(var i = 0; i < dat.length; i++) {\n" +
"\t\t\t \t\t var _img = dat[i].whitethumb ? dat[i].whitethumb : dat[i].thumb;\n" +
" $newPlay = $(\"<a href='\" + dat[i].link + \"' class='play' db-log='\" + dat[i].stInfo + \"' db-buttonType='20025'>\" +\n" +
" \"<img src='\" + _img + \"' class='play-img'>\" +\n" +
" \"<p class='play-title'>\" + dat[i].title + \"</p>\" +\n" +
" \"<div class='play-btn'>抽奖</div>\" +\n" +
" \"</a>\");\n" +
" $retry.before($newPlay);\n" +
" var itemNum = i % 2;\n" +
" if(i < 2){\n" +
" var playTop = initHeight[itemNum];\n" +
" } else {\n" +
" var playTop = initHeight[itemNum] + 1.625;\n" +
" }\n" +
" $newPlay.css('top', playTop+'rem');\n" +
"\t\t\t window.DB && window.DB.statistics && window.DB.statistics.initLog();\n" +
" }\n" +
" hasMore();\n" +
" initHeight[0] = initHeight[0] +3.25;\n" +
" initHeight[1] = initHeight[1] + 3.25;\n" +
" }\n" +
" $('.retry').on('click', function(){\n" +
" getMore();\n" +
" });\n" +
"\tvar show = false;\n" +
" function isShow() {\n" +
" var st = $('.retry').offset().top;\n" +
" var wt = $('body').scrollTop();\n" +
" var wh = $(window).height();\n" +
" show = wt > (st - wh - 20) ? true : false;\n" +
" };\n" +
" $(document).scroll(function(){\n" +
" isShow();\n" +
" if (show && $('.retry').width() > 0){\n" +
" getMore();\n" +
" show = false;\n" +
" } \n" +
" });\n" +
" }";
//新建banner楼层
Response response = floorService.createFloor(authorization.ssoLogin(),type,dataType,name,html,css,js,skinWidth);
response.prettyPrint();
Map<String,Object> map = jdbc.findSimpleResult("select * from credits_dev.tb_credits_floor_code where floor_name=?",name);
floorId = String.valueOf(map.get("id"));
String nameSkin = "mabo楼层皮肤ActiveGroup";
String image = "//yun.dui88.com/images/201805/nlkmslg0t0.png";
// 验证码
String stoke="1";
// String floors = "[{\"id\":190,\"name\":\"maboTest\",\"type\":1,\"dataType\":0,\"needSyn\":false,\"syn\":false}]";
String ower = "0";
JSONObject json = new JSONObject();
json.put("id",map.get("id"));
json.put("name",name);
json.put("type","5");
json.put("dataType",map.get("data_type"));
json.put("needSyn",false);
json.put("syn",false);
JSONArray jsonArray = new JSONArray();
jsonArray.add(json);
String floors = jsonArray.toJSONString();
//新建皮肤
response = floorService.insertSkin(authorization.ssoLogin(),nameSkin,image,stoke,floors,ower,skinWidth);
response.prettyPrint();
map = jdbc.findSimpleResult("select * from credits_dev.tb_credits_floor_skin where skin_name = ?",nameSkin);
skinId = String.valueOf(map.get("id"));
response = floorService.switchOpenState(authorization.ssoLogin(),skinId,"true");
response.prettyPrint();
}
@Test
public void B_手机端活动() throws Exception {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");//设置日期格式
logger.info(df.format(new Date()));
Response response = devSkinService.saveSkin(authorization.hdLoginmabo(),"18740",skinId);
Thread.sleep(60000);
JsonPath jsonCfg = homeService.getCFG(2753);
Assert.assertEquals(jsonCfg.getList("").size(),1,"banner展示数量和配置不符");
String floorId = MatcherString.getString(jsonCfg.getList("").get(0).toString(),"floorId=(.*?),",1);
String dataType = MatcherString.getString(jsonCfg.getList("").get(0).toString(),"dataType=(.*?),",1);
String floorType = MatcherString.getString(jsonCfg.getList("").get(0).toString(),"floorType=(.*?),",1);
response = homeService.floor(authorization.dafuwengLogin(2753),floorType,dataType,"3",floorId);
String s = response.asString();
JsonPath jsonPath=from(s.substring(s.indexOf("{"),s.length()-1));
List<Map> list = jsonPath.getList("list",Map.class);
// response = devItemService.appItems(authorization.hdLoginmabo(),"18740");
response = activityService.list2(authorization.hdLoginmabo(),"18740");
response.prettyPrint();
List<Map> maplist = response.jsonPath().getList("data.list",Map.class);
int size = maplist.size();
for(int i=0;i<maplist.size();i++){
if(maplist.get(i).get("status").toString().equals("1")){
size--;
}
}
JSONObject jsonObject = JSONObject.parseObject(response.asString());
String data = jsonObject.getString("data");
List listDev = JSONObject.parseObject(data).getJSONArray("list");
Assert.assertEquals(list.size(),size,"活动数量不正确");
}
@Test
public void C_删除活动楼层皮肤() throws Exception {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");//设置日期格式
logger.info(df.format(new Date()));
Response response = devSkinService.saveSkin(authorization.hdLoginmabo(),"18740","198");
try{
Assert.assertEquals(response.jsonPath().getString("success"),"true");
}catch(Exception e){
throw new Exception("/devSkin/saveSkin接口失败,返回信息:"+response.asString());
}catch(Error er){
throw new Exception("/devSkin/saveSkin接口失败,返回信息:"+response.asString());
}
response = floorService.deleteSkin(authorization.ssoLogin(),skinId,"1");
response = floorService.deleteFloor(authorization.ssoLogin(),floorId);
}
}
package http.cases.FloorTest;
import base.DuibaLog;
import base.DuibaTestBase;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import http.service.Authorization;
import http.service.Manager.FloorService;
import http.service.app.HomeService;
import http.service.hd.DevFloorBannerService;
import http.service.hd.DevSkinService;
import io.restassured.path.json.JsonPath;
import io.restassured.response.Response;
import org.springframework.beans.factory.annotation.Autowired;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import utils.MatcherString;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
import static io.restassured.path.json.JsonPath.from;
public class Banner_FloorTest extends DuibaTestBase {
@Autowired
HomeService homeService;
@Autowired
FloorService floorService;
@Autowired
Authorization authorization;
@Autowired
DevSkinService devSkinService;
@Autowired
DevFloorBannerService devFloorBannerService;
private String skinId=null;
private String floorId=null;
private DuibaLog logger = DuibaLog.getLogger();
@BeforeClass
public void beforeClass(){
try{
List<Map> list = devFloorBannerService.selectedList(authorization.hdLoginmabo(),"18740");
for(int i=0;i<list.size();i++){
Map map = list.get(i);
String bannerId = String.valueOf(map.get("bannerId"));
devFloorBannerService.delBanner(authorization.hdLoginmabo(),"18740",bannerId);
}
Map map = jdbc.findSimpleResult("select * from credits_dev.tb_credits_floor_skin where skin_name = ?","mabo楼层皮肤banner");
skinId = String.valueOf(map.get("id"));
map = jdbc.findSimpleResult("select * from credits_dev.tb_credits_floor_code WHERE floor_name= ?","maboTest楼层banner");
floorId = String.valueOf(map.get("id"));
Response response = devSkinService.saveSkin(authorization.hdLoginmabo(),"18740","198");
response = floorService.deleteSkin(authorization.ssoLogin(),skinId,"1");
response = floorService.deleteFloor(authorization.ssoLogin(),floorId);
}catch(Exception e){
}
}
@Test
public void A_创建banner楼层皮肤() throws Exception {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");//设置日期格式
logger.info(df.format(new Date()));
String type = "1";
String dataType = "0";
String name = "maboTest楼层banner";
String skinWidth = "640";
String html = "<section class=\"floor-banner a-fadeinT\">\n" +
" <div class=\"J_bannerSwiper swiper-container\">\n" +
" <div id=\"J_bannerList\" class=\"swiper-wrapper\">\n" +
" {@each list as item}\n" +
" \t<div class=\"swiper-slide\">\n" +
" <a href=\"${item.link}\" target=\"_top\">\n" +
" <img alt=\"${item.title}\" data-src=\"${item.image}\" class=\"swiper-lazy\"/>\n" +
" <div class=\"swiper-lazy-preloader swiper-lazy-preloader-white\"></div>\n" +
" </a>\n" +
" \t</div>\n" +
" {@/each}\n" +
" </div>\n" +
" <div class=\"swiper-pagination\"></div>\n" +
" </div>\n" +
"</section>";
String css = ".floor-banner {\n" +
" width: 3.2rem;\n" +
" height: 1.4rem;\n" +
" overflow: hidden;\n" +
"}\n" +
".swiper-container {\n" +
" height: 100%;\n" +
"}\n" +
".swiper-container-horizontal > .swiper-pagination {\n" +
" bottom: 0.05rem;\n" +
"}";
String js = "if (data && data.list && data.list.length) {\n" +
"\t$(\"#renderRoot\").append(juicer(html, data));\n" +
"\tnew Swiper('.J_bannerSwiper', {\n" +
"\t\tloop: true,\n" +
"\t\tautoplay: 3000,\n" +
"\t\tautoplayDisableOnInteraction: false,\n" +
"\t\tpagination: '.J_bannerSwiper .swiper-pagination',\n" +
"\t\tpaginationClickable: true,\n" +
"\t\tpreloadImages: false,\n" +
"\t\tlazyLoading: true\n" +
"\t});\n" +
"}";
//新建banner楼层
Response response = floorService.createFloor(authorization.ssoLogin(),type,dataType,name,html,css,js,skinWidth);
Map<String,Object> map = jdbc.findSimpleResult("select * from credits_dev.tb_credits_floor_code where floor_name=?",name);
floorId = String.valueOf(map.get("id"));
String nameSkin = "mabo楼层皮肤banner";
String image = "//yun.dui88.com/images/201805/nlkmslg0t0.png";
String stoke="1";
// String floors = "[{\"id\":190,\"name\":\"maboTest\",\"type\":1,\"dataType\":0,\"needSyn\":false,\"syn\":false}]";
String ower = "0";
JSONObject json = new JSONObject();
json.put("id",map.get("id"));
json.put("name",name);
json.put("type",map.get("floor_type"));
json.put("dataType",map.get("data_type"));
json.put("needSyn",false);
json.put("syn",false);
JSONArray jsonArray = new JSONArray();
jsonArray.add(json);
String floors = jsonArray.toJSONString();
//新建皮肤
response = floorService.insertSkin(authorization.ssoLogin(),nameSkin,image,stoke,floors,ower,skinWidth);
map = jdbc.findSimpleResult("select * from credits_dev.tb_credits_floor_skin where skin_name = ?",nameSkin);
skinId = String.valueOf(map.get("id"));
response = floorService.switchOpenState(authorization.ssoLogin(),skinId,"true");
}
@Test
public void B_banner楼层活动校验() throws Exception {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");//设置日期格式
logger.info(df.format(new Date()));
Response response = devSkinService.saveSkin(authorization.hdLoginmabo(),"18740",skinId);
response = devFloorBannerService.activityList(authorization.hdLoginmabo(),"18740","");
response.prettyPrint();
JSONObject json = new JSONObject();
json.putAll(getByName(response.jsonPath().getList("data"),"【自动化】出奖虚拟商品"));
json.put("appId", 18740);
json.put("new", false);
json.put("selected", false);
json.put("show", true);
devFloorBannerService.saveActivityBanner(authorization.hdLoginmabo(),json.toJSONString()).prettyPrint();
Thread.sleep(60000);
JsonPath jsonCfg = homeService.getCFG(2753);
Assert.assertEquals(jsonCfg.getList("").size(),1,"banner展示数量和配置不符");
String floorId = MatcherString.getString(jsonCfg.getList("").get(0).toString(),"floorId=(.*?),",1);
String dataType = MatcherString.getString(jsonCfg.getList("").get(0).toString(),"dataType=(.*?),",1);
String floorType = MatcherString.getString(jsonCfg.getList("").get(0).toString(),"floorType=(.*?),",1);
response = homeService.floor(authorization.dafuwengLogin(2753),floorType,dataType,"3",floorId);
String s = response.asString();
JsonPath jsonPath=from(s.substring(s.indexOf("{"),s.length()-1));
List<Map> list = jsonPath.getList("list",Map.class);
Map map = getByName(list,"【自动化】出奖虚拟商品");
Assert.assertNotNull(map,"banner里没有该商品");
String title = (String)map.get("title");
String activityId = String.valueOf(map.get("activityId"));
String link = (String)map.get("link");
String image = (String)map.get("image");
String sourceType = String.valueOf(map.get("sourceType"));
Assert.assertEquals(image,"//yun.duiba.com.cn/h5/activity/drawLot/drawLot/assets/640-280.png","");
// Assert.assertEquals(link,"//activity.m.duibatest.com.cn/newtools/index?id=21344&dbnewopen&dpm=18740.5.231.3&dcm=202.21344.0.0","");
Assert.assertEquals(title,"【自动化】出奖虚拟商品","");
Assert.assertEquals(sourceType,"13","");
Assert.assertEquals(activityId,"21344","");
}
@Test
public void C_banner商品校验() throws Exception {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");//设置日期格式
logger.info(df.format(new Date()));
Response response = devFloorBannerService.itemList(authorization.hdLoginmabo(),"18740","");
response.prettyPrint();
JSONObject json = new JSONObject();
json.putAll(getByName(response.jsonPath().getList("data"),"mabo自动化实物"));
json.put("appId", 18740);
json.put("new", false);
json.put("selected", false);
json.put("show", true);
devFloorBannerService.saveItemBanner(authorization.hdLoginmabo(),json.toJSONString()).prettyPrint();
Thread.sleep(62000);
JsonPath jsonCfg = homeService.getCFG(2753);
Assert.assertEquals(jsonCfg.getList("").size(),1,"banner展示数量和配置不符");
String floorId = MatcherString.getString(jsonCfg.getList("").get(0).toString(),"floorId=(.*?),",1);
String dataType = MatcherString.getString(jsonCfg.getList("").get(0).toString(),"dataType=(.*?),",1);
String floorType = MatcherString.getString(jsonCfg.getList("").get(0).toString(),"floorType=(.*?),",1);
response = homeService.floor(authorization.dafuwengLogin(2753),floorType,dataType,"3",floorId);
response.prettyPrint();
String s = response.asString();
JsonPath jsonPath=from(s.substring(s.indexOf("{"),s.length()-1));
List<Map> list = jsonPath.getList("list",Map.class);
Map map = getByName(list,"mabo自动化实物");
Assert.assertNotNull(map,"banner里没有该商品");
String title = (String)map.get("title");
String appItemId = String.valueOf(map.get("appItemId"));
String link = (String)map.get("link");
String image = (String)map.get("image");
String sourceType = String.valueOf(map.get("sourceType"));
Assert.assertEquals(image,"//yun.dui88.com/images/201805/7mwt22vdfu.jpg","");
// Assert.assertEquals(link,"//goods.m.duibatest.com.cn/mobile/appItemDetail?appItemId=163948&dbnewopen&dpm=18740.5.231.2&dcm=102.163948.0.0","");
Assert.assertEquals(title,"mabo自动化实物","");
Assert.assertEquals(sourceType,"0","");
Assert.assertEquals(appItemId,"163948","");
}
@Test
public void D_banner自定义外链接() throws Exception {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");//设置日期格式
logger.info(df.format(new Date()));
String appId = "18740";
String bannerImgNew = "";
String img = "//yun.dui88.com/images/201805/hdgasav66e.jpg";
String title = "banner上传自动化测试";
String url = "http://www.baidu.com";
JSONObject json = new JSONObject();
json.put("appId",appId);
json.put("bannerImgNew",bannerImgNew);
json.put("img",img);
json.put("title",title);
json.put("url",url);
devFloorBannerService.uploadBanner(authorization.hdLoginmabo(),json.toJSONString()).prettyPrint();
Thread.sleep(60000);
JsonPath jsonCfg = homeService.getCFG(2753);
Assert.assertEquals(jsonCfg.getList("").size(),1,"banner展示数量和配置不符");
String floorId = MatcherString.getString(jsonCfg.getList("").get(0).toString(),"floorId=(.*?),",1);
String dataType = MatcherString.getString(jsonCfg.getList("").get(0).toString(),"dataType=(.*?),",1);
String floorType = MatcherString.getString(jsonCfg.getList("").get(0).toString(),"floorType=(.*?),",1);
Response response = homeService.floor(authorization.dafuwengLogin(2753),floorType,dataType,"3",floorId);
String s = response.asString();
JsonPath jsonPath=from(s.substring(s.indexOf("{"),s.length()-1));
List<Map> list = jsonPath.getList("list",Map.class);
Map map = getByName(list,"banner上传自动化测试");
Assert.assertNotNull(map,"banner里没有该商品");
title = (String)map.get("title");
String sourceType = String.valueOf(map.get("sourceType"));
String link = (String)map.get("link");
String image = (String)map.get("image");
Assert.assertEquals(image,"//yun.dui88.com/images/201805/hdgasav66e.jpg","");
// Assert.assertEquals(link,"//home.m.duibatest.com.cn/log/redirect?url=http%3A%2F%2Fwww.baidu.com%3Fdbtodeveloper%26uid%3D2753%26dbnewopen&dpm=18740.5.231.1&dcm=","");
Assert.assertEquals(title,"banner上传自动化测试","");
Assert.assertEquals(sourceType,"2","");
}
// @Test
public void banner重新上传图片(){
}
// @Test
public void banner删除第一个(){
}
// @Test
public void banner展示(){
}
@Test
public void E_删除banner皮肤和楼层() throws Exception {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");//设置日期格式
logger.info(df.format(new Date()));
List<Map> list = devFloorBannerService.selectedList(authorization.hdLoginmabo(),"18740");
for(int i=0;i<list.size();i++){
Map map = list.get(i);
String bannerId = String.valueOf(map.get("bannerId"));
devFloorBannerService.delBanner(authorization.hdLoginmabo(),"18740",bannerId);
}
Response response = devSkinService.saveSkin(authorization.hdLoginmabo(),"18740","198");
response.prettyPrint();
response = floorService.deleteSkin(authorization.ssoLogin(),skinId,"1");
response.prettyPrint();
response = floorService.deleteFloor(authorization.ssoLogin(),floorId);
response.prettyPrint();
}
public Map getByName (List<Map> list,String name){
// String s = response.toString();
// JsonPath jsonPath=from(s.substring(s.indexOf("{"),s.length()-1));
// List<Map> list = jsonPath.getList("list",Map.class);
for (Map map:list
) {
if(map.get("title").equals(name))return map;
}
return null;
}
//@Test
public void test1(){
Response response = homeService.index(2753);
String html = response.asString();
// System.out.println(html);
String find = "var CfG={(.*?)";
System.out.println(MatcherString.getString(html,find,1));
}
}
package http.cases.FloorTest;
import base.DuibaLog;
import base.DuibaTestBase;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import http.service.Authorization;
import http.service.Manager.FloorService;
import http.service.app.HomeService;
import http.service.hd.DevFloorBannerService;
import http.service.hd.DevFloorChildPageService;
import http.service.hd.DevSkinService;
import io.restassured.path.json.JsonPath;
import io.restassured.response.Response;
import org.springframework.beans.factory.annotation.Autowired;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import utils.MatcherString;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
import static io.restassured.path.json.JsonPath.from;
/**
* Created by mabo on 2018/6/8
* 优惠券
*/
public class Coupon_FloorTest extends DuibaTestBase {
@Autowired
HomeService homeService;
@Autowired
FloorService floorService;
@Autowired
Authorization authorization;
@Autowired
DevSkinService devSkinService;
@Autowired
DevFloorBannerService devFloorBannerService;
@Autowired
DevFloorChildPageService devFloorChildPageService;
private String skinId=null;
private String floorId=null;
private DuibaLog logger = DuibaLog.getLogger();
@BeforeClass
public void beforeClass(){
try{
Map map = jdbc.findSimpleResult("select * from credits_dev.tb_credits_floor_skin where skin_name = ?","mabo楼层皮肤conpon");
skinId = String.valueOf(map.get("id"));
map = jdbc.findSimpleResult("select * from credits_dev.tb_credits_floor_code WHERE floor_name= ?","maboConpon");
floorId = String.valueOf(map.get("id"));
Response response = devSkinService.saveSkin(authorization.hdLoginmabo(),"18740","198");
response = floorService.deleteSkin(authorization.ssoLogin(),skinId,"1");
response = floorService.deleteFloor(authorization.ssoLogin(),floorId);
}catch(Exception e){
}
}
@Test
public void A_创建优惠券楼层皮肤() throws Exception {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");//设置日期格式
logger.info(df.format(new Date()));
String type = "6";
String dataType = "0";
String name = "maboConpon";
String skinWidth = "750";
String html = "<div class=\"floor-coupon a-fadeinT\">\n" +
" <div class=\"title\">\n" +
" <div class=\"name\"><i></i>优惠券</div>\n" +
" <a class=\"more\" href=\"${moreLink}\">更多<i></i></a>\n" +
" </div>\n" +
" <div class=\"item-con\">\n" +
" <div class=\"scroll\">\n" +
" <div class=\"scroll-x\" id =\"floor-coupon-scroll\">\n" +
" {@each list as item}\n" +
" <a class=\"item\" href=\"${item.link}\">\n" +
" <div class=\"fl-a\" db-log=\"${item.stInfo}\">\n" +
" <div class=\"img-warp\"> \n" +
" <img src=\"${item.iconImage}\">\n" +
" </div>\n" +
" <div class=\"info-warp\">\n" +
" <p class=\"des\">${item.interestDesc}</p>\n" +
" <p class=\"subtitle\">${item.subtitle}</p>\n" +
" </div> \n" +
" </div>\n" +
" </a> \n" +
" {@/each}\n" +
" <a href=\"${moreLink}\" class=\"more view-more\">\n" +
" <span>查看更多</span>\n" +
" </a>\n" +
" <div class=\"pd-space\"></div>\n" +
" </div> \n" +
" </div>\n" +
" </div>\n" +
"</div>";
String css = ".floor-coupon {\n" +
" padding: 0.125rem 0 0.1rem 0;\n" +
" margin-bottom: 0.05rem;\n" +
" background: #ffffff;\n" +
" display: block;\n" +
"}\n" +
".floor-coupon .title {\n" +
" position: relative;\n" +
" height: 0.15rem;\n" +
" line-height: 0.15rem;\n" +
" margin-bottom: 0.1rem;\n" +
" margin-left: 0.1rem;\n" +
" text-align: left;\n" +
"}\n" +
".floor-coupon .title .name {\n" +
" display: inline-block;\n" +
" font-size: 0.14rem;\n" +
" color: #444;\n" +
" line-height: 0.15rem;\n" +
" margin-right: 0.15rem;\n" +
"}\n" +
".floor-coupon .title .name i {\n" +
" display: inline-block;\n" +
" vertical-align: top;\n" +
" margin-right: 0.035rem;\n" +
" width: 0.15rem;\n" +
" height: 0.15rem;\n" +
" background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAMAAAAM7l6QAAAAaVBMVEUAAAD/pQL/sBL/pQL/pQP/pAL/pgT/pQT/pgT/xTH/pQL/pAL/pQP/pAP/pAP/pQL/pQP/pgP/pAT/qQf/rQn/pQT/pQP/pAP/pQP/pQL/pgP/pgT/pAL/pQP/pgL/pQL/pQP/pQX/pAJMiN/XAAAAInRSTlMA+w7srvONhTkF2djGual3WlA7JhxHwKOYZmJI4cx+cVgzt7mU+wAAAQNJREFUKM+FU9m2wiAMTApl6Upr1bbu+f+PvIAVUK+HeYCQORkSSCCiGGTXtp0cCviG4khYN01tN64+yIkTE6N2ph4FIz6l7ImVfSJZ9CXbx6PBaveutqvQvOw9Hr6yKQ64xU+simzkK/a8n5dROdUvua+IevgXPSkXzJz0kd5wdPKM2wUFWNAHnE9gAQONgS79EuiRBpCoAz2vROscaI0SuhocFh8kjZFeYfHOuoO2AQ8bSNeH1o+rNe5PX9MG+m6958vtdjlbwwR6EzfM3b0otcxOfN3EX6kheQhBlKYWC/NgViQtLPMsmUfNfEnmQ/PtAKcfzZRpxUwjZ8YgP0SZEfwDHggf9l4buUIAAAAASUVORK5CYII=');\n" +
" background-size: 100% auto;\n" +
"}\n" +
".floor-coupon .title .more {\n" +
" position: absolute;\n" +
" font-size: 0.1rem;\n" +
" top: 0.01rem;\n" +
" right: 0.1rem;\n" +
" color: #888;\n" +
"}\n" +
".floor-coupon .title .more i {\n" +
" display: inline-block;\n" +
" margin-left: 0.02rem;\n" +
" width: 0.045rem;\n" +
" height: 0.075rem;\n" +
" background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAOCAYAAAD9lDaoAAAAAXNSR0IArs4c6QAAAMJJREFUKBWFj0EKwjAQRZOQ7rMUQUGxnqMLN124zAWy6ZlSaG8hbnsPQUF3XqHB+KeQkrYYB4YZ8l9m/vC6ri+MsYOUsjTG3NEvQnjvV8hj3/dd27b7BYEHgQln1Bty8wvk9LNpmrVzrkObI19ZlhXx6gGCkARHKAVOoDnIOX8opXJBQhzwJiFKesPVTmvtJ5C1dgugg7ijKeBOqJ9x3RwAWFRV9aSJA5QCBugfQBB5ugYP8QoSQ9Alb4h0SRk8BDHUL2r8gjSPuiqVAAAAAElFTkSuQmCC') no-repeat;\n" +
" background-size: 100% auto!important;\n" +
"}\n" +
".floor-coupon .fl {\n" +
" float: left;\n" +
"}\n" +
".floor-coupon .fr {\n" +
" float: right;\n" +
"}\n" +
".floor-coupon .item-con {\n" +
" height: 0.6rem;\n" +
" overflow: hidden;\n" +
" *zoom: 1;\n" +
"}\n" +
".floor-coupon .item-con .item {\n" +
" float: left;\n" +
" position: relative;\n" +
" display: block;\n" +
" width: 1.85rem;\n" +
" height: 0.6rem;\n" +
" border-radius: 0.04rem;\n" +
" background: #06cfb0;\n" +
" overflow: hidden;\n" +
" margin-left: 0.1rem;\n" +
"}\n" +
".floor-coupon .item-con .item::before {\n" +
" position: absolute;\n" +
" top: 0;\n" +
" left: -0.035rem;\n" +
" display: block;\n" +
" width: 0.065rem;\n" +
" height: 100%;\n" +
" content: '';\n" +
" background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAATBAMAAAC5GZqkAAAAGFBMVEUAAAD///////////////////////////8jfp1fAAAAB3RSTlMA19COPPlcVP4jQQAAADlJREFUCNdjIAhYjIJMQHRieXlhApArXl5eLsLAwFwOBMUMDEwguoiBgRVEl8L4MHmYeph+mHkEAQAVvxR725Dx8AAAAABJRU5ErkJggg==\") repeat-y;\n" +
" background-size: 0.065rem 0.095rem;\n" +
"}\n" +
".floor-coupon .item-con .item::after {\n" +
" position: absolute;\n" +
" top: 0;\n" +
" right: -0.04rem;\n" +
" display: block;\n" +
" width: 0.065rem;\n" +
" height: 100%;\n" +
" content: '';\n" +
" background: url(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAATBAMAAAC5GZqkAAAAGFBMVEUAAAD///////////////////////////8jfp1fAAAAB3RSTlMA19COPPlcVP4jQQAAADlJREFUCNdjIAhYjIJMQHRieXlhApArXl5eLsLAwFwOBMUMDEwguoiBgRVEl8L4MHmYeph+mHkEAQAVvxR725Dx8AAAAABJRU5ErkJggg==\") repeat-y;\n" +
" background-size: 0.065rem 0.095rem;\n" +
"}\n" +
".floor-coupon .item-con .item .fl-a {\n" +
" display: inline-block;\n" +
" height: 0.6rem;\n" +
" width: 100%;\n" +
"}\n" +
".floor-coupon .item-con .item .img-warp {\n" +
" position: relative;\n" +
" display: inline-block;\n" +
" width: 0.5rem;\n" +
" height: 0.5rem;\n" +
" margin: 0.05rem 0 0 0.075rem;\n" +
" border-radius: 0.02rem;\n" +
" background-color: #fff;\n" +
"}\n" +
".floor-coupon .item-con .item .img-warp img {\n" +
" position: absolute;\n" +
" top: 50%;\n" +
" -webkit-transform: translateY(-50%);\n" +
" transform: translateY(-50%);\n" +
" width: 0.5rem;\n" +
" height: auto;\n" +
"}\n" +
".floor-coupon .item-con .item .info-warp {\n" +
" position: absolute;\n" +
" display: inline-block;\n" +
" //height: 0.25rem;\n" +
" width: 1rem;\n" +
" color: #FFF;\n" +
" text-align: left;\n" +
" overflow: hidden;\n" +
" white-space: nowrap;\n" +
" text-overflow: ellipsis;\n" +
" left: 0.65rem;\n" +
" top: 50%;\n" +
" -webkit-transform: translateY(-50%);\n" +
" transform: translateY(-50%);\n" +
"}\n" +
".floor-coupon .item-con .item .info-warp .des {\n" +
" overflow: hidden;\n" +
" white-space: nowrap;\n" +
" text-overflow: ellipsis;\n" +
" display: inline-block;\n" +
" font-size: 0.12rem;\n" +
"}\n" +
".floor-coupon .item-con .item .info-warp .subtitle {\n" +
" overflow: hidden;\n" +
" white-space: nowrap;\n" +
" text-overflow: ellipsis;\n" +
" font-size: 0.1rem;\n" +
" padding-top: 0.03rem;\n" +
"}\n" +
".floor-coupon .item-con:before,\n" +
".floor-coupon .item-con:after {\n" +
" display: table;\n" +
" content: \"\";\n" +
"}\n" +
".floor-coupon .item-con:after {\n" +
" clear: both;\n" +
"}\n" +
".floor-coupon .view-more {\n" +
" float: left;\n" +
" font-size: 0.1rem;\n" +
" height: 0.59rem;\n" +
" padding: 0 0.2rem 0 0.1rem;\n" +
" background-color: rgba(216, 216, 216, 0.1);\n" +
" border: 1px solid rgba(151, 151, 151, 0.1);\n" +
" color: #444;\n" +
" margin-left: 0.1rem;\n" +
" cursor: pointer;\n" +
" display: table;\n" +
" position: relative;\n" +
"}\n" +
".floor-coupon .view-more::before {\n" +
" content: '';\n" +
" position: absolute;\n" +
" width: 0;\n" +
" height: 0;\n" +
" border: 0.045rem solid transparent;\n" +
" border-left-color: #444;\n" +
" right: 10px;\n" +
" top: 50%;\n" +
" margin-top: -0.045rem;\n" +
"}\n" +
".floor-coupon .view-more span {\n" +
" display: table-cell;\n" +
" vertical-align: middle;\n" +
" line-height: 1.5;\n" +
" width: 0.225rem;\n" +
"}\n" +
".floor-coupon .pd-space {\n" +
" height: 0.6rem;\n" +
" float: left;\n" +
" width: 0.1rem;\n" +
"}\n" +
".scroll {\n" +
" width: 100%;\n" +
" height: 1rem;\n" +
" overflow: auto;\n" +
" box-sizing: border-box;\n" +
" -webkit-overflow-scrolling: touch;\n" +
"}\n" +
".scroll .scroll-x {\n" +
" width: 300rem;\n" +
"}";
String js = "if ( data && data.list && data.list.length) {\n" +
" \tyangzuo.extend(data,global);\n" +
" $(\"#renderRoot\").append(juicer(html, data));\n" +
" var len = (data.list.length*390 + 20 + 158)/200;\n" +
" $(\"#floor-coupon-scroll\").css(\"width\",len+\"rem\");\n" +
"}";
//新建banner楼层
Response response = floorService.createFloor(authorization.ssoLogin(),type,dataType,name,html,css,js,skinWidth);
Map<String,Object> map = jdbc.findSimpleResult("select * from credits_dev.tb_credits_floor_code where floor_name=?",name);
floorId = String.valueOf(map.get("id"));
String nameSkin = "mabo楼层皮肤conpon";
String image = "//yun.dui88.com/images/201805/nlkmslg0t0.png";
// 验证码
String stoke="1";
// String floors = "[{\"id\":190,\"name\":\"maboTest\",\"type\":1,\"dataType\":0,\"needSyn\":false,\"syn\":false}]";
String ower = "0";
JSONObject json = new JSONObject();
json.put("id",map.get("id"));
json.put("name",name);
json.put("type","6");
json.put("dataType",map.get("data_type"));
json.put("needSyn",false);
json.put("syn",false);
JSONArray jsonArray = new JSONArray();
jsonArray.add(json);
String floors = jsonArray.toJSONString();
//新建皮肤
response = floorService.insertSkin(authorization.ssoLogin(),nameSkin,image,stoke,floors,ower,skinWidth);
map = jdbc.findSimpleResult("select * from credits_dev.tb_credits_floor_skin where skin_name = ?",nameSkin);
skinId = String.valueOf(map.get("id"));
response = floorService.switchOpenState(authorization.ssoLogin(),skinId,"true");
}
@Test
public void B_优惠券手机端() throws Exception {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");//设置日期格式
logger.info(df.format(new Date()));
Response response = devSkinService.saveSkin(authorization.hdLoginmabo(),"18740",skinId);
int showNum = 5;
JSONObject json = new JSONObject();
json.put("appId","18740");
json.put("floorId",floorId);
json.put("floorTitle","优惠券");
json.put("showNum",String.valueOf(showNum));
json.put("target","childPage");
response = devFloorChildPageService.couponPageConfig(authorization.hdLoginmabo(),json.toJSONString());
Thread.sleep(70000);
JsonPath jsonCfg = homeService.getCFG(2753);
Assert.assertEquals(jsonCfg.getList("").size(),1,"banner展示数量和配置不符");
String floorId = MatcherString.getString(jsonCfg.getList("").get(0).toString(),"floorId=(.*?),",1);
String dataType = MatcherString.getString(jsonCfg.getList("").get(0).toString(),"dataType=(.*?),",1);
String floorType = MatcherString.getString(jsonCfg.getList("").get(0).toString(),"floorType=(.*?),",1);
response = homeService.floor(authorization.dafuwengLogin(2753),floorType,dataType,"3",floorId);
String s = response.asString();
JsonPath jsonPath=from(s.substring(s.indexOf("{"),s.length()-1));
List<Map> list = jsonPath.getList("list",Map.class);
Assert.assertEquals(list.size(),showNum,"配置数量和展示数量不相符");
}
@Test
public void C_删除优惠券楼层皮肤() throws Exception {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");//设置日期格式
logger.info(df.format(new Date()));
Response response = devSkinService.saveSkin(authorization.hdLoginmabo(),"18740","198");
response.prettyPrint();
response = floorService.deleteSkin(authorization.ssoLogin(),skinId,"1");
response.prettyPrint();
response = floorService.deleteFloor(authorization.ssoLogin(),floorId);
response.prettyPrint();
}
}
package http.cases.FloorTest;
import base.DuibaLog;
import base.DuibaTestBase;
import http.service.Activity.NewtoolsService;
import http.service.Authorization;
import http.service.app.AerosolService;
import http.service.app.HomeService;
import http.service.hd.ActivityService;
import http.service.hd.DevFloorService;
import http.service.hd.PlatformCouponService;
import io.restassured.path.json.JsonPath;
import io.restassured.response.Response;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.testng.AbstractTestNGSpringContextTests;
import org.testng.Assert;
import org.testng.annotations.Test;
import utils.MatcherString;
import java.util.List;
import java.util.Map;
import static io.restassured.path.json.JsonPath.from;
/**
* Created by hanzhanli on 2017/7/18.
*/
public class Floor_FloorTest extends DuibaTestBase {
private static DuibaLog logger=DuibaLog.getLogger();
@Value("${uid}")
int uid;
@Value("${appId}")
int appId;
@Autowired
Authorization authorization;
@Autowired
HomeService homeService;
@Autowired
DevFloorService devFloorService;
@Autowired
ActivityService activityService;
@Autowired
PlatformCouponService platformCouponService;
@Autowired
NewtoolsService newtoolsService;
@Autowired
AerosolService aerosolService;
// @Test
public void indexTest() throws Exception {
/* Map<String,String> cookies=authorization.dafuwengLogin();
logger.info(cookies);
Response response=given().cookies(cookies).get("http://home.m.duibatest.com.cn/chome/index?from=login&spm=2278.1.1.1");
logger.info(response.asString());*/
//authorization.hdLogin();
//JsonPath json=homeService.getCFG(2727);
//List<Map> list=json.getList("",Map.class);
//logger.info(list);
homeService.floor("2","0","3","3");
//logger.info(Base64.encodeBase64(DigestUtils.sha1Hex("123456duiba").getBytes()));
//logger.info(SecurityUtils.getMD5("OhvdP1tOTMmqJv7Go4xi/CuZkCo=971eec6e-19db-4c7b-beb9-5db32f41a42b"));
}
@Test(description = "楼层icon")
public void iconTest() throws Exception {
Response response=devFloorService.iconSelectedList(Integer.toString(appId));
//response.print();
// logger.info("hd:"+response.asString());
List<Map> configList= from(response.asString()).getList("data", Map.class);
//path:/floor/2/0,duibaPageId=3,floorId=3
response=homeService.floor("2","0","3","3");
//response.prettyPrint();
String s = new String(response.asByteArray(),"UTF-8");
// logger.info("floor:"+s);
//logger.info(s.substring(s.indexOf("{"),s.length()-1));
List<Map> iconList= from(s.substring(s.indexOf("{"),s.length()-1)).getList("list", Map.class);
//logger.info(s.substring(s.indexOf("{"),s.length()-1));
for(int i=0;i<iconList.size();i++){
Map configMap=configList.get(i);
Map iconMap=iconList.get(i);
String dcm=(String)iconMap.get("dcm");
String[] dcms=dcm.split(".");
Assert.assertEquals(dcm.split("\\.")[1],configMap.get("bannerId").toString(),"dcm与配置bannerId不一致,dcm:"+dcm+",配置bannerId:"+configMap.get("bannerId"));
String dpm=(String)iconMap.get("dpm");
Assert.assertEquals(dpm.split("\\.")[0],String.valueOf(appId),"dpm与预期不一致,dpm:"+dpm+",appId:"+appId);
Assert.assertEquals(iconMap.get("id"),configMap.get("bannerId"),"id与配置的bannerId不一致,ID:"+iconMap.get("id")+",bannerId:"+configMap.get("bannerId"));
Assert.assertEquals(iconMap.get("logo"),configMap.get("img"),"logo与配置img不一致,logo:"+iconMap.get("logo")+",配置img:"+configMap.get("img"));
Assert.assertEquals(iconMap.get("name"),configMap.get("title"),"name与配置title不一致,name:"+iconMap.get("name")+",配置title:"+configMap.get("title"));
String link=(String)iconMap.get("link");
Assert.assertTrue(link.contains(dcm),"link中未包含正确的dcm,link:"+link+",dcm:"+dcm);
Assert.assertTrue(link.contains(dpm),"link中未包含正确的dpm,link:"+link+",dcm:"+dpm);
logger.info("校验正确:"+iconMap.get("name"));
}
}
@Test(description = "楼层banner")
public void bannerTest() throws Exception {
Response response=devFloorService.bannerSelectedList(Integer.toString(appId));
// logger.info("hd:"+response.asString());
JsonPath jsonPath=from(response.asString());
List<Map> activityList=jsonPath.getList("data",Map.class);
response=homeService.floor("1","0","3","2");
String s=response.asString();
s = new String(response.asByteArray(),"UTF-8");
// logger.info("floor:"+s);
jsonPath=from(s.substring(s.indexOf("{"),s.length()-1));
List<Map> bannerList=jsonPath.getList("list",Map.class);
for(int i=0;i<bannerList.size();i++){
Map banner=bannerList.get(i);
Map activity = activityList.get(i);
Assert.assertEquals(activity.get("title"),banner.get("title"));
Assert.assertEquals(activity.get("img"),banner.get("image"));
logger.info("校验正确:"+activity.get("title"));
}
}
@Test(description = "楼层商品区")
public void itemTest() throws Exception {
Response response=devFloorService.itemSelectedList(Integer.toString(appId));
// response.prettyPrint();
List<Map> configList= from(response.asString()).getList("data", Map.class);
response=homeService.floor("3","0","3","64");
String s = new String(response.asByteArray(),"UTF-8");;
//logger.info(s.substring(s.indexOf("{"),s.length()-1));
List<Map> itemList= from(s.substring(s.indexOf("{"),s.length()-1)).getList("list", Map.class);
//开发者配置展示20个,校验手机端个数
//Assert.assertEquals(itemList.size(),20);
//校验前四个具体内容
for(int i=0;i<2;i++){
Map configMap=configList.get(i);
Map itemMap=itemList.get(i);
Assert.assertEquals(itemMap.get("appItemId"),configMap.get("appItemId"),"appItemId与配置的appItemId不一致,image:"+itemMap.get("appItemId")+",image:"+configMap.get("appItemId"));
Assert.assertEquals(itemMap.get("title"),configMap.get("title"),"title与配置title不一致,title:"+itemMap.get("title")+",配置title:"+configMap.get("title"));
Assert.assertEquals(itemMap.get("image"),configMap.get("img"),"image与配置img不一致,image:"+itemMap.get("image")+",配置img:"+configMap.get("img"));
logger.info("校验正确:"+itemMap.get("title"));
}
}
@Test(description = "楼层默认橱窗")
public void showcaseTest() throws Exception {
Response response=devFloorService.getShowcaseContent(Integer.toString(appId));
logger.info(response.asString());
List<Map> configList= from(response.asString()).getList("data", Map.class);
int i=3;
while(configList.size()==0&&i>0){
response=devFloorService.getShowcaseContent(Integer.toString(appId));
configList= from(response.asString()).getList("data", Map.class);
Thread.sleep(1000);
i--;
}
if(configList.size()==0){
throw new Exception("devFloorItem/selectedList接口异常,返回内容"+response.asString());
}
response=homeService.floor("8","0","3","186");
response.prettyPrint();
String s = new String(response.asByteArray(),"UTF-8");;
//logger.info(s.substring(s.indexOf("{"),s.length()-1));
List<Map> showcaseList= from(s.substring(s.indexOf("{"),s.length()-1)).getList("list", Map.class);
for(i=0;i<showcaseList.size();i++){
Map configMap=configList.get(i);
Map showcaseMap=showcaseList.get(i);
String dcm=(String)showcaseMap.get("dcm");
// String[] dcms=dcm.split(".");
// Assert.assertEquals(dcm.split("\\.")[1],configMap.get("relationId").toString(),"dcm与配置bannerId不一致,dcm:"+dcm+",配置relationId:"+configMap.get("relationId"));
String dpm=(String)showcaseMap.get("dpm");
Assert.assertEquals(dpm.split("\\.")[0],String.valueOf(appId),"dpm与预期不一致,dpm:"+dpm+",appId:"+appId);
Assert.assertEquals(showcaseMap.get("image"),configMap.get("image"),"image与配置的image不一致,image:"+showcaseMap.get("image")+",image:"+configMap.get("image"));
Assert.assertEquals(showcaseMap.get("relationTitle"),configMap.get("relationTitle"),"relationTitle与配置relationTitle不一致,relationTitle:"+showcaseMap.get("relationTitle")+",配置img:"+configMap.get("relationTitle"));
Assert.assertEquals(showcaseMap.get("relationImage"),configMap.get("relationImage"),"relationImage与配置relationImage不一致,name:"+showcaseMap.get("relationImage")+",配置relationImage:"+configMap.get("relationImage"));
String link=(String)showcaseMap.get("btnLink");
// Assert.assertTrue(link.contains(dcm),"btnLink中未包含正确的dcm,btnLink:"+link+",dcm:"+dcm);
Assert.assertTrue(link.contains(dpm),"btnLink中未包含正确的dpm,btnLink:"+link+",dcm:"+dpm);
logger.info("校验正确:"+showcaseMap.get("relationTitle"));
}
}
@Test(description = "楼层优惠券")
public void PlatFormCouponTest() throws Exception {
Response response=homeService.floor("6","0","3","199");
String s = response.asString();
List<Map> list= from(s.substring(s.indexOf("{"),s.length()-1)).getList("list", Map.class);
String floorTitle =from(s.substring(s.indexOf("{"),s.length()-1)).getString("floorTitle");
Assert.assertEquals(floorTitle,"优惠券");
for(int i=0;i<list.size();i++){
Map<String,Object> map = list.get(i);
String dcm = map.get("dcm").toString();
String dpm = map.get("dpm").toString();
String pcgId = map.get("pcgId").toString();
String title = map.get("title").toString();
String html = platformCouponService.platformDetail(dcm,dpm,pcgId).asString();
boolean bl = html.contains(title);
Assert.assertTrue(bl);
logger.info("校验正确:"+title);
}
}
// @Test(description = "楼层秒杀")
// public void seckillTest() throws Exception {
// Response response=homeService.floor("10","0","3","100");
// response.prettyPrint();
// String s=response.asString();
// //List<Map> list= from(s.substring(s.indexOf("{"),s.length()-1)).getList("list", Map.class);
// s = MatcherString.getString(s,"\"url\":\"(.*?)\"}",1);
//// System.out.println(s);
// logger.info("请求秒杀url:"+s);
// response = given().cookies(authorization.dafuwengLogin(2720)).get("http:"+s);
// response.prettyPrint();
//
// s = MatcherString.getString(response.asString(),"<title>(.*?)</title>",1);
// Assert.assertEquals(s,"【勿动接口自动化】秒杀专题","校验title失败");
// logger.info("校验成功");
//
// }
// @Test(description = "楼层热门活动")
// public void actfloorTest() throws Exception {
// //获取楼层热门活动内容
// Response response=homeService.floor("5","0","3","148","28");
// response.prettyPrint();
// String s = new String(response.asByteArray(),"UTF-8");
//// logger.info(s);
// List<Map> list= from(s.substring(s.indexOf("{"),s.length()-1)).getList("list", Map.class);
//
// Map<String,Object> map = list.get(0);
// Assert.assertEquals(map.get("title"),"(13兑吧活动)自动化测试勿动","校验title失败");
// Assert.assertEquals(map.get("dcm"),"202.18543.0.0","校验dcm失败");
// Assert.assertEquals(String.valueOf(map.get("operatingId")),"18543","校验operatingId失败");
// Assert.assertEquals(map.get("dpm"),"2239.5.148.1","校验dpm失败");
// Assert.assertEquals(String.valueOf(map.get("credits")),"100","校验credits失败");
// Assert.assertEquals(String.valueOf(map.get("id")),"5277","校验id失败");
// Assert.assertEquals(map.get("banner"),"//yun.duiba.com.cn/h5/activity/turnCard/2.0/images/banner.jpg","校验banner失败");
// Assert.assertEquals(map.get("link"),"//activity.m.duibatest.com.cn/hdtool/index?id=18543&amp;dbnewopen&amp;dpm=2239.5.148.1&amp;dcm=202.18543.0.0","校验banner失败");
// logger.info("校验成功");
//
//
//
//
//
//
// }
@Test(description = "浮标")
public void 浮标() throws Exception {
Response response = aerosolService.data("3","jsonp10");
logger.info(response.asString());
String exceptUrl = "http://www.duiba.com.cn";
String actUrl = MatcherString.getString(response.asString(),"\"link\":\"(.*?)\",",1);
logger.info("浮标配置url:"+actUrl);
Assert.assertTrue(actUrl.contains(exceptUrl),"浮标url与配置的url不匹配");
logger.info("校验浮标链接url正确");
}
// private Map<Object,Map> trasformate(String key,List<Map> toBeFiltered){
// Map<Object,Map> result=new HashedMap();
// for(int i=0;i<toBeFiltered.size();i++){
// Map map=toBeFiltered.get(i);
// result.put(map.get(key),map);
// }
// return result;
// }
public static void main(String[] args) {
System.out.println("1234");
}
}
package http.cases.FloorTest;
import base.DuibaLog;
import base.DuibaTestBase;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import http.service.Authorization;
import http.service.Manager.FloorService;
import http.service.app.HomeService;
import http.service.hd.DevFloorBannerService;
import http.service.hd.DevSkinService;
import io.restassured.path.json.JsonPath;
import io.restassured.response.Response;
import org.springframework.beans.factory.annotation.Autowired;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import utils.MatcherString;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import static io.restassured.path.json.JsonPath.from;
/**
* Created by mabo on 2018/6/8
*/
public class Game_FloorTest extends DuibaTestBase {
@Autowired
HomeService homeService;
@Autowired
FloorService floorService;
@Autowired
Authorization authorization;
@Autowired
DevSkinService devSkinService;
@Autowired
DevFloorBannerService devFloorBannerService;
private String skinId=null;
private String floorId=null;
private DuibaLog logger = DuibaLog.getLogger();
@BeforeClass
public void beforeClass(){
try{
Map map = jdbc.findSimpleResult("select * from credits_dev.tb_credits_floor_skin where skin_name = ?","mabo楼层皮肤Game");
skinId = String.valueOf(map.get("id"));
map = jdbc.findSimpleResult("select * from credits_dev.tb_credits_floor_code WHERE floor_name= ?","maboGame");
floorId = String.valueOf(map.get("id"));
Response response = devSkinService.saveSkin(authorization.hdLoginmabo(),"18740","198");
response = floorService.deleteSkin(authorization.ssoLogin(),skinId,"1");
response = floorService.deleteFloor(authorization.ssoLogin(),floorId);
}catch(Exception e){
}
}
@Test
public void A_创建游戏楼层皮肤() throws Exception {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");//设置日期格式
logger.info(df.format(new Date()));
String type = "9";
String dataType = "0";
String name = "maboGame";
String skinWidth = "750";
String html = "<div class=\"floor-game a-fadeinT\">\n" +
" <div class=\"title\">\n" +
" <div class=\"name\"><i></i>${floorTitle}</div>\n" +
" <a href=\"${moreLink}\" class=\"more\">更多<i></i></a>\n" +
" </div>\n" +
" <div class=\"item-con\">\n" +
" <div class=\"scroll\">\n" +
" <div class=\"scroll-x\" id=\"floor-game-scroll\">\n" +
" {@each list as item}\n" +
" <a class=\"m-layout\" href=\"${item.link}\" db-log=\"${item.stInfo}\">\n" +
" <img src=\"${item.bannerImg}\">\n" +
" <div class=\"game-name\">${item.title}</div>\n" +
" </a>\n" +
" {@/each}\n" +
" <div class=\"pd-space\"></div>\n" +
" </div>\n" +
" </div>\n" +
" </div>\n" +
"</div>";
String css = ".floor-game {\n" +
" display: block;\n" +
" padding: 0.1rem 0 0.1rem 0;\n" +
" margin-bottom: 0.05rem;\n" +
" border-top: 1px solid #dddddd;\n" +
" border-bottom: 1px solid #dddddd;\n" +
" background: #ffffff;\n" +
"}\n" +
".floor-game .title {\n" +
" position: relative;\n" +
" height: 0.15rem;\n" +
" line-height: 0.15rem;\n" +
" margin-left: 0.1rem;\n" +
" margin-bottom: 0.11rem;\n" +
" text-align: left;\n" +
"}\n" +
".floor-game .title .name {\n" +
" display: inline-block;\n" +
" font-size: 0.14rem;\n" +
" color: #444;\n" +
" line-height: 0.15rem;\n" +
" margin-right: 0.15rem;\n" +
"}\n" +
".floor-game .title .name i {\n" +
" display: inline-block;\n" +
" vertical-align: top;\n" +
" margin-right: 0.035rem;\n" +
" width: 0.15rem;\n" +
" height: 0.15rem;\n" +
" background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAMAAAAM7l6QAAAAdVBMVEUAAABdQNZdQddfQthgT99dQdddQdZdQNddQddeQddeQNdeQNdfQddfQtlgQthkSNxsYv9eQddeQNZlTeReQddeQdZdQNdeQddeQddgQthdQddeQddeQNdeQNddQNdfQ9lfQddfQthfRdldQddeQNdgQ9ZdQNZr1CtdAAAAJnRSTlMA+9k6EPn0sKzt6saMUCcbBYV3CrmpzcBaSEdu49SjMF9EIb2TWLqDnUIAAAEvSURBVCjPhVNZdoMwDLQMttl3SAgB0rSd+x+xsbFL05Bn/SDPPKTRxnYL87rvur7OQ/ZqQSRAPE05QUTBP7JUSLKg0m4VZAlU+ZcdY9m0+7NtZHzZn2fixXO0gtPZ+Rc6vagJT2T/L2N+oDXk8ZZfyYIdWCGVqQgNO7QGur4oaY/pNokeOURm5SfDaqKlw8eGZCJkObYWrQTIB34TgNjEBMhZTZXxP6Ft4OajDFRRzXpu3DuANDdcfAXuBuQ961IrE/yrmmMAtxWYDJh2jlZAodUAuM6AsrQLzgGKKiKIfABgwd5JEwDmCYAcNS2tNFeYwJNJW5hriynoNH1Pi4TOb9vimpoBybiNqiZgsU11I2mXqPxdO2X8BoFvoP51YOObZfKsomeRPWfgPyLPCf4Azfkcffc9FNsAAAAASUVORK5CYII=');\n" +
" background-size: 100% auto;\n" +
"}\n" +
".floor-game .title .more {\n" +
" position: absolute;\n" +
" font-size: 0.1rem;\n" +
" top: 0.01rem;\n" +
" right: 0.1rem;\n" +
" color: #888;\n" +
"}\n" +
".floor-game .title .more i {\n" +
" display: inline-block;\n" +
" margin-left: 0.02rem;\n" +
" width: 0.045rem;\n" +
" height: 0.075rem;\n" +
" background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAOCAYAAAD9lDaoAAAAAXNSR0IArs4c6QAAAMJJREFUKBWFj0EKwjAQRZOQ7rMUQUGxnqMLN124zAWy6ZlSaG8hbnsPQUF3XqHB+KeQkrYYB4YZ8l9m/vC6ri+MsYOUsjTG3NEvQnjvV8hj3/dd27b7BYEHgQln1Bty8wvk9LNpmrVzrkObI19ZlhXx6gGCkARHKAVOoDnIOX8opXJBQhzwJiFKesPVTmvtJ5C1dgugg7ijKeBOqJ9x3RwAWFRV9aSJA5QCBugfQBB5ugYP8QoSQ9Alb4h0SRk8BDHUL2r8gjSPuiqVAAAAAElFTkSuQmCC') no-repeat;\n" +
" background-size: 100% auto!important;\n" +
"}\n" +
".floor-game .item-con {\n" +
" height: 0.8rem;\n" +
" overflow: hidden;\n" +
" *zoom: 1;\n" +
"}\n" +
".floor-game .item-con .m-layout {\n" +
" display: block;\n" +
" float: left;\n" +
" position: relative;\n" +
" width: 1.425rem;\n" +
" height: 0.625rem;\n" +
" margin-right: 0.065rem;\n" +
"}\n" +
".floor-game .item-con .m-layout:first-child {\n" +
" margin-left: 0.1rem;\n" +
"}\n" +
".floor-game .item-con .m-layout img {\n" +
" width: 1.425rem;\n" +
" height: 0.625rem;\n" +
" border-radius: 0.1rem;\n" +
" background-size: 100% auto!important;\n" +
"}\n" +
".floor-game .item-con .game-name {\n" +
" margin-top: 0.05rem;\n" +
" font-size: 0.12rem;\n" +
" color: #666666;\n" +
"}\n" +
".floor-game .item-con:before,\n" +
".floor-game .item-con:after {\n" +
" display: table;\n" +
" content: \"\";\n" +
"}\n" +
".floor-game .item-con:after {\n" +
" clear: both;\n" +
"}\n" +
".floor-game .item-con .scroll {\n" +
" height: 1rem !important;\n" +
"}\n" +
".floor-game .pd-space {\n" +
" height: 0.6rem;\n" +
" float: left;\n" +
" width: 0.1rem;\n" +
"}";
String js = "if ( data && data.list && data.list.length) {\n" +
" if (typeof ''.ossimg === 'function') {\n" +
"\tdata.list = data.list.imgWebpArray('bannerImg');\n" +
" }\n" +
" yangzuo.extend(data,global);\n" +
" if(data.list.length>5) {\n" +
" data.list = data.list.slice(0,5);\n" +
" }\n" +
" $(\"#renderRoot\").append(juicer(html, data));\n" +
" var len = (data.list.length*305 + 20)/200;\n" +
" $(\"#floor-game-scroll\").css(\"width\",len+\"rem\");\n" +
" //lazyload().getLazyImg();\n" +
"}";
//新建banner楼层
Response response = floorService.createFloor(authorization.ssoLogin(),type,dataType,name,html,css,js,skinWidth);
Map<String,Object> map = jdbc.findSimpleResult("select * from credits_dev.tb_credits_floor_code where floor_name=?",name);
floorId = String.valueOf(map.get("id"));
String nameSkin = "mabo楼层皮肤game";
String image = "//yun.dui88.com/images/201805/nlkmslg0t0.png";
// 验证码
String stoke="1";
// String floors = "[{\"id\":190,\"name\":\"maboTest\",\"type\":1,\"dataType\":0,\"needSyn\":false,\"syn\":false}]";
String ower = "0";
JSONObject json = new JSONObject();
json.put("id",map.get("id"));
json.put("name",name);
json.put("type",type);
json.put("dataType",map.get("data_type"));
json.put("needSyn",false);
json.put("syn",false);
JSONArray jsonArray = new JSONArray();
jsonArray.add(json);
String floors = jsonArray.toJSONString();
//新建皮肤
response = floorService.insertSkin(authorization.ssoLogin(),nameSkin,image,stoke,floors,ower,skinWidth);
map = jdbc.findSimpleResult("select * from credits_dev.tb_credits_floor_skin where skin_name = ?",nameSkin);
skinId = String.valueOf(map.get("id"));
response = floorService.switchOpenState(authorization.ssoLogin(),skinId,"true");
}
@Test
public void B_游戏手机端() throws Exception {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");//设置日期格式
logger.info(df.format(new Date()));
Response response = devSkinService.saveSkin(authorization.hdLoginmabo(),"18740",skinId);
Thread.sleep(60000);
JsonPath jsonCfg = homeService.getCFG(2753);
Assert.assertEquals(jsonCfg.getList("").size(),1,"banner展示数量和配置不符");
String floorId = MatcherString.getString(jsonCfg.getList("").get(0).toString(),"floorId=(.*?),",1);
String dataType = MatcherString.getString(jsonCfg.getList("").get(0).toString(),"dataType=(.*?),",1);
String floorType = MatcherString.getString(jsonCfg.getList("").get(0).toString(),"floorType=(.*?),",1);
response = homeService.floor(authorization.dafuwengLogin(2753),floorType,dataType,"3",floorId);
String s = response.asString();
response.prettyPrint();
System.out.println(s);
JsonPath jsonPath=from(s.substring(s.indexOf("{"),s.length()-1));
String floorTitle = jsonPath.getString("floorTitle");
Assert.assertEquals(floorTitle,"趣味游戏","楼层title校验失败");
}
@Test
public void C_删除游戏楼层皮肤() throws Exception {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");//设置日期格式
logger.info(df.format(new Date()));
Response response = devSkinService.saveSkin(authorization.hdLoginmabo(),"18740","198");
response.prettyPrint();
response = floorService.deleteSkin(authorization.ssoLogin(),skinId,"1");
response.prettyPrint();
response = floorService.deleteFloor(authorization.ssoLogin(),floorId);
response.prettyPrint();
}
}
package http.cases.FloorTest;
import base.DuibaLog;
import base.DuibaTestBase;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import http.service.Authorization;
import http.service.Manager.FloorService;
import http.service.app.HomeService;
import http.service.hd.DevFloorBannerService;
import http.service.hd.DevFloorIconService;
import http.service.hd.DevSkinService;
import io.restassured.path.json.JsonPath;
import io.restassured.response.Response;
import org.springframework.beans.factory.annotation.Autowired;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import utils.MatcherString;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
import static io.restassured.path.json.JsonPath.from;
/**
* Created by mabo on 2018/6/7
*/
public class Icon_FloorTest extends DuibaTestBase {
@Autowired
HomeService homeService;
@Autowired
FloorService floorService;
@Autowired
Authorization authorization;
@Autowired
DevSkinService devSkinService;
@Autowired
DevFloorBannerService devFloorBannerService;
@Autowired
DevFloorIconService devFloorIconService;
private DuibaLog logger = DuibaLog.getLogger();
private String skinId=null;
private String floorId=null;
private String bannerId = null;
@BeforeClass
public void beforeClass(){
try{
Map map = jdbc.findSimpleResult("select * from credits_dev.tb_credits_floor_skin where skin_name = ?","mabo楼层皮肤icon");
skinId = String.valueOf(map.get("id"));
map = jdbc.findSimpleResult("select * from credits_dev.tb_credits_floor_code WHERE floor_name= ?","maboicon");
floorId = String.valueOf(map.get("id"));
Response response = devFloorIconService.selectedList(authorization.hdLoginmabo(),"18740");
List<Map> list = response.jsonPath().getList("data",Map.class);
map = getByName(list,"今日必抢");
if(map!=null){
JSONObject json = new JSONObject();
json.put("appId","18740");
json.put("bannerId",map.get("bannerId").toString());
response = devFloorIconService.delIcon(authorization.hdLoginmabo(),json.toJSONString());
}
response = devSkinService.saveSkin(authorization.hdLoginmabo(),"18740","198");
response = floorService.deleteSkin(authorization.ssoLogin(),skinId,"1");
response = floorService.deleteFloor(authorization.ssoLogin(),floorId);
}catch(Exception e){
}catch(Error e){
}
}
@Test
public void A_创建icon楼层皮肤() throws Exception {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");//设置日期格式
logger.info(df.format(new Date()));
String type = "2";
String dataType = "0";
String name = "maboicon";
String skinWidth = "750";
String html = "<section class=\"floor-icon a-fadeinT\">\n" +
" <div class=\"scroll\">\n" +
" <div class=\"scroll-x\"> \n" +
" <div id=\"J_iconList\">\n" +
" \t {@each list as item,index}\n" +
" <a href=\"${item.link}\" db-log=\"${item.stInfo}\" class=\"icon-a icon${list.length} {@if list.length > 4 }icon-large{@/if}\" >\n" +
" <img src=\"${item.logo}\" alt=\"\"/> \n" +
" <p>${item.name}</p>\n" +
" </a>\n" +
" {@/each}\n" +
" </div>\n" +
" </div> \n" +
" </div>\n" +
"</section>";
String css = ".floor-icon {\n" +
" position: relative;\n" +
" background: #FFF;\n" +
" width: 100%;\n" +
" margin-bottom: 0.21333333rem;\n" +
" padding-top: 0.62666667rem;\n" +
" height: 4.04266667rem;\n" +
" overflow: hidden;\n" +
"}\n" +
".floor-icon .icon-a {\n" +
" float: left;\n" +
" text-align: center;\n" +
"}\n" +
".floor-icon .icon-a.icon3 {\n" +
" width: 4.50133333rem;\n" +
"}\n" +
".floor-icon .icon-a.icon4 {\n" +
" width: 3.41333333rem;\n" +
"}\n" +
".floor-icon .icon-a.icon5 {\n" +
" width: 2.73066667rem;\n" +
"}\n" +
".floor-icon .icon-a.icon6,\n" +
".floor-icon .icon-a.icon7 {\n" +
" width: 2.47466667rem;\n" +
"}\n" +
".floor-icon .icon-a.icon-large {\n" +
" width: 3.02933333rem;\n" +
" margin-bottom: 0.42666667rem;\n" +
"}\n" +
".floor-icon .icon-a img {\n" +
" width: 1.83466667rem;\n" +
" height: 1.83466667rem;\n" +
" margin-bottom: 0.41333333rem;\n" +
" border-radius: 33%;\n" +
"}\n" +
".floor-icon .icon-a p {\n" +
" font-family: PingFangSC-Regular;\n" +
" font-size: 0.55466667rem;\n" +
" color: #333;\n" +
" letter-spacing: 0;\n" +
" margin-bottom: 1rem;\n" +
"}\n" +
".scroll {\n" +
" width: 100%;\n" +
" height: 3.416rem;\n" +
" overflow: auto;\n" +
" box-sizing: border-box;\n" +
" -webkit-overflow-scrolling: touch;\n" +
"}\n" +
".scroll .scroll-x {\n" +
" width: 426.66666667rem;\n" +
" height: 3.94266667rem;\n" +
" padding: 0 0.53333333rem;\n" +
" overflow: hidden;\n" +
"}\n" +
".scroll .scroll-x > div.large {\n" +
" width: 90%;\n" +
" margin: 0 auto;\n" +
" display: -webkit-box;\n" +
" display: -ms-flexbox;\n" +
" display: flex;\n" +
" -webkit-box-pack: justify;\n" +
" -ms-flex-pack: justify;\n" +
" justify-content: space-between;\n" +
"}";
String js = "if (data && data.list && data.list.length > 2) {\n" +
" \t$(\"#renderRoot\").append(juicer(html, data));\n" +
"\tif ( data.list.length > 4) {\n" +
" var needWidth = (data.list.length) * 20;\n" +
"\t var $iconLarge = $('.floor-icon').find('.icon-large');\n" +
"\t $iconLarge.closest('.scroll-x').css('width', needWidth+'%');\n" +
"\t $iconLarge.closest('.scroll').css('height', 'auto');\n" +
"\t} else {\n" +
"\t var $iconLarge = $('.floor-icon').find('.icon-a');\n" +
"\t $iconLarge.closest('.scroll-x').css({width: '100%',height: '100%'});\n" +
" $iconLarge.closest('.scroll-x>div').addClass('large');\n" +
"\t}\n" +
"}";
//新建banner楼层
Response response = floorService.createFloor(authorization.ssoLogin(),type,dataType,name,html,css,js,skinWidth);
Map<String,Object> map = jdbc.findSimpleResult("select * from credits_dev.tb_credits_floor_code where floor_name=?",name);
floorId = String.valueOf(map.get("id"));
String nameSkin = "mabo楼层皮肤icon";
String image = "//yun.dui88.com/images/201805/nlkmslg0t0.png";
// 验证码
String stoke="1";
// String floors = "[{\"id\":190,\"name\":\"maboTest\",\"type\":1,\"dataType\":0,\"needSyn\":false,\"syn\":false}]";
String ower = "0";
JSONObject json = new JSONObject();
json.put("id",map.get("id"));
json.put("name",name);
json.put("type","2");
json.put("dataType",map.get("data_type"));
json.put("needSyn",false);
json.put("syn",false);
JSONArray jsonArray = new JSONArray();
jsonArray.add(json);
String floors = jsonArray.toJSONString();
//新建皮肤
response = floorService.insertSkin(authorization.ssoLogin(),nameSkin,image,stoke,floors,ower,skinWidth);
map = jdbc.findSimpleResult("select * from credits_dev.tb_credits_floor_skin where skin_name = ?",nameSkin);
skinId = String.valueOf(map.get("id"));
response = floorService.switchOpenState(authorization.ssoLogin(),skinId,"true");
}
@Test
public void B_icon添加图标() throws Exception {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");//设置日期格式
logger.info(df.format(new Date()));
//应用皮肤
Response response = devSkinService.saveSkin(authorization.hdLoginmabo(),"18740",skinId);
JSONObject json = new JSONObject();
json.put("appId","18740");
json.put("classifySwitch","false");
json.put("iconType","list");
json.put("img","//yun.dui88.com/duibaManagerWeb/dnb7ivbsjr.png");
json.put("listType","iconDuiba");
json.put("selected","false");
json.put("show","true");
json.put("sourceRelationId","2");
json.put("target","今日必抢");
json.put("title","今日必抢");
json.put("appItemId","null");
json.put("bannerId","null");
json.put("classifyImage","null");
json.put("payload","null");
response = devFloorIconService.saveIcon(authorization.hdLoginmabo(),json.toJSONString());
response.prettyPrint();
Thread.sleep(70000);
JsonPath jsonCfg = homeService.getCFG(2753);
Assert.assertEquals(jsonCfg.getList("").size(),1,"banner展示数量和配置不符");
String floorId = MatcherString.getString(jsonCfg.getList("").get(0).toString(),"floorId=(.*?),",1);
String dataType = MatcherString.getString(jsonCfg.getList("").get(0).toString(),"dataType=(.*?),",1);
String floorType = MatcherString.getString(jsonCfg.getList("").get(0).toString(),"floorType=(.*?),",1);
response = homeService.floor(authorization.dafuwengLogin(2753),floorType,dataType,"3",floorId);
response.prettyPrint();
String s = response.asString();
JsonPath jsonPath=from(s.substring(s.indexOf("{"),s.length()-1));
List<Map> list = jsonPath.getList("list",Map.class);
Map map = getByName(list,"今日必抢");
Assert.assertNotNull(map,"icon里没有今日必抢图标");
Assert.assertTrue(map.get("link").toString().contains("//test-todayrob.m.dui88.com/todayrob/index?"),"今日必抢link校验错误");
Assert.assertEquals(map.get("logo"),"//yun.dui88.com/duibaManagerWeb/dnb7ivbsjr.png","今日必抢logo校验错误");
map = getByName(list,"所有商品");
Assert.assertNotNull(map,"icon里没有所有商品图标");
Assert.assertTrue(map.get("link").toString().contains("//activity.m.duibatest.com.cn/button/items?"),"所有商品link校验错误");
Assert.assertEquals(map.get("logo"),"//yun.dui88.com/duibaManagerWeb/ispnglsd3n.png","所有商品logo校验错误");
map = getByName(list,"用户定制");
Assert.assertNotNull(map,"icon里没有用户定制图标");
Assert.assertTrue(map.get("link").toString().contains("www.duiba.com.cn?"),"用户定制link校验错误");
Assert.assertEquals(map.get("logo"),"//yun.dui88.com/duibaManagerWeb/912v0pc812.png","用户定制logo校验错误");
}
@Test
public void C_icon编辑图标() throws Exception {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");//设置日期格式
logger.info(df.format(new Date()));
Response response = devFloorIconService.selectedList(authorization.hdLoginmabo(),"18740");
List<Map> list = response.jsonPath().getList("data",Map.class);
Map map = getByTitle(list,"今日必抢");
Assert.assertNotNull(map,"icon里没有今日必抢图标");
bannerId = map.get("bannerId").toString();
JSONObject json = new JSONObject();
json.put("appId","18740");
json.put("bannerId",bannerId);
json.put("classifyImage","null");
json.put("classifySwitch","false");
json.put("iconType","list");
json.put("img","//yun.dui88.com/images/201806/9lz5ifre0h.png");
json.put("listType","iconDuiba");
json.put("sourceRelationId","2");
json.put("title","今日必抢1");
response = devFloorIconService.updateIcon(authorization.hdLoginmabo(),json.toJSONString());
response.prettyPrint();
Thread.sleep(60000);
JsonPath jsonCfg = homeService.getCFG(2753);
Assert.assertEquals(jsonCfg.getList("").size(),1,"banner展示数量和配置不符");
String floorId = MatcherString.getString(jsonCfg.getList("").get(0).toString(),"floorId=(.*?),",1);
String dataType = MatcherString.getString(jsonCfg.getList("").get(0).toString(),"dataType=(.*?),",1);
String floorType = MatcherString.getString(jsonCfg.getList("").get(0).toString(),"floorType=(.*?),",1);
response = homeService.floor(authorization.dafuwengLogin(2753),floorType,dataType,"3",floorId);
response.prettyPrint();
String s = response.asString();
JsonPath jsonPath=from(s.substring(s.indexOf("{"),s.length()-1));
list = jsonPath.getList("list",Map.class);
map = getByName(list,"今日必抢1");
Assert.assertNotNull(map,"icon里没有今日必抢1图标");
// Assert.assertEquals(map.get("link"),"//test-todayrob.m.dui88.com/todayrob/index?dbnewopen=&dpm=18740.5.293.1&dcm=203.23044.0.0","今日必抢link校验错误");
Assert.assertEquals(map.get("logo"),"//yun.dui88.com/images/201806/9lz5ifre0h.png","今日必抢logo校验错误");
}
@Test
public void D_icon删除图标() throws Exception {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");//设置日期格式
logger.info(df.format(new Date()));
JSONObject json = new JSONObject();
json.put("appId","18740");
json.put("bannerId",bannerId);
Response response = devFloorIconService.delIcon(authorization.hdLoginmabo(),json.toJSONString());
response.prettyPrint();
JsonPath jsonCfg = homeService.getCFG(2753);
Assert.assertEquals(jsonCfg.getList("").size(),1,"banner展示数量和配置不符");
String floorId = MatcherString.getString(jsonCfg.getList("").get(0).toString(),"floorId=(.*?),",1);
String dataType = MatcherString.getString(jsonCfg.getList("").get(0).toString(),"dataType=(.*?),",1);
String floorType = MatcherString.getString(jsonCfg.getList("").get(0).toString(),"floorType=(.*?),",1);
response = homeService.floor(floorType,dataType,"3",floorId);
response.prettyPrint();
String s = response.asString();
JsonPath jsonPath=from(s.substring(s.indexOf("{"),s.length()-1));
List<Map> list = jsonPath.getList("list",Map.class);
Map map = getByName(list,"今日必抢");
Assert.assertNull(map,"icon里删除今日必抢图标失败");
}
@Test
public void E_删除icon楼层皮肤() throws Exception {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");//设置日期格式
logger.info(df.format(new Date()));
Response response = devSkinService.saveSkin(authorization.hdLoginmabo(),"18740","198");
response.prettyPrint();
response = floorService.deleteSkin(authorization.ssoLogin(),skinId,"1");
response.prettyPrint();
response = floorService.deleteFloor(authorization.ssoLogin(),floorId);
response.prettyPrint();
}
public Map getByName (List<Map> list,String name){
if(list==null)return null;
for (Map map:list
) {
if(map.get("name").equals(name))return map;
}
return null;
}
public Map getByTitle (List<Map> list,String name){
for (Map map:list
) {
if(map.get("title").equals(name))return map;
}
return null;
}
}
package http.cases.FloorTest;
import base.DuibaLog;
import base.DuibaTestBase;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import http.service.Authorization;
import http.service.Manager.FloorService;
import http.service.app.HomeService;
import http.service.hd.DevFloorBannerService;
import http.service.hd.DevFloorService;
import http.service.hd.DevSkinService;
import io.restassured.path.json.JsonPath;
import io.restassured.response.Response;
import org.springframework.beans.factory.annotation.Autowired;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import utils.MatcherString;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
import static io.restassured.path.json.JsonPath.from;
/**
* Created by mabo on 2018/6/7
* 商品区
*/
public class Item_FloorTest extends DuibaTestBase {
@Autowired
HomeService homeService;
@Autowired
FloorService floorService;
@Autowired
Authorization authorization;
@Autowired
DevSkinService devSkinService;
@Autowired
DevFloorBannerService devFloorBannerService;
@Autowired
DevFloorService devFloorService;
private String skinId=null;
private String floorId=null;
private DuibaLog logger = DuibaLog.getLogger();
@BeforeClass
public void beforeClass(){
try{
Map map = jdbc.findSimpleResult("select * from credits_dev.tb_credits_floor_skin where skin_name = ?","mabo楼层皮肤Item");
skinId = String.valueOf(map.get("id"));
map = jdbc.findSimpleResult("select * from credits_dev.tb_credits_floor_code WHERE floor_name= ?","maboItem");
floorId = String.valueOf(map.get("id"));
Response response = devSkinService.saveSkin(authorization.hdLoginmabo(),"18740","198");
response = floorService.deleteSkin(authorization.ssoLogin(),skinId,"1");
response = floorService.deleteFloor(authorization.ssoLogin(),floorId);
}catch(Exception e){
}
}
@Test
public void A_item创建楼层皮肤() throws Exception {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");//设置日期格式
logger.info(df.format(new Date()));
String type = "3";
String dataType = "0";
String name = "maboItem";
String skinWidth = "750";
String html = "\n" +
"<section class=\"floor-item a-fadeinT\">\n" +
"\t<div class=\"floor-item-header\">\n" +
"\t\t<div class=\"floor-item-title\"><span class=\"title-txt\">限量抢兑</span></div>\n" +
"\t\t<div class=\"floor-item-title1\"><span class=\"title-txt1\"></span></div>\n" +
" \n" +
"\t</div>\n" +
"\t<div id=\"J_itemList\" class=\"item-con\">\n" +
"\t\t{@each list as item}\n" +
"\t\t<a href=\"${item.link}\" db-log=\"${item.stInfo}\" class=\"item\">\n" +
"\t\t\t<div class=\"img-wrap\">\n" +
"\t\t\t\t{@if item.whiteImage}\n" +
"\t\t\t\t<img src=\"${item.whiteImage}\"> {@else}\n" +
"\t\t\t\t<img src=\"${item.image}\"> {@/if}\n" +
"\t\t\t</div>\n" +
"\t\t\t<div class=\"theme-color info-wrap\">\n" +
"\t\t\t\t<h3 class=\"item-title\">${item.title}</h3>\n" +
"\t\t\t\t<p>\n" +
" \t{@if item.salePrice}\n" +
"\t\t\t\t\t<span class=\"item-credits\">${item.credits} + ${item.salePrice}元</span>\n" +
" \t{@else}\n" +
" \t<span class=\"item-credits\">${item.credits}</span>\n" +
" \t{@/if}\n" +
"\t\t\t\t</p>\n" +
" \t<p class=\"original-price\">\n" +
" {@if !!item.tagText}\n" +
" <span>原价</span>\n" +
" <span class=\"corner\">${item.tagText}</span>\n" +
" {@/if}\n" +
" </p>\n" +
"\t\t\t</div>\n" +
"\t\t</a>\n" +
"\t\t{@/each}\n" +
"\t</div>\n" +
"\t{@if moreUrl}\n" +
"\t<a class=\"btn-more\" href=\"${moreUrl}\"><span class=\"more-txt\">全部商品</span><i></i></a>\n" +
"\t{@/if}\n" +
" <div class=\"tianchong\"></div>\n" +
"\t<!--<p class=\"no-more\">已经没有更多啦!</p>-->\n" +
"</section>";
String css = "\n" +
".floor-item {\n" +
" background-color: #FFFFFF;\n" +
"}\n" +
".floor-item .tianchong {\n" +
" width: 100%;\n" +
" height: 0.512rem;\n" +
" background: #F4F5F7;\n" +
"}\n" +
".floor-item .btn-more {\n" +
" display: block;\n" +
" text-align: center;\n" +
" margin-top: 0.21333333rem;\n" +
" height: 0.59733333rem;\n" +
" line-height: 0.59733333rem;\n" +
" padding-bottom: 1.28rem;\n" +
"}\n" +
".floor-item .btn-more .more-txt {\n" +
" font-size: 0.512rem;\n" +
" vertical-align: middle;\n" +
" color: #333;\n" +
" margin-bottom: 0.32rem;\n" +
" height: 0.59733333rem;\n" +
" line-height: 0.59733333rem;\n" +
" text-align: center;\n" +
" color: #767A81;\n" +
" margin-top: 0.04266667rem;\n" +
" font-family: PingFangSC-Regular;\n" +
"}\n" +
".floor-item .btn-more i {\n" +
" display: inline-block;\n" +
" margin-left: 0.17066667rem;\n" +
" vertical-align: middle;\n" +
" line-height: 0.59733333rem;\n" +
" width: 0.512rem;\n" +
" height: 0.512rem;\n" +
" background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkBAMAAAATLoWrAAAAJFBMVEUAAAC6vL7///+5vL+70dG5vL66vMC6vL68vMC/v7++vsS5u76JD15jAAAAC3RSTlMAwQOkCqGBcj0oJ/6LF+EAAABCSURBVCjPY6A6YElXQBdi3G2ELrR692YFDFUYylikMZU5Dh5lWxkwlTXgFUJoxDQe0xF0VkQwOmZjizQjbAmAJgAAqKUu42A7d8UAAAAASUVORK5CYII=');\n" +
" background-size: 100% 100%;\n" +
"}\n" +
".floor-item .floor-item-header {\n" +
" position: relative;\n" +
"}\n" +
".floor-item .floor-item-header .floor-item-title1 {\n" +
" margin-top: 0.42666667rem;\n" +
" height: 0.64rem;\n" +
" margin-bottom: 0.32rem;\n" +
" text-align: center;\n" +
" margin-bottom: 0.85333333rem;\n" +
"}\n" +
".floor-item .floor-item-header .floor-item-title1 .title-txt1 {\n" +
" font-family: PingFangSC-Regular;\n" +
" font-size: 0.512rem;\n" +
" color: #B9BBBE;\n" +
" line-height: 0.64rem;\n" +
"}\n" +
".floor-item .floor-item-header .floor-item-title {\n" +
" height: 1.06666667rem;\n" +
" margin-top: 0.42666667rem;\n" +
" padding-top: 0.64rem;\n" +
" padding-bottom: 0.64rem;\n" +
" text-align: center;\n" +
"}\n" +
".floor-item .floor-item-header .floor-item-title i {\n" +
" display: inline-block;\n" +
" vertical-align: middle;\n" +
" margin-right: 0.14933333rem;\n" +
" width: 0.64rem;\n" +
" height: 0.64rem;\n" +
" background: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAeCAMAAAAM7l6QAAAAeFBMVEUAAADvK1HvMF/vLFDxK1LuLFHwLFHvK1HvLFHvK1HvK1DuLFDuLFHwLFHvLFDuLFDuLFHwLVPxLFLyLVH2LlL/M2b/M2bvLFHzLlTyL1HvK1HvK1DwLFHuLVLxK1DvK1DvK1DvLFLzM1XuLFHwLFLvLFHvK1HuK1DpUsVBAAAAJ3RSTlMA+RCuPLl37urajNiphfv0xlBHORwKBcAoJePPZlpXy55NFJeGbi9ZcP/rAAABI0lEQVQoz4WT2XKDMAxFvWKbnbAGSNKki/7/DwsCFdzMgF5s5qDra0lmW4giibWOk0Kw9yglBx7leTQtsvwHKwk2VM28bVRoQVZ7ejFZUG+fdZCZy/Z5S93VV+tcevvLTds3N6JN1/zKuI1u3JnlfJmRsq+fSbwRBPNy74HCjsgDKOdkO3t+cdgFytV2Shc8nPcK9nHH9JALVoBCbYAwQdQ+ARZ1BQVLONZqBNAd4u8AFjes4QmLo9UHgBo5wMern4QW81HMdI67rwmbp1DXboDpnwXnmvAnCjv9wFUSJvHYc96SOFnTHh7IGl3s4eGeLkZlcR42VBYqqgUvqKjUEu5jsbaEGjr4Z1NDaRx+9jxSNA5Hw3Q8iseDfPoMzh/RyRP8BeV2K8kLQfm+AAAAAElFTkSuQmCC');\n" +
" background-size: 100% 100%;\n" +
"}\n" +
".floor-item .floor-item-header .floor-item-title .title-txt {\n" +
" font-size: 0.68266667rem;\n" +
" color: #333;\n" +
" font-weight: 600;\n" +
" line-height: 0.64rem;\n" +
" font-family: PingFangSC-Medium;\n" +
"}\n" +
".floor-item .floor-item-header .floor-item-title .title-txt-y {\n" +
" font-weight: normal;\n" +
" font-size: 0.68266667rem;\n" +
" color: #ff2f2f;\n" +
"}\n" +
".floor-item .item-con {\n" +
" width: 100%;\n" +
" height: 18rem;\n" +
" overflow: hidden;\n" +
" *zoom: 1;\n" +
"}\n" +
".floor-item .item-con > .item {\n" +
" float: left;\n" +
" width: 6.656rem;\n" +
" position: relative;\n" +
" background: #fff;\n" +
" margin-left: 0.85333333rem;\n" +
" margin-bottom: 0.42666667rem;\n" +
" overflow: hidden;\n" +
" height: 8.8rem;\n" +
"}\n" +
".floor-item .item-con > .item:nth-child(2n) {\n" +
" margin-right: 0.85333333rem;\n" +
"}\n" +
".floor-item .item-con .img-wrap {\n" +
" width: 6.656rem;\n" +
" padding: 0;\n" +
" position: relative;\n" +
"}\n" +
".floor-item .item-con .img-wrap img {\n" +
" width: 100%;\n" +
"}\n" +
".floor-item .item-con .img-wrap .corner {\n" +
" position: absolute;\n" +
" bottom: 0.21333333rem;\n" +
" left: 0.46933333rem;\n" +
" font-size: 0.55466667rem;\n" +
" color: #fff;\n" +
" padding: 0 0.17066667rem;\n" +
" height: 0.85333333rem;\n" +
" line-height: 0.85333333rem;\n" +
" text-align: center;\n" +
" vertical-align: top;\n" +
" -webkit-transform: scale(0.9);\n" +
" transform: scale(0.9);\n" +
" -webkit-transform-origin: 0 0;\n" +
" transform-origin: 0 0;\n" +
" display: inline-block;\n" +
" background-color: #ff2f2f;\n" +
"}\n" +
".floor-item .item-con .info-wrap {\n" +
" min-height: 3.84rem;\n" +
"}\n" +
".floor-item .item-con .info-wrap p {\n" +
" line-height: 0.68266667rem;\n" +
"}\n" +
".floor-item .item-con .info-wrap p .item-credits {\n" +
" font-size: 0.55466667rem;\n" +
" position: relative;\n" +
" display: inline-block;\n" +
" vertical-align: top;\n" +
" color: #191D21;\n" +
" line-height: 0.85333333rem;\n" +
" font-family: DIN-Medium;\n" +
"}\n" +
".floor-item .item-con .info-wrap p .mb12 {\n" +
" display: inline-block;\n" +
" background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACQAAAAkCAYAAADhAJiYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAFFmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDAgNzkuMTYwNDUxLCAyMDE3LzA1LzA2LTAxOjA4OjIxICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ0MgKE1hY2ludG9zaCkiIHhtcDpDcmVhdGVEYXRlPSIyMDE3LTEyLTA1VDE2OjQ3OjMyKzA4OjAwIiB4bXA6TW9kaWZ5RGF0ZT0iMjAxNy0xMi0wNVQxNjo0ODoxMSswODowMCIgeG1wOk1ldGFkYXRhRGF0ZT0iMjAxNy0xMi0wNVQxNjo0ODoxMSswODowMCIgZGM6Zm9ybWF0PSJpbWFnZS9wbmciIHBob3Rvc2hvcDpDb2xvck1vZGU9IjMiIHBob3Rvc2hvcDpJQ0NQcm9maWxlPSJzUkdCIElFQzYxOTY2LTIuMSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDplZGVjNjFlNS1iYmNiLTQyNmYtODNiZC03M2NkZGY5YzdhNzMiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6ZWRlYzYxZTUtYmJjYi00MjZmLTgzYmQtNzNjZGRmOWM3YTczIiB4bXBNTTpPcmlnaW5hbERvY3VtZW50SUQ9InhtcC5kaWQ6ZWRlYzYxZTUtYmJjYi00MjZmLTgzYmQtNzNjZGRmOWM3YTczIj4gPHhtcE1NOkhpc3Rvcnk+IDxyZGY6U2VxPiA8cmRmOmxpIHN0RXZ0OmFjdGlvbj0iY3JlYXRlZCIgc3RFdnQ6aW5zdGFuY2VJRD0ieG1wLmlpZDplZGVjNjFlNS1iYmNiLTQyNmYtODNiZC03M2NkZGY5YzdhNzMiIHN0RXZ0OndoZW49IjIwMTctMTItMDVUMTY6NDc6MzIrMDg6MDAiIHN0RXZ0OnNvZnR3YXJlQWdlbnQ9IkFkb2JlIFBob3Rvc2hvcCBDQyAoTWFjaW50b3NoKSIvPiA8L3JkZjpTZXE+IDwveG1wTU06SGlzdG9yeT4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4nF6QLAAADuklEQVRYhe2Yy48UVRSHv3OrunvaGSfIYoLzSJNpF8ToAjUuJII0IyYalUjcmPj6I1i4B1mw8k8woBsXGhcYTVB7dGGc4MaoMSZGAz2DBHGAHpiarrrHRfV0Pbqqq5jRwIKTdLrr1K3f+eqec18tqsrdZOZOA6TtHlCRuWmHiBQ+pJcWHsW3L4M+A8ygMo3XG0N0FcxV4DwOH9JofyYiI4s0XcMy5BgBpJ3Wi1h9V+GRoZteb8glmCs4eordi6fywLYEpJ3Dc1j/jKL7c2kzgCJN/oTaq9I8t1QEVFhD2nl2H+ovjYQBWO+B54NvhzWUBrrR1t8PvF4Ub2QPaaf1FJYvFa0VCbGyGv12DNTc8BPTEyMBmLdlvn06gi2ZMl1uNbB8r6pThTBpoE0zBiaq4DqRPnILqR7YTF/5lFn9oDRMroaF6+uw4Q9citbB+0hVM0dPJpBeWDiqyr5twcRtbSNRW6o0+GP/sdJAiD1RFMP+o/gd0C7Q73XbFfzLBns99fKqsOYlfYEcy+qloRpi5dBjGuj5fBK49a1CD+iXhpkArnWxN6NmZhxqeyzEp5/xKtQqUXDXvECjfTYuP9xDVo7kwgAbPyn4/SctEIC9Abbbv475vF9S8p6fvA54La2fkTL7dC6NQnAl/DYPQL0luLuje+6UUn8ywNkJSAhFPAG+hSAxTz1eAkhmcnm8/rTiQLUZpt99UAZTjbsrjF6ZtiAgDmgvVSYJILuzBBDTeUAiYX2KgMZ0tQ85uN5sC8kaglAgarijGEgJ8oD+G4v1mMjQOjMMJLr8//LEgVhN385K2cVCUSUq1oBw1MUtAE37Nq0SC6n8XQLIfJULIoAFDcDs6Lvuj4H1X95M6sCX2M5UnFQPyXfFQA6f5AJVoTIfDve41Q8K7owitahg608EVOYU3FgRV1Mb1IqeJmWZq71ebP2gqntzwbIsa7WPm2tgsh6LYzrSXJwtt9ob885twRSZCIyntlRGj2c2zd0PXWh9rujh0kHzekgEJmph/UQxfpXmN3vgdvZDtbE3RUqMuFHmGpgcS8PcwK2+kvdILpBMnb2EOC+JyNqWQO6rhjXjRCEE8cF9Sxrnfs6NW3Tq0M7CXjT4VJXZkRDXbobpcU0CIgbTBfOGPNT+OKG/pWPQ5ed34a2/P7KmRh2DjPxGRY7K3OKPQ9rbOiguLzyHtSczp4Ssg6KYv8CclObX7+VqbgdoILJy6GECjoA9CMwmjtLCVayzhNEzMr/4RaFWEdCdtrvu3497QEX2LxvhkdCpk54YAAAAAElFTkSuQmCC');\n" +
" width: 0.85333333rem;\n" +
" height: 0.85333333rem;\n" +
" background-size: 100% 100%;\n" +
"}\n" +
".floor-item .item-con .original-price {\n" +
" font-size: 0.5rem;\n" +
" line-height: 1rem;\n" +
" color: #666;\n" +
"}\n" +
".floor-item .item-con .original-price .corner {\n" +
" text-decoration:line-through;\n" +
"}\n" +
".floor-item .item-con .item-title {\n" +
" padding-top: 0.21333333rem;\n" +
" font-weight: 400;\n" +
" font-size: 0.59733333rem;\n" +
" line-height: 0.93866667rem;\n" +
" margin-bottom: 0.29866667rem;\n" +
" display: -webkit-box;\n" +
" -webkit-box-orient: vertical;\n" +
" -webkit-line-clamp: 2;\n" +
" overflow: hidden;\n" +
" font-family: PingFangSC-Medium;\n" +
" color: #191D21;\n" +
"}\n" +
".floor-item .item-con:before,\n" +
".floor-item .item-con:after {\n" +
" display: table;\n" +
" content: \"\";\n" +
"}\n" +
".floor-item .item-con:after {\n" +
" clear: both;\n" +
"}\n" +
".floor-item .no-more {\n" +
" margin-top: 0.55466667rem;\n" +
" text-align: center;\n" +
" font-size: 0.512rem;\n" +
" color: #999;\n" +
"}\n" +
".apple {\n" +
" width: 100% !important;\n" +
" height: 100% !important;\n" +
" margin-top: 0 !important;\n" +
" margin-bottom: 0 !important;\n" +
" border-radius: 0 !important;\n" +
" padding-top: 0.21333333rem !important;\n" +
" padding-bottom: 0.21333333rem !important;\n" +
" background: #F4F5F7 !important;\n" +
"}\n" +
".apple p {\n" +
" padding-top: 0;\n" +
" font-size: 0.46933333rem;\n" +
" color: #bbb;\n" +
" text-align: center;\n" +
"}\n" +
"body {\n" +
" background: #FFFFFF;\n" +
"}";
String js = "if(data && data.list && data.list.length) {\n" +
"\tyangzuo.extend(data,global);\n" +
" \tyangzuo.element(\"#renderRoot\").append(juicer(html, data));\n" +
"}";
//新建banner楼层
Response response = floorService.createFloor(authorization.ssoLogin(),type,dataType,name,html,css,js,skinWidth);
Map<String,Object> map = jdbc.findSimpleResult("select * from credits_dev.tb_credits_floor_code where floor_name=?",name);
floorId = String.valueOf(map.get("id"));
String nameSkin = "mabo楼层皮肤item";
String image = "//yun.dui88.com/images/201805/nlkmslg0t0.png";
// 验证码
String stoke="1";
// String floors = "[{\"id\":190,\"name\":\"maboTest\",\"type\":1,\"dataType\":0,\"needSyn\":false,\"syn\":false}]";
String ower = "0";
JSONObject json = new JSONObject();
json.put("id",map.get("id"));
json.put("name",name);
json.put("type","3");
json.put("dataType",map.get("data_type"));
json.put("needSyn",false);
json.put("syn",false);
JSONArray jsonArray = new JSONArray();
jsonArray.add(json);
String floors = jsonArray.toJSONString();
//新建皮肤
response = floorService.insertSkin(authorization.ssoLogin(),nameSkin,image,stoke,floors,ower,skinWidth);
map = jdbc.findSimpleResult("select * from credits_dev.tb_credits_floor_skin where skin_name = ?",nameSkin);
skinId = String.valueOf(map.get("id"));
response = floorService.switchOpenState(authorization.ssoLogin(),skinId,"true");
}
@Test
public void B_item手机端() throws Exception {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");//设置日期格式
logger.info(df.format(new Date()));
Response response = devSkinService.saveSkin(authorization.hdLoginmabo(),"18740",skinId);
Thread.sleep(70000);
JsonPath jsonCfg = homeService.getCFG(2753);
Assert.assertEquals(jsonCfg.getList("").size(),1,"banner展示数量和配置不符");
String floorId = MatcherString.getString(jsonCfg.getList("").get(0).toString(),"floorId=(.*?),",1);
String dataType = MatcherString.getString(jsonCfg.getList("").get(0).toString(),"dataType=(.*?),",1);
String floorType = MatcherString.getString(jsonCfg.getList("").get(0).toString(),"floorType=(.*?),",1);
response = homeService.floor(authorization.dafuwengLogin(2753),floorType,dataType,"3",floorId);
String s = response.asString();
response = devFloorService.itemSelectedList("18740");
List<Map> listDev = response.jsonPath().getList("data",Map.class);
JsonPath jsonPath=from(s.substring(s.indexOf("{"),s.length()-1));
List<Map> list = jsonPath.getList("list",Map.class);
Assert.assertEquals(list.size(),listDev.size(),"开发者配置和手机端展示数量不符");
}
@Test
public void C_item删除楼层皮肤() throws Exception {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");//设置日期格式
logger.info(df.format(new Date()));
Response response = devSkinService.saveSkin(authorization.hdLoginmabo(),"18740","198");
response.prettyPrint();
response = floorService.deleteSkin(authorization.ssoLogin(),skinId,"1");
response.prettyPrint();
response = floorService.deleteFloor(authorization.ssoLogin(),floorId);
response.prettyPrint();
}
}
package http.cases.FloorTest;
import base.DuibaLog;
import base.DuibaTestBase;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import http.service.Authorization;
import http.service.Manager.FloorService;
import http.service.app.HomeService;
import http.service.hd.DevFloorBannerService;
import http.service.hd.DevSkinService;
import io.restassured.path.json.JsonPath;
import io.restassured.response.Response;
import org.springframework.beans.factory.annotation.Autowired;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import utils.MatcherString;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import static io.restassured.path.json.JsonPath.from;
import static utils.StringUtil.getMatcher;
/**
* Created by mabo on 2018/6/8
*/
public class Seckill_FloorTest extends DuibaTestBase {
@Autowired
HomeService homeService;
@Autowired
FloorService floorService;
@Autowired
Authorization authorization;
@Autowired
DevSkinService devSkinService;
@Autowired
DevFloorBannerService devFloorBannerService;
private String skinId=null;
private String floorId=null;
private DuibaLog logger = DuibaLog.getLogger();
@BeforeClass
public void beforeClass(){
try{
Map map = jdbc.findSimpleResult("select * from credits_dev.tb_credits_floor_skin where skin_name = ?","mabo楼层皮肤Sckill");
skinId = String.valueOf(map.get("id"));
map = jdbc.findSimpleResult("select * from credits_dev.tb_credits_floor_code WHERE floor_name= ?","maboSckill");
floorId = String.valueOf(map.get("id"));
Response response = devSkinService.saveSkin(authorization.hdLoginmabo(),"18740","198");
response = floorService.deleteSkin(authorization.ssoLogin(),skinId,"1");
response = floorService.deleteFloor(authorization.ssoLogin(),floorId);
}catch(Exception e){
}
}
//免单秒杀
@Test
public void A_Seckill创建楼层皮肤() throws Exception {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");//设置日期格式
logger.info(df.format(new Date()));
String type = "10";
String dataType = "0";
String name = "maboSckill";
String skinWidth = "640";
String html = "<section class=\"floor-seckill a-fadeinT\">\n" +
" <div class=\"rob-seconds-kill\">\n" +
" <div class=\"seconds-kill-header\">\n" +
" <i class=\"seconds-kill-icon\"></i>\n" +
" <ul class=\"seconds-kill-list\">\n" +
" {@each list as item,index}\n" +
" {@if item.startTime}\n" +
" <li>\n" +
" <a href=\"javascript:void(0)\" class=\"seconds-title\" data-index=\"${index}\">\n" +
" <span class=\"countdown-title\">${item.title}</span>\n" +
" </a>\n" +
" </li>\n" +
" {@/if}\n" +
" {@/each}\n" +
" </ul>\n" +
" </div>\n" +
" <div class=\"seconds-kill-content\">\n" +
" {@each list as item,index}\n" +
" <div class=\"seconds-kill-goods seconds-kill-goods-${index}\" style=\"display: none;\">\n" +
" <div class=\"swiper-wrapper\">\n" +
" {@if item.secondType === 'secondSubject'}\n" +
" {@each item.seckillList as subject}\n" +
" <div class=\"swiper-slide subject-slide\" db-log=\"${subject.stInfo}\">\n" +
" <a href=\"${subject.url}\">\n" +
" <img src=\"${subject.image}\" alt=\"\" class=\"subject-img\">\n" +
" </a>\n" +
" </div>\n" +
" {@/each}\n" +
" {@else if item.secondType === 'secondActivity'}\n" +
" {@each item.seckillList as activity}\n" +
" <div class=\"swiper-slide activity-slide\">\n" +
" <a href=\"${activity.url}\">\n" +
" <img src=\"${activity.image}\" alt=\"\" class=\"activity-img\">\n" +
" </a>\n" +
" <div class=\"activity-info\">\n" +
" <h3 class=\"activity-title\">\n" +
" <a href=\"${activity.url}\">${activity.title}</a>\n" +
" </h3>\n" +
" <p class=\"activity-credits\">${activity.credits + cCreditsUnitName}</p>\n" +
" <p class=\"j-seconds-btn-wrapper\">\n" +
" </p>\n" +
" </div>\n" +
" </div>\n" +
" {@/each}\n" +
" {@/if}\n" +
" </div>\n" +
" </div>\n" +
" {@/each}\n" +
" </div>\n" +
" </div>\n" +
"</section>";
String css = ".floor-seckill {\n" +
" margin-bottom: 0.05rem;\n" +
"}\n" +
".floor-seckill .rob-seconds-kill {\n" +
" overflow: hidden;\n" +
" background-color: #f1f1f1;\n" +
" border: solid #e6e6e6;\n" +
" border-width: 1px 0;\n" +
"}\n" +
".floor-seckill .seconds-kill-header {\n" +
" background-color: #fff;\n" +
" height: 0.33rem;\n" +
" padding: 0.04rem 0 0.08rem 0;\n" +
" overflow: hidden;\n" +
" position: relative;\n" +
"}\n" +
".floor-seckill .seconds-kill-list {\n" +
" position: relative;\n" +
" left: 0.45rem;\n" +
"}\n" +
".floor-seckill .seconds-kill-list li {\n" +
" float: left;\n" +
" font-size: 0.12rem;\n" +
" line-height: 0.215rem;\n" +
" padding: 0 0.15rem;\n" +
" position: relative;\n" +
"}\n" +
".floor-seckill .seconds-kill-list li::after {\n" +
" content: '';\n" +
" position: absolute;\n" +
" right: 0;\n" +
" top: 0.03rem;\n" +
" height: 0.12rem;\n" +
" width: 0;\n" +
" border-left: 1px dotted #ccc;\n" +
"}\n" +
".floor-seckill .seconds-kill-list li:last-child {\n" +
" padding-right: 0;\n" +
"}\n" +
".floor-seckill .seconds-kill-list li:last-child::after {\n" +
" display: none;\n" +
"}\n" +
".floor-seckill .seconds-kill-list li:first-child .seconds-title {\n" +
" padding-left: 0.2rem;\n" +
"}\n" +
".floor-seckill .seconds-kill-list .seconds-title {\n" +
" color: #333;\n" +
" display: block;\n" +
" padding: 0 0.11rem;\n" +
"}\n" +
".floor-seckill .seconds-kill-list .seconds-title.active {\n" +
" background-color: #efefef;\n" +
" border-radius: 0.11rem;\n" +
" padding: 0 0.1rem;\n" +
"}\n" +
".floor-seckill .seconds-kill-list .seconds-title.active .countdown-title {\n" +
" color: #333;\n" +
" font-weight: bold;\n" +
"}\n" +
".floor-seckill .seconds-kill-list .countdown {\n" +
" display: inline-block;\n" +
" font-size: 0.1rem;\n" +
" color: #666;\n" +
"}\n" +
".floor-seckill .seconds-kill-list .countdown-item {\n" +
" display: inline-block;\n" +
" width: 0.15rem;\n" +
" height: 0.15rem;\n" +
" line-height: 0.15rem;\n" +
" margin-top: 0.015rem;\n" +
" margin-left: 0.02rem;\n" +
" border: 1px solid #9e9e9e;\n" +
" background-color: #fff;\n" +
" text-align: center;\n" +
" color: #333;\n" +
"}\n" +
".floor-seckill .seconds-kill-list .split {\n" +
" margin-left: 0.02rem;\n" +
"}\n" +
".floor-seckill .seconds-kill-icon {\n" +
" position: absolute;\n" +
" left: 0;\n" +
" width: 0.73rem;\n" +
" height: 0.215rem;\n" +
" background: url(data:image/png;base64,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) no-repeat;\n" +
" background-size: 0.73rem 0.215rem;\n" +
" z-index: 2;\n" +
"}\n" +
".floor-seckill .seconds-kill-content {\n" +
" background-color: #fff;\n" +
" padding: 0 0.1rem 0.08rem 0.1rem;\n" +
"}\n" +
".floor-seckill .seconds-kill-content .activity-info {\n" +
" margin-left: 1.225rem;\n" +
"}\n" +
".floor-seckill .seconds-kill-content .activity-img {\n" +
" float: left;\n" +
" height: auto;\n" +
" width: 1.125rem;\n" +
"}\n" +
".floor-seckill .seconds-kill-content .subject-img {\n" +
" float: left;\n" +
" width: auto;\n" +
" height: 0.7rem;\n" +
"}\n" +
".floor-seckill .seconds-kill-content .activity-title {\n" +
" color: #444;\n" +
" font-size: 0.14rem;\n" +
" line-height: 1.2;\n" +
" overflow: hidden;\n" +
" text-overflow: ellipsis;\n" +
" white-space: nowrap;\n" +
" margin-top: 0.02rem;\n" +
"}\n" +
".floor-seckill .seconds-kill-content .activity-credits {\n" +
" color: #ff3e3e;\n" +
" font-size: 0.12rem;\n" +
" margin: 0.04rem 0 0.1rem 0;\n" +
"}\n" +
".floor-seckill .seconds-kill-goods .swiper-slide {\n" +
" height: 0.7rem;\n" +
"}\n" +
".floor-seckill .seconds-kill-goods .swiper-slide.activity-slide {\n" +
" overflow: hidden;\n" +
" width: 2.3rem;\n" +
" white-space: nowrap;\n" +
"}\n" +
".floor-seckill .seconds-kill-goods .swiper-slide.subject-slide {\n" +
" width: auto;\n" +
"}\n" +
".floor-seckill .activity-btn {\n" +
" line-height: 0.22rem;\n" +
" border-radius: 0.125rem;\n" +
" font-size: 0.12rem;\n" +
" display: inline-block;\n" +
" padding: 0 0.125rem;\n" +
"}\n" +
".floor-seckill .activity-btn.btn-red {\n" +
" background-color: #ff3e3e;\n" +
" border: 1px solid #ff3e3e;\n" +
" color: #fff;\n" +
"}\n" +
".floor-seckill .activity-btn.btn-border-red {\n" +
" border: 1px solid #ff3e3e;\n" +
" background-color: #fff;\n" +
" color: #ff3e3e;\n" +
"}\n" +
".floor-seckill .activity-btn.btn-gray {\n" +
" border: 1px solid #ccc;\n" +
" background-color: #ccc;\n" +
" color: #fff;\n" +
"}";
String js = ";(function(window){\n" +
" 'use strict';\n" +
"\n" +
" var defaultConfig = {\n" +
" // bengin-time && end-time\n" +
" gmt_begin: null,\n" +
" gmt_end: null,\n" +
"\n" +
" // default countdown container element\n" +
" selector: '.countdown',\n" +
" // messages\n" +
" msgPattern :'剩{days}天{hours}时{minutes}分{seconds}秒',\n" +
" msgBefore: '距开团仅剩{beginremain}分钟',\n" +
" msgAfter: '特卖已经结束',\n" +
" msgStartPatternBegin: '剩',\n" +
" msgPrePatternBegin: '剩',\n" +
" msgDayPattern : '{days}天',\n" +
" msgHourPattern : '{hours}时',\n" +
" msgMinPattern : '{minutes}分',\n" +
" msgSecondPattern : '{seconds}秒',\n" +
" msgStartPatternEnd: '',\n" +
" msgPrePatternEnd: '',\n" +
" leadingZeros: false,\n" +
" currentTime: 0,\n" +
" patternType:{//为1时使用原来的msgPattern或msgBefore,为2时使用pattern拼接\n" +
" pre:1,\n" +
" start:1\n" +
" }, \n" +
" hidePattern:[],//可传参数如'{days}',与patternType为2时配合使用,表示取值为0时,要省略的pattern\n" +
" finishCallback: function() {},//倒计时已结束\n" +
" startCallback :function() {},//进行时的倒计时运行前的回调\n" +
" preCallback :function(){}//未开始的倒计时运行前的回调\n" +
" };\n" +
"\n" +
" var Countdown = function(conf) {\n" +
" var cf = $.extend({}, defaultConfig, conf),\n" +
" started = false,\n" +
" interval = 1000,\n" +
" container = $(cf.selector),\n" +
" patterns = [{\n" +
" pattern: '{years}',\n" +
" secs: 31536000\n" +
" }, {\n" +
" pattern: '{months}',\n" +
" secs: 2628000\n" +
" }, {\n" +
" pattern: '{weeks}',\n" +
" secs: 604800\n" +
" }, {\n" +
" pattern: '{days}',\n" +
" secs: 86400\n" +
" }, {\n" +
" pattern: '{hours}',\n" +
" secs: 3600\n" +
" }, {\n" +
" pattern: '{minutes}',\n" +
" secs: 60\n" +
" }, {\n" +
" pattern: '{seconds}',\n" +
" secs: 1\n" +
" }, {\n" +
" pattern: '{secfixedtoten}',\n" +
" secs: 1\n" +
" }, {\n" +
" pattern: '{secfixedtohun}',\n" +
" secs: 1\n" +
" }, {\n" +
" pattern: '{secfixedtothus}',\n" +
" secs: 1\n" +
" }\n" +
"\n" +
" ],\n" +
" patternMap={\n" +
" '{years}':cf.msgYearPattern||'',\n" +
" '{months}':cf.msgMonPattern||'',\n" +
" '{weeks}':cf.msgWeekPattern||'',\n" +
" '{days}':cf.msgDayPattern||'',\n" +
" '{hours}':cf.msgHourPattern||'',\n" +
" '{minutes}':cf.msgMinPattern||'',\n" +
" '{seconds}':cf.msgSecondPattern||'',\n" +
" '{secfixedtoten}':cf.msgSecondFixtotenPattern||'',\n" +
" '{secfixedtohun}':cf.msgSecondFixtohunPattern||'',\n" +
" '{secfixedtothus}':cf.msgSecondFixtothusPattern||''\n" +
" },\n" +
" output,\n" +
" timer,\n" +
"\n" +
"\n" +
" defineInterval = function() {\n" +
" for (var e = patterns.length; e > 0; e--) {\n" +
" var currentPattern = patterns[e - 1];\n" +
"\n" +
" if (cf.msgPattern.indexOf(currentPattern.pattern) !== -1) {\n" +
" interval = currentPattern.secs * 1000;\n" +
" return;\n" +
" }\n" +
" }\n" +
" },\n" +
"\n" +
" outOfInterval = function(beginremain,type) {\n" +
" var tpl = beginremain > 0 ? cf.msgBefore : cf.msgAfter;\n" +
" var minTimer;\n" +
" if (beginremain > 0) {\n" +
" if(type==1){\n" +
" minTimer = setInterval(function() {\n" +
"\n" +
" beginremain -= 1;\n" +
" var number = Math.floor(beginremain / 60);\n" +
" var displayed = cf.leadingZeros && number <= 9 ? \"0\" + number : number;\n" +
" if (beginremain < 0) {\n" +
" window.clearInterval(minTimer);\n" +
" } \n" +
" output = tpl.replace('{beginremain}', displayed);\n" +
"\n" +
" if (container.html() != output) {\n" +
" container.html(output);\n" +
" }\n" +
"\n" +
" }, 1000); \n" +
" }\n" +
"\n" +
"\n" +
" } else {\n" +
" cf.finishCallback(container,output);\n" +
" }\n" +
" },\n" +
"\n" +
" display = function(sec,patternType,isStart,pattern) { \n" +
"\n" +
" var output= (pattern||cf.msgPattern);//默认模板\n" +
"\n" +
" if(isStart){//如果已经开始\n" +
" patternType=patternType.start;\n" +
" }else{//未开始\n" +
" patternType=patternType.pre;\n" +
" }\n" +
" if(patternType==2){//如果要省略0,使用拼接式的模板\n" +
" output=isStart?cf.msgStartPatternBegin:cf.msgPrePatternBegin;\n" +
" }\n" +
" \n" +
" for (var i = 0, len = patterns.length; i < len; i++) {\n" +
" var currentPattern = patterns[i];\n" +
" //获取当前模板,如果patternType不为2,用默认模板\n" +
" var currentTpl=patternType==2?(patternMap[currentPattern.pattern]||''):output;\n" +
" var currentPatternSecs = currentPattern.secs * 10;\n" +
" if (currentTpl.indexOf(currentPattern.pattern) !== -1) {\n" +
" if (currentPattern.pattern === '{secfixedtoten}') {\n" +
" var number = new Number(sec / currentPatternSecs).toFixed(1);\n" +
"\n" +
" } else if (currentPattern.pattern === '{secfixedtohun}') {\n" +
" var number = new Number(sec / currentPatternSecs).toFixed(2);\n" +
"\n" +
" } else if (currentPattern.pattern === '{secfixedtothus}') {\n" +
" var number = new Number(sec / currentPatternSecs).toFixed(3);\n" +
"\n" +
" } else {\n" +
" var number = Math.floor(sec / currentPatternSecs);\n" +
"\n" +
" }\n" +
" var displayed = cf.leadingZeros && number <= 9 ? \"0\" + number : number;\n" +
" sec -= number * currentPatternSecs;\n" +
" // 省略值为0的pattern\n" +
" if(patternType==2){\n" +
" if(cf.hidePattern && Number(displayed)==0 && cf.hidePattern.indexOf(currentPattern.pattern)!==-1){\n" +
" output+='';\n" +
" }else{\n" +
" output+=currentTpl.replace(currentPattern.pattern, displayed);\n" +
" } \n" +
" }else{\n" +
" output = output.replace(currentPattern.pattern, displayed);\n" +
" }\n" +
"\n" +
" }\n" +
" }\n" +
" if(patternType==2){\n" +
" output+= isStart?cf.msgStartPatternEnd:cf.msgPrePatternEnd;\n" +
" }\n" +
" container.html(output);\n" +
" },\n" +
"\n" +
" run = function() {\n" +
" //var sec = Math.abs(cf.gmt_end - (+new Date / 1000)),\n" +
" var newDate = cf.currentTime * 1000 || new Date;\n" +
" var sec = Math.abs(cf.gmt_end * 10 - (+newDate / 100));\n" +
" var beginremain = cf.gmt_begin - (+newDate / 1000);\n" +
" //msgBefore的类型,它可以是默认的分钟倒计时,也可以是天时分秒倒计时\n" +
" var type=cf.msgBefore.indexOf('{beginremain}')!==-1?1:2;\n" +
" if (isStarted(cf.gmt_begin)) {\n" +
" started = true;\n" +
" cf.startCallback(container);\n" +
" display(sec,cf.patternType,started);\n" +
" } else if (beginremain > 0) {\n" +
" cf.preCallback(container);\n" +
"\n" +
" if(type==2 || cf.patternType.pre==2){\n" +
" sec=beginremain*10;\n" +
" display(sec,cf.patternType,started,cf.msgBefore);\n" +
" }else{\n" +
" outOfInterval(beginremain,type);\n" +
" }\n" +
" \n" +
" } else {\n" +
" outOfInterval();\n" +
" }\n" +
"\n" +
" // Vanilla JS alternative to $.proxy\n" +
" timer = window.setInterval(function() {\n" +
" sec--;\n" +
" \n" +
" if (isStarted(cf.gmt_begin) && !isOver(cf.gmt_end)) {\n" +
" if (!started) {\n" +
" sec=Math.abs(cf.gmt_end * 10 - (+newDate / 100));\n" +
" started = true;\n" +
" cf.startCallback(container);\n" +
" }\n" +
" display(sec,cf.patternType,started);\n" +
" \n" +
" }else if(sec>0){\n" +
" if(type==2 || cf.patternType.pre==2){\n" +
" display(sec,cf.patternType,started,cf.msgBefore);\n" +
" }\n" +
" }else if(sec <= 0){// Time over\n" +
" window.clearInterval(timer);\n" +
" outOfInterval(); \n" +
" }\n" +
" }, interval / 10);\n" +
" },\n" +
"\n" +
" init = function() {\n" +
" defineInterval();\n" +
" // Already over\n" +
" if (isOver(cf.gmt_end)) {\n" +
" return outOfInterval();\n" +
" }\n" +
"\n" +
" run();\n" +
" };\n" +
"\n" +
" init();\n" +
"\n" +
" return output;\n" +
" };\n" +
"\n" +
" function isStarted(startTime) {\n" +
" return +new Date() / 1000 >= startTime;\n" +
" }\n" +
"\n" +
" function isOver(endTime) {\n" +
" return +new Date() / 1000 >= endTime;\n" +
" }\n" +
" window.Countdown = Countdown;\n" +
"})(window);\n" +
"\n" +
"\n" +
"// 秒杀\n" +
"var robSecondsKillWrap = $('.rob-seconds-kill-wrap');\n" +
"var robSecondsKillTemplate = $('#j-seconds-kill');\n" +
"var robCountdownTemplate = $('#j-count-down');\n" +
"var robSecondsKillBtnTemplate = $('#j-seconds-kill-btn');\n" +
"var countdown = Countdown;\n" +
"\n" +
"var sendApi = function(url, data, done, noDialog) {\n" +
"\t$.ajax({\n" +
"\t\turl: url,\n" +
"\t\ttype: 'POST',\n" +
"\t\tdataType: 'json',\n" +
"\t\tdata: data,\n" +
"\t\tsuccess: done,\n" +
"\t\tnoDialog: noDialog,\n" +
"\t\terror: function(e) {\n" +
"\t\t\tconsole.log(e.message || '数据异常,请稍后重试');\n" +
"\t\t},\n" +
"\t\tcomplete: function(e) {\n" +
"\t\t\t// do sth\n" +
"\t\t}\n" +
"\t});\n" +
"};\n" +
"\n" +
"var robSecondsKill = {\n" +
"\t list: null,\n" +
"\t swiper: null,\n" +
"\t /**\n" +
"\t * 初始化秒杀\n" +
"\t *\n" +
"\t * @param {Number} index 索引\n" +
"\t */\n" +
"\t initSecondsKill: function(index) {\n" +
"\t\t var titles = $('.seconds-title');\n" +
"\t\t var currTitle = $(titles[+index]);\n" +
"\t\t var contents = $('.seconds-kill-goods');\n" +
"\t\t var currContent = $(contents[+index]);\n" +
"\t\t var startTime = this.list[+index] && this.list[+index].startTime;\n" +
"\t\t var startCountdown = parseInt(startTime / 1000, 10);\n" +
"\t\t \n" +
"\n" +
"\t\t // 只有一个秒杀区间时,结束时间为24:00\n" +
"\t\t // 有两个秒杀区间时,第一个秒杀结束时间为第二个秒杀开始时间,第二个秒杀结束时间为24:00\n" +
"\t\t var endCountdown = startCountdown;\n" +
"\t\t if (this.list.length === 2 && +index === 0) {\n" +
"\t\t\t endCountdown = parseInt(this.list[+index + 1].startTime / 1000, 10);\n" +
"\t\t }\n" +
"\n" +
"\t\t // 重置倒计时\n" +
"\t\t titles.removeClass('active');\n" +
"\t\t currTitle.addClass('active');\n" +
"\t\t titles.find('.countdown').remove();\n" +
"\t\t contents.hide();\n" +
"\t\t currContent.show();\n" +
"\n" +
"\t\t this.swiper && this.swiper.destroy();\n" +
"\t\t this.swiper = new Swiper('.seconds-kill-goods-' + index, {\n" +
"\t\t\t slidesPerView: 'auto',\n" +
"\t\t\t spaceBetween: 10,\n" +
"\t\t\t freeMode: true\n" +
"\t\t });\n" +
"\n" +
"\t\t var countdownTpl = '<div class=\"countdown\"></div>';\n" +
"\t\t var countdownHtml = juicer(countdownTpl, {});\n" +
"\n" +
"\t\t var _this = this;\n" +
"\n" +
"\t\t currTitle.append(countdownHtml);\n" +
"\t\t countdown({\n" +
"\t\t\t selector: $('.countdown', currTitle),\n" +
"\t\t\t leadingZeros: true,\n" +
"\t\t\t gmt_begin: startCountdown,\n" +
"\t\t\t gmt_end: endCountdown,\n" +
"\t\t\t patternType: {\n" +
"\t\t\t\t start: 2,\n" +
"\t\t\t\t pre: 2\n" +
"\t\t\t },\n" +
"\t\t\t msgPrePatternBegin: '距开始',\n" +
"\t\t\t msgStartPatternBegin: '距结束',\n" +
"\t\t\t msgDayPattern: '',\n" +
"\t\t\t msgHourPattern: '<span class=\"countdown-item\">{hours}</span><span class=\"split\">:</span>',\n" +
"\t\t\t msgMinPattern: '<span class=\"countdown-item\">{minutes}</span><span class=\"split\">:</span>',\n" +
"\t\t\t msgSecondPattern: '<span class=\"countdown-item\">{seconds}</span>'\n" +
" });\n" +
"\n" +
" this.checkLogin(this, index);\n" +
" },\n" +
"\n" +
" /**\n" +
" * 检查登录\n" +
" *\n" +
" * @param {Object} _this 传入的this对象\n" +
" * @param {Number} index 当前index值\n" +
" */\n" +
" checkLogin: function(_this, index) {\n" +
" // 如果秒杀类型为秒杀专题则不检查登录和按钮状态并检查埋点\n" +
" if (_this.list[+index].secondType === 'secondSubject') {\n" +
" if(!_this.list[+index].hasShowLog) {\n" +
" _this.list[index].hasShowLog = true;\n" +
" setTimeout(function() {\n" +
" window.DB && window.DB.statistics && window.DB.statistics.initLog();\n" +
" }, 200);\n" +
" }\n" +
" } else {\n" +
" // 监听请先登录按钮事件\n" +
" if (global.uid === 'not_login') {\n" +
" $('.j-seconds-btn-wrapper').html('<a href=\"javascript:void(0)\" class=\"activity-btn btn-border-red j-login-btn\" db-log=\"${stInfo}\">请先登录</a>')\n" +
" $(document).off('click', '.j-login-btn');\n" +
" $(document).on('click', '.j-login-btn', function(e) {\n" +
" e.stopPropagation();\n" +
" // 执行第三方APP登录\n" +
" window.requirelogin();\n" +
" return false;\n" +
" });\n" +
" } else {\n" +
" // 获取并更新按钮状态\n" +
" _this.renderBtnStatus(+index, _this.getActivityIds(_this.list[+index].seckillList));\n" +
" }\n" +
" }\n" +
" },\n" +
"\n" +
"\n" +
"\t /**\n" +
"\t * 获取秒杀按钮状态,并更新\n" +
"\t *\n" +
"\t * @param {String} ids 需要查询的id\n" +
"\t */\n" +
"\t renderBtnStatus: function(index, ids) {\n" +
"\t\t var _this = this;\n" +
"\t\t sendApi('/seckill/getSeckillBtn', {\n" +
"\t\t\t strSeckillIds: ids,\n" +
"\t\t\t firstTime: this.list[+index].startTime\n" +
"\t\t }, function(resp) {\n" +
"\t\t\t var goodsWrap = $('.seconds-kill-goods-' + index);\n" +
"\t\t\t var btnWrap = $('.j-seconds-btn-wrapper', goodsWrap);\n" +
"\t\t\t var btnTpl = '{@if buttonType === 1}'+\n" +
"\t\t\t\t\t\t\t'<a href=\"${creditsUrl}\" class=\"activity-btn btn-border-red\" db-log=\"${stInfo}\">赚'+global.cCreditsUnitName+'</a>'+\n" +
"\t\t\t\t\t\t'{@else if buttonType === 2}'+\n" +
"\t\t\t\t\t\t\t'<a href=\"javascript:void(0)\" class=\"activity-btn btn-gray\" db-log=\"${stInfo}\">'+global.cCreditsUnitName+'不足</a>'+\n" +
"\t\t\t\t\t\t'{@else if buttonType === 3}'+\n" +
"\t\t\t\t\t\t\t'<a href=\"${buttonLink}\" class=\"activity-btn btn-border-red\" db-log=\"${stInfo}\">即将开始</a>'+\n" +
"\t\t\t\t\t\t'{@else if buttonType === 4}'+\n" +
"\t\t\t\t\t\t\t'<a href=\"${buttonLink}\" class=\"activity-btn btn-gray\" db-log=\"${stInfo}\">已抢完</a>'+\n" +
"\t\t\t\t\t\t'{@else if buttonType === 5}'+\n" +
"\t\t\t\t\t\t\t'<a href=\"${buttonLink}\" class=\"activity-btn btn-red\" db-log=\"${stInfo}\">立即抢</a>'+\n" +
"\t\t\t\t\t\t'{@/if}';\n" +
"\t\t\t var btns;\n" +
"\t\t\t var btnHtml;\n" +
"\t\t\t var btnData;\n" +
"\n" +
"\t\t\t if (resp && resp.success) {\n" +
"\t\t\t\t btns = resp.buts;\n" +
"\t\t\t\t // render\n" +
"\t\t\t\t for (var i = 0; i < btns.length; i++) {\n" +
"\t\t\t\t\t btnData = btns[i];\n" +
"\t\t\t\t\t btnData.creditsUrl = resp.creditsUrl;\n" +
"\t\t\t\t\t btnHtml = juicer(btnTpl, btns[i]);\n" +
"\n" +
"\t\t\t\t\t $(btnWrap[i]).html('');\n" +
"\t\t\t\t\t $(btnWrap[i]).append(btnHtml);\n" +
"\t\t\t\t }\n" +
"\t\t\t\t\n" +
"\t\t\t\t if (!_this.list[index].hasShowLog) {\n" +
"\t\t\t\t\t _this.list[index].hasShowLog = true;\n" +
"\t\t\t\t\t window.DB && window.DB.statistics && window.DB.statistics.initLog();\n" +
"\t\t\t\t }\n" +
"\t\t\t }\n" +
"\t\t });\n" +
"\t },\n" +
"\n" +
"\t /**\n" +
"\t * 获取秒杀活动id,拼成类似`1,2`的格式返回\n" +
"\t */\n" +
"\t getActivityIds: function(activities) {\n" +
"\t\t activities = activities || [];\n" +
"\n" +
"\t\t var result = [];\n" +
"\t\t result = activities.map(function(item) {\n" +
"\t\t\t return {\n" +
"\t\t\t\t duibaActivityId: item.activityId,\n" +
"\t\t\t\t operatingActivityId: item.operatingActivityId\n" +
"\t\t\t };\n" +
"\t\t });\n" +
"\t\t return JSON.stringify(result);\n" +
"\t },\n" +
"\n" +
"\t /**\n" +
"\t * 获取秒杀列表\n" +
"\t */\n" +
"\t renderSecondsKillList: function() {\n" +
" var _this = this;\n" +
"\n" +
" if (data && data.length !== 0) {\n" +
"\n" +
" \n" +
"\n" +
" // 秒杀区间数据存下来,方便后面引用\n" +
" _this.list = data.list;\n" +
"\n" +
" // 计算秒杀开始时间标题\n" +
" for (var i = 0; i < _this.list.length; i++) {\n" +
" var date = new Date(_this.list[i].startTime);\n" +
" _this.list[i].title = date.getHours() + '点场';\n" +
" if (_this.list[i].seckillList.length === 0) {\n" +
" _this.list.splice(i, 1);\n" +
" }\n" +
" }\n" +
"\n" +
" if (_this.list.length === 0) {\n" +
" return;\n" +
" }\n" +
"\t\t\t\n" +
"\t\t\t\t // Webp图片优化\n" +
"\t\t\t\t if (typeof ''.ossimg === 'function') {\n" +
" \t\tfor (var i = 0;i < data.list.length;i++){\n" +
"\t\t\t\t\tdata.list[i].seckillList = data.list[i].seckillList.imgWebpArray('image');\n" +
"\t\t\t\t }\n" +
" \t\t\t}\n" +
"\n" +
" // 渲染秒杀区间列表\n" +
" $(\"#renderRoot\").append(juicer(html, yangzuo.extend(data, global)));\n" +
"\n" +
" // 每次切换秒杀区间重新初始化倒计时、按钮状态等\n" +
" $('.seconds-title').on('click', function() {\n" +
" var $target = $(this);\n" +
" _this.initSecondsKill($target.data('index'));\n" +
" });\n" +
"\n" +
" // 初始化第一个秒杀区间\n" +
" _this.initSecondsKill(0);\n" +
" } else {\n" +
" $('.rob-seconds-kill-wrap').hide();\n" +
" $('.top-bar').addClass('top-bar-border');\n" +
" }\n" +
" }\n" +
" };\n" +
"\n" +
"robSecondsKill.renderSecondsKillList();";
//新建banner楼层
Response response = floorService.createFloor(authorization.ssoLogin(),type,dataType,name,html,css,js,skinWidth);
Map<String,Object> map = jdbc.findSimpleResult("select * from credits_dev.tb_credits_floor_code where floor_name=?",name);
floorId = String.valueOf(map.get("id"));
String nameSkin = "mabo楼层皮肤sckill";
String image = "//yun.dui88.com/images/201805/nlkmslg0t0.png";
// 验证码
String stoke="1";
// String floors = "[{\"id\":190,\"name\":\"maboTest\",\"type\":1,\"dataType\":0,\"needSyn\":false,\"syn\":false}]";
String ower = "0";
JSONObject json = new JSONObject();
json.put("id",map.get("id"));
json.put("name",name);
json.put("type",type);
json.put("dataType",map.get("data_type"));
json.put("needSyn",false);
json.put("syn",false);
JSONArray jsonArray = new JSONArray();
jsonArray.add(json);
String floors = jsonArray.toJSONString();
//新建皮肤
response = floorService.insertSkin(authorization.ssoLogin(),nameSkin,image,stoke,floors,ower,skinWidth);
map = jdbc.findSimpleResult("select * from credits_dev.tb_credits_floor_skin where skin_name = ?",nameSkin);
skinId = String.valueOf(map.get("id"));
response = floorService.switchOpenState(authorization.ssoLogin(),skinId,"true");
}
@Test
public void B_Seckill手机端() throws Exception {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");//设置日期格式
logger.info(df.format(new Date()));
Response response = devSkinService.saveSkin(authorization.hdLoginmabo(),"18740",skinId);
Thread.sleep(60000);
JsonPath jsonCfg = homeService.getCFG(2753);
Assert.assertEquals(jsonCfg.getList("").size(),1,"banner展示数量和配置不符");
String floorId = MatcherString.getString(jsonCfg.getList("").get(0).toString(),"floorId=(.*?),",1);
String dataType = MatcherString.getString(jsonCfg.getList("").get(0).toString(),"dataType=(.*?),",1);
String floorType = MatcherString.getString(jsonCfg.getList("").get(0).toString(),"floorType=(.*?),",1);
response = homeService.floor(authorization.dafuwengLogin(2753),floorType,dataType,"3",floorId);
String s = response.asString();
String source = s.substring(s.indexOf("{"),s.length()-1);
JsonPath jsonPath=from(s.substring(s.indexOf("{"),s.length()-1));
String operatingActivityId = "\"operatingActivityId\":(.*?),";
operatingActivityId = getMatcher(operatingActivityId,source,1);
String activityId = "\"activityId\":(.*?),";
activityId = getMatcher(activityId,source,1);
String image = "\"image\":\"(.*?)\",";
image = getMatcher(image,source,1);
String url = "\"url\":\"(.*?)\"}";
url = getMatcher(url,source,1);
Assert.assertEquals(activityId,"820","");
Assert.assertEquals(image,"//yun.dui88.com/images/201801/7de9zo957y.png","");
Assert.assertEquals(operatingActivityId,"25550","");
Assert.assertTrue(url.contains("//activity.m.duibatest.com.cn/SecondsKillActivity/index?id=25550"));
}
@Test
public void C_Seckill删除楼层皮肤() throws Exception {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");//设置日期格式
logger.info(df.format(new Date()));
Response response = devSkinService.saveSkin(authorization.hdLoginmabo(),"18740","198");
response.prettyPrint();
response = floorService.deleteSkin(authorization.ssoLogin(),skinId,"1");
response.prettyPrint();
response = floorService.deleteFloor(authorization.ssoLogin(),floorId);
response.prettyPrint();
}
}
package http.cases.FloorTest;
import base.DuibaLog;
import base.DuibaTestBase;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import http.service.Authorization;
import http.service.Manager.FloorService;
import http.service.app.HomeService;
import http.service.hd.DevFloorBannerService;
import http.service.hd.DevFloorShowcaseService;
import http.service.hd.DevSkinService;
import io.restassured.path.json.JsonPath;
import io.restassured.response.Response;
import org.springframework.beans.factory.annotation.Autowired;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import utils.MatcherString;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.Map;
import static io.restassured.path.json.JsonPath.from;
/**
* Created by mabo on 2018/6/7
* 橱窗楼层
*/
public class Showcase_FloorTest extends DuibaTestBase {
@Autowired
HomeService homeService;
@Autowired
FloorService floorService;
@Autowired
Authorization authorization;
@Autowired
DevSkinService devSkinService;
@Autowired
DevFloorBannerService devFloorBannerService;
@Autowired
DevFloorShowcaseService devFloorShowcaseService;
private String skinId=null;
private String floorId=null;
private DuibaLog logger = DuibaLog.getLogger();
@BeforeClass
public void beforeClass(){
try{
Map map = jdbc.findSimpleResult("select * from credits_dev.tb_credits_floor_skin where skin_name = ?","mabo楼层皮肤Showcase");
skinId = String.valueOf(map.get("id"));
map = jdbc.findSimpleResult("select * from credits_dev.tb_credits_floor_code WHERE floor_name= ?","maboShowcase");
floorId = String.valueOf(map.get("id"));
Response response = devSkinService.saveSkin(authorization.hdLoginmabo(),"18740","198");
response = floorService.deleteSkin(authorization.ssoLogin(),skinId,"1");
response = floorService.deleteFloor(authorization.ssoLogin(),floorId);
}catch(Exception e){
}
}
@Test
public void A_Showcase创建楼层皮肤() throws Exception {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");//设置日期格式
logger.info(df.format(new Date()));
String type = "8";
String dataType = "0";
String name = "maboShowcase";
String skinWidth = "640";
String html = "<section class=\"floor-showcase a-fadeinT\">\n" +
" <a class=\"main-showcase\" href=\"${list[0].btnLink}\" db-log=\"${list[0].stInfo}\">\n" +
" <img src=\"${list[0].image}\" alt=\"\">\n" +
" {@if list[0].countDownTime}\n" +
" <div class=\"showcase-countdown\">\n" +
" <span>距开始</span><span class=\"countdown-time\">00:00:00</span>\n" +
" </div>\n" +
" {@/if}\n" +
" </a>\n" +
" <div class=\"side-showcase\">\n" +
" <a href=\"${list[1].btnLink}\" db-log=\"${list[1].stInfo}\">\n" +
" <div class=\"top-showcase\">\n" +
" <img src=\"${list[1].image}\" alt=\"\">\n" +
" </div>\n" +
" </a>\n" +
" <a href=\"${list[2].btnLink}\" db-log=\"${list[2].stInfo}\">\n" +
" <div class=\"bottom-showcase\">\n" +
" <img src=\"${list[2].image}\" alt=\"\">\n" +
" </div>\n" +
" </a>\n" +
" </div>\n" +
"</section>";
String css = ".floor-showcase {\n" +
" width: 100%;\n" +
" margin: 0.042666666666666665rem 0;\n" +
" background: #fff;\n" +
" position: relative;\n" +
" border: solid #EEE;\n" +
" border-width: 1px 0 ;\n" +
" min-height: 1.0752rem;\n" +
"}\n" +
".floor-showcase a {\n" +
" display: block;\n" +
"}\n" +
".floor-showcase img {\n" +
" width: 100%;\n" +
" height: 100%;\n" +
"}\n" +
".floor-showcase .main-showcase {\n" +
" position: absolute;\n" +
" left: 0;\n" +
" top: 0;\n" +
" bottom: 0;\n" +
" width: 1.6042666666666667rem;\n" +
" height: 1.0666666666666667rem;\n" +
" overflow: hidden;\n" +
" border-right: 1px solid #EEE;\n" +
"}\n" +
".floor-showcase .main-showcase .showcase-countdown {\n" +
" display: none;\n" +
" font-size: 0.1024rem;\n" +
" position: absolute;\n" +
" top: 0.49493333333333334rem;\n" +
" left: 0.09386666666666667rem;\n" +
" background: rgba(51, 51, 51, 0.9);\n" +
" border-radius: 0.017066666666666667rem;\n" +
" min-width: 0.6997333333333333rem;\n" +
" height: 0.14933333333333335rem;\n" +
" line-height: 0.14933333333333335rem;\n" +
" padding: 0 0.021333333333333333rem;\n" +
" text-align: center;\n" +
" color: #FFF;\n" +
" white-space: nowrap;\n" +
" -webkit-transform: scale(0.9);\n" +
" transform: scale(0.9);\n" +
" -webkit-transform-origin: 0 0;\n" +
" transform-origin: 0 0;\n" +
" color: #979797;\n" +
"}\n" +
".floor-showcase .main-showcase .showcase-countdown .countdown-time {\n" +
" margin-left: 0.017066666666666667rem;\n" +
" color: #FFF;\n" +
"}\n" +
".floor-showcase .side-showcase {\n" +
" padding-left: 1.6085333333333334rem;\n" +
" overflow: hidden;\n" +
"}\n" +
".floor-showcase .side-showcase .top-showcase {\n" +
" width: 1.5957333333333332rem;\n" +
" height: 0.5333333333333333rem;\n" +
" border-bottom: 1px solid #EEE;\n" +
"}\n" +
".floor-showcase .side-showcase .bottom-showcase {\n" +
" width: 1.5957333333333332rem;\n" +
" height: 0.5333333333333333rem;\n" +
"}";
String js = "if (data && data.list && data.list.length) {\n" +
" if (data.list.length !== 3) return; // 橱窗位数据不为3不显示\n" +
" var _list =[];\n" +
" for (var i = 0; i < data.list.length; i++) {\n" +
" _list[data.list[i].place - 1] = data.list[i];\n" +
" }\n" +
" data.list = _list;\n" +
" $(\"#renderRoot\").append(juicer(html, data));\n" +
" /**\n" +
" * 橱窗倒计时\n" +
" */\n" +
" var caseCountDownTime = data.list[0].countDownTime;\n" +
"\n" +
" if (caseCountDownTime) {\n" +
"\t$('.showcase-countdown').show();\n" +
"\tvar date = new Date();\n" +
"\tvar endTime = date.getFullYear() + '/' + (date.getMonth() + 1) + '/' +date.getDate() + ' ' + caseCountDownTime;\n" +
"\tcountDown((new Date(endTime)).getTime()); \n" +
" }\n" +
"\n" +
" function countDown(endTime) {\n" +
"\tvar countDownTime = '';\n" +
"\tcount();\n" +
"\tfunction count() {\n" +
"\t var now = (new Date()).getTime();\n" +
"\t var t = endTime - now;\n" +
"\t if (t <= 0) {\n" +
"\t\t$('.showcase-countdown').hide();\n" +
"\t\treturn;\n" +
"\t }\n" +
"\t var hour = Math.floor(t / 1000 / 60 / 60 % 24);\n" +
"\t var min = Math.floor(t / 1000 / 60 % 60);\n" +
"\t var second = Math.floor(t / 1000 % 60);\n" +
"\t hour = hour < 10 ? '0' + hour : hour;\n" +
"\t min = min < 10 ? '0' + min : min;\n" +
"\t second = second < 10 ? '0' + second : second;\n" +
"\t countDownTime = hour + ':' + min + ':' + second;\n" +
"\t $('.showcase-countdown .countdown-time').text(countDownTime);\n" +
"\t timer = setTimeout(function() {\n" +
"\t\tcount();\n" +
"\t }, 1000);\n" +
"\t}\n" +
" }\n" +
"}";
//新建banner楼层
Response response = floorService.createFloor(authorization.ssoLogin(),type,dataType,name,html,css,js,skinWidth);
Map<String,Object> map = jdbc.findSimpleResult("select * from credits_dev.tb_credits_floor_code where floor_name=?",name);
floorId = String.valueOf(map.get("id"));
String nameSkin = "mabo楼层皮肤showcase";
String image = "//yun.dui88.com/images/201805/nlkmslg0t0.png";
// 验证码
String stoke="1";
// String floors = "[{\"id\":190,\"name\":\"maboTest\",\"type\":1,\"dataType\":0,\"needSyn\":false,\"syn\":false}]";
String ower = "0";
JSONObject json = new JSONObject();
json.put("id",map.get("id"));
json.put("name",name);
json.put("type","8");
json.put("dataType",map.get("data_type"));
json.put("needSyn",false);
json.put("syn",false);
JSONArray jsonArray = new JSONArray();
jsonArray.add(json);
String floors = jsonArray.toJSONString();
//新建皮肤
response = floorService.insertSkin(authorization.ssoLogin(),nameSkin,image,stoke,floors,ower,skinWidth);
map = jdbc.findSimpleResult("select * from credits_dev.tb_credits_floor_skin where skin_name = ?",nameSkin);
skinId = String.valueOf(map.get("id"));
response = floorService.switchOpenState(authorization.ssoLogin(),skinId,"true");
}
@Test
public void B_Showcase手机端() throws Exception {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");//设置日期格式
logger.info(df.format(new Date()));
Response response = devSkinService.saveSkin(authorization.hdLoginmabo(),"18740",skinId);
Thread.sleep(60000);
JsonPath jsonCfg = homeService.getCFG(2753);
Assert.assertEquals(jsonCfg.getList("").size(),1,"banner展示数量和配置不符");
String floorId = MatcherString.getString(jsonCfg.getList("").get(0).toString(),"floorId=(.*?),",1);
String dataType = MatcherString.getString(jsonCfg.getList("").get(0).toString(),"dataType=(.*?),",1);
String floorType = MatcherString.getString(jsonCfg.getList("").get(0).toString(),"floorType=(.*?),",1);
response = homeService.floor(authorization.dafuwengLogin(2753),floorType,dataType,"3",floorId);
String s = response.asString();
JsonPath jsonPath=from(s.substring(s.indexOf("{"),s.length()-1));
List<Map> list = jsonPath.getList("list",Map.class);
response = devFloorShowcaseService.getShowcaseContent(authorization.hdLoginmabo(),"18740");
List<Map> listDev = response.jsonPath().getList("data",Map.class);
//开发者配置和手机端配置校验
for (int i = 0; i < listDev.size(); i++) {
Assert.assertEquals(listDev.get(i).get("relationTitle"),list.get(i).get("relationTitle"),"relationTitle开发者配置和手机端展示不符");
Assert.assertEquals(listDev.get(i).get("image"),list.get(i).get("image"),"image开发者配置和手机端展示不符");
Assert.assertEquals(listDev.get(i).get("relationImage"),list.get(i).get("relationImage"),"relationImage开发者配置和手机端展示不符");
}
}
@Test
public void C_Showcase删除楼层皮肤() throws Exception {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");//设置日期格式
logger.info(df.format(new Date()));
Response response = devSkinService.saveSkin(authorization.hdLoginmabo(),"18740","198");
response.prettyPrint();
response = floorService.deleteSkin(authorization.ssoLogin(),skinId,"1");
response.prettyPrint();
response = floorService.deleteFloor(authorization.ssoLogin(),floorId);
response.prettyPrint();
}
}
package http.cases.FloorTest;
import base.DuibaLog;
import base.DuibaTestBase;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import http.service.Authorization;
import http.service.Manager.FloorService;
import http.service.app.HomeService;
import http.service.hd.DevFloorBannerService;
import http.service.hd.DevSkinService;
import io.restassured.path.json.JsonPath;
import io.restassured.response.Response;
import org.springframework.beans.factory.annotation.Autowired;
import org.testng.Assert;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
import utils.MatcherString;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import static io.restassured.path.json.JsonPath.from;
/**
* Created by mabo on 2018/6/8
* 签到楼层
*/
public class Sign_FloorTest extends DuibaTestBase {
@Autowired
HomeService homeService;
@Autowired
FloorService floorService;
@Autowired
Authorization authorization;
@Autowired
DevSkinService devSkinService;
@Autowired
DevFloorBannerService devFloorBannerService;
private String skinId=null;
private String floorId=null;
private DuibaLog logger = DuibaLog.getLogger();
@BeforeClass
public void beforeClass(){
try{
Map map = jdbc.findSimpleResult("select * from credits_dev.tb_credits_floor_skin where skin_name = ?","mabo楼层皮肤Sign");
skinId = String.valueOf(map.get("id"));
map = jdbc.findSimpleResult("select * from credits_dev.tb_credits_floor_code WHERE floor_name= ?","maboSign");
floorId = String.valueOf(map.get("id"));
Response response = devSkinService.saveSkin(authorization.hdLoginmabo(),"18740","198");
response = floorService.deleteSkin(authorization.ssoLogin(),skinId,"1");
response = floorService.deleteFloor(authorization.ssoLogin(),floorId);
}catch(Exception e){
}
}
@Test
public void A_sign创建楼层皮肤() throws Exception {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");//设置日期格式
logger.info(df.format(new Date()));
String type = "11";
String dataType = "0";
String name = "maboSign";
String skinWidth = "750";
String html = "<section class=\"floor-top-floorsign\">\n" +
" <div class=\"sign-box\">\n" +
" <div class=\"add-credits\">{@if sign.canSign}今日签到可获得<span class=\"price\">${sign.credits}</span>元转豆{@else}明日签到可获得<span class=\"price\">${sign.nextCredits}</span>元转豆{@/if}</div>\n" +
" {@if sign.canSign}\n" +
" <div class=\"sign-text\" db-log=\"${sign.stInfo}\" id=\"sign-action\" data-can-sign=\"1\">签到</div>\n" +
" {@else}\n" +
" <div class=\"sign-text done\" db-log=\"${sign.stInfo}\" id=\"sign-action\" data-can-sign=\"0\">已签到</div>\n" +
" {@/if}\n" +
" </div>\n" +
"\n" +
" <div class=\"model\" style=\"display:none;\">\n" +
" <div class=\"model-box\">\n" +
" <div class=\"model-head\">\n" +
" <div class=\"icon\"></div>\n" +
" <div class=\"close-but\"></div>\n" +
" </div>\n" +
" <div class=\"model-body\">\n" +
" <div class=\"model-title\">签到成功</div>\n" +
" <div class=\"model-prompt\">明天签到可领取6转豆哦~</div>\n" +
" </div>\n" +
" <div class=\"model-footer\">\n" +
" <div class=\"model-confirm\">确认</div>\n" +
" </div>\n" +
" </div>\n" +
" </div>\n" +
"\n" +
" </section> ";
String css = ".floor-top-floorsign {\n" +
" width: 100%;\n" +
" display: -webkit-box;\n" +
" display: -ms-flexbox;\n" +
" display: flex;\n" +
" -webkit-box-orient: horizontal;\n" +
" -webkit-box-direction: normal;\n" +
" -ms-flex-direction: row;\n" +
" flex-direction: row;\n" +
" -webkit-box-pack: center;\n" +
" -ms-flex-pack: center;\n" +
" justify-content: center;\n" +
"}\n" +
".floor-top-floorsign .sign-box {\n" +
" width: 13.952rem;\n" +
" height: 3.41333333rem;\n" +
" background-image: url('//yun.duiba.com.cn/h5/floor/sign/sign-in.png');\n" +
" background-size: 100% 100%;\n" +
" display: -webkit-box;\n" +
" display: -ms-flexbox;\n" +
" display: flex;\n" +
" -webkit-box-orient: horizontal;\n" +
" -webkit-box-direction: normal;\n" +
" -ms-flex-direction: row;\n" +
" flex-direction: row;\n" +
" -webkit-box-pack: justify;\n" +
" -ms-flex-pack: justify;\n" +
" justify-content: space-between;\n" +
"}\n" +
".floor-top-floorsign .sign-box .add-credits {\n" +
" margin-left: 3.15733333rem;\n" +
" margin-top: 1.28rem;\n" +
" font-size: 0.68266667rem;\n" +
" font-weight: bold;\n" +
" color: #fff;\n" +
" letter-spacing: 0.04266667rem;\n" +
" text-indent: 0.04266667rem;\n" +
"}\n" +
".floor-top-floorsign .sign-box .add-credits .price {\n" +
" font-size: 1.06666667rem;\n" +
" position: relative;\n" +
" top: 0.08533333rem;\n" +
" color: #fff16a;\n" +
"}\n" +
".floor-top-floorsign .sign-box .sign-text {\n" +
" width: 2.00533333rem;\n" +
" height: 2.00533333rem;\n" +
" font-size: 0.59733333rem;\n" +
" color: #ff5b5b;\n" +
" font-weight: bold;\n" +
" margin-right: 0.34133333rem;\n" +
" margin-top: 0.832rem;\n" +
" text-align: center;\n" +
" line-height: 2.00533333rem;\n" +
" letter-spacing: 0.08533333rem;\n" +
" text-indent: 0.08533333rem;\n" +
"}\n" +
".floor-top-floorsign .sign-box .sign-text.done {\n" +
" font-size: 0.46933333rem;\n" +
" opacity: .7;\n" +
"}\n" +
"/*模态框*/\n" +
".model {\n" +
" width: 100%;\n" +
" position: fixed;\n" +
" top: 0;\n" +
" bottom: 0;\n" +
" background-color: rgba(0, 0, 0, 0.5);\n" +
" z-index: 9999;\n" +
" display: -webkit-box;\n" +
" display: -ms-flexbox;\n" +
" display: flex;\n" +
" -webkit-box-pack: center;\n" +
" -ms-flex-pack: center;\n" +
" justify-content: center;\n" +
" -webkit-box-align: center;\n" +
" -ms-flex-align: center;\n" +
" align-items: center;\n" +
"}\n" +
".model .model-box {\n" +
" width: 13.65333333rem;\n" +
" height: 8.61866667rem;\n" +
" background-color: #fff;\n" +
" border-radius: 8px;\n" +
"}\n" +
".model .model-box .model-head {\n" +
" width: 100%;\n" +
" height: 2.688rem;\n" +
" display: -webkit-box;\n" +
" display: -ms-flexbox;\n" +
" display: flex;\n" +
" -webkit-box-orient: horizontal;\n" +
" -webkit-box-direction: normal;\n" +
" -ms-flex-direction: row;\n" +
" flex-direction: row;\n" +
" -webkit-box-pack: end;\n" +
" -ms-flex-pack: end;\n" +
" justify-content: flex-end;\n" +
" position: relative;\n" +
"}\n" +
".model .model-box .model-head .icon {\n" +
" width: 4.11733333rem;\n" +
" height: 4.20266667rem;\n" +
" position: absolute;\n" +
" left: 50%;\n" +
" background-image: url('img/xiong-icon.png');\n" +
" margin-left: -2.05866667rem;\n" +
" margin-top: -2.32533333rem;\n" +
" background-size: 100% 100%;\n" +
"}\n" +
".model .model-box .model-head .close-but {\n" +
" width: 0.512rem;\n" +
" height: 0.512rem;\n" +
" margin: 0.512rem 0.512rem 0 0;\n" +
" background-size: 100% 100%;\n" +
" background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAOVBMVEUAAACqrrmqrrmqrrmqrrmqrrmqrrmqrrmqrrmqrrmqrrmqrrmqrrmqrrmqrrmqrrmqrrmqrrmqrrm/77LuAAAAEnRSTlMAKPLA5jwKmwyeOemfYUSgYxqFJioEAAAAcklEQVQoz23RSQ7AIAxDUUNHSqFt7n/YEgnJksGLLN5fBkDFsN3Pa4/6uRztXtFudVu/XtQDwCLeS1JnGZ2Fzm1e6FLoUrL7uGpmM9+XFtLU1xLtmHnA1os6WMR7UWehZ3cWdRZ1FrqUghDpLMlf4T7uB2WsBggrQzA4AAAAAElFTkSuQmCC');\n" +
"}\n" +
".model .model-box .model-body {\n" +
" width: 100%;\n" +
" height: 3.84rem;\n" +
" text-align: center;\n" +
"}\n" +
".model .model-box .model-body .model-title {\n" +
" font-size: 0.64rem;\n" +
" color: #44484c;\n" +
" padding: 0.42666667rem 0;\n" +
"}\n" +
".model .model-box .model-body .model-prompt {\n" +
" font-size: 0.512rem;\n" +
" color: #a9afb8;\n" +
" padding: 0.42666667rem 0;\n" +
"}\n" +
".model .model-box .model-footer {\n" +
" width: 100%;\n" +
" height: 2.048rem;\n" +
" line-height: 2.048rem;\n" +
" text-align: center;\n" +
" border-top: 0.02133333rem solid #e7e7e7;\n" +
"}\n" +
".model .model-box .model-footer .model-confirm {\n" +
" width: 100%;\n" +
" height: 100%;\n" +
" font-size: 0.64rem;\n" +
" color: #6da6fe;\n" +
"}\n" +
"/***弹出层***/\n" +
".report-modal-sign {\n" +
" display: none;\n" +
" position: fixed;\n" +
" top: 0;\n" +
" right: 0;\n" +
" bottom: 0;\n" +
" left: 0;\n" +
" background-color: rgba(0, 0, 0, 0) !important;\n" +
" z-index: 999;\n" +
"}\n" +
".report-modal-sign .dialog-sign {\n" +
" position: absolute;\n" +
" top: 7.5rem;\n" +
" left: 50%;\n" +
" -webkit-transform: translate(-50%, 0);\n" +
" transform: translate(-50%, 0);\n" +
" width: 7.175rem;\n" +
" height: 8.225rem;\n" +
" background-size: 100% 100%;\n" +
" text-align: center;\n" +
" -webkit-background-position-y: -0.5rem;\n" +
" background-position-y: -0.5rem;\n" +
" background-color: rgba(0, 0, 0, 0.6);\n" +
" border-radius: 0.25rem;\n" +
"}\n" +
"/**签到服务**/\n" +
".report-modal-sign .signSuccess {\n" +
" background-image: url('data:image/png;base64,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');\n" +
"}\n" +
".report-modal-sign .signFail {\n" +
" background-image: url('data:image/png;base64,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');\n" +
"}\n" +
".report-modal-sign .signAgain {\n" +
" background-image: url('data:image/png;base64,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');\n" +
"}\n" +
"/*******/\n" +
".report-modal-sign .dialog-sign p {\n" +
" display: block;\n" +
" text-align: center;\n" +
" color: #fff;\n" +
"}\n" +
".report-modal-sign .dialog-sign p.signTip-sign {\n" +
" font-size: 0.65rem;\n" +
" margin-top: 5.25rem;\n" +
" margin-bottom: 0.25rem;\n" +
"}\n" +
".report-modal-sign .dialog-sign p.nextText-sign {\n" +
" font-size: 0.7rem;\n" +
"}\n" +
".report-modal-sign .dialog-sign p.nextTextColor {\n" +
" color: #e97883;\n" +
"}\n" +
".ddmx {\n" +
" color: #cecece;\n" +
" font-size: 0.45rem;\n" +
" padding-top: 0.25rem;\n" +
"}";
String js = ";(function(window,undefined){\n" +
" 'use strict';\n" +
"\n" +
" var modelBox = {\n" +
" init:function(){\n" +
" var _this = this;\n" +
" this.modelEle = $('.model');\n" +
" this.prompt = $('.model-prompt');\n" +
" this.title = $('.model-title');\n" +
"\n" +
" $('.model-confirm').on('click',function(){\n" +
" _this.hide();\n" +
" });\n" +
"\n" +
" $('.close-but').on('click',function(){\n" +
" _this.hide();\n" +
" });\n" +
"\n" +
" },\n" +
" show:function(){\n" +
" this.modelEle.show();\n" +
" return this;\n" +
" },\n" +
" hide:function(){\n" +
" this.modelEle.hide();\n" +
" return this;\n" +
" },\n" +
" closeModel:function(callback,time){\n" +
" var times,\n" +
" _this = this;\n" +
"\n" +
" if(typeof callback === 'number')\n" +
" time = callback;\n" +
" time = time || 1500;\n" +
" //定时关闭模态框\n" +
" times = setTimeout(function(){\n" +
" _this.hide();\n" +
" },time);\n" +
"\n" +
" return this;\n" +
" },\n" +
" setTitle:function(text){\n" +
" this.title.text(text);\n" +
" return this;\n" +
" },\n" +
" setPrompt:function(text){\n" +
" this.prompt.text(text);\n" +
" return this;\n" +
" }\n" +
" };\n" +
"\n" +
" modelBox.init();\n" +
" /**\n" +
" * 签到服务\n" +
" */\n" +
" SignService.$inject = [\"$q\", \"$http\", \"$Interval\"];\n" +
" function SignService($q, $http, $Interval) {\n" +
" var SIGN_URL = \"/sign/doSign\";\n" +
" var GET_SIGN_RESULT_URL = \"/sign/signResult\";\n" +
" var TIME = 8; //重复获取次数\n" +
"\n" +
" var SIGN_STATUE_WITE = 0;\n" +
" var SIGN_STATUE_SUCCESS = 1;\n" +
" var SIGN_STATUE_ERROR = 2;\n" +
"\n" +
" function doSign() {\n" +
" var promiss = $q.defer();\n" +
" $http.jsonp(SIGN_URL).then(resolve, reject);\n" +
" function resolve(result) {\n" +
" if (result.success) {\n" +
" getSignResult(promiss);\n" +
" } else {\n" +
" promiss.reject(result.message);\n" +
" }\n" +
" }\n" +
" function reject(message) {\n" +
" promiss.reject(message);\n" +
" }\n" +
" return promiss.promise;\n" +
" }\n" +
"\n" +
" function getSignResult(promiss) {\n" +
" var i = 1;\n" +
" var hasResult = false;\n" +
" var p = $Interval(function () {\n" +
" $http.jsonp(GET_SIGN_RESULT_URL).then(function (result) {\n" +
" if (hasResult) {\n" +
" return;\n" +
" }\n" +
" if (result.state != SIGN_STATUE_WITE) {\n" +
" $Interval.cancel(p);\n" +
" }\n" +
" if (result.state == SIGN_STATUE_SUCCESS) {\n" +
" hasResult = true;\n" +
" var ru = {};\n" +
" yangzuo.extend(ru, result);\n" +
" promiss.resolve(ru);\n" +
" return;\n" +
" }\n" +
" if (result.state == SIGN_STATUE_ERROR) {\n" +
" hasResult = true;\n" +
" promiss.reject(result.message);\n" +
" return;\n" +
" }\n" +
" promiss.notify(i);\n" +
" i++;\n" +
" }, function (message) {\n" +
" promiss.reject(message);\n" +
" $Interval.cancel(p);\n" +
" });\n" +
" }, 400, TIME);\n" +
" }\n" +
" return {\n" +
" doSign: doSign\n" +
" }\n" +
" }\n" +
" yangzuo.service(\"NewSignService\", SignService);\n" +
" var sign = data;\n" +
" var timer;\n" +
" var model = {};\n" +
" model.sign = sign;\n" +
" yangzuo.extend(model, global);\n" +
" $(\"#renderRoot\").append(juicer(html, model));\n" +
"\n" +
" yangzuo.on(\"updateCreditsAndRecord\", function (event) {\n" +
" if (event.credits == 0 || event.credits) {\n" +
" $(\"#db-credits-num\").text(event.credits);\n" +
" }\n" +
" if (event.status) {\n" +
" $('#db-new-record,#db-new-tip').show();\n" +
" } else {\n" +
" $('#db-new-record,#db-new-tip').hide();\n" +
" }\n" +
" });\n" +
"\n" +
" if (data.canSign) {\n" +
" yangzuo.element(\"#sign-action\").on(\"click\", function () {\n" +
" yangzuo.injectExecute(Dosign);\n" +
" })\n" +
" }\n" +
" Dosign.$inject = [\"NewSignService\"]\n" +
" function Dosign(SignService) {\n" +
" var signText = $('.sign-text');\n" +
" //如果data-can-sign等于0那么将不能签到\n" +
" if (signText.data('canSign') === '0') {\n" +
" console.log('已签到!');\n" +
" return;\n" +
" }\n" +
" SignService.doSign().then(function (result) {\n" +
" console.log(\"签到成功:\" + yangzuo.toJson(result));\n" +
"\n" +
" $('.add-credits').html('<p>明日签到可获得<span class=\"price\">'+ sign.nextCredits + '</span>元转豆</p>');\n" +
" signText.text('已签到');\n" +
" signText.addClass('done');\n" +
" yangzuo.post(\"$onDBNewOpenBack\");\n" +
" \n" +
" //设置model参数和状态\n" +
" modelBox.setTitle('签到成功')\n" +
" .setPrompt('明日签到可获得' + sign.nextCredits + '元转豆')\n" +
" .show();\n" +
" }, function (message) {\n" +
" console.log(\"签到失败:\",message);\n" +
" $('.add-credits').html('<p>明日签到可获得<span class=\"price\">'+ sign.nextCredits + '</span>元转豆</p>');\n" +
" modelBox.setTitle('签到失败')\n" +
" .setPrompt('网络不通畅')\n" +
" .show();\n" +
"\n" +
" })\n" +
" }\n" +
"\n" +
"})(window,void 0);";
//新建banner楼层
Response response = floorService.createFloor(authorization.ssoLogin(),type,dataType,name,html,css,js,skinWidth);
Map<String,Object> map = jdbc.findSimpleResult("select * from credits_dev.tb_credits_floor_code where floor_name=?",name);
floorId = String.valueOf(map.get("id"));
String nameSkin = "mabo楼层皮肤sign";
String image = "//yun.dui88.com/images/201805/nlkmslg0t0.png";
// 验证码
String stoke="1";
// String floors = "[{\"id\":190,\"name\":\"maboTest\",\"type\":1,\"dataType\":0,\"needSyn\":false,\"syn\":false}]";
String ower = "0";
JSONObject json = new JSONObject();
json.put("id",map.get("id"));
json.put("name",name);
json.put("type",type);
json.put("dataType",map.get("data_type"));
json.put("needSyn",false);
json.put("syn",false);
JSONArray jsonArray = new JSONArray();
jsonArray.add(json);
String floors = jsonArray.toJSONString();
//新建皮肤
response = floorService.insertSkin(authorization.ssoLogin(),nameSkin,image,stoke,floors,ower,skinWidth);
map = jdbc.findSimpleResult("select * from credits_dev.tb_credits_floor_skin where skin_name = ?",nameSkin);
skinId = String.valueOf(map.get("id"));
response = floorService.switchOpenState(authorization.ssoLogin(),skinId,"true");
}
@Test
public void B_sign手机端() throws Exception {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");//设置日期格式
logger.info(df.format(new Date()));
Response response = devSkinService.saveSkin(authorization.hdLoginmabo(),"18740",skinId);
Thread.sleep(60000);
JsonPath jsonCfg = homeService.getCFG(2753);
Assert.assertEquals(jsonCfg.getList("").size(),1,"banner展示数量和配置不符");
String floorId = MatcherString.getString(jsonCfg.getList("").get(0).toString(),"floorId=(.*?),",1);
String dataType = MatcherString.getString(jsonCfg.getList("").get(0).toString(),"dataType=(.*?),",1);
String floorType = MatcherString.getString(jsonCfg.getList("").get(0).toString(),"floorType=(.*?),",1);
response = homeService.floor(authorization.dafuwengLogin(2753),floorType,dataType,"3",floorId);
String s = response.asString();
JsonPath jsonPath=from(s.substring(s.indexOf("{"),s.length()-1));
String credits = jsonPath.getString("credits");
Assert.assertEquals(credits,"1","积分与期望不符");
}
@Test
public void C_sign删除楼层皮肤() throws Exception {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS");//设置日期格式
logger.info(df.format(new Date()));
Response response = devSkinService.saveSkin(authorization.hdLoginmabo(),"18740","198");
response.prettyPrint();
response = floorService.deleteSkin(authorization.ssoLogin(),skinId,"1");
response.prettyPrint();
response = floorService.deleteFloor(authorization.ssoLogin(),floorId);
response.prettyPrint();
}
}
package utils;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Random;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
/**
* Created by hanzhanli on 2017/8/16.
*/
public class StringUtil {
public static String generateStringByTime(){
Date date=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("MMdd");
return sdf.format(date)+"-"+(int)(Math.random()*100);
}
public static String generateRandomString(int length) {
String str = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
Random random = new Random();
StringBuffer buf = new StringBuffer();
for (int i = 0; i < length; i++) {
int num = random.nextInt(36);
buf.append(str.charAt(num));
}
return buf.toString();
}
public static String getMatcher(String regex, String source,int index) {
String result = "";
Pattern pattern = Pattern.compile(regex);
Matcher matcher = pattern.matcher(source);
if (matcher.find()) {
result = matcher.group(1);
}
return result;
}
public static void main(String[] args) {
String s = "{\"code\":\"0\",\"desc\":\"获取标签成功\",\"data\":{\"matchTagNums\":[\"20101\"],\"bannedTagNums\":[\"30101\"],\"promoteURLTagNums\":[\"40101\"],\"materialTagNums\":[\"50101\"]}}";
String source = "\"matchTagNums\":[\"(.*?)\"]";
System.out.println(getMatcher(source,s,1));
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment