Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Xts Acts
提交
76f9c39f
X
Xts Acts
项目概览
OpenHarmony
/
Xts Acts
1 年多 前同步成功
通知
9
Star
22
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
X
Xts Acts
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
76f9c39f
编写于
4月 26, 2022
作者:
I
inter515
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
删除setAbilityEnabled和setApplicationEnabled
Signed-off-by:
N
inter515
<
ry.renyi@huawei.com
>
上级
cbae5c74
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
55 addition
and
241 deletion
+55
-241
appexecfwk/bundle_standard/bundlemanager/actsbundlemanageretstest/entry/src/main/ets/MainAbility/test/IsAbilityEnabledETSUnit.ets
...src/main/ets/MainAbility/test/IsAbilityEnabledETSUnit.ets
+28
-149
appexecfwk/bundle_standard/bundlemanager/actsbundlemanageretstest/entry/src/main/ets/MainAbility/test/IsApplicationEnabledETSUnit.ets
...main/ets/MainAbility/test/IsApplicationEnabledETSUnit.ets
+27
-92
未找到文件。
appexecfwk/bundle_standard/bundlemanager/actsbundlemanageretstest/entry/src/main/ets/MainAbility/test/IsAbilityEnabledETSUnit.ets
浏览文件 @
76f9c39f
...
...
@@ -31,228 +31,107 @@ const ABILITY_ERROR = {
export default function isAbilityEnabledETSUnit() {
describe('
context_
isAbilityEnabled_test', function () {
describe('isAbilityEnabled_test', function () {
/*
* @tc.number:
context_
isAbilityEnabled_test_0100
* @tc.number: isAbilityEnabled_test_0100
* @tc.name: isAbilityEnabled : Get whether to enable a specified ability
* @tc.desc: Check the return value of the interface (by promise)
* @tc.level 0
*/
it('
context_
isAbilityEnabled_test_0100', 0, async function (done) {
it('isAbilityEnabled_test_0100', 0, async function (done) {
let timeOldStamp = await Utils.getNowTime();
let mData;
await Bundle.isAbilityEnabled(ABILITY).then((data) => {
let timeNewStamp = Utils.getNowTime();
Utils.getDurationTime('[
context_
isAbilityEnabled_test_0100]', timeOldStamp, timeNewStamp);
Utils.getDurationTime('[isAbilityEnabled_test_0100]', timeOldStamp, timeNewStamp);
mData = data;
console.info('[
context_
isAbilityEnabled_test_0100] promise data is: ' + JSON.stringify(data));
console.info('[isAbilityEnabled_test_0100] promise data is: ' + JSON.stringify(data));
}).catch((error) => {
console.info('[
context_
isAbilityEnabled_test_0100] promise error is: ' + error);
console.info('[isAbilityEnabled_test_0100] promise error is: ' + error);
expect(error).assertFail();
});
getAbilityEnabled
Success('[context_
isAbilityEnabled_test_0100]', mData);
getAbilityEnabled
True('[
isAbilityEnabled_test_0100]', mData);
done();
});
/*
* @tc.number:
context_
isAbilityEnabled_test_0200
* @tc.number: isAbilityEnabled_test_0200
* @tc.name: isAbilityEnabled : Get whether to enable a specified ability
* @tc.desc: Check the return value of the interface (by callback)
* @tc.level 0
*/
it('
context_
isAbilityEnabled_test_0200', 0, async function (done) {
it('isAbilityEnabled_test_0200', 0, async function (done) {
let timeOldStamp = await Utils.getNowTime();
let mData;
Bundle.isAbilityEnabled(ABILITY, (error, data) => {
if (error) {
console.error('[
context_
isAbilityEnabled_test_0200]Operation failed. Cause: ' + JSON.stringify(error));
console.error('[isAbilityEnabled_test_0200]Operation failed. Cause: ' + JSON.stringify(error));
expect(error).assertFail();
}
let timeNewStamp = Utils.getNowTime();
Utils.getDurationTime('[
context_
isAbilityEnabled_test_0200]', timeOldStamp, timeNewStamp);
Utils.getDurationTime('[isAbilityEnabled_test_0200]', timeOldStamp, timeNewStamp);
mData = data;
console.info('[context_isAbilityEnabled_test_0200] callBack error: ' + error);
console.info('[context_isAbilityEnabled_test_0200] callBack data is:' + JSON.stringify(data));
console.info('[isAbilityEnabled_test_0200] callBack data is:' + JSON.stringify(data));
});
await Utils.sleep(2000);
getAbilityEnabled
Success('[context_
isAbilityEnabled_test_0200]', mData);
getAbilityEnabled
True('[
isAbilityEnabled_test_0200]', mData);
done();
});
/*
* @tc.number:
context_
isAbilityEnabled_test_0300
* @tc.number: isAbilityEnabled_test_0300
* @tc.name: isAbilityEnabled : Get whether to enable a specified ability
* @tc.desc: Check the return value of the interface (by promise)
* @tc.level 0
*/
it('
context_
isAbilityEnabled_test_0300', 0, async function (done) {
it('isAbilityEnabled_test_0300', 0, async function (done) {
let timeOldStamp = await Utils.getNowTime();
let mData;
await Bundle.isAbilityEnabled(ABILITY_ERROR).then((data) => {
let timeNewStamp = Utils.getNowTime();
Utils.getDurationTime('[
context_
isAbilityEnabled_test_0300]', timeOldStamp, timeNewStamp);
Utils.getDurationTime('[isAbilityEnabled_test_0300]', timeOldStamp, timeNewStamp);
mData = data;
console.info('[
context_
isAbilityEnabled_test_0300] promise data is: ' + JSON.stringify(data));
console.info('[isAbilityEnabled_test_0300] promise data is: ' + JSON.stringify(data));
}).catch((error) => {
let timeNewStamp = Utils.getNowTime();
Utils.getDurationTime('[
context_
isAbilityEnabled_test_0300]', timeOldStamp, timeNewStamp);
console.info('[
context_
isAbilityEnabled_test_0300] promise error is: ' + error);
Utils.getDurationTime('[isAbilityEnabled_test_0300]', timeOldStamp, timeNewStamp);
console.info('[isAbilityEnabled_test_0300] promise error is: ' + error);
expect(error).assertFail();
});
getAbilityEnabledFalse('[
context_
isAbilityEnabled_test_0300]', mData);
getAbilityEnabledFalse('[isAbilityEnabled_test_0300]', mData);
done();
});
/*
* @tc.number:
context_
isAbilityEnabled_test_0400
* @tc.number: isAbilityEnabled_test_0400
* @tc.name: isAbilityEnabled : Get whether to enable a specified ability
* @tc.desc: Check the return value of the interface (by callback)
* @tc.level 0
*/
it('
context_
isAbilityEnabled_test_0400', 0, async function (done) {
it('isAbilityEnabled_test_0400', 0, async function (done) {
let timeOldStamp = await Utils.getNowTime();
let mData;
Bundle.isAbilityEnabled(ABILITY_ERROR, (error, data) => {
if (error) {
console.error('[
context_
isAbilityEnabled_test_0400]Operation failed. Cause: ' + JSON.stringify(error));
console.error('[isAbilityEnabled_test_0400]Operation failed. Cause: ' + JSON.stringify(error));
expect(error).assertFail();
}
let timeNewStamp = Utils.getNowTime();
Utils.getDurationTime('[
context_
isAbilityEnabled_test_0300]', timeOldStamp, timeNewStamp);
Utils.getDurationTime('[isAbilityEnabled_test_0300]', timeOldStamp, timeNewStamp);
mData = data;
console.info('[context_isAbilityEnabled_test_0400] callBack error: ' + error);
console.info('[context_isAbilityEnabled_test_0400] callBack data is:' + JSON.stringify(data));
console.info('[isAbilityEnabled_test_0400] callBack data is:' + JSON.stringify(data));
});
await Utils.sleep(2000);
console.info('[
context_
isAbilityEnabled_test_0400] Failure ');
getAbilityEnabledFalse('[
context_
isAbilityEnabled_test_0300]', mData);
console.info('[isAbilityEnabled_test_0400] Failure ');
getAbilityEnabledFalse('[isAbilityEnabled_test_0300]', mData);
done();
});
/*
* @tc.number: context_isAbilityEnabled_test_0500
* @tc.name: isAbilityEnabled : Get whether to enable a specified ability
* @tc.desc: Check the return value of the interface (by promise)
* @tc.level 0
*/
it('context_isAbilityEnabled_test_0500', 0, async function (done) {
await Bundle.setAbilityEnabled(ABILITY, true).then((data) => {
console.info('[context_isAbilityEnabled_test_0500] set enable true data is: ' + JSON.stringify(data));
}).catch((error) => {
console.info('[context_isAbilityEnabled_test_0500] set enable true error is: ' + error);
expect(error).assertFail();
})
let timeOldStamp = await Utils.getNowTime();
let mData;
await Bundle.isAbilityEnabled(ABILITY).then((data) => {
let timeNewStamp = Utils.getNowTime();
Utils.getDurationTime('[context_isAbilityEnabled_test_0500]', timeOldStamp, timeNewStamp);
mData = data;
console.info('[context_isAbilityEnabled_test_0500] promise data is: ' + JSON.stringify(data));
}).catch((error) => {
console.info('[context_isAbilityEnabled_test_0500] promise error is: ' + error);
expect(error).assertFail();
});
getAbilityEnabledTrue('[context_isAbilityEnabled_test_0500]', mData);
done();
});
/*
* @tc.number: context_isAbilityEnabled_test_0600
* @tc.name: isAbilityEnabled : Get whether to enable a specified ability
* @tc.desc: Check the return value of the interface (by promise)
* @tc.level 0
*/
it('context_isAbilityEnabled_test_0600', 0, async function (done) {
await Bundle.setAbilityEnabled(ABILITY, false).then((data) => {
console.info('[context_isAbilityEnabled_test_0600] set enable false data is: ' + JSON.stringify(data));
}).catch((error) => {
console.info('[context_isAbilityEnabled_test_0600] set enable false error is: ' + error);
expect(error).assertFail();
})
let timeOldStamp = await Utils.getNowTime();
let mData;
await Bundle.isAbilityEnabled(ABILITY).then((data) => {
let timeNewStamp = Utils.getNowTime();
Utils.getDurationTime('[context_isAbilityEnabled_test_0600]', timeOldStamp, timeNewStamp);
mData = data;
console.info('[context_isAbilityEnabled_test_0600] promise data is: ' + JSON.stringify(data));
}).catch((error) => {
console.info('[context_isAbilityEnabled_test_0600] promise error is: ' + error);
expect(error).assertFail();
});
getAbilityEnabledFalse('[context_isAbilityEnabled_test_0600]', mData);
done();
});
/*
* @tc.number: context_isAbilityEnabled_test_0700
* @tc.name: isAbilityEnabled : Get whether to enable a specified ability
* @tc.desc: Check the return value of the interface (by callback)
* @tc.level 0
*/
it('context_isAbilityEnabled_test_0700', 0, async function (done) {
await Bundle.setAbilityEnabled(ABILITY, true).then((data) => {
console.info('[context_isAbilityEnabled_test_0700] set enable true data is: ' + JSON.stringify(data));
}).catch((error) => {
console.info('[context_isAbilityEnabled_test_0700] set enable true error is: ' + error);
expect(error).assertFail();
})
let timeOldStamp = await Utils.getNowTime();
let mData;
Bundle.isAbilityEnabled(ABILITY, (error, data) => {
if (error) {
console.error('[context_isAbilityEnabled_test_0700]Operation failed. Cause: ' + JSON.stringify(error));
expect(error).assertFail();
}
let timeNewStamp = Utils.getNowTime();
Utils.getDurationTime('[context_isAbilityEnabled_test_0700]', timeOldStamp, timeNewStamp);
mData = data;
console.info('[context_isAbilityEnabled_test_0700] callBack error: ' + error);
console.info('[context_isAbilityEnabled_test_0700] callBack data is:' + JSON.stringify(data));
});
await Utils.sleep(2000);
getAbilityEnabledTrue('[context_isAbilityEnabled_test_0700]', mData);
done();
});
/*
* @tc.number: context_isAbilityEnabled_test_0800
* @tc.name: isAbilityEnabled : Get whether to enable a specified ability
* @tc.desc: Check the return value of the interface (by callback)
* @tc.level 0
*/
it('context_isAbilityEnabled_test_0800', 0, async function (done) {
await Bundle.setAbilityEnabled(ABILITY, false).then((data) => {
console.info('[context_isAbilityEnabled_test_0800] set enable false data is: ' + JSON.stringify(data));
}).catch((error) => {
console.info('[context_isAbilityEnabled_test_0800] set enable false error is: ' + error);
expect(error).assertFail();
})
let timeOldStamp = await Utils.getNowTime();
let mData;
Bundle.isAbilityEnabled(ABILITY, (error, data) => {
if (error) {
console.error('[context_isAbilityEnabled_test_0800]Operation failed. Cause: ' + JSON.stringify(error));
expect(error).assertFail();
}
let timeNewStamp = Utils.getNowTime();
Utils.getDurationTime('[context_isAbilityEnabled_test_0800]', timeOldStamp, timeNewStamp);
mData = data;
console.info('[context_isAbilityEnabled_test_0800] callBack error: ' + error);
console.info('[context_isAbilityEnabled_test_0800] callBack data is:' + JSON.stringify(data));
});
await Utils.sleep(2000);
getAbilityEnabledFalse('[context_isAbilityEnabled_test_0800]', mData);
done();
});
function getAbilityEnabledSuccess(msg, data) {
console.log(msg + ' start ' + JSON.stringify(data));
console.log(msg + ' data : ' + data);
expect(typeof (data)).assertEqual('boolean')
expect(typeof (data)).assertEqual('boolean');
}
function getAbilityEnabledTrue(msg, data) {
...
...
appexecfwk/bundle_standard/bundlemanager/actsbundlemanageretstest/entry/src/main/ets/MainAbility/test/IsApplicationEnabledETSUnit.ets
浏览文件 @
76f9c39f
...
...
@@ -21,170 +21,105 @@ const BUNDLE_NAME_ERROR = 'com.ohos.acepackage.error'
export default function IsApplicationEnabledETSUnit() {
describe('
context_
isApplicationEnabled_test', function () {
describe('isApplicationEnabled_test', function () {
/*
* @tc.number:
context_
isApplicationEnabled_test_0100
* @tc.number: isApplicationEnabled_test_0100
* @tc.name: isApplicationEnabled : Get whether to enable a specified application
* @tc.desc: Check the return value of the interface (by promise)
* @tc.level 0
*/
it('
context_
isApplicationEnabled_test_0100', 0, async function (done) {
it('isApplicationEnabled_test_0100', 0, async function (done) {
let timeOldStamp = await Utils.getNowTime();
let mData;
await Bundle.isApplicationEnabled(BUNDLE_NAME).then((data) => {
let timeNewStamp = Utils.getNowTime();
Utils.getDurationTime('[
context_
isApplicationEnabled_test_0100]', timeOldStamp, timeNewStamp);
Utils.getDurationTime('[isApplicationEnabled_test_0100]', timeOldStamp, timeNewStamp);
mData = data;
console.info('[
context_
isApplicationEnabled_test_0100] promise data is: ' + JSON.stringify(data));
console.info('[isApplicationEnabled_test_0100] promise data is: ' + JSON.stringify(data));
}).catch((error) => {
console.info('[
context_
isApplicationEnabled_test_0100] promise error is: ' + error);
console.info('[isApplicationEnabled_test_0100] promise error is: ' + error);
expect(error).assertFail();
});
getApplicationEnabled
Success('[context_
isApplicationEnabled_test_0100]', mData);
getApplicationEnabled
True('[
isApplicationEnabled_test_0100]', mData);
done();
});
/*
* @tc.number:
context_
isApplicationEnabled_test_0200
* @tc.number: isApplicationEnabled_test_0200
* @tc.name: isApplicationEnabled : Get whether to enable a specified application
* @tc.desc: Check the return value of the interface (by callback)
* @tc.level 0
*/
it('
context_
isApplicationEnabled_test_0200', 0, async function (done) {
it('isApplicationEnabled_test_0200', 0, async function (done) {
let timeOldStamp = await Utils.getNowTime();
let mData;
Bundle.isApplicationEnabled(BUNDLE_NAME, (error, data) => {
if (error) {
console.error('[
context_
isApplicationEnabled_test_0200]Operation failed. Cause: ' + JSON.stringify(error));
console.error('[isApplicationEnabled_test_0200]Operation failed. Cause: ' + JSON.stringify(error));
expect(error).assertFail();
}
let timeNewStamp = Utils.getNowTime();
Utils.getDurationTime('[
context_
isApplicationEnabled_test_0200]', timeOldStamp, timeNewStamp);
Utils.getDurationTime('[isApplicationEnabled_test_0200]', timeOldStamp, timeNewStamp);
mData = data;
console.info('[context_isApplicationEnabled_test_0200] callBack error: ' + error);
console.info('[context_isApplicationEnabled_test_0200] callBack data is:' + JSON.stringify(data));
console.info('[isApplicationEnabled_test_0200] callBack data is:' + JSON.stringify(data));
});
await Utils.sleep(2000);
getApplicationEnabled
Success('[context_
isApplicationEnabled_test_0200]', mData);
getApplicationEnabled
True('[
isApplicationEnabled_test_0200]', mData);
done();
});
/*
* @tc.number:
context_
isApplicationEnabled_test_0300
* @tc.number: isApplicationEnabled_test_0300
* @tc.name: isApplicationEnabled : Get whether to enable a specified application
* @tc.desc: Check the return value of the interface (by promise)
* @tc.level 0
*/
it('
context_
isApplicationEnabled_test_0300', 0, async function (done) {
it('isApplicationEnabled_test_0300', 0, async function (done) {
let timeOldStamp = await Utils.getNowTime();
let mData;
await Bundle.isApplicationEnabled(BUNDLE_NAME_ERROR).then((data) => {
let timeNewStamp = Utils.getNowTime();
Utils.getDurationTime('[
context_
isApplicationEnabled_test_0300]', timeOldStamp, timeNewStamp);
Utils.getDurationTime('[isApplicationEnabled_test_0300]', timeOldStamp, timeNewStamp);
mData = data;
console.info('[
context_
isApplicationEnabled_test_0300] promise data is: ' + JSON.stringify(data));
console.info('[isApplicationEnabled_test_0300] promise data is: ' + JSON.stringify(data));
}).catch((error) => {
let timeNewStamp = Utils.getNowTime();
Utils.getDurationTime('[
context_
isApplicationEnabled_test_0300]', timeOldStamp, timeNewStamp);
console.info('[
context_
isApplicationEnabled_test_0300] promise error is: ' + error);
Utils.getDurationTime('[isApplicationEnabled_test_0300]', timeOldStamp, timeNewStamp);
console.info('[isApplicationEnabled_test_0300] promise error is: ' + error);
expect(error).assertFail();
});
getApplicationEnabledFalse('[
context_
isApplicationEnabled_test_0300]', mData);
getApplicationEnabledFalse('[isApplicationEnabled_test_0300]', mData);
done();
});
/*
* @tc.number:
context_
isApplicationEnabled_test_0400
* @tc.number: isApplicationEnabled_test_0400
* @tc.name: isApplicationEnabled : Get whether to enable a specified application
* @tc.desc: Check the return value of the interface (by callback)
* @tc.level 0
*/
it('
context_
isApplicationEnabled_test_0400', 0, async function (done) {
it('isApplicationEnabled_test_0400', 0, async function (done) {
let timeOldStamp = await Utils.getNowTime();
let mData;
Bundle.isApplicationEnabled(BUNDLE_NAME_ERROR, (error, data) => {
if (error) {
console.error('[
context_
isApplicationEnabled_test_0400]Operation failed. Cause: ' + JSON.stringify(error));
console.error('[isApplicationEnabled_test_0400]Operation failed. Cause: ' + JSON.stringify(error));
expect(error).assertFail();
}
let timeNewStamp = Utils.getNowTime();
Utils.getDurationTime('[
context_
isApplicationEnabled_test_0400]', timeOldStamp, timeNewStamp);
Utils.getDurationTime('[isApplicationEnabled_test_0400]', timeOldStamp, timeNewStamp);
mData = data;
console.info('[context_isApplicationEnabled_test_0400] callBack error: ' + error);
console.info('[context_isApplicationEnabled_test_0400] callBack data is:' + JSON.stringify(data));
console.info('[isApplicationEnabled_test_0400] callBack data is:' + JSON.stringify(data));
});
await Utils.sleep(2000);
getApplicationEnabledFalse('[context_isApplicationEnabled_test_0300]', mData);
console.info('[context_isApplicationEnabled_test_0400] Failure ');
done();
});
/*
* @tc.number: context_isApplicationEnabled_test_0500
* @tc.name: isApplicationEnabled : Get whether to enable a specified application
* @tc.desc: Check the return value of the interface (by promise)
* @tc.level 0
*/
it('context_isApplicationEnabled_test_0500', 0, async function (done) {
await Bundle.setApplicationEnabled(BUNDLE_NAME, true).then((data) => {
console.info('[context_isApplicationEnabled_test_0500] set enable true data is: ' + JSON.stringify(data));
}).catch((error) => {
console.info('[context_isApplicationEnabled_test_0500] set enable true error is: ' + error);
expect(error).assertFail();
});
await Utils.sleep(1000);
let timeOldStamp = await Utils.getNowTime();
let mData;
await Bundle.isApplicationEnabled(BUNDLE_NAME).then((data) => {
let timeNewStamp = Utils.getNowTime();
Utils.getDurationTime('[context_isApplicationEnabled_test_0500]', timeOldStamp, timeNewStamp);
mData = data;
console.info('[context_isApplicationEnabled_test_0500] promise data is: ' + JSON.stringify(data));
}).catch((error) => {
console.info('[context_isApplicationEnabled_test_0500] promise error is: ' + error);
expect(error).assertFail();
});
getApplicationEnabledTrue('[context_isApplicationEnabled_test_0500]', mData);
done();
});
/*
* @tc.number: context_isApplicationEnabled_test_0600
* @tc.name: isApplicationEnabled : Get whether to enable a specified application
* @tc.desc: Check the return value of the interface (by callback)
* @tc.level 0
*/
it('context_isApplicationEnabled_test_0600', 0, async function (done) {
await Bundle.setApplicationEnabled(BUNDLE_NAME, false).then((data) => {
console.info('[context_isApplicationEnabled_test_0600] set enable false data is: ' + JSON.stringify(data));
}).catch((error) => {
console.info('[context_isApplicationEnabled_test_0600] set enable false error is: ' + error);
expect(error).assertFail();
});
await Utils.sleep(1000);
let timeOldStamp = await Utils.getNowTime();
let mData;
Bundle.isApplicationEnabled(BUNDLE_NAME, (error, data) => {
if (error) {
console.error('[context_isApplicationEnabled_test_0600]Operation failed. Cause: ' + JSON.stringify(error));
expect(error).assertFail();
}
let timeNewStamp = Utils.getNowTime();
Utils.getDurationTime('[context_isApplicationEnabled_test_0600]', timeOldStamp, timeNewStamp);
mData = data;
console.info('[context_isApplicationEnabled_test_0600] callBack error: ' + error);
console.info('[context_isApplicationEnabled_test_0600] callBack data is:' + JSON.stringify(data));
});
await Utils.sleep(2000);
getApplicationEnabledFalse('[context_isApplicationEnabled_test_0600]', mData);
getApplicationEnabledFalse('[isApplicationEnabled_test_0300]', mData);
done();
});
function getApplicationEnabledSuccess(msg, data) {
console.log(msg + ' start ' + JSON.stringify(data));
console.log(msg + ' data : ' + data);
expect(typeof (data)).assertEqual('boolean')
expect(typeof (data)).assertEqual('boolean');
}
function getApplicationEnabledTrue(msg, data) {
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录