You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

18 lines
38 KiB

function cov_25j1qrcp5v(){var path="D:\\wechatapp\\SH\\SH\\test_whitebox.js";var hash="7d10ae8fd55c08a0c4637cb59d9b0b5f69e0c101";var global=new Function("return this")();var gcv="__coverage__";var coverageData={path:"D:\\wechatapp\\SH\\SH\\test_whitebox.js",statementMap:{"0":{start:{line:1,column:15},end:{line:1,column:37}},"1":{start:{line:4,column:0},end:{line:144,column:3}},"2":{start:{line:6,column:4},end:{line:128,column:7}},"3":{start:{line:9,column:32},end:{line:9,column:34}},"4":{start:{line:11,column:12},end:{line:46,column:13}},"5":{start:{line:12,column:16},end:{line:45,column:17}},"6":{start:{line:14,column:20},end:{line:38,column:21}},"7":{start:{line:15,column:43},end:{line:15,column:64}},"8":{start:{line:18,column:24},end:{line:22,column:25}},"9":{start:{line:21,column:28},end:{line:21,column:68}},"10":{start:{line:24,column:24},end:{line:29,column:25}},"11":{start:{line:25,column:28},end:{line:25,column:57}},"12":{start:{line:26,column:31},end:{line:29,column:25}},"13":{start:{line:28,column:28},end:{line:28,column:59}},"14":{start:{line:32,column:24},end:{line:37,column:25}},"15":{start:{line:33,column:28},end:{line:33,column:88}},"16":{start:{line:33,column:76},end:{line:33,column:86}},"17":{start:{line:36,column:28},end:{line:36,column:63}},"18":{start:{line:39,column:23},end:{line:45,column:17}},"19":{start:{line:41,column:20},end:{line:41,column:46}},"20":{start:{line:44,column:20},end:{line:44,column:56}},"21":{start:{line:49,column:12},end:{line:56,column:58}},"22":{start:{line:51,column:20},end:{line:51,column:43}},"23":{start:{line:51,column:30},end:{line:51,column:43}},"24":{start:{line:52,column:41},end:{line:52,column:69}},"25":{start:{line:53,column:20},end:{line:53,column:101}},"26":{start:{line:56,column:28},end:{line:56,column:56}},"27":{start:{line:58,column:12},end:{line:58,column:33}},"28":{start:{line:61,column:8},end:{line:69,column:11}},"29":{start:{line:62,column:30},end:{line:62,column:95}},"30":{start:{line:63,column:27},end:{line:63,column:54}},"31":{start:{line:65,column:12},end:{line:65,column:45}},"32":{start:{line:66,column:12},end:{line:66,column:47}},"33":{start:{line:67,column:12},end:{line:67,column:72}},"34":{start:{line:68,column:12},end:{line:68,column:72}},"35":{start:{line:71,column:8},end:{line:79,column:11}},"36":{start:{line:72,column:30},end:{line:72,column:97}},"37":{start:{line:73,column:27},end:{line:73,column:54}},"38":{start:{line:75,column:12},end:{line:75,column:45}},"39":{start:{line:76,column:12},end:{line:76,column:47}},"40":{start:{line:77,column:12},end:{line:77,column:72}},"41":{start:{line:78,column:12},end:{line:78,column:72}},"42":{start:{line:81,column:8},end:{line:89,column:11}},"43":{start:{line:82,column:30},end:{line:82,column:101}},"44":{start:{line:83,column:27},end:{line:83,column:54}},"45":{start:{line:85,column:12},end:{line:85,column:45}},"46":{start:{line:86,column:12},end:{line:86,column:47}},"47":{start:{line:87,column:12},end:{line:87,column:72}},"48":{start:{line:88,column:12},end:{line:88,column:72}},"49":{start:{line:91,column:8},end:{line:99,column:11}},"50":{start:{line:92,column:30},end:{line:92,column:92}},"51":{start:{line:93,column:27},end:{line:93,column:54}},"52":{start:{line:95,column:12},end:{line:95,column:45}},"53":{start:{line:96,column:12},end:{line:96,column:47}},"54":{start:{line:97,column:12},end:{line:97,column:72}},"55":{start:{line:98,column:12},end:{line:98,column:72}},"56":{start:{line:101,column:8},end:{line:108,column:11}},"57":{start:{line:102,column:30},end:{line:102,column:61}},"58":{start:{line:103,column:27},end:{line:103,column:54}},"59":{start:{line:105,column:12},end:{line:105,column:45}},"60":{start:{line:106,column:12},end:{line:106,column:47}},"61":{start:{line:107,column:12},end:{line:107,column:72}},"62":{start:{line:110,column:8},end:{line:118,column:11}},"63":{start:{line:111,column:30},end:{line:111,column:96}},"64":{start:{line:112,column:27},end:{line:112,column:54}},"65":{start:{line:114,column:12},end:{line:114,column:45}},"66":{start:{line:115,column:12},end:{line:115,column:47}},"67"
cov_25j1qrcp5v=function(){return actualCoverage;};}return actualCoverage;}cov_25j1qrcp5v();const expect=(cov_25j1qrcp5v().s[0]++,require('chai').expect);// 从Reject.js中提取出来的关键业务逻辑函数
cov_25j1qrcp5v().s[1]++;describe('白盒测试:核心业务逻辑',()=>{cov_25j1qrcp5v().f[0]++;cov_25j1qrcp5v().s[2]++;// 测试图片URL处理逻辑
describe('图片URL处理函数',()=>{cov_25j1qrcp5v().f[1]++;// 模拟图片URL处理逻辑
function processImageUrls(imageUrls){cov_25j1qrcp5v().f[2]++;let processedUrls=(cov_25j1qrcp5v().s[3]++,[]);cov_25j1qrcp5v().s[4]++;if(imageUrls){cov_25j1qrcp5v().b[0][0]++;cov_25j1qrcp5v().s[5]++;if(typeof imageUrls==='string'){cov_25j1qrcp5v().b[1][0]++;cov_25j1qrcp5v().s[6]++;// 尝试解析为JSON数组
try{let parsedImages=(cov_25j1qrcp5v().s[7]++,JSON.parse(imageUrls));// 检查是否是JSON字符串的字符串表示(转义的JSON)
cov_25j1qrcp5v().s[8]++;if((cov_25j1qrcp5v().b[3][0]++,typeof parsedImages==='string')&&((cov_25j1qrcp5v().b[3][1]++,parsedImages.startsWith('['))||(cov_25j1qrcp5v().b[3][2]++,parsedImages.startsWith('{')))){cov_25j1qrcp5v().b[2][0]++;cov_25j1qrcp5v().s[9]++;// 进行第二次解析
parsedImages=JSON.parse(parsedImages);}else{cov_25j1qrcp5v().b[2][1]++;}cov_25j1qrcp5v().s[10]++;if(Array.isArray(parsedImages)){cov_25j1qrcp5v().b[4][0]++;cov_25j1qrcp5v().s[11]++;processedUrls=parsedImages;}else{cov_25j1qrcp5v().b[4][1]++;cov_25j1qrcp5v().s[12]++;if(typeof parsedImages==='string'){cov_25j1qrcp5v().b[5][0]++;cov_25j1qrcp5v().s[13]++;// 如果解析结果是字符串,可能是单个URL
processedUrls=[parsedImages];}else{cov_25j1qrcp5v().b[5][1]++;}}}catch(e){cov_25j1qrcp5v().s[14]++;// 解析失败,尝试按逗号分隔
if(imageUrls.includes(',')){cov_25j1qrcp5v().b[6][0]++;cov_25j1qrcp5v().s[15]++;processedUrls=imageUrls.split(',').map(url=>{cov_25j1qrcp5v().f[3]++;cov_25j1qrcp5v().s[16]++;return url.trim();});}else{cov_25j1qrcp5v().b[6][1]++;cov_25j1qrcp5v().s[17]++;// 作为单个URL处理
processedUrls=[imageUrls.trim()];}}}else{cov_25j1qrcp5v().b[1][1]++;cov_25j1qrcp5v().s[18]++;if(Array.isArray(imageUrls)){cov_25j1qrcp5v().b[7][0]++;cov_25j1qrcp5v().s[19]++;// 已经是数组,直接使用
processedUrls=imageUrls;}else{cov_25j1qrcp5v().b[7][1]++;cov_25j1qrcp5v().s[20]++;// 其他类型,转换为字符串数组
processedUrls=[String(imageUrls)];}}}else{cov_25j1qrcp5v().b[0][1]++;}// 过滤并处理无效的URL:移除反引号并验证
cov_25j1qrcp5v().s[21]++;processedUrls=processedUrls.filter(url=>{cov_25j1qrcp5v().f[4]++;cov_25j1qrcp5v().s[22]++;if(!url){cov_25j1qrcp5v().b[8][0]++;cov_25j1qrcp5v().s[23]++;return false;}else{cov_25j1qrcp5v().b[8][1]++;}const processedUrl=(cov_25j1qrcp5v().s[24]++,url.replace(/`/g,'').trim());cov_25j1qrcp5v().s[25]++;return(cov_25j1qrcp5v().b[9][0]++,processedUrl.startsWith('http://'))||(cov_25j1qrcp5v().b[9][1]++,processedUrl.startsWith('https://'));})// 对每个有效URL进行处理,移除反引号
.map(url=>{cov_25j1qrcp5v().f[5]++;cov_25j1qrcp5v().s[26]++;return url.replace(/`/g,'').trim();});cov_25j1qrcp5v().s[27]++;return processedUrls;}cov_25j1qrcp5v().s[28]++;it('应该正确处理包含反引号的URL',()=>{cov_25j1qrcp5v().f[6]++;const imageUrls=(cov_25j1qrcp5v().s[29]++,'`http://example.com/image1.jpg`,`http://example.com/image2.jpg`');const result=(cov_25j1qrcp5v().s[30]++,processImageUrls(imageUrls));cov_25j1qrcp5v().s[31]++;expect(result).to.be.an('array');cov_25j1qrcp5v().s[32]++;expect(result).to.have.lengthOf(2);cov_25j1qrcp5v().s[33]++;expect(result[0]).to.equal('http://example.com/image1.jpg');cov_25j1qrcp5v().s[34]++;expect(result[1]).to.equal('http://example.com/image2.jpg');});cov_25j1qrcp5v().s[35]++;it('应该正确处理转义的JSON字符串',()=>{cov_25j1qrcp5v().f[7]++;const imageUrls=(cov_25j1qrcp5v().s[36]++,'["http://example.com/image1.jpg","http://example.com/image2.jpg"]');const result=(cov_25j1qrcp5v().s[37]++,processImageUrls(imageUrls));cov_25j1qrcp5v().s[38]++;expect(result).to.be.an('array');cov_25j1qrcp5v().s[39]++;expect(result).to.have.lengthOf(2);cov_25j1qrcp5v().s[40]++;expect(result[0]).to.equal('http://example.com/image1.jpg');cov_25j1qrcp5v().s[41]++;expect(result[1]).to.equal('http://example.com/image2.jpg');});cov_25j1qrcp5v().s[42]++;it('应该正确处理双重转义的JSON字符串',()=>{cov_25j1qrcp5v().f[8]++;const imageUrls=(cov_25j1qrcp5v().s[43]++,'[\"http://example.com/image1.jpg\",\"http://example.com/image2.jpg\"]');const result=(cov_25j1qrcp5v().s[44]++,processImageUrls(imageUrls));cov_25j1qrcp5v().s[45]++;expect(result).to.be.an('array');cov_25j1qrcp5v().s[46]++;expect(result).to.have.lengthOf(2);cov_25j1qrcp5v().s[47]++;expect(result[0]).to.equal('http://example.com/image1.jpg');cov_25j1qrcp5v().s[48]++;expect(result[1]).to.equal('http://example.com/image2.jpg');});cov_25j1qrcp5v().s[49]++;it('应该正确处理逗号分隔的URL字符串',()=>{cov_25j1qrcp5v().f[9]++;const imageUrls=(cov_25j1qrcp5v().s[50]++,'http://example.com/image1.jpg, http://example.com/image2.jpg');const result=(cov_25j1qrcp5v().s[51]++,processImageUrls(imageUrls));cov_25j1qrcp5v().s[52]++;expect(result).to.be.an('array');cov_25j1qrcp5v().s[53]++;expect(result).to.have.lengthOf(2);cov_25j1qrcp5v().s[54]++;expect(result[0]).to.equal('http://example.com/image1.jpg');cov_25j1qrcp5v().s[55]++;expect(result[1]).to.equal('http://example.com/image2.jpg');});cov_25j1qrcp5v().s[56]++;it('应该正确处理单个URL字符串',()=>{cov_25j1qrcp5v().f[10]++;const imageUrls=(cov_25j1qrcp5v().s[57]++,'http://example.com/image1.jpg');const result=(cov_25j1qrcp5v().s[58]++,processImageUrls(imageUrls));cov_25j1qrcp5v().s[59]++;expect(result).to.be.an('array');cov_25j1qrcp5v().s[60]++;expect(result).to.have.lengthOf(1);cov_25j1qrcp5v().s[61]++;expect(result[0]).to.equal('http://example.com/image1.jpg');});cov_25j1qrcp5v().s[62]++;it('应该正确处理URL数组',()=>{cov_25j1qrcp5v().f[11]++;const imageUrls=(cov_25j1qrcp5v().s[63]++,['http://example.com/image1.jpg','http://example.com/image2.jpg']);const result=(cov_25j1qrcp5v().s[64]++,processImageUrls(imageUrls));cov_25j1qrcp5v().s[65]++;expect(result).to.be.an('array');cov_25j1qrcp5v().s[66]++;expect(result).to.have.lengthOf(2);cov_25j1qrcp5v().s[67]++;expect(result[0]).to.equal('http://example.com/image1.jpg');cov_25j1qrcp5v().s[68]++;expect(result[1]).to.equal('http://example.com/image2.jpg');});cov_25j1qrcp5v().s[69]++;it('应该过滤掉无效的URL',()=>{cov_25j1qrcp5v().f[12]++;const imageUrls=(cov_25j1qrcp5v().s[70]++,['http://example.com/image1.jpg','not-a-url','ftp://invalid.com/image.jpg']);const result=(cov_25j1qrcp5v().s[71]++,processImageUrls(imageUrls));cov_25j1qrcp5v().s[72]++;expect(result).to.be.an('array');cov_25j1qrcp5v().s[73]++;expect(result).to.have.lengthOf(1);cov_25j1qrcp5v().s[74]++;expect(result[0]).to.equal('http://example.com/image1.jpg');});});// 测试搜索参数处理逻辑
cov_25j1qrcp5v().s[75]++;describe('搜索参数处理逻辑',()=>{cov_25j1qrcp5v().f[13]++;cov_25j1qrcp5v().s[76]++;it('应该优先使用keyword参数',()=>{cov_25j1qrcp5v().f[14]++;cov_25j1qrcp5v().s[77]++;// 模拟搜索参数处理
const handleSearchParams=(search,keyword)=>{cov_25j1qrcp5v().f[15]++;cov_25j1qrcp5v().s[78]++;return(cov_25j1qrcp5v().b[10][0]++,keyword)||(cov_25j1qrcp5v().b[10][1]++,search);};cov_25j1qrcp5v().s[79]++;expect(handleSearchParams('search-value','keyword-value')).to.equal('keyword-value');cov_25j1qrcp5v().s[80]++;expect(handleSearchParams('search-value','')).to.equal('search-value');cov_25j1qrcp5v().s[81]++;expect(handleSearchParams('','keyword-value')).to.equal('keyword-value');cov_25j1qrcp5v().s[82]++;expect(handleSearchParams('','')).to.equal('');});});});
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjb3ZfMjVqMXFyY3A1diIsImFjdHVhbENvdmVyYWdlIiwiZXhwZWN0IiwicyIsInJlcXVpcmUiLCJkZXNjcmliZSIsImYiLCJwcm9jZXNzSW1hZ2VVcmxzIiwiaW1hZ2VVcmxzIiwicHJvY2Vzc2VkVXJscyIsImIiLCJwYXJzZWRJbWFnZXMiLCJKU09OIiwicGFyc2UiLCJzdGFydHNXaXRoIiwiQXJyYXkiLCJpc0FycmF5IiwiZSIsImluY2x1ZGVzIiwic3BsaXQiLCJtYXAiLCJ1cmwiLCJ0cmltIiwiU3RyaW5nIiwiZmlsdGVyIiwicHJvY2Vzc2VkVXJsIiwicmVwbGFjZSIsIml0IiwicmVzdWx0IiwidG8iLCJiZSIsImFuIiwiaGF2ZSIsImxlbmd0aE9mIiwiZXF1YWwiLCJoYW5kbGVTZWFyY2hQYXJhbXMiLCJzZWFyY2giLCJrZXl3b3JkIl0sInNvdXJjZXMiOlsidGVzdF93aGl0ZWJveC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBleHBlY3QgPSByZXF1aXJlKCdjaGFpJykuZXhwZWN0O1xuXG4vLyDku45SZWplY3QuanPkuK3mj5Dlj5blh7rmnaXnmoTlhbPplK7kuJrliqHpgLvovpHlh73mlbBcbmRlc2NyaWJlKCfnmb3nm5LmtYvor5XvvJrmoLjlv4PkuJrliqHpgLvovpEnLCAoKSA9PiB7XG4gICAgLy8g5rWL6K+V5Zu+54mHVVJM5aSE55CG6YC76L6RXG4gICAgZGVzY3JpYmUoJ+WbvueJh1VSTOWkhOeQhuWHveaVsCcsICgpID0+IHtcbiAgICAgICAgLy8g5qih5ouf5Zu+54mHVVJM5aSE55CG6YC76L6RXG4gICAgICAgIGZ1bmN0aW9uIHByb2Nlc3NJbWFnZVVybHMoaW1hZ2VVcmxzKSB7XG4gICAgICAgICAgICBsZXQgcHJvY2Vzc2VkVXJscyA9IFtdO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICBpZiAoaW1hZ2VVcmxzKSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBpbWFnZVVybHMgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIOWwneivleino+aekOS4ukpTT07mlbDnu4RcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBwYXJzZWRJbWFnZXMgPSBKU09OLnBhcnNlKGltYWdlVXJscyk7XG4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIOajgOafpeaYr+WQpuaYr0pTT07lrZfnrKbkuLLnmoTlrZfnrKbkuLLooajnpLrvvIjovazkuYnnmoRKU09O77yJXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHBhcnNlZEltYWdlcyA9PT0gJ3N0cmluZycgJiYgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKHBhcnNlZEltYWdlcy5zdGFydHNXaXRoKCdbJykgfHwgcGFyc2VkSW1hZ2VzLnN0YXJ0c1dpdGgoJ3snKSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyDov5vooYznrKzkuozmrKHop6PmnpBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZWRJbWFnZXMgPSBKU09OLnBhcnNlKHBhcnNlZEltYWdlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHBhcnNlZEltYWdlcykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzZWRVcmxzID0gcGFyc2VkSW1hZ2VzO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgcGFyc2VkSW1hZ2VzID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIOWmguaenOino+aekOe7k+aenOaYr+Wtl+espuS4su+8jOWPr+iDveaYr+WNleS4qlVSTFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2Nlc3NlZFVybHMgPSBbcGFyc2VkSW1hZ2VzXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8g6Kej5p6Q5aSx6LSl77yM5bCd6K+V5oyJ6YCX5Y+35YiG6ZqUXG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoaW1hZ2VVcmxzLmluY2x1ZGVzKCcsJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzZWRVcmxzID0gaW1hZ2VVcmxzLnNwbGl0KCcsJykubWFwKHVybCA9PiB1cmwudHJpbSgpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8g5L2c5Li65Y2V5LiqVVJM5aSE55CGXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvY2Vzc2VkVXJscyA9IFtpbWFnZVVybHMudHJpbSgpXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShpbWFnZVVybHMpKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIOW3sue7j+aYr+aVsOe7hO+8jOebtOaOpeS9v+eUqFxuICAgICAgICAgICAgICAgICAgICBwcm9jZXNzZWRVcmxzID0gaW1hZ2VVcmxzO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIOWFtuS7luexu+Wei++8jOi9rOaNouS4uuWtl+espuS4suaVsOe7hFxuICAgICAgICAgICAgICAgICAgICBwcm9jZXNzZWRVcmxzID0gW1N0cmluZyhpbWFnZVVybHMpXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIC8vIOi/h+a7pOW5tuWkhOeQhuaXoOaViOeahFVSTO+8muenu+mZpOWPjeW8leWPt+W5tumqjOivgVxuICAgICAgICAgICAgcHJvY2Vzc2VkVXJscyA9IHByb2Nlc3NlZFVybHNcbiAgICAgICAgICAgICAgICAuZmlsdGVyKHVybCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdXJsKSByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHByb2Nlc3NlZFVybCA9IHVybC5yZXBsYWNlKC9gL2csICcnKS50cmltKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBwcm9jZXNzZWRVcmwuc3RhcnRzV2l0aCgnaHR0cDovLycpIHx8IHByb2Nlc3NlZFVybC5zdGFydHNXaXRoKCd