1a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu/*
2a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu * Copyright 2015 The Android Open Source Project
3a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu *
4a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu * Licensed under the Apache License, Version 2.0 (the "License");
5a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu * you may not use this file except in compliance with the License.
6a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu * You may obtain a copy of the License at
7a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu *
8a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu *      http://www.apache.org/licenses/LICENSE-2.0
9a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu *
10a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu * Unless required by applicable law or agreed to in writing, software
11a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu * distributed under the License is distributed on an "AS IS" BASIS,
12a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu * See the License for the specific language governing permissions and
14a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu * limitations under the License.
15a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu */
16a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu
17a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu//#define LOG_NDEBUG 0
18a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu#define LOG_TAG "ServiceLog_test"
19a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu#include <utils/Log.h>
20a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu
21a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu#include <gtest/gtest.h>
22a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu
23a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu#include "ServiceLog.h"
24a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu
25a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wunamespace android {
26a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu
27a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wuclass ServiceLogTest : public ::testing::Test {
28a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wupublic:
29a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu    ServiceLogTest() : mServiceLog(new ServiceLog(3)) {
30a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu    }
31a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu
32a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wuprotected:
33a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu    sp<ServiceLog> mServiceLog;
34a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu};
35a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu
36a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua WuTEST_F(ServiceLogTest, addThenToString) {
37022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu    String8 logString;
38022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu
39a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu    mServiceLog->add(String8("log1"));
40022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu    logString = mServiceLog->toString();
41022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu    EXPECT_TRUE(logString.contains("log1"));
42022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu    ALOGV("toString:\n%s", logString.string());
43022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu
44022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu    static const char kTestLogPrefix[] = "testlogprefix: ";
45022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu    logString = mServiceLog->toString(kTestLogPrefix);
46022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu    EXPECT_TRUE(logString.contains(kTestLogPrefix));
47022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu    EXPECT_TRUE(logString.contains("log1"));
48022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu    ALOGV("toString:\n%s", logString.string());
49a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu
50a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu    mServiceLog->add(String8("log2"));
51022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu    logString = mServiceLog->toString();
52022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu    EXPECT_TRUE(logString.contains("log1"));
53022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu    EXPECT_TRUE(logString.contains("log2"));
54022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu    ALOGV("toString:\n%s", logString.string());
55a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu
56a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu    mServiceLog->add(String8("log3"));
57022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu    logString = mServiceLog->toString();
58022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu    EXPECT_TRUE(logString.contains("log1"));
59022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu    EXPECT_TRUE(logString.contains("log2"));
60022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu    EXPECT_TRUE(logString.contains("log3"));
61022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu    ALOGV("toString:\n%s", logString.string());
62a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu
63a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu    mServiceLog->add(String8("log4"));
64022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu    logString = mServiceLog->toString();
65022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu    EXPECT_FALSE(logString.contains("log1"));
66022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu    EXPECT_TRUE(logString.contains("log2"));
67022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu    EXPECT_TRUE(logString.contains("log3"));
68022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu    EXPECT_TRUE(logString.contains("log4"));
69022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu    ALOGV("toString:\n%s", logString.string());
70a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu
71a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu    mServiceLog->add(String8("log5"));
72022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu    logString = mServiceLog->toString();
73022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu    EXPECT_FALSE(logString.contains("log1"));
74022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu    EXPECT_FALSE(logString.contains("log2"));
75022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu    EXPECT_TRUE(logString.contains("log3"));
76022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu    EXPECT_TRUE(logString.contains("log4"));
77022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu    EXPECT_TRUE(logString.contains("log5"));
78022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu    ALOGV("toString:\n%s", logString.string());
79a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu}
80a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu
81a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu} // namespace android
82