mirror of
https://github.com/openharmony/ability_ability_runtime.git
synced 2026-08-24 22:21:36 -04:00
!9639 增加ability_context_impl.cpp 和 test_observer_proxy.cpp tdd
Merge pull request !9639 from zhubingwei/master
This commit is contained in:
+74
-3
@@ -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");
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user