Skip to content

Commit 681e6d0

Browse files
authored
Add LifecycleChannel unit tests (#160)
Signed-off-by: Boram Bae <[email protected]>
1 parent caf6f5b commit 681e6d0

File tree

2 files changed

+87
-0
lines changed

2 files changed

+87
-0
lines changed

shell/platform/tizen/BUILD.gn

+1
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,7 @@ executable("flutter_tizen_unittests") {
268268
testonly = true
269269

270270
sources = [
271+
"channels/lifecycle_channel_unittests.cc",
271272
"channels/settings_channel_unittests.cc",
272273
"flutter_project_bundle_unittests.cc",
273274
"flutter_tizen_engine_unittest.cc",
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
// Copyright 2021 Samsung Electronics Co., Ltd. All rights reserved.
2+
// Use of this source code is governed by a BSD-style license that can be
3+
// found in the LICENSE file.
4+
5+
#include "flutter/shell/platform/tizen/channels/lifecycle_channel.h"
6+
#include "flutter/shell/platform/tizen/channels/string_codec.h"
7+
#include "flutter/shell/platform/tizen/testing/test_binary_messenger.h"
8+
#include "gtest/gtest.h"
9+
10+
namespace {
11+
12+
constexpr char kChannelName[] = "flutter/lifecycle";
13+
14+
constexpr char kInactive[] = "AppLifecycleState.inactive";
15+
constexpr char kResumed[] = "AppLifecycleState.resumed";
16+
constexpr char kPaused[] = "AppLifecycleState.paused";
17+
constexpr char kDetached[] = "AppLifecycleState.detached";
18+
} // namespace
19+
20+
namespace flutter {
21+
namespace testing {
22+
23+
std::unique_ptr<TestBinaryMessenger> CreateMessenger(
24+
std::string& decoded_message) {
25+
return std::make_unique<TestBinaryMessenger>(
26+
[&decoded_message](const std::string& channel, const uint8_t* message,
27+
size_t message_size, BinaryReply reply) {
28+
if (channel == kChannelName) {
29+
std::unique_ptr<EncodableValue> value =
30+
StringCodec::GetInstance().DecodeMessage(message, message_size);
31+
if (auto pval = std::get_if<std::string>(value.get())) {
32+
decoded_message = *pval;
33+
}
34+
} else {
35+
// Should not be reached.
36+
EXPECT_TRUE(false);
37+
}
38+
});
39+
}
40+
41+
TEST(LifecycleChannel, AppIsInactive) {
42+
std::string decoded_message;
43+
std::unique_ptr<TestBinaryMessenger> messenger =
44+
CreateMessenger(decoded_message);
45+
LifecycleChannel lifecycle_channel(messenger.get());
46+
47+
lifecycle_channel.AppIsInactive();
48+
49+
EXPECT_TRUE(decoded_message == kInactive);
50+
}
51+
52+
TEST(LifecycleChannel, AppIsResumed) {
53+
std::string decoded_message;
54+
std::unique_ptr<TestBinaryMessenger> messenger =
55+
CreateMessenger(decoded_message);
56+
LifecycleChannel lifecycle_channel(messenger.get());
57+
58+
lifecycle_channel.AppIsResumed();
59+
60+
EXPECT_TRUE(decoded_message == kResumed);
61+
}
62+
63+
TEST(LifecycleChannel, AppIsPaused) {
64+
std::string decoded_message;
65+
std::unique_ptr<TestBinaryMessenger> messenger =
66+
CreateMessenger(decoded_message);
67+
LifecycleChannel lifecycle_channel(messenger.get());
68+
69+
lifecycle_channel.AppIsPaused();
70+
71+
EXPECT_TRUE(decoded_message == kPaused);
72+
}
73+
74+
TEST(LifecycleChannel, AppIsDetached) {
75+
std::string decoded_message;
76+
std::unique_ptr<TestBinaryMessenger> messenger =
77+
CreateMessenger(decoded_message);
78+
LifecycleChannel lifecycle_channel(messenger.get());
79+
80+
lifecycle_channel.AppIsDetached();
81+
82+
EXPECT_TRUE(decoded_message == kDetached);
83+
}
84+
85+
} // namespace testing
86+
} // namespace flutter

0 commit comments

Comments
 (0)