Initial commit
This commit is contained in:
193
miniprogram/test_privacy_policy.js
Normal file
193
miniprogram/test_privacy_policy.js
Normal 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('如果所有测试都按预期执行,说明隐私政策合规修改实现正确。');
|
||||
Reference in New Issue
Block a user