Initial commit

This commit is contained in:
sjk
2025-11-17 13:32:54 +08:00
commit e788eab6eb
1659 changed files with 171560 additions and 0 deletions

View File

@@ -0,0 +1,193 @@
/**
* 隐私政策功能测试脚本
* 用于验证隐私政策合规修改是否正确实现
*/
// 模拟微信小程序环境
const mockStorage = {
'privacy_agreed': false,
'privacy_agreed_time': null
};
const mockWx = {
getStorageSync: (key) => {
return mockStorage[key];
},
setStorageSync: (key, value) => {
mockStorage[key] = value;
console.log(`设置存储: ${key} = ${value}`);
},
removeStorageSync: (key) => {
delete mockStorage[key];
console.log(`删除存储: ${key}`);
},
showToast: (options) => {
console.log(`显示提示: ${options.title}`);
},
navigateTo: (options) => {
console.log(`页面跳转: ${options.url}`);
}
};
// 模拟登录页面的数据和方法
const loginPageMock = {
data: {
showPrivacyPopup: false,
privacyAgreed: false
},
setData: function(data) {
Object.assign(this.data, data);
console.log('页面数据更新:', data);
},
showToast: function(message, type = 'none') {
mockWx.showToast({ title: message, icon: type });
},
// 检查隐私政策同意状态
checkPrivacyAgreement: function() {
const privacyAgreed = mockWx.getStorageSync('privacy_agreed');
if (!privacyAgreed) {
console.log('用户未同意隐私政策,显示弹窗');
this.setData({ showPrivacyPopup: true });
} else {
console.log('用户已同意隐私政策,检查登录状态');
this.checkLoginStatus();
}
},
// 隐私政策复选框变化处理
onPrivacyAgreementChange: function(e) {
this.setData({ privacyAgreed: e.detail.value });
console.log('隐私政策同意状态变化:', e.detail.value);
},
// 同意隐私政策
agreePrivacyPolicy: function() {
if (!this.data.privacyAgreed) {
this.showToast('请先勾选同意隐私政策', 'warning');
return;
}
// 保存同意状态
mockWx.setStorageSync('privacy_agreed', true);
mockWx.setStorageSync('privacy_agreed_time', new Date().getTime());
// 关闭隐私政策弹窗
this.setData({ showPrivacyPopup: false });
console.log('用户同意隐私政策,继续登录流程');
this.checkLoginStatus();
},
// 关闭隐私政策弹窗(用户选择暂不同意)
closePrivacyPopup: function() {
this.setData({
showPrivacyPopup: false,
privacyAgreed: false
});
this.showToast('您需要同意隐私政策才能使用小程序', 'warning');
},
// 微信登录
weChatLogin: function() {
// 检查是否已同意隐私政策
const privacyAgreed = mockWx.getStorageSync('privacy_agreed');
if (!privacyAgreed) {
this.showToast('请先同意隐私政策', 'warning');
this.setData({ showPrivacyPopup: true });
return;
}
console.log('开始微信登录流程');
},
checkLoginStatus: function() {
console.log('检查登录状态');
}
};
// 模拟用户中心页面
const usercenterPageMock = {
onClickCell: function({ currentTarget }) {
const { type } = currentTarget.dataset;
switch (type) {
case 'user-agreement':
mockWx.navigateTo({
url: '/pages/user-agreement/index'
});
break;
case 'privacy-policy':
mockWx.navigateTo({
url: '/pages/privacy-policy/index'
});
break;
default:
console.log('其他菜单项点击:', type);
}
}
};
// 测试用例
console.log('=== 隐私政策功能测试开始 ===\n');
// 测试1: 首次使用,页面加载不弹出隐私政策
console.log('测试1: 首次使用页面加载');
console.log('页面加载完成,不会自动弹出隐私政策弹窗');
console.log('预期结果: 页面正常显示,无弹窗\n');
// 测试2: 用户点击登录,触发隐私政策弹窗
console.log('测试2: 用户点击登录按钮');
loginPageMock.weChatLogin();
console.log('预期结果: 弹出隐私政策选择弹窗\n');
// 测试3: 用户尝试不勾选直接同意
console.log('测试3: 用户尝试不勾选直接同意');
loginPageMock.agreePrivacyPolicy();
console.log('预期结果: 显示警告提示\n');
// 测试4: 用户勾选复选框
console.log('测试4: 用户勾选复选框');
loginPageMock.onPrivacyAgreementChange({ detail: { value: true } });
console.log('预期结果: 更新同意状态\n');
// 测试5: 用户同意隐私政策
console.log('测试5: 用户同意隐私政策');
loginPageMock.agreePrivacyPolicy();
console.log('预期结果: 保存同意状态,关闭弹窗\n');
// 测试6: 用户选择暂不同意
console.log('测试6: 用户选择暂不同意');
loginPageMock.setData({ showPrivacyPopup: true, privacyAgreed: false });
loginPageMock.closePrivacyPopup();
console.log('预期结果: 关闭弹窗,显示警告\n');
// 测试7: 已同意用户点击登录
console.log('测试7: 已同意用户点击登录');
// 先设置存储状态
mockWx.setStorageSync('privacy_agreed', true);
loginPageMock.weChatLogin();
console.log('预期结果: 直接进行登录流程,不显示弹窗\n');
// 测试8: 用户中心隐私政策链接
console.log('测试8: 用户中心隐私政策链接');
usercenterPageMock.onClickCell({
currentTarget: {
dataset: { name: 'privacy-policy' }
}
});
console.log('预期结果: 跳转到隐私政策页面\n');
console.log('测试9: 用户中心用户协议链接');
usercenterPageMock.onClickCell({
currentTarget: {
dataset: { name: 'user-agreement' }
}
});
console.log('预期结果: 跳转到用户协议页面\n');
console.log('=== 隐私政策功能测试完成 ===');
console.log('\n所有测试用例执行完毕请检查输出结果是否符合预期。');
console.log('如果所有测试都按预期执行,说明隐私政策合规修改实现正确。');