!9639 增加ability_context_impl.cpp 和 test_observer_proxy.cpp tdd

Merge pull request !9639 from zhubingwei/master
This commit is contained in:
openharmony_ci
2024-07-30 04:09:25 +00:00
committed by Gitee
2 changed files with 108 additions and 6 deletions
@@ -23,7 +23,9 @@
#include "ability_loader.h"
#include "ability_manager_client.h"
#include "ability_thread.h"
#include "free_install_observer_stub.h"
#include "iability_callback.h"
#include "ipc_object_stub.h"
#include "mock_context.h"
#include "mock_lifecycle_observer.h"
#include "mock_serviceability_manager_service.h"
@@ -41,6 +43,7 @@ using namespace OHOS::AbilityRuntime;
namespace {
std::string TEST_LABEL = "testLabel";
OHOS::sptr<MockServiceAbilityManagerService> g_mockAbilityMs = nullptr;
const std::string FLAG_AUTH_READ_URI_PERMISSION = "ability.want.params.uriPermissionFlag";
}
class MyAbilityCallback : public IAbilityCallback {
@@ -256,6 +259,10 @@ HWTEST_F(AbilityContextImplTest, Ability_Context_Impl_SetMissionContinueState_02
if (!Rosen::SceneBoardJudgement::IsSceneBoardEnabled()) {
EXPECT_EQ(ret, ERR_INVALID_VALUE);
}
wptr<IRemoteObject> token(new IPCObjectStub());
context_->SetWeakSessionToken(token);
context_->SetMissionContinueState(state);
}
/**
@@ -616,7 +623,7 @@ HWTEST_F(AbilityContextImplTest, Ability_Context_Impl_StartAbility_0500, Functio
/**
* @tc.number: Ability_Context_Impl_OnAbilityResult_0100
* @tc.name: OnAbilityResult
* @tc.desc: On Ability Result
* @tc.desc: On Ability Result GetAbilityRecordId CreateModuleResourceManager etc
*/
HWTEST_F(AbilityContextImplTest, Ability_Context_Impl_OnAbilityResult_0100, Function | MediumTest | Level1)
{
@@ -626,6 +633,13 @@ HWTEST_F(AbilityContextImplTest, Ability_Context_Impl_OnAbilityResult_0100, Func
context_->OnAbilityResult(code, resultCode, resultData);
auto count = context_->resultCallbacks_.size();
EXPECT_EQ(count, 0);
int accountId = 100;
AAFwk::StartOptions startOpts;
RuntimeTask task;
context_->StartAbilityForResultWithAccount(resultData, accountId, startOpts, code, std::move(task));
context_->OnAbilityResult(code, resultCode, resultData);
context_->GetAbilityRecordId();
context_->CreateModuleResourceManager("moduleName", "bundleName");
}
/**
@@ -1309,6 +1323,20 @@ HWTEST_F(AbilityContextImplTest, Ability_Context_Impl_StartAbilityByType_0100, F
const std::string type = "share";
ErrCode ret = context_->StartAbilityByType(type, wantParams, nullptr);
EXPECT_TRUE(ret == ERR_INVALID_VALUE);
napi_env env;
std::shared_ptr<JsUIExtensionCallback> uiCallback = std::make_shared<JsUIExtensionCallback>(env);
std::shared_ptr<MyAbilityCallback> abilityCallback = std::make_shared<MyAbilityCallback>();
context_->RegisterAbilityCallback(abilityCallback);
context_->StartAbilityByType(type, wantParams, uiCallback);
AAFwk::Want want;
context_->IsUIExtensionExist(want);
int32_t sessionId = 200;
context_->EraseUIExtension(sessionId);
context_->CreateModalUIExtensionWithApp(want);
context_->SetRestoreEnabled(true);
context_->GetRestoreEnabled();
}
/**
@@ -1435,17 +1463,26 @@ HWTEST_F(AbilityContextImplTest, Ability_Context_Impl_MoveAbilityToBackground_01
EXPECT_TRUE(ret == ERR_OK);
}
void RequestDialogResultTaskCallBack(int32_t resultCode, const AAFwk::Want&)
{
}
/**
* @tc.number: Ability_Context_Impl_RestoreWindowStage_0100
* @tc.name: RestoreWindowStage
* @tc.desc: RestoreWindowStage
* @tc.desc: RestoreWindowStage RequestDialogService
*/
HWTEST_F(AbilityContextImplTest, Ability_Context_Impl_RestoreWindowStage_0100, Function | MediumTest | Level1)
{
napi_env env = nullptr;
napi_value value = nullptr;
AAFwk::Want want;
ErrCode ret = context_->RequestDialogService(env, want, nullptr);
EXPECT_TRUE(ret == ERR_OK);
context_->RestoreWindowStage(env, value);
RequestDialogResultTask task = RequestDialogResultTaskCallBack;
context_->RequestDialogService(want, std::move(task));
}
/**
@@ -1459,18 +1496,38 @@ HWTEST_F(AbilityContextImplTest, Ability_Context_Impl_ReportDrawnCompleted_0100,
EXPECT_TRUE(ret == ERR_OK);
}
struct RequestResult2 {
int32_t resultCode {0};
AAFwk::Want resultWant;
RequestDialogResultTask task;
};
/**
* @tc.number: Ability_Context_Impl_RequestDialogResultJSThreadWorker_0100
* @tc.name: RequestDialogResultJSThreadWorker
* @tc.desc: RequestDialogResultJSThreadWorker
* @tc.desc: RequestDialogResultJSThreadWorker, InsertResultCallbackTask etc
*/
HWTEST_F(AbilityContextImplTest, Ability_Context_Impl_RequestDialog_0100, Function | MediumTest | Level1)
{
int status = 1;
context_->RequestDialogResultJSThreadWorker(nullptr, status);
uv_work_t* req = new uv_work_t;
RequestResult2* data = new RequestResult2;
RequestDialogResultTask task = RequestDialogResultTaskCallBack;
data->task = task;
req->data = reinterpret_cast<void *>(data);
context_->RequestDialogResultJSThreadWorker(req, status);
int32_t missionId = -1;
ErrCode ret = context_->GetMissionId(missionId);
EXPECT_FALSE(ret == ERR_OK);
int32_t missionId2 = 1;
EXPECT_EQ(context_->GetMissionId(missionId2), ERR_OK);
RuntimeTask task2 = [](const int32_t count, const Want& want, bool isInner)
{ ; };
int requestCode = 22;
context_->InsertResultCallbackTask(requestCode, std::move(task2));
context_->RemoveResultCallbackTask(requestCode);
}
/**
@@ -1561,6 +1618,20 @@ HWTEST_F(AbilityContextImplTest, Ability_Context_Impl_OpenAtomicService_0100, Fu
context_->OpenAtomicService(want, options, requestCode, std::move(task));
EXPECT_TRUE(context_ != nullptr);
}
/**
* @tc.number: Ability_Context_Impl_OpenLink_0100
* @tc.name: OpenLink
* @tc.desc: OpenLink GetRestoreEnabled SetRestoreEnabled AddFreeInstallObserver etc
*/
HWTEST_F(AbilityContextImplTest, Ability_Context_Impl_OpenLink_0100, Function | MediumTest | Level1)
{
AAFwk::Want want;
int requestCode = 0;
context_->OpenLink(want, requestCode);
context_->SetRestoreEnabled(true);
EXPECT_EQ(context_->GetRestoreEnabled(), true);
}
} // namespace AppExecFwk
} // namespace OHOS
@@ -39,6 +39,7 @@ using namespace OHOS::AAFwk;
namespace {
const std::string CMD = "ls -l";
const std::string WRONGCMD = "kk -l";
} // namespace
class TestObserverProxyTest : public ::testing::Test {
@@ -115,10 +116,22 @@ public:
std::u16string GetObjectDescriptor() const
{
std::u16string descriptor = std::u16string();
return descriptor;
if (bExchange) {
std::u16string descriptor = std::u16string();
return descriptor;
} else {
std::u16string descriptor = std::u16string(u"testDescriptor");
return descriptor;
}
}
static void SetExchange(bool bEx) {
bExchange = bEx;
}
private:
static bool bExchange;
};
bool MockIRemoteObject::bExchange = true;
}
/**
@@ -130,8 +143,16 @@ HWTEST_F(TestObserverProxyTest, Test_Observer_Proxy_Test_0100, TestSize.Level1)
{
TAG_LOGI(AAFwkTag::TEST, "Test_Observer_Proxy_Test_0100 start");
OHOS::sptr<OHOS::IRemoteObject> object = new OHOS::MockIRemoteObject();
OHOS::MockIRemoteObject::SetExchange(true);
TestObserverProxy testObserverProxy(object);
EXPECT_EQ(testObserverProxy.ExecuteShellCommand(CMD.c_str(), 0).stdResult.size(), 0);
OHOS::MockIRemoteObject::SetExchange(false);
testObserverProxy.ExecuteShellCommand(CMD.c_str(), 0);
testObserverProxy.ExecuteShellCommand("", 0);
std::string cmdstr;
testObserverProxy.ExecuteShellCommand(cmdstr, 0);
testObserverProxy.ExecuteShellCommand(cmdstr, false);
testObserverProxy.ExecuteShellCommand(WRONGCMD.c_str(), 0);
TAG_LOGI(AAFwkTag::TEST, "Test_Observer_Proxy_Test_0100 end");
}
@@ -145,8 +166,13 @@ HWTEST_F(TestObserverProxyTest, Test_Observer_Proxy_Test_0200, TestSize.Level1)
TAG_LOGI(AAFwkTag::TEST, "Test_Observer_Proxy_Test_0200 start");
OHOS::sptr<OHOS::IRemoteObject> object = new OHOS::MockIRemoteObject();
ASSERT_NE(object, nullptr);
OHOS::MockIRemoteObject::SetExchange(true);
TestObserverProxy testObserverProxy(object);
testObserverProxy.TestStatus(CMD.c_str(), 0);
OHOS::MockIRemoteObject::SetExchange(false);
testObserverProxy.TestStatus(CMD.c_str(), 0);
testObserverProxy.TestStatus(CMD.c_str(), false);
testObserverProxy.TestStatus(WRONGCMD.c_str(), 0);
TAG_LOGI(AAFwkTag::TEST, "Test_Observer_Proxy_Test_0200 end");
}
@@ -160,7 +186,12 @@ HWTEST_F(TestObserverProxyTest, Test_Observer_Proxy_Test_0300, TestSize.Level1)
TAG_LOGI(AAFwkTag::TEST, "Test_Observer_Proxy_Test_0300 start");
OHOS::sptr<OHOS::IRemoteObject> object = new OHOS::MockIRemoteObject();
ASSERT_NE(object, nullptr);
OHOS::MockIRemoteObject::SetExchange(true);
TestObserverProxy testObserverProxy(object);
testObserverProxy.TestFinished(CMD.c_str(), 0);
OHOS::MockIRemoteObject::SetExchange(false);
testObserverProxy.TestFinished(CMD.c_str(), 0);
testObserverProxy.TestFinished(CMD.c_str(), false);
testObserverProxy.TestFinished(WRONGCMD.c_str(), 0);
TAG_LOGI(AAFwkTag::TEST, "Test_Observer_Proxy_Test_0300 end");
}
}