116c4d154dca43c662571129af31b27433b919a32Adam Lesinski/*
216c4d154dca43c662571129af31b27433b919a32Adam Lesinski * Copyright (C) 2011 The Android Open Source Project
316c4d154dca43c662571129af31b27433b919a32Adam Lesinski *
416c4d154dca43c662571129af31b27433b919a32Adam Lesinski * Licensed under the Apache License, Version 2.0 (the "License");
516c4d154dca43c662571129af31b27433b919a32Adam Lesinski * you may not use this file except in compliance with the License.
616c4d154dca43c662571129af31b27433b919a32Adam Lesinski * You may obtain a copy of the License at
716c4d154dca43c662571129af31b27433b919a32Adam Lesinski *
816c4d154dca43c662571129af31b27433b919a32Adam Lesinski *      http://www.apache.org/licenses/LICENSE-2.0
916c4d154dca43c662571129af31b27433b919a32Adam Lesinski *
1016c4d154dca43c662571129af31b27433b919a32Adam Lesinski * Unless required by applicable law or agreed to in writing, software
1116c4d154dca43c662571129af31b27433b919a32Adam Lesinski * distributed under the License is distributed on an "AS IS" BASIS,
1216c4d154dca43c662571129af31b27433b919a32Adam Lesinski * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1316c4d154dca43c662571129af31b27433b919a32Adam Lesinski * See the License for the specific language governing permissions and
1416c4d154dca43c662571129af31b27433b919a32Adam Lesinski * limitations under the License.
1516c4d154dca43c662571129af31b27433b919a32Adam Lesinski */
1616c4d154dca43c662571129af31b27433b919a32Adam Lesinski
17560566d2915c03bed338fc532ac7f7aa3620cfdfNarayan Kamath#define LOG_TAG "ZipUtils_test"
1816c4d154dca43c662571129af31b27433b919a32Adam Lesinski#include <utils/Log.h>
19560566d2915c03bed338fc532ac7f7aa3620cfdfNarayan Kamath#include <androidfw/ZipUtils.h>
2016c4d154dca43c662571129af31b27433b919a32Adam Lesinski
2116c4d154dca43c662571129af31b27433b919a32Adam Lesinski#include <gtest/gtest.h>
2216c4d154dca43c662571129af31b27433b919a32Adam Lesinski
2316c4d154dca43c662571129af31b27433b919a32Adam Lesinski#include <fcntl.h>
2416c4d154dca43c662571129af31b27433b919a32Adam Lesinski#include <string.h>
2516c4d154dca43c662571129af31b27433b919a32Adam Lesinski
2616c4d154dca43c662571129af31b27433b919a32Adam Lesinskinamespace android {
2716c4d154dca43c662571129af31b27433b919a32Adam Lesinski
28560566d2915c03bed338fc532ac7f7aa3620cfdfNarayan Kamathclass ZipUtilsTest : public testing::Test {
2916c4d154dca43c662571129af31b27433b919a32Adam Lesinskiprotected:
3016c4d154dca43c662571129af31b27433b919a32Adam Lesinski    virtual void SetUp() {
3116c4d154dca43c662571129af31b27433b919a32Adam Lesinski    }
3216c4d154dca43c662571129af31b27433b919a32Adam Lesinski
3316c4d154dca43c662571129af31b27433b919a32Adam Lesinski    virtual void TearDown() {
3416c4d154dca43c662571129af31b27433b919a32Adam Lesinski    }
3516c4d154dca43c662571129af31b27433b919a32Adam Lesinski};
3616c4d154dca43c662571129af31b27433b919a32Adam Lesinski
37560566d2915c03bed338fc532ac7f7aa3620cfdfNarayan KamathTEST_F(ZipUtilsTest, ZipTimeConvertSuccess) {
3816c4d154dca43c662571129af31b27433b919a32Adam Lesinski    struct tm t;
3916c4d154dca43c662571129af31b27433b919a32Adam Lesinski
4016c4d154dca43c662571129af31b27433b919a32Adam Lesinski    // 2011-06-29 14:40:40
4116c4d154dca43c662571129af31b27433b919a32Adam Lesinski    long when = 0x3EDD7514;
4216c4d154dca43c662571129af31b27433b919a32Adam Lesinski
43560566d2915c03bed338fc532ac7f7aa3620cfdfNarayan Kamath    ZipUtils::zipTimeToTimespec(when, &t);
4416c4d154dca43c662571129af31b27433b919a32Adam Lesinski
4516c4d154dca43c662571129af31b27433b919a32Adam Lesinski    EXPECT_EQ(2011, t.tm_year + 1900)
4616c4d154dca43c662571129af31b27433b919a32Adam Lesinski            << "Year was improperly converted.";
4716c4d154dca43c662571129af31b27433b919a32Adam Lesinski
487134ce35406f942dd640a95583430b39e770f0daShammi Khattar    EXPECT_EQ(5, t.tm_mon)
4916c4d154dca43c662571129af31b27433b919a32Adam Lesinski            << "Month was improperly converted.";
5016c4d154dca43c662571129af31b27433b919a32Adam Lesinski
5116c4d154dca43c662571129af31b27433b919a32Adam Lesinski    EXPECT_EQ(29, t.tm_mday)
5216c4d154dca43c662571129af31b27433b919a32Adam Lesinski            << "Day was improperly converted.";
5316c4d154dca43c662571129af31b27433b919a32Adam Lesinski
5416c4d154dca43c662571129af31b27433b919a32Adam Lesinski    EXPECT_EQ(14, t.tm_hour)
5516c4d154dca43c662571129af31b27433b919a32Adam Lesinski            << "Hour was improperly converted.";
5616c4d154dca43c662571129af31b27433b919a32Adam Lesinski
5716c4d154dca43c662571129af31b27433b919a32Adam Lesinski    EXPECT_EQ(40, t.tm_min)
5816c4d154dca43c662571129af31b27433b919a32Adam Lesinski            << "Minute was improperly converted.";
5916c4d154dca43c662571129af31b27433b919a32Adam Lesinski
6016c4d154dca43c662571129af31b27433b919a32Adam Lesinski    EXPECT_EQ(40, t.tm_sec)
6116c4d154dca43c662571129af31b27433b919a32Adam Lesinski            << "Second was improperly converted.";
627134ce35406f942dd640a95583430b39e770f0daShammi Khattar
637134ce35406f942dd640a95583430b39e770f0daShammi Khattar    // We don't have enough information to determine timezone related info.
647134ce35406f942dd640a95583430b39e770f0daShammi Khattar    EXPECT_EQ(-1, t.tm_isdst);
657134ce35406f942dd640a95583430b39e770f0daShammi Khattar    EXPECT_EQ(0, t.tm_gmtoff);
667134ce35406f942dd640a95583430b39e770f0daShammi Khattar    EXPECT_EQ(nullptr, t.tm_zone);
6716c4d154dca43c662571129af31b27433b919a32Adam Lesinski}
6816c4d154dca43c662571129af31b27433b919a32Adam Lesinski
6916c4d154dca43c662571129af31b27433b919a32Adam Lesinski}
70